Подборка полезных Github Actions для Android разработки: собираем сборки, тестируем и формируем релизы.
https://medium.com/google-developer-experts/github-actions-for-android-developers-6b54c8a32f55
https://medium.com/google-developer-experts/github-actions-for-android-developers-6b54c8a32f55
Medium
GitHub Actions for Android developers
If you are developing Android apps, chances are you have confronted any sort of CI at some point in your career. If you thought Android…
В Android Studio Arctic Fox появится возможность использовать StateFlow вместо LiveData в связке с DataBinding.
https://proandroiddev.com/stateflow-with-one-and-twoway-databinding-on-android-cf4e6c847988
https://proandroiddev.com/stateflow-with-one-and-twoway-databinding-on-android-cf4e6c847988
Medium
StateFlow with One- and TwoWay-DataBinding on Android
There has been a lot of talk in the Android community related to LiveData being deprecated in favor of StateFlow. This doesn’t seem to be…
Стала доступна первая preview версия Android 12. Из основных нововведений: улучшение безопасности и приватности, поддержка новых форматов медиа данных, обновления системных компонентов через Google Play, ускорение IPC операций и новые ограничения.
https://android-developers.googleblog.com/2021/02/android-12-dp1.html
https://android-developers.googleblog.com/2021/02/android-12-dp1.html
Android Developers Blog
First preview of Android 12
Posted by Dave Burke, VP of Engineering Every day, Android apps help billions of people work, play, communicate, and create on a wi...
По умолчанию для каждой таблицы в SQLite создается дополнительное поле rowid с уникальным номером записи в таблице. С помощью специальной директивы можно отменить создание этого поля и уменьшить количество занимаемой памяти, а также ускорить операции поиска по таблице.
https://medium.com/swlh/faster-sqlite-lookup-using-without-rowid-optimization-118c89d31b1e
https://medium.com/swlh/faster-sqlite-lookup-using-without-rowid-optimization-118c89d31b1e
Medium
Faster SQLite Lookup Using Without Rowid Optimization
A WITHOUT ROWID table can use about half the amount of disk space and can operate nearly twice as fast compared to an ordinary rowid table.
С Android 12 для всех компонентов в манифесте, у которых присутствует intent-filter, необходимо будет явно прописывать поле exported, иначе приложение просто не установится.
https://medium.com/androiddevelopers/lets-be-explicit-about-our-intent-filters-c5dbe2dbdce0
https://medium.com/androiddevelopers/lets-be-explicit-about-our-intent-filters-c5dbe2dbdce0
Medium
Let’s be explicit about our intent(-filters)
An important change is coming to Android 12 that improves both app and platform security. This change affects all apps that target Android…
Глубокий разбор работы цепочек операторов в RxJava простым языком.
https://proandroiddev.com/how-rxjava-chain-actually-works-2800692f7e13
https://proandroiddev.com/how-rxjava-chain-actually-works-2800692f7e13
Medium
How RxJava chain actually works
RxJava was created quite a while ago, but it is still widely used in large Android projects as the main tool for managing streams and…
Обычно на битмапы приходится довольно большой кусок оперативки, используемый приложением. Разбираемся как измерять и оптимизировать битмапы с Glide и Picasso.
https://proandroiddev.com/measure-and-optimize-bitmap-size-using-glide-or-picasso-3273b4a569cd
https://proandroiddev.com/measure-and-optimize-bitmap-size-using-glide-or-picasso-3273b4a569cd
Medium
Measure and optimize bitmap size using Glide or Picasso
In this post I’ll show you how to measure the size of the bitmaps that are stored in the memory and how to make them smaller.
Чеклист моментов, на которые стоит обратить внимание при написании библиотек: видимость классов и ресурсов, взаимодействие Kotlin и Java, транзитивные зависимости.
https://medium.com/google-developer-experts/considerations-when-creating-android-libraries-c80940d79ae
https://medium.com/google-developer-experts/considerations-when-creating-android-libraries-c80940d79ae
Medium
Considerations when creating Android libraries
If you are an Android developer, chances are you might have been working on your own Android libraries. A library is a useful way to…
Реализуем ассинхронный рендеринг текста с PrecomputedText.
https://proandroiddev.com/async-text-loading-in-android-with-precomputedtext-93aa131b0e5b
https://proandroiddev.com/async-text-loading-in-android-with-precomputedtext-93aa131b0e5b
Medium
Async Text Loading in Android with PrecomputedText
The TextView is one of the most common Views used across all the Android apps. It has very simple API to show the text on the screen. Not…
Https протокол является стандартом индустрии, однако его использование не всегда гарантирует полную безопасность. Например пользователь может установить ненадежный SSL сертификат и стать жертвой MITM атаки. Избежать подобных ситуаций позволит SSL Pinning.
https://medium.com/native-mobile-bits/ssl-pinning-and-vulnerabilities-handling-in-android-57e347feb39b
https://medium.com/native-mobile-bits/ssl-pinning-and-vulnerabilities-handling-in-android-57e347feb39b
Medium
SSL Pinning and Vulnerabilities Handling in Android.
As Android developer, our apps feel like our babies to us and obviously, we need to protect our apps layer by layer or as much as we can…
Чем точнее описаны типы объектов, тем меньше ошибок можно совершить при написании кода. Разработчики из 47 Degrees делятся своими наработками по этой теме: inline классы вместо примитивов, enum и sealed классы для конечных вариаций значений и функциональные подходы.
https://www.47deg.com/blog/functional-domain-modeling/
https://www.47deg.com/blog/functional-domain-modeling/
Xebia
Functional Domain Modeling in Kotlin
Learn how to leverage Functional Domain Modeling to fully utilize the Kotlin type system and prevent bugs.
Краткая шпаргалка по работе с drag & drop в Android.
https://proandroiddev.com/drag-and-drop-in-android-all-you-need-to-know-6df8babfb507
https://proandroiddev.com/drag-and-drop-in-android-all-you-need-to-know-6df8babfb507
Medium
Drag and drop in Android. All you need to know
Have you ever been in a situation where you need to create an Android app with drag and drop feature? I was. And if you were too, I know…
Пошаговый гайд о том как начать разбивать код уже существующего приложения на отдельные модули.
https://medium.com/ifood-engineering/modularization-tip-optimize-the-root-module-b0a904a8d5f5
https://medium.com/ifood-engineering/modularization-tip-optimize-the-root-module-b0a904a8d5f5
Medium
Modularization tip: optimize the Root Module
A guide to make a modularization process for Android
Вышла новая альфа версия Jetpack библиотеки WindowManager, которая должна упростить работу со складными экранами. Из обновлений: небольшие изменения API и переход с DeviceState на DisplayFeature для работы с особенностями экрана.
https://medium.com/androiddevelopers/jetpack-windowmanager-updates-8bee061aa2fb
https://medium.com/androiddevelopers/jetpack-windowmanager-updates-8bee061aa2fb
Medium
Jetpack WindowManager Updates
Posted by Kenneth Ford and Pietro Maggi
Начинаем знакомится с новыми API из Android 12, в этой серии новое API для передачи медиа контента между приложениями.
https://joebirch.co/android/exploring-android-12-unified-rich-content-api/
https://joebirch.co/android/exploring-android-12-unified-rich-content-api/
Решаем распространенные проблемы вложенных RecyclerView: сохранение позиции скролла и корректной обработки горизонтального скролла.
https://medium.com/nerd-for-tech/nested-recycler-in-android-done-right-b101744e2a9a
https://medium.com/nerd-for-tech/nested-recycler-in-android-done-right-b101744e2a9a
Medium
Nested recycler in Android done right!
TL;DR: This article solves the problem of horizontal scroll position lost when scrolling vertically and horizontal scrolls being…
Google опубликовала серию видео по основам Jetpack Compose. В роликах покрыты следующие темы: тестирование, доступность, анимации, списки и состояние.
https://www.youtube.com/watch?v=x3N5Uz6QS9E&list=PLWz5rJ2EKKc8fZY3smX9CPx9Y_O80ycAd
https://www.youtube.com/watch?v=x3N5Uz6QS9E&list=PLWz5rJ2EKKc8fZY3smX9CPx9Y_O80ycAd
YouTube
Jetpack Compose - bite-size basics
Jetpack Compose is built to make it faster and easier to make beautiful applications with less code. In the Compose screencasts playlist, you will find a series of videos to introduce you to different Compose APIs, quickly showing you what’s available and…
Шпаргалка по диспатчерам в корутнихах: для чего используются и какой тип лучше подходит для определенных задач.
https://androidwave.com/dispatchers-in-kotlin-coroutines/
https://androidwave.com/dispatchers-in-kotlin-coroutines/
AndroidWave
Dispatchers in Kotlin Coroutines
In this post, we will talk about dispatchers, we will learn what is dispatchers in Kotlin Coroutines? How it works in Coroutines. will learn all type of
🔥Свежие весенние выходы для разработчиков — бесплатные демо-занятия онлайн-курсов по Android-разработке на Kotlin от OTUS и Альфа-Банка для продвинутого и базового уровней знаний:
📌11.03 - «Профилируем и ускоряем Gradle сборки»: https://otus.pw/nfvv/
— Научимся искать узкие места в сборках с помощью gradle-profiler, scan и visualVM и правильно конфигурировать Gradle. Рассмотрим другие возможности для оптимизации и ускорения сборок на большом проекте.
📌12.03 - «Хранение данных. Room» с Сергеем Гониным: https://otus.pw/C354/
— Обсудим создание собственной БД, работу с Room БД, LiveData, а также миграции и обновление версий БД.
👉🏻Регистрируйтесь сейчас — напомним в день вебинара!
📌11.03 - «Профилируем и ускоряем Gradle сборки»: https://otus.pw/nfvv/
— Научимся искать узкие места в сборках с помощью gradle-profiler, scan и visualVM и правильно конфигурировать Gradle. Рассмотрим другие возможности для оптимизации и ускорения сборок на большом проекте.
📌12.03 - «Хранение данных. Room» с Сергеем Гониным: https://otus.pw/C354/
— Обсудим создание собственной БД, работу с Room БД, LiveData, а также миграции и обновление версий БД.
👉🏻Регистрируйтесь сейчас — напомним в день вебинара!
Otus
Продвинутый курс промышленной аndroid-разработки на языке Kotlin
Курс по промышленной аndroid-разработке в OTUS с возможностью трудоустройства!
Разработчик из Cash App делится опытом как их команде удалось улучшить процесс слияния Pull Request'ов. Среди пунктов: больше доверять своей команде, автоматизировать проверки, максимально дробить PR-ы и избегать больших feature веток.
https://saket.me/great-teams-merge-fast/
https://saket.me/great-teams-merge-fast/