Обновить
512K+

Android *

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

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

RuStore не так уж и плох, как PirateStore

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

Могут ли современные тренды превратить keygen (Генератор ключей) в легальный инструмент, доступный для скачивания из любого Android или iPhone маркетплейса?!

Выгодно ли тому же ruStore размещать у себя пиратский контент?!

Как можно докатиться до Android разработчика, будучи разработчиком Windows приложений?!

Читать далее

Как синтаксический сахар Kotlin может сломать вам логику работы приложения

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

Как использование object и data class сломало работу моего приложения и какие уроки я вынес про синтаксический сахар Kotlin и IDEA, которая так сладко предлагает замены.

Подробности

Погружение в мир Lint'a в Android-проекте (часть 2)

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели2.9K

Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.

Читать далее

Большое обновление CV-возможностей для фреймворка Simple

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели2.9K

Добрый день! Представляю большое обновление CV-возможностей (ActiveCV 2.0) андроид-фреймворка Simple, о котором писал тут https://habr.com/ru/articles/720610/. Теперь ActveCV существует не параллельно разработке на обычных экранах, а является элементом экрана, таким как кнопка или надпись. Это не просто подход к дизайну, а совершенно другие возможности работы – совмещение логики экранов и обработки видеопотока.

Читать далее

Руководство по тестированию push-уведомлений

Время на прочтение13 мин
Охват и читатели34K

Представьте себе страшный сон тестировщика и в целом вашей команды – пользователи пишут в поддержку, что пуши не приходят, сообщения не доходят, а вы никак не можете воспроизвести проблему и у вас даже нет понимания: а как это воспроизводить, от чего вообще зависит доставка пушей?

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

Поэтому эта статья перед вами!

Читать далее

Мобильная разработка за неделю #571 (13 — 19 января)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели2.1K
В новом дайджесте обсуждаем костыли поддержки iOS 15 на SwiftUI и корутины Kotlin, приложения на Go и шаблон на все случаи жизни, 30 уроков от 30 лучших продуктовых лидеров, мест Snap в виде исчезающих фотографий в iMessage, переделку одного устройства и многое другое. Подключайтесь!

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

Как я случайно купил последний в мире прототип игрового смартфона и доработал его до ума

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

В своём блоге я время от времени рассказываю о различных устройствах, предназначенных для разработчиков портативных гаджетов - девкитах, инженерных прототипах и т.п. Недавно я ковырял китайские барахолки в поисках интересных девайсов для будущих статей и мой взор привлёк весьма интересный игровой смартфон на очень редком процессоре всего за 1.000 рублей. Изучив информацию в сети, я узнал что устройство было разработано небольшим стартапом для локального рынка Китая, а когда телефон приехал ко мне... оказалось, что это не серийное устройство, а редчайший инженерный прототип, о которых в сети нет никакой информации. В сегодняшней статье мы с вами узнаем: почему этот прототип вероятно последний в мире, что из себя представляет смартфон и что у него "под капотом", а также пофиксим некоторые баги в прошивке, которые не успели поправить разработчики устройства. Интересно? Тогда жду вас под катом!

Читать далее

Альтернатива Firebase Dynamic Links на KMP

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

В этой статье я коротко расскажу как реализовал функционал Firebase Dynamic Links своими силами в KMP.

Читать далее

Go в GUI, я создал

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели21K

Идея сделать игру под Android на Go была неоднозначной, но интересной. Я легко мог представить Go не только в привычной для него сервисной нише, но и в прикладной — его кросс-платформенность и близость к системному уровню в сочетании с простотой пришлись бы там очень кстати. И вот мы здесь — игру мечты я пока не создал, но пару игр попроще сделать удалось.

В этой статье я хочу рассказать об инструментах, появившихся по ходу работы. Сами инструменты я объединил в библиотеку Youngine и опубликовал на GitHub. Там же я опубликовал небольшой пример проекта.

Читать далее

Экспорт и импорт File Templates в IDE от Intellij

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

Всем привет! На связи Дима Котиков, и это заключительная статья цикла про File Templates. В предыдущих частях мы познакомились с инструментом File Templates, разобрали синтаксис написания шаблонов и написали шаблоны для кода типового экрана SomeFeature мобильного приложения.

В заключительной части разберем, как можно экспортировать и импортировать File Templates в Intellij-IDE, а также подведем общие итоги по циклу статей.

Читать далее

Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов

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

Всем здравствуйте. Это моя первая статья на такую публику, поэтому просьба не судить строго! :-)

При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences. В этой статье мы рассмотрим, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.

Что такое DataStore?

Jetpack DataStore — это библиотека для хранения данных, поддерживающая асинхронное и безопасное чтение и запись данных. Она предоставляет два типа хранилищ:

1. Preferences DataStore: Используется для хранения пар "ключ-значение" (похож на SharedPreferences).

2. Proto DataStore: Используется для хранения структурированных данных на основе протокольных буферов.

В этой статье мы сосредоточимся на Preferences DataStore, которое идеально подходит для хранения настроек приложения.

Читать далее

Примеры использования File Templates для типовых сценариев, где требуется шаблонный код

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели3.9K

Всем привет! На связи Дима Котиков, и это вторая статья из цикла про File Templates. В предыдущей части мы описали проблему с необходимостью написания шаблонного кода и вариантами решения, познакомились с инструментом шаблонов File Templates и разобрали синтаксис написания шаблонов.

В этой статье перейдем к практике — напишем шаблоны для кода типового экрана SomeFeature мобильного приложения.

Читать далее

Топ-5 популярных вопросов на Android собеседовании [2025]

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

Cобеседования в IT - это всегда вызов и Android тут, конечно же, не исключение. Для успешного прохождения интервью в крупные и востребованные компании современный Android-разработик должен держать в голове огромное количество областей: от "базы" в виде Computer Science (структуры данных, алгоритмы) и навыков проектирования (архитектура, паттерны, System Design) до знания Java, Kotlin и, разумеется Android SDK. Добавим сюда и популярные фреймворки и библиотеки (которые к тому же устаревают каждые пару лет!) вроде RxJava и Kotlin Coroutines и получается совсем уж, на первый взгляд, неподъемный багаж необходимых знаний... К счастью, многие вопросы пересекаются между компаниями, так что наработав некоторую «базу» из них вы сильно повысите свои шансы на положительный результат и заветный оффер :-) Давайте разберем ТОП-5 вопросов, с которыми можно столкнуться в крупных компаниях на российском рынке, поехали!

Читать далее

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

Kotlin Coroutines под капотом: отмена корутин

Время на прочтение24 мин
Охват и читатели21K

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

Читать далее

Мобильная разработка за неделю #570 (6 — 12 января)

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.5K
В этой подборке уменьшаем написание boilerplate и удаляем десятки тысяч строк кода, чистим проекты правильно и наблюдаем за закатом Stack Overflow, оцениваем рынок мобильных приложений в России в 2024 году, отслеживаем перформанс-метрики и многое другое. Подключайтесь!

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

Морфинг геометрических фигур с SDF в фрагментных шейдерах GLSL и визуализацией на Jetpack Compose

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели2.8K

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

В данной статье будет рассмотрен пример реализации плавной анимации морфинга геометрических фигур с использованием SDF (Signed Distance Functions) и GLSL для графического рендеринга.

Читать далее

Уменьшаем написание boilerplate с помощью File Templates

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.1K

Всем привет! На связи Дима Котиков, и я все еще люблю разбираться в технологиях, разрабатывать под Android и KMP и пить латте на фундучном молоке :)

Рассказываю о генерации файлов с boilerplate-кодом с помощью удобного механизма задания File Templates в средах разработки Intellij. File Templates позволяет в пару кликов создавать несколько файлов с каким-либо boilerplate-кодом. Хоть статья приводит примеры создания File Templates для Android/Kotlin Multiplatform, она может быть полезна всем, кто работает в средах разработки от Intellij.

Читать далее

Управление событиями в ViewModel с помощью StateFlow, SharedFlow и Channel

Время на прочтение6 мин
Охват и читатели8.3K

Сообщество Android-разработчиков уже долгое время ведёт жаркие споры о том, что лучше использовать в ViewModel для представления событий: StateFlow, SharedFlow или Channel. В этой статье мы разберёмся в различиях между этими тремя подходами и определим, какой из них наиболее подходит для ваших нужд.

Читать далее

Алло! Реализуем дисковый телефон с помощью Jetpack Compose(Обновлено)

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

Привет, Хабр! Меня зовут Артем, я автор и ведущий YouTube и Telegram каналов Android Insights.

Данная статья - идейный продолжатель моей предыдущей статьи Создание Custom Layout в Jetpack Compose

Сегодня мы создадим настоящий дисковый телефон с помощью Jetpack Compose! Вы узнаете, как реализовать жесты, анимации и механику вращения диска, чтобы получить максимально аутентичный опыт взаимодействия со старым добрым телефоном в современном Android приложении.

Читать далее

Подходы к созданию ViewModel в Android

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели8.6K

В данной статье будут рассмотрены способы создания ViewModel (далее VM) в Android, а также usecase для каждого подхода.

Читать далее