Как стать автором
Обновить
103.29
Рейтинг

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

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом дайжесте новые устройства Apple и автоматизация повышения качества кода, ускорение сборки и Jetpack для Wear OS, 16 советов по UX и UI дизайну, количество приложений на Flutter и React Native, ATT-согласие и многое другое!

Читать дальше →
Рейтинг 0
Просмотры 681
Комментарии 0

Kotlin Native. Работаем с новой моделью памяти

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *
Tutorial

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

31 августа компания JetBrains представили превью новой модели управления памятью в Kotlin Native. Основной упор команда разработчиков сделала на безопасность шаринга между потоками, устранение утечек памяти и освобождение нас от использования специальных аннотаций. Также доработка коснулась Coroutines, и теперь можно без опаски переключаться между контекстами корутин без заморозки. Обновления подхватили и Ktor:  

Итак, что же нового появится в версии Kotlin 1.6.0-M1-139: 
1. Заявлено, что мы можем убрать все freeze() блоки (в том числе и во всех фоновых Worker), и переключаться между контекстами и потоками без каких-либо проблем. 

2.Использование AtomicReference или FreezableAtomicReference не приводит к утечкам памяти.

3.При работе с глобальными константами не нужно теперь использовать SharedImmutable.

4.При работе с Worker.execute producer больше не требует возвращать изолированный подграф объектов. 

Однако есть и нюансы:

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

Chipmunk. Обновления

Разработка под Android *Отладка *Визуализация данных TypeScript *

«Привет, Android!», мы «прикрутили» наконец-то adb. Об этом и других обновлениях в смотрелке логов chipmunk.

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

8 распространенных ошибок при разработке Android-приложений

Блог компании OTUS Программирование *Разработка под Android *
Перевод

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 3.2K
Комментарии 1

Загружаемые изображения для Jetpack Compose с использованием Glide, Coil и Fresco

Блог компании OTUS Программирование *Разработка под Android *
Перевод

Новый современный набор инструментов пользовательского интерфейса Jetpack Compose был анонсирован компанией Google более года назад, и, наконец, в июле была выпущена стабильная версия 1.0. Также многие компании, такие как Twitter, lyft, Square, уже адаптировали Jetpack Compose на своих производственных уровнях, потому что он очень интуитивный, мощный и упрощает всю структуру пользовательского интерфейса, если правильно его использовать. Эта новая парадигма структуры пользовательского интерфейса поменяет в дальнейшем очень многое, также нам придется приложить еще немало усилий для миграции предыдущих вещей, связанных с пользовательским интерфейсом, таких как загрузка изображений из Url. 

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

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

Блог компании r_keeper Разработка мобильных приложений *Разработка под Android *Kotlin *Flutter *

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.3K
Комментарии 9

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

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

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

Читать
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 3K
Комментарии 7

Простой Ripple эффект своими руками для Android

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

Любой Android разработчик работал с кнопками, поэтому видел ripple эффект и всю его красоту.

Иногда хочется реализовать что-нибудь кастомное нежели стандартные вещи, которые уже предоставляются компонентами Material Design.

Поэтому я решил написать наследник AppCompatImageView и сделать для него свой ripple эффект с минимальным количеством кода.

Сразу выкладываю код:

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 2.3K
Комментарии 11

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

Совершенный код *Разработка под Android *

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

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

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

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

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *
Tutorial

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

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

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

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

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В этом выпуске многопоточность Kotlin в iOS и игра в слова, судьба APK и MVVM для Android, первая игра на Unity, траты россиян на социальные сети, умные очки Facebook, худший вопрос разработчику и многое другое!

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

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

Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *
Tutorial

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

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

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

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

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

Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *
Перевод

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

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

Читать далее
Рейтинг 0
Просмотры 1.3K
Комментарии 0

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

Разработка под Android *Kotlin *
Из песочницы

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

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

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

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

Блог компании Циан Программирование *Разработка под Android *Обработка изображений *

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

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

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 5.6K
Комментарии 18

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

Блог компании HeadHunter Разработка мобильных приложений *Разработка под Android *

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

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

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

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

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

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

Часть 1

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

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

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

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

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

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

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

Блог компании Adapty Разработка мобильных приложений *Разработка под Android *Google API *Монетизация мобильных приложений *
Tutorial

Всем привет, я Кирилл, СТО 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
Просмотры 723
Комментарии 0

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

Разработка мобильных приложений *Разработка под Android *Kotlin *

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

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

Вклад авторов