We Love Android
623 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
В androidx.webkit:webkit:1.2.0-alpha01 появилась возможность указывать для WebView тёмную тему. В данный момент наблюдаются некоторые проблемы в случае включения автоматического режима, но тем не менее выглядит достаточно годно.

https://joebirch.co/2020/01/24/enabling-dark-theme-in-android-webviews/
Достаточно холиварный доклад от Александра Ефременкова из Yandex.Taxi о рынке современных кроссплатформенных технологий. Рассматриваются плюсы и минусы разработки на таких фреймворках, как:
- Flutter
- React Native
- Xamarin
- Apache Cordova
- QT

Вторая часть доклада посвящена возможности кросскомпиляции на таких языках программирования, как:
- Swift
- Rust
- Go
- Kotlin Native
- J2ObjC
- Modern C++

www.youtube.com/watch?v=x_ncLfZCgTc
Начиная с 23 версии API, появилась возможность использовать зашифрованные SharedPreferences - EncryptedSharedPreferences. Данное решение доступно в androidx.security:security-crypto и построено на базе MasterKeys из Android Keystore.

https://www.bignerdranch.com/blog/encrypting-shared-preferences-with-the-androidx-security-library/
Активно разрабатываемая в данный момент библиотека от Square, позволяющая конфигурировать и взаимодействовать с RecyclerView в декларативном стиле.

https://github.com/square/cycler
Автор достаточно подробно рассматривает механизмы, за счет которых ViewModel из Android Architecture Components умеет переживать смену конфигурации устройства. В частности, рассматривается как и старый подход на основе Retain фрагментов, так и новый, построенный на основе LastNonConfigurationInstance.

https://medium.com/@unbreakableTitan/viewmodel-how-it-works-434282649286
Первая статья из цикла от Nick Butcher, в которой он пытается внести ясность между тем, когда необходимо использовать темы - Theme, а когда стили - Style для вьюшек в своем Android приложении.

https://medium.com/androiddevelopers/android-styling-themes-vs-styles-ebe05f917578
Достаточно вводная статья, в которой автор рассматривает как же лучше оформлять всякие утилитные статические функции, если пишешь на Kotlin.
Фактически все сводится к выбору одного из следующих вариантов:
- использование object aka singleton
- использование companion objects
- использование package-level функций.

https://proandroiddev.com/utils-class-in-kotlin-387a09b8d495
FileBox - библиотека, позволяющая упростить асинхронную загрузку файлов по заданному URL.

Как утверждают авторы, поддерживается умное кеширование, шифрование файлов, множественная загрузка.

https://github.com/lyrebirdstudio/filebox
Достаточно рано опубликовали Android 11 Developer Preview. Вот некоторые интересные фичи:
- обновление API для работы с 5G сетями,
- новое API для работы с круглыми экранами и экранами с вырезами для камер,
- улучшение Bubble API в случае использования для мессенджеров,
- Neural Networks API 1.3,
- One-time permission,
- Scoped storage,
- новый механизм динамической загрузки ресурсов с помощью Resource Loader,
- шаринг крупных данных с помощью BlobstoreManager.

https://android-developers.googleblog.com/2020/02/Android-11-developer-preview.html
Начиная с Android Studio 4.0, у разработчиков, использующих NDK, появится возможность подключать нативные зависимости простым способом, по аналогии с тем, как это сейчас делается с AAR.

В данный момент список доступных библиотек достаточно мал.

https://android-developers.googleblog.com/2020/02/native-dependencies-in-android-studio-40.html
Базовая статья, рассказывающая о том, как использовать OkHttp Interceptors в своем Android приложении. Автор отмечает разницу между Application и Network интерсепторами и приводит характерные примеры.

https://blog.mindorks.com/okhttp-interceptor-making-the-most-of-it
Unearthed - небольшая библиотека, которая позволяет фиксировать ситуации, при которых ваше Android приложение было восстановлено после смерти процесса (уничтожения системой).

https://github.com/hannesstruss/unearthed
В данной статье автор рассказывает о том, какими способами можно поддержать отмену запущенной корутины в Kotlin. Фактически рассматриваются 3 способа:
- добавление отдельной suspend функции,
- проверка флага isActive,
- вызов функции yield.

https://zsmb.co/coroutine-cancellation-101/
Автор делится своим составленным списком из 30 лучших приложений и библиотек из мира Android разработки за 2019 год.

https://medium.com/better-programming/30-best-android-libraries-and-projects-of-2019-a1e35124f110
Автор рассказывает о том, как можно использовать контракты в Kotlin, для того, чтобы сообщить дополнительную информацию компилятору о гарантируемых свойствах объекта.

https://medium.com/@akperkins1/smart-casts-via-assertions-kotlin-contracts-fd737a92013b
Автор пытается разобраться в плюсах и минусах Enum'ов и Sealed классов, а также дает советы по использованию того или иного подхода в различных ситуациях.

https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
В статье автор рассматривает изменения в Activity Result API, а именно замену startActivityForResult на новый механизм, построенный на базе ActivityResultContract. Для основных действий по типу получения фотографии или запроса рантайм разрешений разработчики уже добавили базовые контракты.

https://medium.com/@miloszlewandowski/a-first-look-at-androidx-activity-result-apis-3dc0f887de09
В статье рассказывается о том, что вообще такое desugaring, какие изменения принес D8 dex compiler и как с помощью опции coreLibraryDesugaring добиться использования современного Java API на старых версиях Android.

https://blog.stylingandroid.com/d8-desugaring/