Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд

Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд.

Пишем под самую популярную мобильную ОС

Реализация Lazy Dependency Holder (Продвинутая ленивая инициализация зависимостей) для больших команд.

UI-автотесты под Android — отличный инструмент, который позволяет кратно сократить время на проверку разрабатываемых фич и свести к минимуму участие в ручном регрессионном тестировании инженеров по обеспечению качества. Но работать с UI-тестами надо правильно — иначе все может прийти к ситуации, при которой автотесты становятся нестабильными, а их результаты не вызывают доверие.
Меня зовут Эмилия Куцарева. Я — руководитель команды автоматизации тестирования в Одноклассниках (VK). В этой статье я расскажу о нашем подходе к работе с Android UI-автотестами: как устроен запрет мерджа, как смогли стабилизировать тесты, как настроили параметризацию запуска.

А привет, Хабр. У меня для тебя есть история длиной в шесть лет. История о том, как я учился делать свои собственные игры без навыков программирования и что из этого вышло. Почему так долго и почему так делать не стоит. Настоящий ориджинал контент, от А до Я. Где такое найдешь сейчас, а? Тут, правильно.
Я постарался достать самое интересное из того, что со мной произошло. И про игры, и про гранты. Упаковать это всё в простой и понятный текст со своими иллюстрациями, естественно. Не страшно? Ну тогда давай, бери большую кружку, наполняй кофеином и погнали.

Привет, на связи Кирилл Антонов, коммерческий директор hitch. Мы занимаемся аутстафом IT‑специалистов — выводим разработчиков (и не только) на проекты отечественных корпораций. Непрерывно следим за тем, как меняются потребности крупнейших IT‑компаний и поведение соискателей.
Раз в несколько месяцев буду публиковать «срезы» — заметки о том, кто сейчас особенно востребован на отечественном рынке (а значит, кому больше всего платят).


Глубину осознания библиотеки можно проверить, написав её самостоятельно. Возможно, новорожденное решение будет ограниченным и не найдёт свою аудиторию, но оно навеки принадлежит автору и подтверждает реальное понимание работы технологии.
Так произошло и со мной. Я решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в привычной среде для моих привычных задач.
Делюсь написанным — вдруг вам это поможет прокачать технические скиллы и создать собственную библиотеку.

Поговорим сегодня про context receivers — фиче Kotlin, про которую я узнал давно, но смог найти применение лишь пару месяцев назад. Расскажу о том, что такое context receivers, где их можно использовать, и, конечно же, про «успешный успех» — минус 60% самописного DI в OzonID SDK. Но обо всём по порядку.

Абсолютно стандартное начало: в Figma размещался набор из примерно тысячи иконок, которые успешно перенесли в проект. Все собрали, потестили и зарелизили. Про автоматизацию никто не думал, поскольку задача казалась «одноразовой». Ну а в случае последующих обновлений или дополнений каких-то элементов ручной труд должен был занять несколько минут. Что тут может пойти не так?
Под катом про знакомый всем «человеческий фактор», плюс краткий гайд по автоматизированному экспорту картинок из Figma в рабочий проект.

Текущий информационный мир полон не только возможностей, но и ограничений. Если вы работает в B2B и B2G, то не раз встречались с NDA от заказчика. Я расскажу о своем опыте в сфере аутсорсинг‑разработки: как выгодно пользоваться этим документом.


Я — Денис, Middle Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о современном подходе организации зависимостей в Android. Вы узнаете как использовать version catalog и convention plugin в вашем проекте.

В прошлой части мы немного коснулись теории и остановились на определении лишних компонентов. В этой части мы продолжим определять лишнее, коснёмся вопросов экстремальной экономии, а также закрепим всё выводами.
Если не читали первую часть, настоятельно рекомендую это сделать, чтобы оставаться в контексте.
Итак, продолжим.

Наверняка, многие программисты хоть когда-нибудь, в свободное время, программировали что-нибудь для себя или своих нужд. Делали, так называемые, Pet-проекты. Хотелось бы поделиться со всеми своим опытом...


flow и channelFlow, в которых часто подчёркивается, что channelFlow по сути использует Channel. Но что это на самом деле значит для мобильных разработчиков? Когда это различие действительно имеет значение? Можно ли добиться такого же поведения с помощью flow без использования Channel, и какие уникальные возможности предлагает ChannelFlow, которых нельзя достичь с помощью обычного Flow?Channel. Концептуально Channel и Flow служат разным целям. Каналы (Channels) облегчают взаимодействие между корутинами, в то время как потоки (Flows) больше направлены на эффективное производство и распределение данных.ChannelFlow использует Channel для своих операций, что делает его мощным инструментом в сценариях, включающих сложную обработку данных или требующих одновременного выброса данных из нескольких корутин. Однако что же это такое?
Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.
Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Всем привет!
Меня зовут Евгений и я Android‑разработчик. Сегодня хотел бы поделиться своими знаниями и наблюдениями относительно нового способа добавления зависимостей в проекты, созданные на базе Android Studio Iguana.

Эта статья отражает моё личное мнение и профессиональные взгляды, учитывающие различные точки зрения в сообществе Android-разработчиков. Кроме того, я регулярно просматриваю руководства от Google для Android.
Важно подчеркнуть: некоторые хорошие инструменты, паттерны и архитектуры я не упомянул в статье в явном виде, но это не отменяет их потенциал в качестве ценных альтернатив для разработки Android-приложений.


В основе большинства приложений для Android лежат списки. За многие годы появилось множество различных решений, реализующих взаимодействие других компонентов пользовательского интерфейса со списками — например, как панель приложения реагирует на прокрутку списка или как вложенные списки взаимодействуют друг с другом. Вы когда-нибудь сталкивались с ситуацией, когда один список находится внутри другого, и, прокручивая внутренний список до конца, вы хотите, чтобы внешний список продолжил движение? Это классический пример вложенной прокрутки!