We Love Android
622 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Исследование современной банковской малвари под Android. В общем и целом, схема достаточно стандартная, но вот идея с автокликом интересная - до этого не приходилось сталкиваться.

https://habr.com/en/post/459858/
Рекомендации при реализации архитектуры MVVM на основе Architecture Components.

https://android.jlelse.eu/mvvm-dos-and-don-ts-5950d6f347d4
Интересный подход для реализации навигации в многомодульном Android-приложении.

https://overflow.buffer.com/2019/07/30/library-module-navigation-in-android-applications/
Автор рассматривает преимущества и недостатки различных подходов для получения данных внутри ViewModel.

https://proandroiddev.com/when-to-load-data-in-viewmodels-ad9616940da7
Опубликован исходный код приложения Google I/O 19. Google пытается показать людям лучшие практики в использовании Android Architecture Components. Изучить определенно стоит.

https://github.com/google/iosched
Как же не хватало еще одно библиотеки для загрузки изображений. Вот она - Coil. (Жаль, что не Koil)

Киллер-фичи:
- реализована на Kotlin,
- на корутинах,
- относительно малое количество строк кода,
- не использует annotation processing,
- dynamic image sampling.

https://coil-kt.github.io/coil/
https://github.com/coil-kt/coil/
Вышла стабильная Android Studio 3.5.

Как заверяют разработчики было поправлено около 600 багов, 50 утечек памяти, 20 зависаний. Сколько утечек памяти было добавлено почему-то не сообщается.

Некоторые особенности:
- Instant Run убрали, ему на замену Apply Changes
- IDE стала давать больше рекомендаций о необходимости добавить память или выключить антивирус
- улучшена инкрементальная сборка
- правки в Layout Editor
- наконец-таки добавили возможность использования нескольких версий NDK (!!!)

Полная информация тут:

https://android-developers.googleblog.com/2019/08/android-studio-35-project-marble-goes.html

https://www.youtube.com/watch?v=OJ3K90FpQ6A
Автор рассказывает, как с помощью ProcessLifecycleOwner можно достаточно легко реализовать механизм, вычисляющий продолжительность сессии приложения.

https://proandroiddev.com/android-processlifecycleowner-by-example-2f965061b9da
Мигающий layout - это определенно то, чего не хватает в современном Android-приложении. Достаточно забавная пасхалка от Romain Guy.

https://medium.com/@anoopss/you-thought-you-knew-android-e46a556d0773
Обзор библиотеки для внедрения зависимостей Koin.

Простота использования, удобство DSL, поддержка из коробки ViewModel из AAC - основные особенности, на которые обращает внимание автор.

Также присутствует сравнение с Dagger и обзор фишек, появившихся в Koin 2.0.

https://www.youtube.com/watch?v=chCsNkjotfc
Достаточно удобный ресурс, где в одном месте можно посмотреть актуальную версию и релиз-ноуты AndroidX библиотек.

https://androidx.tech/
Троян в приложении, которое скачали более 100 миллионов раз? Почему бы и нет. Именно на этом попался CamScanner – Phone PDF creator.

Шифрование и удаленная загрузка модулей - схема знакомая и стандартная.

https://securelist.com/dropper-in-google-play/92496/
Автор рассматривает режимы наложения одного изображения на другое с помощью PorterDuff.Mode. Статья насыщена большим количеством примеров.

https://medium.com/better-programming/practical-image-porterduff-mode-usage-in-android-3b4b5d2e8f5f
В новой версии библиотек AndroidX Fragment и AndroidX Activity появилась возможность устанавливать необходимый файл разметки, передавая его через конструктор. В таком случае необходимость в setContentView отпадает. В некоторых случаях - это было единственное действие в onCreate, что, в конечном итоге, позволяет его не переопределять.

https://www.bignerdranch.com/blog/activity-and-fragment-layouts-with-androidx/
Corbind - аналог RxBinding, только построен на Kotlin корутинах. Данная библиотека предоставляет возможность осуществлять связывание с вьюшками Android SDK.

Поддерживает Flow, ReceiveChannel и Actor.

Пример:

findViewById<EditText>(R.id.et_name)
.textChanges() // Flow<CharSequence>
.onEach { /* handle text change events */ }
.launchIn(scope)

https://ldralighieri.github.io/Corbind/
CalendarView - достаточно гибкая реализация календаря, основанная на RecyclerView.

Использует ThreeTenABP для обратной совместимости работы с датами на старых версиях Android SDK.

https://github.com/kizitonwose/CalendarView
Когда не хватает собственных утечек памяти, гугл добавляет свои. Ну, подумаешь Activity утекает по нажатию кнопки назад и это фактически может быть в каждом приложении на 10ке. "Ничего, в следующих релизах, обязательно пофиксим" - подождите годик, другой.

https://issuetracker.google.com/issues/139738913