Как стать автором
Обновить
156.59

Разработка под Android *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Работа с UI-автотестами под Android: от запрета мерджа к особенностям запуска

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.3K

UI-автотесты под Android — отличный инструмент, который позволяет кратно сократить время на проверку разрабатываемых фич и свести к минимуму участие в ручном регрессионном тестировании инженеров по обеспечению качества. Но работать с UI-тестами надо правильно — иначе все может прийти к ситуации, при которой автотесты становятся нестабильными, а их результаты не вызывают доверие.

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

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии5

6 лет из жизни инди-разработчика

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.6K

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

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

Читать далее
Всего голосов 32: ↑28 и ↓4+24
Комментарии29

За кем сейчас охотятся крупные работодатели в IT?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров69K

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

Раз в несколько месяцев буду публиковать «срезы» — заметки о том, кто сейчас особенно востребован на отечественном рынке (а значит, кому больше всего платят).

Читать далее
Всего голосов 49: ↑40 и ↓9+31
Комментарии78

Исходников нет, но мы не сдадимся: как и зачем я портировал более старый Android, чем стоял «с завода»?

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров13K
image


Моддинг-сцена с разработкой и портированием кастомных прошивок для Android-устройств существует вот уже более 10 лет. В основном, энтузиасты пытаются проапгрейдить свои устройства путем портирования более свежих версий Android, чем предлагает производитель девайса. Чего уж говорить, если Galaxy S III, которому уже 12 лет стукнуло, получил неофициальный апгрейд до Android 14. Порой мне в голову приходят различные, весьма странные моддерские мысли: например, почему бы не портировать на старенький смартфон… ещё более старую версию Android, дабы посмотреть «что будет». Казалось бы «портировал и портировал», но в процессе работы я столкнулся с множеством интересных нюансов и особенностей работы Android, о которых хотел бы рассказать и вам — моим читателям! Сегодняшняя статья будет в классическом «научпоп»-стиле без кода, зато с подробными объяснениями одной из техник портирования Android-прошивок путем патчинга скриптов для конфигурации системы и подмены Board-specific библиотек, дабы система «увидела» всё необходимое железо! Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 85: ↑84 и ↓1+83
Комментарии32

Истории

К чему с годами приводит работа с Dependency Injection и Service Locator

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров11K

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

Так произошло и со мной. Я решил написать полноценный функционал для работы с зависимостями и, так как я Android-разработчик, адаптировать для работы в привычной среде для моих привычных задач. 

Делюсь написанным — вдруг вам это поможет прокачать технические скиллы и создать собственную библиотеку. 

Читать далее
Всего голосов 23: ↑21 и ↓2+19
Комментарии10

Context receivers — новые extension functions

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.4K

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

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии8

Экспортируем иконки из Figma в проект одним кликом: история одной автоматизации

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.9K

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

Под катом про знакомый всем «человеческий фактор», плюс краткий гайд по автоматизированному экспорту картинок из Figma в рабочий проект.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Как работает NDA в разработке приложений? + шаблон НДА

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.2K

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии4

Мобильная разработка за неделю #531 (18 — 24 марта)

Время на прочтение5 мин
Количество просмотров1.8K
В новом выпуске быстрый старт и дело правительства США против Apple, цена Чистой Архитектуры и Android 15 Developer Preview 2, современный способ организации зависимостей, сила последовательности, топ быстрорастущих приложений в России в марте и многое другое.
Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Современный способ организации зависимостей в Android. Version catalog и Gradle convention plugin

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2.8K

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

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии6

Вы за это заплатите! Цена Чистой Архитектуры. Часть 2

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.6K

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

Если не читали первую часть, настоятельно рекомендую это сделать, чтобы оставаться в контексте.

Итак, продолжим.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии13

Как рождаются идеи pet-проектов?.

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6K

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

Читать далее
Всего голосов 23: ↑21 и ↓2+19
Комментарии20

ViewModel + Kotlin Multiplatform. Пробуем нативное решение

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров6.9K


Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.

Для начала освежим, с чем же мы работали до ViewModels из Lifecycle.

Сами по себе ViewModel как часть паттерна MVVM применительно к кросс-платформенным решениям идея не новая. Многие давно использовали собственную реализацию, совмещая также с платформенными архитектурами.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии5

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Зачем в мобильной разработке использовать Flow, если есть мощный ChannelFlow?

Время на прочтение5 мин
Количество просмотров1.4K


Я знаю, что существует множество статей о flow и channelFlow, в которых часто подчёркивается, что channelFlow по сути использует Channel. Но что это на самом деле значит для мобильных разработчиков? Когда это различие действительно имеет значение? Можно ли добиться такого же поведения с помощью flow без использования Channel, и какие уникальные возможности предлагает ChannelFlow, которых нельзя достичь с помощью обычного Flow?

Ключ к этому вопросу лежит в понимании основной концепции Channel. Концептуально Channel и Flow служат разным целям. Каналы (Channels) облегчают взаимодействие между корутинами, в то время как потоки (Flows) больше направлены на эффективное производство и распределение данных.

ChannelFlow использует Channel для своих операций, что делает его мощным инструментом в сценариях, включающих сложную обработку данных или требующих одновременного выброса данных из нескольких корутин. Однако что же это такое?

Рассмотрим реальный сценарий, в котором приложения образуют связанную сеть, обнаруживая близлежащие приложения (устройства) через Bluetooth или локальную сеть и одновременно получая информацию о близлежащих устройствах с удалённого сервера. В этом случае каждому приложению может потребоваться отправить данные из трёх различных источников, которые работают независимо и непрерывно.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии0

Вы за это заплатите! Цена Чистой Архитектуры. Часть 1

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров24K

Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Читать далее
Всего голосов 64: ↑61 и ↓3+58
Комментарии65

Android TOML. Просто о каталогах зависимостей в Android Studio

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

Всем привет!

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Разработка под Android в 2024 году

Время на прочтение15 мин
Количество просмотров10K

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

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

Читать далее
Всего голосов 21: ↑19 и ↓2+17
Комментарии13

Мобильная разработка за неделю #530 (11 — 17 марта)

Время на прочтение5 мин
Количество просмотров2K
В нашем новом дайджесте моменты неотзывчивости и автоматизация рутины, правила линтера и легендарный мобильный GPU, как и где практиковаться начинающему мобильному разработчику, исследование приложений с подпиской 2024 и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Ликбез по вложенной прокрутке в Jetpack Compose

Время на прочтение11 мин
Количество просмотров2K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Vivaldi для Android с настраиваемыми обоями

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров988

Ваш браузер должен быть таким же уникальным, как и вы. Обновите Vivaldi 6.6 и выразите свою индивидуальность с помощью стартовой страницы, которая действительно станет вашей.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии18