В
https://joebirch.co/2020/01/24/enabling-dark-theme-in-android-webviews/
androidx.webkit:webkit:1.2.0-alpha01 появилась возможность указывать для WebView тёмную тему. В данный момент наблюдаются некоторые проблемы в случае включения автоматического режима, но тем не менее выглядит достаточно годно.https://joebirch.co/2020/01/24/enabling-dark-theme-in-android-webviews/
Joe Birch
Enabling dark theme in Android WebViews
So your apps just implemented a shiny new dark theme and it's looking 👌 And if you haven't yet, maybe it's in the pipeline for you to work on sometime in the future! There are lots of benefits to having a dark theme in your application, and having it consistent…
Автор делится первым впечатлением об использовании
https://www.coroutinedispatcher.com/2020/01/what-i-learned-from-kotlin-flow-api.html
Kotlin Flow API, а также пытается описать процесс миграции на основе наиболее используемых операторов.https://www.coroutinedispatcher.com/2020/01/what-i-learned-from-kotlin-flow-api.html
Coroutinedispatcher
What I learned from Kotlin Flow API
I used to check the docs and just read a lot about flows but didn’t implement anything until yesterday. However, the API tasted really cool (even though some operations are still in Experimental state).
Prerequisites: If you don’t know RxJava it’s fine. But…
Prerequisites: If you don’t know RxJava it’s fine. But…
Достаточно холиварный доклад от Александра Ефременкова из
-
-
-
-
-
Вторая часть доклада посвящена возможности кросскомпиляции на таких языках программирования, как:
-
-
-
-
-
-
www.youtube.com/watch?v=x_ncLfZCgTc
Yandex.Taxi о рынке современных кроссплатформенных технологий. Рассматриваются плюсы и минусы разработки на таких фреймворках, как:-
Flutter-
React Native-
Xamarin-
Apache Cordova-
QTВторая часть доклада посвящена возможности кросскомпиляции на таких языках программирования, как:
-
Swift-
Rust-
Go-
Kotlin Native-
J2ObjC-
Modern C++www.youtube.com/watch?v=x_ncLfZCgTc
YouTube
Кроссплатформенная мобильная разработка в 2019: путь C++ - Александр Ефременков | Mobile
DevFest Siberia 2019 | https://gdg-siberia.com
#DFSiberia #DevFest19 #GDGNsk
#DFSiberia #DevFest19 #GDGNsk
Начиная с 23 версии API, появилась возможность использовать зашифрованные
https://www.bignerdranch.com/blog/encrypting-shared-preferences-with-the-androidx-security-library/
SharedPreferences - EncryptedSharedPreferences. Данное решение доступно в androidx.security:security-crypto и построено на базе MasterKeys из Android Keystore.https://www.bignerdranch.com/blog/encrypting-shared-preferences-with-the-androidx-security-library/
Big Nerd Ranch
Encrypting Shared Preferences with the AndroidX Security Library
When storing sensitive data with SharedPreferences, how should you encrypt it? The AndroidX Security library provides a solution.
В статье рассказывается о неявных проблемах, которые могут возникнуть при попытке синхронизировать код в корутинах на основе
https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization-dont-mix/
@Synchronized.https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization-dont-mix/
Dan Lew Codes
Coroutines and Java Synchronization Don't Mix
Suppose you've got a critical section
[https://en.wikipedia.org/wiki/Critical_section] of code, meaning only one
process should execute it at a time.
In the Java world, one solution is to slap synchronized on the method and call
it a day. In Kotlin, we use…
[https://en.wikipedia.org/wiki/Critical_section] of code, meaning only one
process should execute it at a time.
In the Java world, one solution is to slap synchronized on the method and call
it a day. In Kotlin, we use…
Активно разрабатываемая в данный момент библиотека от
https://github.com/square/cycler
Square, позволяющая конфигурировать и взаимодействовать с RecyclerView в декларативном стиле.https://github.com/square/cycler
GitHub
GitHub - square/cycler
Contribute to square/cycler development by creating an account on GitHub.
Автор достаточно подробно рассматривает механизмы, за счет которых
https://medium.com/@unbreakableTitan/viewmodel-how-it-works-434282649286
ViewModel из Android Architecture Components умеет переживать смену конфигурации устройства. В частности, рассматривается как и старый подход на основе Retain фрагментов, так и новый, построенный на основе LastNonConfigurationInstance.https://medium.com/@unbreakableTitan/viewmodel-how-it-works-434282649286
Medium
Android ViewModel. How it works.
Hello everybody.
Первая статья из цикла от
https://medium.com/androiddevelopers/android-styling-themes-vs-styles-ebe05f917578
Nick Butcher, в которой он пытается внести ясность между тем, когда необходимо использовать темы - Theme, а когда стили - Style для вьюшек в своем Android приложении. https://medium.com/androiddevelopers/android-styling-themes-vs-styles-ebe05f917578
Medium
Android styling: themes vs styles
The Android styling system offers a powerful way to specify your app’s visual design, but it can be easy to misuse. Proper use of it can…
Достаточно вводная статья, в которой автор рассматривает как же лучше оформлять всякие утилитные статические функции, если пишешь на
Фактически все сводится к выбору одного из следующих вариантов:
- использование
- использование
- использование
https://proandroiddev.com/utils-class-in-kotlin-387a09b8d495
Kotlin. Фактически все сводится к выбору одного из следующих вариантов:
- использование
object aka singleton- использование
companion objects- использование
package-level функций.https://proandroiddev.com/utils-class-in-kotlin-387a09b8d495
Medium
Utils class in Kotlin
Unlike Java, there is no static in Kotlin. You can create utils class by putting methods inside an object, or use package-level functions
FileBox - библиотека, позволяющая упростить асинхронную загрузку файлов по заданному URL.Как утверждают авторы, поддерживается умное кеширование, шифрование файлов, множественная загрузка.
https://github.com/lyrebirdstudio/filebox
GitHub
GitHub - lyrebirdstudio/filebox: Async file downloader for Android
Async file downloader for Android. Contribute to lyrebirdstudio/filebox development by creating an account on GitHub.
Достаточно рано опубликовали
- обновление
- новое
- улучшение
-
-
-
- новый механизм динамической загрузки ресурсов с помощью
- шаринг крупных данных с помощью
https://android-developers.googleblog.com/2020/02/Android-11-developer-preview.html
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 Developers Blog
Turning it up to 11: the first Developer Preview of Android 11
Posted by Dave Burke, VP of Engineering Android has led the way towards the future of mobile, with new technologies like 5G to folda...
Начиная с
В данный момент список доступных библиотек достаточно мал.
https://android-developers.googleblog.com/2020/02/native-dependencies-in-android-studio-40.html
Android Studio 4.0, у разработчиков, использующих NDK, появится возможность подключать нативные зависимости простым способом, по аналогии с тем, как это сейчас делается с AAR.В данный момент список доступных библиотек достаточно мал.
https://android-developers.googleblog.com/2020/02/native-dependencies-in-android-studio-40.html
Android Developers Blog
Native Dependencies in Android Studio 4.0
By Dan Albert, Software Engineer One thing that NDK users struggle with is managing native dependencies: Library authors need to ma...
Базовая статья, рассказывающая о том, как использовать
https://blog.mindorks.com/okhttp-interceptor-making-the-most-of-it
OkHttp Interceptors в своем Android приложении. Автор отмечает разницу между Application и Network интерсепторами и приводит характерные примеры.https://blog.mindorks.com/okhttp-interceptor-making-the-most-of-it
Outcome School | Get High Paying Tech Job
OkHttp Interceptor
In this blog, we will learn how to work with the OkHttp Interceptors.
Unearthed - небольшая библиотека, которая позволяет фиксировать ситуации, при которых ваше Android приложение было восстановлено после смерти процесса (уничтожения системой).https://github.com/hannesstruss/unearthed
GitHub
GitHub - hannesstruss/unearthed: Track process deaths in Android apps
Track process deaths in Android apps. Contribute to hannesstruss/unearthed development by creating an account on GitHub.
В данной статье автор рассказывает о том, какими способами можно поддержать отмену запущенной корутины в
- добавление отдельной
- проверка флага
- вызов функции
https://zsmb.co/coroutine-cancellation-101/
Kotlin. Фактически рассматриваются 3 способа:- добавление отдельной
suspend функции,- проверка флага
isActive,- вызов функции
yield.https://zsmb.co/coroutine-cancellation-101/
zsmb.co
Coroutine Cancellation 101
A brief introduction to the basics of coroutine cancellation.
Автор делится своим составленным списком из 30 лучших приложений и библиотек из мира
https://medium.com/better-programming/30-best-android-libraries-and-projects-of-2019-a1e35124f110
Android разработки за 2019 год.https://medium.com/better-programming/30-best-android-libraries-and-projects-of-2019-a1e35124f110
Medium
The 30 Best Android Libraries and Projects of 2019
Useful libraries and inspiring projects to help you on your mobile journey
Автор рассказывает о том, как можно использовать контракты в
https://medium.com/@akperkins1/smart-casts-via-assertions-kotlin-contracts-fd737a92013b
Kotlin, для того, чтобы сообщить дополнительную информацию компилятору о гарантируемых свойствах объекта.https://medium.com/@akperkins1/smart-casts-via-assertions-kotlin-contracts-fd737a92013b
Medium
Smart Casts via Assertions + Kotlin Contracts
There are three things I do every-time I start a codebase that I know that I will be maintaining for the long haul.
Автор пытается разобраться в плюсах и минусах
https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
Enum'ов и Sealed классов, а также дает советы по использованию того или иного подхода в различных ситуациях.https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
Medium
Enum vs Sealed class — which one to choose?
TL;DR: Enums have supporting functions like valueOf, values or enumValues what makes them easier to iterate over or serialize. Just like…
В статье автор рассматривает изменения в
https://medium.com/@miloszlewandowski/a-first-look-at-androidx-activity-result-apis-3dc0f887de09
Activity Result API, а именно замену startActivityForResult на новый механизм, построенный на базе ActivityResultContract. Для основных действий по типу получения фотографии или запроса рантайм разрешений разработчики уже добавили базовые контракты.https://medium.com/@miloszlewandowski/a-first-look-at-androidx-activity-result-apis-3dc0f887de09
Medium
A first look at AndroidX Activity Result APIs
A few weeks ago, I published an article on how AndroidX changes the way we work with Activities and Fragments. Now it’s time to have a…
Автор рассказывает о неочевидной утечке адаптера
https://charlesmuchene.hashnode.dev/a-subtle-memory-leak-fragment-recyclerview-and-its-adapter-ck805s7jd03frzns17uapi3vh
RecyclerView, завязанной на жизненном цикле представления фрагмента.https://charlesmuchene.hashnode.dev/a-subtle-memory-leak-fragment-recyclerview-and-its-adapter-ck805s7jd03frzns17uapi3vh
Charles Muchene's Blog
A Subtle Memory Leak - Fragment, RecyclerView and its Adapter
Oh the Fragment
Fragments are amazing: modular, reusable, own view layout, swappable, you name them. However, you need to be extra careful when it comes to dealing with their lifecycle. I mean the lifecycle diagram clearly depicts the number of callb...
Fragments are amazing: modular, reusable, own view layout, swappable, you name them. However, you need to be extra careful when it comes to dealing with their lifecycle. I mean the lifecycle diagram clearly depicts the number of callb...
В статье рассказывается о том, что вообще такое
https://blog.stylingandroid.com/d8-desugaring/
desugaring, какие изменения принес D8 dex compiler и как с помощью опции coreLibraryDesugaring добиться использования современного Java API на старых версиях Android.https://blog.stylingandroid.com/d8-desugaring/
Styling Android
D8 Desugaring
D8 replaced DX as the default dex compiler in Android Studio (and Android Gradle Plugin) 3.1. It runs faster than DX and produces smaller .dex files, but it's also capable of some other nice stuff. I