Внезапно сменил работу
Кажется, буквально только что прогремела моя статья о собеседованиях, феерично завершившаяся попаданием в 2ГИС. Восемь месяцев — чертовски маленький срок. Никогда не занимался «джобхоппингом», так что и сейчас не открывал резюме, не искал работу, готовился к аттестации. Встроился в процессы, накупил корпоративного мерча, подружился с коллегами и стал регулярно ездить в офис (который при мне перенесли в другое здание и расширили). Уже прям ассоциировал себя с 2ГИС.
Но внезапно мне сделали очень заманчивое предложение. Такое, от которого невозможно отказаться. Позвали в расширяющуюся финтех-компанию архитектором на новые продукты. Очень грустно уходить из 2ГИС, но я бы себя не простил, если бы не воспользовался открывшейся возможностью.
Сегодня на теперь уже старом месте работы было exit-интервью. Кстати, хорошая практика — компания обращает внимание на особенности в статистике увольнений. Задавали вопросы о том, что было хорошо, а что можно улучшить.
Вообще впечатления от 2ГИС самые тёплые. Из плюсов я бы выделил развитую корпоративную культуру и приятную атмосферу работы (не в последнюю очередь благодаря коллегам). Я с удовольствием читал внутренний новостной портал, ходил на презентации фич и самопрезентации новичков, участвовал в местных квизах. Прям сильный косяк вышел только с хакатоном, я вам об этом писал, но там скорее всего просто конкретные организаторы лажанули.
Одна из самых крутых киллер-фич 2ГИС, как работодателя — упрощённое взятие выходных и отпусков. По большей части не нужно никаких специальных согласований, если ты внезапно повёз ребёнка к врачу, или сам устал и хочешь денёк отоспаться.
Однако, в других местах отсутствие формализма порождает сложности. В Росатоме, например, процессы движения задач по жизненному циклу были зарегламентированы сильнее: нельзя передать что-то в разработку без аналитики, постановщик задачи сам следит за её статусами, задача целиком переназначается всегда на текущего одного ответственного человека (на стадии разработки на программиста, на стадии тестирования на тестировщика и т.д.). В 2ГИС иногда задачи приходили от бизнеса с необходимостью самостоятельно ходить по людям и уточнять, что на самом деле хотели. Делалось это как бы для экономии на аналитиках, что лично мне кажется большим заблуждением: бизнес таким образом платил за время более дорогого программиста, который ещё и выполнял работу аналитика дольше, потому что специализируется на другом. В итоге то, что казалось экономией, в моём понимании было скорее увеличением расходов и сроков. То же самое касалось, например, архитектуры и техдолга (но это типичная проблема подавляющего большинства бизнесов — техдолг вообще никто не умеет считать и оценивать).
Я бы сказал так: 2ГИС как бы вырос из стартапа и стал практически бигтехом, особенно после покупки Сбером. Если не бигтехом, то энтерпрайзом точно. Но в итоге оставил часть недостатков стартапа (экономия на «второстепенных» вещах, отсутствие регламентов) и получил часть недостатков энтерпрайза (слабое влияние сотрудников на конечный продукт, очень затянутое планирование и согласование новых задач, заметное количество легаси).
С другой стороны в той же мере присутствуют одновременно плюсы стартапа (простые организационные процессы, неформальная атмосфера) и плюсы энтерпрайза (стабильная компания с офисами, конкурентными зарплатами, рыночным белым оформлением, айти брендом и корпоративной культурой).
Если вы дисциплинированы, компетентны и не боитесь некоторых трудностей, то я однозначно готов советовать работу в 2ГИС. Сейчас идёт набор разработчиков на C#, Go, дата-саентистов, присоединяйтесь :) Уровни мидл и сеньор.
#dev@clockstackwheels#life@clockstackwheels
‼️Google нашла решения проблем багов для конкретных устройств😂
Известно, что отдельные устройства под Android имеют собственные баги. Производители их не правят по разным причинам: закончилась поддержка, не хотят тратиться или предложили на форуме обход. Может просто идет долго доставка фикса до вашего устройства (всякое может быть)
Команда Android Jetpack сделала библиотеку core-backported-fixes, чтобы помочь разработчикам проверить состояния бага для текущего устройства 😂
Пример кода проверки issue KI_398591036 (проблема с цветом в фото на Pixel устройствах)
val fixManager = BackportedFixManager()
if (fixManager.isFixed(KnownIssues.KI_398591036)) {
Offer_experience_that_needs_fix()
} else {
Offer_experience_that_avoids_the_bug()
}
Все issue для проверки описаны в классе KnownIssues
#android#jetpack
‼️Важно изменение Android Jetpack - minSdk повысили с Api Level 21 (Android 5.0) до 23 (Android 6.0). Пока только в следующих версиях библиотек, но это всего 1-2 месяца.
Если ваше приложение поддерживает Android 5.0 и выше, то использовать новые версии библиотек уже не получится. Что можно сделать:
👉 Остаться на старых версиях
👉 Повысить minSdk до 23 или выше
👉 Поддерживать всё самостоятельно
Источник - Ian Lake из команды Android Jetpack
#android#jetpack
🚀Вышел Jetpack Browser 1.9.0 - библиотека для интеграции Custom Tab в приложения
👉 Появилась возможность добавить элементы контекстного меню в Custom Tabs — теперь вы можете собственные пункты меню внутри вкладки
👉 Появилось экспериментальное Auth Tab API. Цель - OAuth авторизация через Web браузер
👉 Улучшения TrustedWebActivityIntent
Есть и другие менее заметные обновления
#android#jetpack
🚀Вышел первый релиз Jetpack Core-i18n
Вышел первый стабильный релиз Jetpack Core-i18n - библиотека для упрощения интернационализации приложения. Первый релиз фокусируется на форматирование даты и времени, а также бэкпорт android.icu.text.MessageFormat
dependencies {
implementation("androidx.core:core-i18n:$core_version")
}
#android#jetpack
🚀Jetpack Core i18n 1.0 - библиотека для качественной интернационализации приложения
Google представила новую библиотеку c фокусом на 2 основных областях:
👉 Форматирование даты и времени, следуя лучшим практикам, опираясь на настройки пользователя и предоставляя доступ на новых и старых версиях Android
👉 Backport android.icu.text.MessageFormat - API для подготовки строк для показа пользователю с опциональными аргументами
👉 Библиотека будет портировать новые i18n API на старые версии Android
#android#jetpack
🚀Core-Viewtree 1.0.0 — стабильный релиз!🎉
AndroidX представил первую стабильную версию библиотеки core-viewtree, которая вводит новое понятие — disjoint parent для View, дополнительно к уже существующему View.parent
🔍 Что это значит?
Теперь View может иметь родителя, который есть у View, но не задан через View.parent. Это полезно в случаях, когда элемент находится вне стандартной иерархии, например: ViewOverlay, попапы, диалоги.
Такой подход позволяет гибко управлять связями между View, особенно в анимациях и сложных UI-компонентах.
Пример использования
class CustomOverlayView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : View(context, attrs) {
fun attachToOverlay(overlayView: View) {
// Устанавливаем overlayView как разобщённого родителя
ViewTreeDisjointParent.set(this, overlayView)
}
}
Где используется
AndroidX автоматически задаёт disjoint parent для ViewOverlay, начиная с Transition 1.6.0-alpha01. Также разработчики могут самостоятельно назначать такие связи.
Будете использовать в своих проектах? Делитесь мыслями в комментариях! 👇
#android#jetpack
📹НОВОЕ ВИДЕО 🎉Полный разбор Jetpack ViewModel для Android и Kotlin Multiplatform (44 мин)
ViewModel - один из самых популярных компонентов Android Jetpack в современной Android разработки. Уже сейчас там есть поддержку Kotlin Multiplatform.
Но знаете ли вы возможности ViewModel? Обо всём этом в новом видео на канале
Видео доступно на 📹YouTube📹VK Video📺RuTube
#AndroidBroadcast#jetpack
🚀Вышел Jetpack Window Manager 1.4 - библиотека для работы с разными форматами устройства и несколькими окнами с поддержкой KMP
Что нового в свежей версии:
👉 Улучшения Activity Embedding
👉 Улучшения API WindowMetrics
👉 Улучшили API для тестирования
#jetpack#kmp