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

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

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

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

MultiItem адаптер для RecyclerView в 40 строк кода с BRVAH

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

Это третья часть цикла статей про разработку адаптеров для RecyclerView c BRVAH.

Прошлые части:

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

Как мы обновляли мобильное приложение для официантов: выбор стека и тест трех версий. Кто победил?

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

Привет! Меня зовут Сергей Арсёнов, я руковожу мобильной разработкой в компании r_keeper. Хочу рассказать, как мы обновляли мобильное b2b-приложение для официантов и почему выбрали для него не совсем классический стек — Kotlin Multiplatform Mobile + UI на Flutter.

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

Оптимизация ресурсов в Android. Ускорение сборки и уменьшение размера APK

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

Один из эффективных способ ускорения проектов - разделить генерацию R классов по отдельным модулям. Хоть эта возможность уде добавлена давно в Android Gradle Plugin, но её до сих пор не включили по умолчанию. Из статьи вы узнаете как выключить эту фичу и какие результаты по скорости сборки проекта удаётся достичь

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

Автоматизация повышения качества кода в Android

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

Современные мобильные приложения уже вполне серьезные Enterprise проекты, которые разрабатываются десятками, а то и сотнями разработчиков, содержат в себе множество тысяч строк кода и постоянно меняются и развиваются. Уследить за такой огромной кодовой базой помогает процесс автоматизации проверок кода и работы приложения. Сегодня расскажу о том какие инструменты вы можете использовать, чтобы улучшить стабильность вашего кода и не допускать ошибок, а также сэкономить время коллегам во время pull request.

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

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

Истории

Kotlin Native. Работаем с потоками с корутинами и без. Ч2

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

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Продолжаем рассматривать способы многопоточный работы в Kotlin Native.

В предыдущей части мы посмотрели некоторые нюансы работы с корутинами, как работать с Worker и AtomicReference.

Еще одним возможным API для работы с многопоточностью является DetachedObjectGraph.

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

Дайджест интересных материалов для мобильного разработчика #410 (6 сентября — 12 сентября)

Время на прочтение4 мин
Количество просмотров2.8K
В этом выпуске многопоточность Kotlin в iOS и игра в слова, судьба APK и MVVM для Android, первая игра на Unity, траты россиян на социальные сети, умные очки Facebook, худший вопрос разработчику и многое другое!

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

Kotlin Native. Работаем с потоками с корутинами и без. Ч1

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

Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Совсем недавно компания JetBrains выпустила preview новой модели управления памятью. Это отличный повод сделать подробный ее разбор на практике, а также сравнить с моделью, используемой в KMM в текущих версиях. Но для начала неплохо было бы поговорить о тех возможностях работы в Kotlin Native, которые мы на практике не используем.

Если вы уже знакомы с тем, как работать с корутинами в Kotlin/Native и/или читали предыдущие статьи 1 и 2 автора, то пролистайте немного вниз. Материал может немного повторяться.

Когда мы работаем с Kotlin и Kotlin Multiplatform, то самым и простым удобным способом для настройки работы с многопоточностью в приложении являются Kotlin Coroutines. Наша задача сводится к настройке скоупов CoroutineScope для запуска корутин и suspend функций в основном потоке и фоновом. Т.к. в разных платформенных версиях языка Kotlin этот механизм реализуется по-разному, то необходимо кастомизировать получение контекста корутин с помощью expect/actual:

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

Android, жизненый цикл Jetpack компонентов

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

Руководство по работе с жизненным циклом Android компонентов, рассмотрим базовые понятия, что такое LifecycleObserver, события и состояния жизненного цикла, кастомные LifecycleOwner.

Перевод статьи Lifecycle-Aware Components Using Android Jetpack.

Читать далее
Рейтинг0
Комментарии0

Последняя статья об упрощении recycler view

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

За всё время существования Recycler View регулярно выходят статьи, рассказывающие о новых путях упрощения работы с этим элементом. Они появляются так часто, что порой удивляешься тому, откуда у людей столько фантазии, чтоб придумывать всё новые и новые способы работы со списками. А потом открываешь статью и удивляешься второй раз, ведь способ-то вовсе и не новый, а что-то подобное уже было в нескольких предыдущих статьях. Так к чему это я?

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

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

Оптимизируем отображение 10 000 объектов на карте

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

В приложении ЦИАН размещены десятки тысяч объявлений о недвижимости. Нашим пользователям важно видеть географическое расположение этих объявлений на карте. Самым популярным способом отображения оказался вариант, когда каждое объявление показано отдельной точкой. Внутри команды такой вариант мы назвали «Горошек на карте».

Проблема в том, что объявлений очень много: в одной только Москве более 10 000. Из-за этого наша карта работала не очень стабильно: при зуме и движении были тормоза, дёргалась и лагала картинка. С этим нужно было что-то делать. Чтобы разобраться в причинах проблем и найти решения, мы засучили рукава и начали копаться в используемых механизмах. Под катом подробно опишем весь путь оптимизации карт в Android-приложении: от постановки задачи до результата.

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

Интеграция Huawei Mobile Services со второй попытки

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

Android-разработчики и продакты всей галактики ломают голову над одним важным вопросом — “Нужно ли делать интеграцию HMS?”. В это статьей мы расскажем, как у нас получилось затащить поддержку Huawei Mobile Services в регулярных релизах, пусть и со второй попытки. 

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

Прочитать, почему на картинке XXX
Всего голосов 18: ↑16 и ↓2+14
Комментарии2

Пагинация и DiffUtils в RecyclerView c BRVAH

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

Это продолжение цикла статей про упрощение разработки адаптеров для RecyclerView.

Часть 1

В этой части рассмотрю следующие реализации потребностей отображения списков:

·       Загрузка изображения из сети, с использованием Glide

·       Пагинация (подгрузка списка)

·       Удаление элемента

·       Удаление и использование встроенного diffUtils

Читать далее
Рейтинг0
Комментарии2

Android in-app purchases, часть 5: серверная валидация покупок

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

Всем привет, я Кирилл, СТО Adapty. Я делал систему серверной валидации для наших SDK. Серверная валидация позволяет проверить подлинность покупки: устройство обращается к серверам Google за информацией, действительно ли была совершена покупка, и валидна ли она.

Сегодня расскажу про то, как её настроить для приложений на Android. 

Это пятая статья из серии, посвящённой подключению покупок в приложениях на Android. Остальные доступны по ссылкам:

1. Android in-app purchases, часть 1: конфигурация и добавление в проект.

2. Android in-app purchases, часть 2: инициализация и обработка покупок.

3. Android in-app purchases, часть 3: получение активных покупок и смена подписки.

4. Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием.

5. Android in-app purchases, часть 5: серверная валидация покупок. — Вы тут

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

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

Как добавить независимый Dagger Сomponent в иерархию SubComponnet-ов Hilt используя подход «component dependencies»?

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

Hilt базируется на подходе Subcomponents и описание этих компонентов скрыто от нас, поэтому мы не можем добавить зависимость на внешний компонент используя подход Component Dependencies. Как это обойти описано в статье.

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

История создания своей первой игры на Unity

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

Прежде всего, хочу сразу отметить, что я не являюсь профессиональным разработчиком. Я обычный бакалаврик технического ВУЗа, так что незнание мною некоторых терминов прошу простить, не дорос ещё. Просто однажды летним вечером делать было нечего, как говорится, и я решил попробовать свои силы в создании игОр на всем известном движке Unity.

Начал я свою "разработку" с непосредственной установки Unity и тамошних туториалов aka курсов от самой Unity. Почерпнув оттуда основы основ в виде понимания, что такое объекты и компоненты в Unity, как-куда и на что вешать скрипты и тому подобное, я приступил к созданию своей первой игры. Попытки создания, по крайней мере.

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

Как Android пришел к AAB? Что будет с APK? Разбор

Время на прочтение8 мин
Количество просмотров28K
Не так давно прогремела новость о том, что Android отказывается от APK-файлов и переходит на AAB. Вы наверняка уже эту новость прочитали, во всём разобрались и успокоились, так как новость проходная. Тем не менее, мы считаем, что переход к новой системе публикации приложений App Bundle — это часть большого пути, которую проделала система Android, чтобы стать по-настоящему быстрой, эффективной и супероптимизированной платформой. Поэтому мы подготовили большой и очень интересный материал. И сегодня мы раскроем вам массу страшных тайн Android.


  • Сегодня мы поговорим о том почему Android сначала тормозил, а потом перестал.
  • Помянем Dalvik кэш и припомним ART.
  • Узнаем во сколько внутри Android просыпается демон.
  • А также слегка затронем тему, почему Android никогда не обгонит iOS по производительность, но при этом всегда будет менее требовательным к железу.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии50

10 советов «Как успешно пройти Code Review»

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

Если вам надо отдать ваш код на ревью, например показать выполнение тестового задания, получить одобрение у коллеги на pull request или попасть на разбор кода в "Android Broadcast", тогда 10 советов из этой статьи помогут вам представить ваш код в максимальной красоте. Это не сделает из вас эксперта, но как минимум улучшит ваши навыки, и позволит достичь получить заветное "Одобрено"

Читать
Всего голосов 9: ↑6 и ↓3+3
Комментарии16

Дайджест интересных материалов для мобильного разработчика #409 (30 августа — 5 сентября)

Время на прочтение3 мин
Количество просмотров2.5K
В новом дайджесте подготовка к собеседованию и целая энциклопедия интеропа, новые правила Apple и геолокация без GPS, Bluetooth в качестве сервиса, пероеход в продакт-менеджеры, красота кривых и многое, многое другое!

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

Упрощаю разработку адаптеров для RecyclerView c BRVAH. Часть 1

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

Я действующий разработчик приложений под платформу Android. Хочу поделиться крутой библиотекой, облегчающей разработку адаптеров для RecyclerView, и описать ее использование. RecyclerView – это View элемент в Android для отображения списков, и редкое современное приложение обходится без него. Стоковая реализация адаптеров и вьюхолдеров очень громоздкая и пугающая, особенно для новичков. Благо существует библиотека BaseRecyclerViewAdapterHelper облегчающая разработку этих компонентов. В 100% проектов, которые я разрабатывал – я подключал её, и все коллеги достойно оценивали это деяние.

Цель BaseRecyclerViewAdapterHelper – упростить работу с отображением списков в Android. Чтобы понять, как можно облегчить работу с RecyclerView, рассмотрим базовые потребности отображения списков и базовые потребности элементов списка

Читать далее
Рейтинг0
Комментарии5

Автоматизация разработки для Android с помощью GitHub Actions

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

Жизнь тяжела. Мы заняты делами, которые отнимают время, скучны и часто повторяются. Но ведь жизнь не должна оставаться тяжелой. Она может быть легкой. Вместо того чтобы трудиться над этими ежедневными задачами, найдите способ делегировать их, чтобы кто-то другой делал их за нас. Таким образом, будет больше времени для того, что мы хотим делать. Появится время на отдых.

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

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