Большой обзор новинок Google I/O 2021 для разработчиков: Material You, приватность, обновления Jetpack и другие.
https://habr.com/ru/company/wrike/blog/558474/
https://habr.com/ru/company/wrike/blog/558474/
Хабр
Google I/O 2021: что нового для Android-разработчиков (полный обзор)
В этом году Google I/O проходил в виртуальном формате. Как это было, например, 3 года назад, можно прочитать в моей прошлой статье. Привычка делать саммари интересных докладов для разработчиков у...
Пошаговый гайд по взаимодействию с нативным кодом из WebView через JavaScript.
https://www.techyourchance.com/communication-webview-javascript-android/
https://www.techyourchance.com/communication-webview-javascript-android/
TechYourChance
Communication with WebView in Android
Explanation of one- and two-way communication between "native" code and the contents of WebView component in Android applications
Для тех кому уже надоела Android Studio Arctic Fox вышла канарейка Android Studio Bumblebee с пачкой улучшений для тестирования: унифицированный запуск тестов, управление эмуляторами из gradle и снепшоты состояния эмулятора для упавших тестов.
https://androidstudio.googleblog.com/2021/05/android-studio-bumblebee-canary-1.html
https://androidstudio.googleblog.com/2021/05/android-studio-bumblebee-canary-1.html
Android Studio Release Updates
Android Studio Bumblebee Canary 1 available
Android Studio Bumblebee Canary 1 is now available in the Canary and Dev channels. If you already have an Android Studio build on the Canar...
В Android 12 немного изменится механизм, по которому система пробрасывает события касаний экрана в приложения. Теперь если приложение перекрыто другим окном, которое не обрабатывает касания, то оно не будет получать информацию о таких касаниях как это было раньше.
https://medium.com/androiddevelopers/untrusted-touch-events-2c0e0b9c374c
https://medium.com/androiddevelopers/untrusted-touch-events-2c0e0b9c374c
Medium
Untrusted Touch Events in Android
In Android 12, we are making changes to enhance app and platform security to provide our users with a safer experience. After this article…
Корутины обновились до версии 1.5: специальная подстветка для GlobalScope, улучшенное API для каналов, расширения для JUnit и улучшение интеграции с реактивными фреймворками.
https://blog.jetbrains.com/kotlin/2021/05/kotlin-coroutines-1-5-0-released/
https://blog.jetbrains.com/kotlin/2021/05/kotlin-coroutines-1-5-0-released/
The JetBrains Blog
Kotlin Coroutines 1.5: GlobalScope Marked as Delicate, Refined Channels API, and More | The Kotlin Blog
Kotlin Coroutines 1.5.0 delivers GlobalScope that is now marked as a delicate API, extensions for JUnit, the refined Channel API, and stabilized reactive integrations.
Небольшая статья о том, как операторы merge и zip в RxJava могут стать причиной UndeliverableException.
https://proandroiddev.com/merging-rxjava-observables-considered-harmful-part-i-fdaaaa3364c5
https://proandroiddev.com/merging-rxjava-observables-considered-harmful-part-i-fdaaaa3364c5
Medium
Merging RxJava Observables considered harmful — Part I
The hidden cause of UndeliverableExceptions
Иногда бывает необходимо ограничить область применения расширений для конкретных классов. В статье автор предлагает решать эту задачу с помощью маркерных интерфейсов.
https://proandroiddev.com/limit-the-availability-of-kotlin-extension-functions-by-using-generics-and-an-empty-interface-d390d7addbbe
https://proandroiddev.com/limit-the-availability-of-kotlin-extension-functions-by-using-generics-and-an-empty-interface-d390d7addbbe
Medium
Limit the Availability of Kotlin Extension Functions by using Generics and an Empty Interface
Extension functions are awesome!
Тема безопасности приложений становится все более актуальной. В рамках этого Google запустила курс Security by design, который призван познакомить разработчиков с лучшими практиками защиты приложений.
https://android-developers.googleblog.com/2021/04/introducing-security-by-design.html
https://android-developers.googleblog.com/2021/04/introducing-security-by-design.html
Android Developers Blog
Introducing Security By Design
Posted by Jon Markoff, Staff Developer Advocate & Sean Smith, Technical Program Manager As a developer, are you struggling to fi...
Набор советов, которые могут помочь улучшить процесс code review: не придираться к мелочам, автоматизировать всё что можно, указывать всю необходимую информацию в PR.
https://medium.com/lazada-tech-vn/a-comprehensive-guide-to-perform-effective-code-reviews-for-android-developers-b5998653699b
https://medium.com/lazada-tech-vn/a-comprehensive-guide-to-perform-effective-code-reviews-for-android-developers-b5998653699b
Medium
A comprehensive guide to perform effective code reviews for Android developers
Code reviews are a part of most devs’ day-to-day work. Despite being a standard industry practice for many years, there are still lots of…
В Android 12 добавили встроенное решение для Splash экранов приложений. Разбираемся как использовать новое API.
https://joebirch.co/android/exploring-android-12-splash-screen/
https://joebirch.co/android/exploring-android-12-splash-screen/
Привет! 🙂
В Туту.ру есть 3 новые команды, которые готовы взять на борт мобильных разработчиков.
Что предлагают?
👉 Продукт, который помогает путешествовать 8 миллионам человек
👉 Мечта разработчика – где-то свежайший код (еще не вышло из под A/B), где-то надо писать с нуля
👉 Сильная команда, iOS/Android гильдии и много общения
И на этом плюсы не закончились:
С 15 по 25 июня ребята проводят традиционный ивент «Оффер за один день», только в этот раз лучше – все собеседования можно будет пройти за 3 часа удаленно из любой точки мира, а вечером в случае успеха получить оффер.
Чтобы включиться в эту историю заходи на страницу https://cutt.ly/5nEXL8s, заполняй анкету и отправляй ребятам до 15 июня.
В Туту.ру есть 3 новые команды, которые готовы взять на борт мобильных разработчиков.
Что предлагают?
👉 Продукт, который помогает путешествовать 8 миллионам человек
👉 Мечта разработчика – где-то свежайший код (еще не вышло из под A/B), где-то надо писать с нуля
👉 Сильная команда, iOS/Android гильдии и много общения
И на этом плюсы не закончились:
С 15 по 25 июня ребята проводят традиционный ивент «Оффер за один день», только в этот раз лучше – все собеседования можно будет пройти за 3 часа удаленно из любой точки мира, а вечером в случае успеха получить оффер.
Чтобы включиться в эту историю заходи на страницу https://cutt.ly/5nEXL8s, заполняй анкету и отправляй ребятам до 15 июня.
Начиная с Kotlin Coroutines версии 1.5.0, вместо BroadcastChannel, помеченного теперь аннотацией ObsoleteCoroutinesApi, рекомендуется использовать MutableSharedFlow. В статье описаны подводные камни, которые могут встретиться при миграции.
https://itnext.io/mutablesharedflow-is-kind-of-complicated-61af68011eae
https://itnext.io/mutablesharedflow-is-kind-of-complicated-61af68011eae
Medium
MutableSharedFlow is kind of complicated
About dropped events, replay and extraBufferCapacity and other pitfalls when using MutableSharedFlow.
Продолжение серии статей про управление состояниями в Jetpack Compose. В этой части погружаемся в принципы работы системы "снимков" состояний.
https://dev.to/zachklipp/introduction-to-the-compose-snapshot-system-19cn
https://dev.to/zachklipp/introduction-to-the-compose-snapshot-system-19cn
DEV Community
Introduction to the Compose Snapshot system
This post has moved to blog.zachklipp.com. Jetpack Compose introduces a novel way to handle...
С появлением Fragment Result API в полку способов передачи данных между экранами прибыло. Разбираемся в деталях работы нового подхода: какой FragmentManager выбрать и как происходит работа с жизненным циклом.
https://medium.com/e-legion/getting-the-result-right-part-2-fragment-result-api-1a17f99490dc
https://medium.com/e-legion/getting-the-result-right-part-2-fragment-result-api-1a17f99490dc
Medium
The right way to get a result. Part 2. Fragment Result API
We continue the story about the Jetpack library’s latest updates that are designed to simplify data exchange between different parts of…
Гайд по монетизации мобильных приложений: планирование монетизации, обзор популярных стратегий и советы по их внедрению.
https://dev.to/krowser/mobile-app-monetization-an-essential-guide-31f5
https://dev.to/krowser/mobile-app-monetization-an-essential-guide-31f5
DEV Community
Mobile App Monetization: An Essential Guide
Mobile app monetization is a must for most of today’s mobile apps. Given the sheer size of the mobile...
Разбираемся, в каких случаях нам может понадобиться написать final val.
https://proandroiddev.com/the-modifier-that-shouldnt-be-there-77ff941f0529
https://proandroiddev.com/the-modifier-that-shouldnt-be-there-77ff941f0529
Medium
The Kotlin modifier that shouldn't be there
Most Kotlin developers would agree that a val property is equivalent to a final property in Java. What if I tell you that this “depends”?
Большая шпаргалка про сервисы в Android: для чего и как использовать, foreground и background сервисы, bound сервисы на примере сервиса для воспроизведения медиафайлов.
https://www.raywenderlich.com/20123726-android-services-getting-started
https://www.raywenderlich.com/20123726-android-services-getting-started
kodeco.com
Android Services: Getting Started
Learn about Android Services and the differences between foreground, background and bound services.
Использовуем 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