Обновить
200.21

Android *

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

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

Демоприложения: как жить, когда у вас 90+ application-модулей

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

С того момента, как Олег Шелякин рассказал про запуск демоприложений в проекте мобильного банка, большинство команд успело обзавестись своей собственной уютной демкой, и сейчас их количество приближается к 90. 

В предыдущей статье основной акцент был на сокращении времени сборки и синхронизации кода с Android Studio. Но так уж выходит, что, решая одну проблему, мы порождаем другие. Если раньше был один единственный application module, к которому подключались все остальные модули для сборки в конечный артефакт(apk, aab), то сейчас таких модулей стало приблизительно на 90 больше.

Меня зовут Роман Заремба и я расскажу, как мы ушли от кода интеграции в application-модулях, пересмотрели базовые решения, придумали подход collector + initializer, перешли на библиотеку App Startup, избавились от нее и стали использовать стандартный Java ServiceLoader.

Читать далее

У нас в проекте был Compose Multiplatform, но снова я бы так не делал

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

Мобильная разработка продолжает развиваться, но, если честно, никаких революционных прорывов в последнее время не произошло. Громкие темы, вроде Kotlin Multiplatform (KMP), Flutter, Jetpack Compose, SwiftUI, уже давно закрепились в индустрии, а новинки больше эволюционируют, чем меняют правила игры. Компании экспериментируют с кроссплатформенными решениями, и это выглядит логично. Писать общий код для iOS и Android 一 это экономия ресурсов и времени. Вроде бы верно, но на практике всё не так гладко.

Привет, меня зовут Максим Плахута и с недавнего времени я руковожу Android разработкой «Кинопоиска». До этого руководил мобильной разработкой Почты Яндекс. А ещё я участник ПК новой конференции по мобильной разработке Apps Conf. Расскажу, какие шишки набили в реализации кроссплатформенного проекта и чего лучше не делать в современной мобильной разработке.

Читать далее

A/B-тестирование в Android-разработке: гайд для middle+ разрабов

Время на прочтение3 мин
Количество просмотров881

A/B-тестирование — это не только инструмент для продуктовых команд. Это суперспособность и для Android-разработчиков. В этой статье рассказываю, как опытные инженеры могут проектировать, реализовывать и грамотно завершать эксперименты, которые действительно влияют на продукт, не захламляя кодовую базу. От Firebase Remote Config до паттернов чистой архитектуры — всё, чтобы делать более умные и осознанные Android-приложения.

🚀 Почему A/B-тестирование важно именно для разработчиков

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

• сравнение разных UI-дизайнов,

• тестирование разных онбордингов,

• проверка производительности оптимизаций,

• сравнение реализаций фич (например, RecyclerView против LazyColumn в Compose).

Вместо «выпустим и посмотрим» — мы выпускаем, измеряем и улучшаем.

🧩 Как встроить A/B-тесты в кодовую базу

Хороший A/B-тест начинается с гипотезы и метрик успеха. Но в инженерном мире нужно думать ещё и о поддержке, масштабировании и разделении логики.

Читать далее

Приложение для Android: Справочник по DC-DC микросхемам с функцией подбора по параметрам и типовыми схемами включения

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

В одном из комментариев к статье о приложении SMD CODES было предложено сделать отдельное приложение о микросхемах питания DC-DC (импульсные преобразователи напряжения).

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

Читать далее

Узнаём какое аниме будет самым рейтинговым еще до выхода

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

Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)

Читать далее

Почему нельзя использовать RecyclerView в NestedScrollView и как это исправить?

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

Почему нельзя использовать NestedScrollView вместе с RecyclerView? Я попробую ответить на этот вопрос, и покажу как надо делать

Читать далее

Плавная миграция на Kotlin 2.1.0

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

Всем привет, меня зовут Эдуард, я Android Tech Lead в QIC digital hub[ссылка удалена мод.]. Сегодня я расскажу как совершить плавный переход на Kotlin 2.1.0, руководствуясь опытом своей команды.

Читать далее

Мобильная разработка за неделю #582 (31 марта — 6 апреля)

Время на прочтение5 мин
Количество просмотров1.3K
В этом выпуске конкатенация против интерполяции, дизайн-система для мобильных устройств и TV, применение zero/empty объектов, игра на LUA для часов Xiaomi Redmi Watch 4, уродливые пейволы, навыки флирта с ИИ-персонажами и многое другое. Заходите!

Читать дальше →

Atomic Derby: мы сделали крутой PvP-экшен на мобилки — осталось дожать до релиза. Ищем Unity-разработчика

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

https://www.youtube.com/watch?v=ZqW-WUt11vE

Создаём изометрический автомобильный PvP для мобилок — рассказываю, что готово и что нужно чтобы довести до MVP.

Читать далее

Жизнь после отвала eMMC: Загружаем Android с MicroSD

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

Есть у меня страсть к коллекционированию и ремонту интересных смартфонов прошлых лет. Недавно подписчик подарил мне весьма диковинный и необычный гаджет 2011 года: бюджетный QWERTY-смартфон Samsung Galaxy Y Pro с чипсетом от Broadcom. Помимо самого факта того, что смартфон обладал QWERTY-клавиатурой, меня также заинтересовало его кровное братство с Raspberry Pi первого поколения. Но вот незадача, смартфон не включался и просто висел на логотипе. Если вам интересен необычный кейс ‭«отвала‭» eMMC и переноса Android на MicroSD-флэшку — жду вас под катом!

Читать далее

Разбираем чистую архитектуру в Android: от а до я

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

Дорогой читатель! Если ты оказался тут, то скорее всего ты столкнулся с той же проблемой, что и я: 

ты занимаешься Android разработкой и все вокруг говорят о какой-то «чистой архитектуре» (она же - Clean Architecture), указывают её в требованиях к вакансиям, указывают на практиках в вузе и т.д.

Однако информацию о данном подходе приходится собирать по кусочкам. Так что в данной статье я Даниил Закляков, разработчик WMT Group попробую на своем опыте подробно, доступным языком объяснить с чего начинать и как эту архитектуру строить.

Зачем всё это?

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

Читать далее

Как я писал проводник для Wear OS и что из этого вышло

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

Как я писал проводник для Wear OS и что из этого вышло

О чём тут пойдёт речь:

- Почему я решил этим заняться
- Как я разрабатывал приложение (в общих чертах)
- Обманчивые гайдлайны Google и о том, как я пытался победить банальные (на первый взгляд) проблемы

Читать далее

Валидация полей формы в андроид приложении и не только

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

Регулярно возникают задачи проверять, что пользователь вводит в поля и сообщать ему если он что-то сделал не правильно.

Ничего в этом сложного нет,

напишем парочку регулярных выражений

const val SNILS_PATTERN = "[0-9]{3}-[0-9]{3}-[0-9]{3}\\s[0-9]{2}"

const val LATIN_NAME_WITH_COMMA = "[${LATIN_LETTERS}0-9\\-`'.,()\\s]*"

и маски

const val SNILS_MASK = "[000]-[000]-[000] [00]"

применим DataBinding и будет норм..

Если вы так считаете, дальше можно не читать.

Другим путём, пойдём мы

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

BundledSQLiteDriver: новый взгляд на SQLite в Android и Kotlin Multiplatform

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

BundledSQLiteDriver из библиотеки androidx.sqlite — это специальная сборка встраиваемой СУБД SQLite от команды разработчиков Android Jetpack, предназначенная для использования в Kotlin Multiplatform проектах. В этой статье мы рассмотрим её особенности.

Читать далее

Как мы сделали дизайн-систему для мобильных устройств и TV

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

Привет, Хабр! Меня зовут Вячеслав Таранников, я ведущий Android-разработчик в RuStore, и сегодня расскажу о нашей дизайн-системе, разобрав две ключевые темы: токены и компоненты.

Эта статья основана на моем совместном докладе с Дмитрием Смирновым, руководителем команды разработки, — «Как мы создали дизайн-систему для мобильных устройств и ТV на Jetpack Compose». Мы представили его на митапе «Coffee&Code ✕ RuStore | TechBrew» и теперь делимся основными идеями с вами.

Читать далее

Поддержка webextensions под Андроид, вторая серия

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

Очень добрый день!


Меня зовут Тимур и я программист.


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

Читать дальше →

Lissen: как я красивый плеер для аудиокниг писал

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


Я слушаю аудиокниги с 2014 года. За это время я перепробовал много разных сервисов: и с моделью “по подписке”, и те, что продают каждую конкретную книгу.


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


У него был и есть потрясающе красивый неофициальный iOS-клиент, которым я пользовался какое-то время. Осенью 2024 года Google наконец показала Pixel 9 и я решил, что пора попробовать Android


С большим сожалением я обнаружил, что мне сложно использовать официальное мобильное приложение для Audiobookshelf, других тогда не было, а возвращаться к популярным стриминговым площадкам мне не хотелось.


Так родилась идея написать Lissen — красивый, минималистичный и удобный клиент для Audiobookshelf.


Сегодня я расскажу про разработку, релиз и опыт использования приложения, которое я писал для себя.

Читать дальше →

Все знают, какие приложения установлены у вас в телефоне

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

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

В 2022 году, с выпуском Android 11, Google удалила этот доступ для разработчиков приложений. Согласно новой политике видимости пакетов, приложения должны видеть другие приложения только в том случае, если те необходимы для их базовой функциональности. Кроме того, разработчики должны явным образом объявлять эти приложения в обязательном для всех приложений Android файле конфигурации AndroidManifest.xml.

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

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

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров955
В новом дайджесте iOS-разработка в Zed и Picture-in-Picture в 2ГИС, автоматизация версионирования и системные идеи, которые никогда не работают, посудомойка в облаке, дело асинхронного программирования, ускорение Android-сборки и многое другое. Заходите!

Читать дальше →

Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS

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

Привет, Хабр!

В этой статье я делюсь решением, как настроить версионирование приложения для Android и iOS с помощью Kotlin Multiplatform. Я рассказываю о том, как минимизировать человеческий фактор, автоматизировав процесс обновления версий, и как избежать дублирования информации в разных частях проекта. В статье представлен пример кода, который можно адаптировать под свой проект.

Читать далее