Использовуем Jetpack Navigation для реализации навигации в Dynamic Feature модулях.
https://medium.com/androiddevelopers/navigation-in-feature-modules-322ac3d79334
https://medium.com/androiddevelopers/navigation-in-feature-modules-322ac3d79334
Medium
Navigation in Feature Modules
Welcome to the another article in the second MAD Skills series on Navigation! If you prefer this content in video form, here is something…
Инструкция по созданию Gradle плагинов: кастомные задачи от Hello World до взаимодействия с файлами проекта и различные способы упаковки и публикации плагинов.
https://www.raywenderlich.com/22198417-gradle-plugin-tutorial-for-android-getting-started
https://www.raywenderlich.com/22198417-gradle-plugin-tutorial-for-android-getting-started
kodeco.com
Gradle Plugin Tutorial for Android: Getting Started
Learn how to create a Gradle plugin within your existing Android app, or as a standalone project that you can publish and use in any Android project.
API фрагментов продолжает улучшаться. В новых версиях библиотек AndroidX Fragment и Navigation добавят поддержку множественных back stack.
https://medium.com/androiddevelopers/multiple-back-stacks-b714d974f134
https://medium.com/androiddevelopers/multiple-back-stacks-b714d974f134
Medium
Multiple back stacks
A deep dive into what actually went into bring this feature to Fragments and Jetpack Navigation
Список с бесконечным скроллом или пагинацией - один из наиболее частых компонентов приложений. Смотрим, как реализовать подобный на Jetpack Compose.
https://dev.to/luismierez/infinite-lazycolumn-in-jetpack-compose-44a4
https://dev.to/luismierez/infinite-lazycolumn-in-jetpack-compose-44a4
DEV Community
Infinite LazyColumn in Jetpack Compose
Displaying a list of content is one of the most common things that we are required to add to our apps...
Изменения в модуле buildSrc приводят к пересборке всего проекта, из-за чего его неудобно использовать для хранения списка версий зависимостей. В статье предлагается решать эту задачу через кастомный Gradle плагин и композитные сборки.
https://proandroiddev.com/dependencies-in-gradle-composite-build-7dca835a46a8
https://proandroiddev.com/dependencies-in-gradle-composite-build-7dca835a46a8
Medium
NOTE: As mentioned in a comment to this article, Gradle 7 offers version catalogs as incubating…
Dependencies in Gradle composite build
Избавляемся от однообразного кода и реализуем адаптеры для списков эффективно с DiffUtil и ListAdapter.
https://bignerdranch.com/blog/efficient-lists-with-diffutil-and-listadapter/
https://bignerdranch.com/blog/efficient-lists-with-diffutil-and-listadapter/
Big Nerd Ranch
Big Nerd Ranch | Digital Product Development Agency
Big Nerd Ranch is a web & mobile app development agency that offers expert training and services. Learn how we can help with your next digital product!
Решение задачи по отслеживанию геопозиции в приложении через Foreground Service, Room и Kotlin Flow.
https://barbeau.medium.com/room-kotlin-flow-the-modern-android-architecture-for-location-aware-apps-9c110e12e31a
https://barbeau.medium.com/room-kotlin-flow-the-modern-android-architecture-for-location-aware-apps-9c110e12e31a
Medium
Room + Kotlin Flow — The modern Android architecture for location-aware apps
The best approach for single source-of-truth location in your app in 2021
Автор статьи решил подойти к вопросу изучения Flow со стороны юнит тестов, подняв следующие темы: настройка тестов, холодные и горячие источники, стратегии трансформации одного вида к другому, настройки SharedFlow и StateFlow.
https://codingwithmohit.com/coroutines/learning-shared-and-state-flows-with-tests/
https://codingwithmohit.com/coroutines/learning-shared-and-state-flows-with-tests/
Coding with Mohit
Learning State & Shared Flows with Unit Tests
Learn about all of the features of State & Shared Flows.
Шпаргалка по обработке исключений в Kotlin Coroutines: как пробрасываются исключения, обработка исключений через CoroutineExceptionHandler, try-catch блоки, исключения в CoroutineScope и SupervisorScope.
https://www.ericthecoder.com/2021/06/07/error-handling-coroutines/
https://www.ericthecoder.com/2021/06/07/error-handling-coroutines/
Eric the Coder
Error Handling Coroutines | Eric the Coder
Error-handling with Coroutines has always been a confusing point for many developers, and that’s because...
5 июля старт Podlodka Soft Skills Crew – нашей новой конференции про софт-скиллы для инженеров!
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай по скидке!🔥По традиции, она действует до конца недели.
podlodka.io
Онлайн-конференция Podlodka Soft Skills Crew, сезон #5
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Всем привет!
Movavi проведет очередной, уже четвёртый по счету, внешний meetup для всех, кто интересуется мобильной разработкой.
Ребята хотят поделиться своими знаниями и кейсами, поэтому ждут каждого, кто занимается разработкой приложений под Android.
На собственном опыте:
- Дима расскажет об архетиктуре MVP на Kotlin Multiplatform Mobile
- Илья расскажет про корутины в действии на Kotlin Multiplatform Mobile
- Когда? 23.06 в 12:00 МСК (или 16:00 НСК)
- Сколько стоит? Бесплатно!
Регистрируйтесь здесь: https://movavi-event.timepad.ru/event/1675474/
Movavi проведет очередной, уже четвёртый по счету, внешний meetup для всех, кто интересуется мобильной разработкой.
Ребята хотят поделиться своими знаниями и кейсами, поэтому ждут каждого, кто занимается разработкой приложений под Android.
На собственном опыте:
- Дима расскажет об архетиктуре MVP на Kotlin Multiplatform Mobile
- Илья расскажет про корутины в действии на Kotlin Multiplatform Mobile
- Когда? 23.06 в 12:00 МСК (или 16:00 НСК)
- Сколько стоит? Бесплатно!
Регистрируйтесь здесь: https://movavi-event.timepad.ru/event/1675474/
movavi-event.timepad.ru
Movavi Mobile Meetup / События на TimePad.ru
Привет! Movavi проведет митап для всех, кто интересуется мобильной разработкой!
Мы хотим делиться знаниями, поэтому ждем каждого, кто занимается разработкой приложений под iOS и Android.
Когда: 23.06. в 16:00 по Новосибирскому времени (12:00 Москвы)
Мы хотим делиться знаниями, поэтому ждем каждого, кто занимается разработкой приложений под iOS и Android.
Когда: 23.06. в 16:00 по Новосибирскому времени (12:00 Москвы)
Вышел Kotlin 1.5.20!
- Экспериментальный интероп с Lombok
- String concatenation через invokedynamic
- Разные ускорения в Gradle
https://blog.jetbrains.com/kotlin/2021/06/kotlin-1-5-20-released/
- Экспериментальный интероп с Lombok
- String concatenation через invokedynamic
- Разные ускорения в Gradle
https://blog.jetbrains.com/kotlin/2021/06/kotlin-1-5-20-released/
The JetBrains Blog
Kotlin 1.5.20 Released! | The Kotlin Blog
Kotlin continues to stay up to date with latest Java features such as dynamic invocations and to provide better interoperability with Java by adding support for Java’s Lombok and JSpecify. We are also
App Actions позволяют Google Assistant выполнять определенные действия с вашим приложением. В статье приведена инструкция по интеграции App Actions: от создания до тестирования и публикации.
https://www.raywenderlich.com/21636122-app-actions-getting-started
https://www.raywenderlich.com/21636122-app-actions-getting-started
kodeco.com
App Actions: Getting Started
App Actions allow Google Assistant to access your app and launch specific actions within the app. This tutorial teaches you how to implement App Actions for your app so users can interact with your app directly through Google Assistant.
Продолжении серии статей про Jetpack Compose. В этом выпуске пойдет речь о методе derivedStateOf, который позволяет производить вычисления на основе других состояний и кешировать результат.
https://dev.to/zachklipp/plumbing-data-with-derived-state-in-compose-53ka
https://dev.to/zachklipp/plumbing-data-with-derived-state-in-compose-53ka
DEV Community
Plumbing data with derived state in Compose
Jetpack Compose has powerful features for managing mutable state and observing state changes...
В большинстве случаев мы используем Java из Kotlin, но иногда бывают ситуации, что приходиться работать с Java кодом и при этом хочется использовать удобные методы и расширения из стандартной библиотеки Kotlin.
https://medium.com/google-developer-experts/using-the-kotlin-standard-library-in-java-ea0766deac10
https://medium.com/google-developer-experts/using-the-kotlin-standard-library-in-java-ea0766deac10
Medium
Using the Kotlin standard library from Java
Do you have a mixed Java/Kotlin code base? Then you should start using more Kotlin functions in your Java code! Yes you can!
Стандартная библиотека Kotlin содержит множество полезных функций. Серия статей призвана познакомить или напомнить об этой функциональности, чтобы помочь разработчикам более эффективно решать свои задачи.
https://dev.to/kotlin/advanced-kotlin-collection-functionality-5e90
https://dev.to/kotlin/advanced-kotlin-collection-functionality-5e90
DEV Community
Advanced Kotlin Collection Functionality
Level up your Kotlin collection skills, and learn about advanced functionality that helps you be more productive when writing Kotlin code working with lists, sets, and collections in general!
Kotlin Symbol Processor — новое API от Google для написания плагинов для компилятора, которое должно прийти на смену kapt. Погружаемся в KSP на примере написания своего плагина: верификация и генерация кода, а также тестирование плагина.
https://proandroiddev.com/ksp-fact-or-kapt-7c7e9218c575
https://proandroiddev.com/ksp-fact-or-kapt-7c7e9218c575
Medium
KSP: Fact or kapt?
Fast and ergonomic annotation processors for Kotlin
Реализуем CoroutineScope, привязанный к жизненному циклу приложения, с помощью Hilt.
https://medium.com/androiddevelopers/create-an-application-coroutinescope-using-hilt-dd444e721528
https://medium.com/androiddevelopers/create-an-application-coroutinescope-using-hilt-dd444e721528
Medium
Create an application CoroutineScope using Hilt
Following coroutine’s best practices, you might need to inject an application-scoped CoroutineScope in some classes to launch new…
Небольшая статья, призванная напомнить, что метод collect у Flow блокирующий.
https://dev.to/mahendranv/flow-is-non-blocking-but-the-collector-is-not-4i23
https://dev.to/mahendranv/flow-is-non-blocking-but-the-collector-is-not-4i23
DEV Community
Flow is non-blocking but the collector is not
Flow is an idiomatic way in kotlin to publish stream of values. While the flow itself suspendable,...
Фокус у View переодически может вызывать проблемы при классическом подходе реализации UI приложения. Смотрим, как устроен этот механизм в Jetpack Compose.
https://jamiesanson.medium.com/focus-in-jetpack-compose-6584252257fe
https://jamiesanson.medium.com/focus-in-jetpack-compose-6584252257fe
Medium
Focus in Jetpack Compose
A brief look at the Focus APIs in Compose UI, and how you might use them in your apps