Одной из идей за Jetpack Compose является отображение состояния в UI элементы с помощью чистых функций, при этом сами UI элементы своего состояния не имеют. В статье разбирается возможность получения подобного эффекта с помощью уже существующих инструментов.
https://proandroiddev.com/android-views-as-a-function-of-state-with-viewbinding-case-study-1-the-live-game-stream-c8367ac13ace
https://proandroiddev.com/android-views-as-a-function-of-state-with-viewbinding-case-study-1-the-live-game-stream-c8367ac13ace
Medium
Android Views as a Function of State with ViewBinding Case Study 1: The Live Game Stream
This post is part of a series that shows how Views in android can be represented purely as a function of some state with no side effects…
Курс для middle- и senior-разработчиков, которые хотят стать тимлидами
Новичком быть просто: все новое и интересное, море информации, но как быть уже прокаченным девелоперам? Мы тоже задавали себе этот вопрос и просто точечно обучали наших разработчиков, делая их мощными тимлидами.
В нашем понимании тимлид — это не просто крутой программист, но и тот, кто умеет аккумулировать свои знания, обучать команду и выстраивать работу в ней, понимает продукт и работает от бизнес-целей. Тут важны и hard, и soft skills, и эмоциональный интеллект. Поэтому мы собрали весь свой 14-летний опыт работы над сложными сервисами и высоконагруженными сайтами и создали 6-ти месячный курс именно тех, кто хочет вырасти и систематизировать свои знания. Договорились с Geekbrains, и теперь именно там можно пройти обучение. Второй поток стартует уже совсем скоро — 24 декабря, а тут должен быть призыв к действию, поэтому просто записывайтесь на курс.
На связи была команды AGIMA.
Новичком быть просто: все новое и интересное, море информации, но как быть уже прокаченным девелоперам? Мы тоже задавали себе этот вопрос и просто точечно обучали наших разработчиков, делая их мощными тимлидами.
В нашем понимании тимлид — это не просто крутой программист, но и тот, кто умеет аккумулировать свои знания, обучать команду и выстраивать работу в ней, понимает продукт и работает от бизнес-целей. Тут важны и hard, и soft skills, и эмоциональный интеллект. Поэтому мы собрали весь свой 14-летний опыт работы над сложными сервисами и высоконагруженными сайтами и создали 6-ти месячный курс именно тех, кто хочет вырасти и систематизировать свои знания. Договорились с Geekbrains, и теперь именно там можно пройти обучение. Второй поток стартует уже совсем скоро — 24 декабря, а тут должен быть призыв к действию, поэтому просто записывайтесь на курс.
На связи была команды AGIMA.
Подробный разбор уведомлений в Android от Android Broadcast: интеграция, сложности системного API, возможности FCM и бонусом библиотека для работы с уведомлениями в виде DSL.
https://telp.cc/6MC
https://telp.cc/6MC
YouTube
Советы по уведомлениям в Android
#AndroidBroadcast #Уведомления #ЛучшиеПрактики
Рассказываю про уведомления в Android: почему вам стоит уделить время их интеграции, какие сложности скрывает API уведомлений в Android и что может сделать FCM. Помимо прочего представляю свою библиотеку Android…
Рассказываю про уведомления в Android: почему вам стоит уделить время их интеграции, какие сложности скрывает API уведомлений в Android и что может сделать FCM. Помимо прочего представляю свою библиотеку Android…
Цикл статей про библиотеку App Startup, призванной исправить проблему медленного запуска приложений с помощью ленивой загрузки библиотек. One ContentProvider to rule them all.
https://medium.com/androiddevelopers/app-startup-part-2-c431e80d0df
https://medium.com/androiddevelopers/app-startup-part-2-c431e80d0df
Medium
App Startup, Part 2
Lazy Initialization
Наверное каждый занимался поддержкой нескольких языков в приложении и знает, что не всегда всё так просто. По этому случаю вышла статья, в которой собраны особенности и распространенные ошибки при локализации приложений.
https://juliensalvi.medium.com/demystifying-locale-on-android-95450adf5aec
https://juliensalvi.medium.com/demystifying-locale-on-android-95450adf5aec
Medium
Demystifying Locale on Android
At some point, every Android developer will end up using a Locale for the applications they are building. If you are dealing with dates…
Все хотят, чтобы их проекты собирались быстро, поэтому постоянно появляются разные способы ещё немного сократить время сборки. На этот раз предлагается использовать свойство resConfigs для отключения ненужных вариантов ресурсов при разработке.
https://medium.com/livefront/improve-android-build-times-by-using-resconfigs-99177a3c6d90
https://medium.com/livefront/improve-android-build-times-by-using-resconfigs-99177a3c6d90
Medium
Improve Android build times by using resConfigs
Remove unneeded language resources from your local builds and simplify configuration for your whole team
Очень удобно, когда можно сделать ссылку на определенную часть приложения. Подобные ссылки называют диплинками. В статье подробный гайд по работе с такими ссылками: добавление в приложение, дебаг и обработка ссылок без установленного приложения.
https://www.raywenderlich.com/18330247-deep-links-in-android-getting-started
https://www.raywenderlich.com/18330247-deep-links-in-android-getting-started
kodeco.com
Deep Links in Android: Getting Started
In this tutorial you’ll learn how to use intent filters to create deep links in to your Android app.
Упрощаем работу со сторонними библиотеками с помощью корутин и Flow. Бонусом идет разбор внутреннего устройства оберток suspendCancellableCoroutine и callbackFlow.
https://medium.com/androiddevelopers/simplifying-apis-with-coroutines-and-flow-a6fb65338765
https://medium.com/androiddevelopers/simplifying-apis-with-coroutines-and-flow-a6fb65338765
Medium
Simplifying APIs with coroutines and Flow
simplify APIs using coroutines and Flow as well as how to build your own adapter using suspendCancellableCoroutine and callbackFlow APIs.
Раннее мы уже публиковали несколько статей про стандартные делегаты в Kotlin. Настало время копнуть немножко глубже и рассмотреть более интересные кейсы их использования.
https://proandroiddev.com/kotlin-delegation-by-inception-61f8beaae0db
https://proandroiddev.com/kotlin-delegation-by-inception-61f8beaae0db
Medium
Kotlin Delegation by Inception
Delegating to delegates with a functional twist
Jetpack библиотека CameraX должна избавить всех от боли при использовании камеры в приложениях. В новых версиях библиотеки разработчики отказались от единого CameraView и заменили его на связку PreviewView + CameraController. О том, как работать с последним в статье.
https://medium.com/androiddevelopers/camerax-learn-how-to-use-cameracontroller-e3ed10fffecf
https://medium.com/androiddevelopers/camerax-learn-how-to-use-cameracontroller-e3ed10fffecf
Medium
CameraX: Learn how to use CameraController
Introducing CameraController + Migrating from CameraView
Классическая шпаргалка по созданию кастомного View: жизненный цикл, конструкторы, собственные атрибуты и анимации.
https://vladsonkin.com/ultimate-guide-to-android-custom-view/
https://vladsonkin.com/ultimate-guide-to-android-custom-view/
Чеклист для миграции приложений на Android 11: Foreground Service Type, новые Permissions, Scoped Storage и прощание с AsyncTask.
https://proandroiddev.com/the-quick-developers-guide-to-migrate-their-apps-to-android-11-e4ca2b011176
https://proandroiddev.com/the-quick-developers-guide-to-migrate-their-apps-to-android-11-e4ca2b011176
Medium
The Quick Developers Guide to Migrate Their Apps to Android 11
Getting your app ready for Scoped Storage, Package Visibility, Permission changes, etc
Ребята из Airbnb выпустили библиотеку Showkase для визуализации и ораганизации UI компонентов на Jetpack Compose. Теперь поддерживать систему компонентов будет намного проще.
https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095
https://medium.com/airbnb-engineering/introducing-showkase-a-library-to-organize-discover-and-visualize-your-jetpack-compose-elements-d5c34ef01095
Medium
Introducing Showkase: A Library to Organize, Discover, and Visualize Your Jetpack Compose Elements
Showkase is an annotation-processor based Android library that helps you organize, discover search and visualize Jetpack Compose UI…
Возможно вы слышали, что кроме привычного LayoutInflater существует его асинхронная версия — AsyncLayoutInflater. В статье рассказывается, что это такое и в каких кейсах бывает полезным.
https://blog.stylingandroid.com/asynclayoutinflater/
https://blog.stylingandroid.com/asynclayoutinflater/
Styling Android
AsyncLayoutInflater
You never get a second chance to make a good first impression. This old adage is particularly true for apps. A bad first impression can often drive users to abandon an app before they have properly t
Интересный подход с использованием CoroutineContext для реализации retry логики.
https://proandroiddev.com/using-coroutinecontext-to-repeat-failed-http-request-9d7092d8cec1
https://proandroiddev.com/using-coroutinecontext-to-repeat-failed-http-request-9d7092d8cec1
Medium
Using CoroutineContext to repeat failed HTTP request
A common scenario in Android applications is the need to repeat a request when something goes wrong, for example when there are problems…
Многомодульность все больше набирает популярность, однако при реализации подобного подхода нужно быть аккуратным, чтобы не нарваться на один из анти-паттернов в структуре или навигации.
https://medium.com/@Zhuinden/structural-and-navigation-anti-patterns-in-modularized-android-applications-a7d667e35cd6
https://medium.com/@Zhuinden/structural-and-navigation-anti-patterns-in-modularized-android-applications-a7d667e35cd6
Medium
Structural and navigation anti-patterns in modularized Android applications
What is Android Clean Architecture? Where is it from? Is it an anti-pattern? If we modularize our apps, how can we navigate between…
Каждый, кто делал выпадающие списки со Spinner, знает, что это не самый удобный в реализации UI компонент. По ссылке небольшая библиотека, значительно упрощающая работу с подобными элементами.
https://medium.com/swlh/customizing-android-popup-spinner-dropdown-list-with-animations-4fef68110c53
https://medium.com/swlh/customizing-android-popup-spinner-dropdown-list-with-animations-4fef68110c53
Medium
Customizing Android Popup Spinner (Dropdown List) with Animations
Spinner is one of the most frequently used widgets in Android for selecting a specific item in a popup list. The Android SDK provides a…
Реализация кастомного View с расстановкой футбольной команды, на этот раз обошлось без Compose.
https://proandroiddev.com/building-a-team-lineup-view-on-android-daaf27e3901e
https://proandroiddev.com/building-a-team-lineup-view-on-android-daaf27e3901e
Medium
Building a Team Lineup View on Android
A step-by-step tutorial on how to build a custom view for displaying a team lineup on Android.
Короткий гайд по добавлению прямого ответа в уведомления.
https://sadmansarar.medium.com/show-a-message-reply-notification-in-android-bd97631189d7
https://sadmansarar.medium.com/show-a-message-reply-notification-in-android-bd97631189d7
Medium
Show a message reply Notification in android
Creating a notification that can reply to a message is one of the newest addition to the android platform. It can easily be achieved by…
Отличный чеклист для ревью кода в Android проектах.
https://proandroiddev.com/android-code-review-checklist-997725d74015
https://proandroiddev.com/android-code-review-checklist-997725d74015
Medium
Android Code Review Checklist
A checklist of things to watch out for when performing an Android code review.