#UML
UML для самых маленьких: диаграмма классов
Автор статьи даёт новичкам теоретическую базу по UML-диаграммам для структуризации дерева классов в проекте. Диаграммы, благодаря общепринятым правилам, помогают более наглядно увидеть взаимоотношения и зависимости между моделями и абстракциями, а так же отображают структуру самого класса. Автор рекомендует составить подобную диаграмму прежде чем начинать любой новый проект, дабы предотвратить разногласия и непонимание структуры моделей всего проекта.
UML для самых маленьких: диаграмма классов
Автор статьи даёт новичкам теоретическую базу по UML-диаграммам для структуризации дерева классов в проекте. Диаграммы, благодаря общепринятым правилам, помогают более наглядно увидеть взаимоотношения и зависимости между моделями и абстракциями, а так же отображают структуру самого класса. Автор рекомендует составить подобную диаграмму прежде чем начинать любой новый проект, дабы предотвратить разногласия и непонимание структуры моделей всего проекта.
Хабр
UML для самых маленьких: диаграмма классов
Аве, Кодер! Диаграмма классов UML иллюстрирует структуру системы, описывая классы, их атрибуты, методы и отношения между объектами. Даже самые малые детки знают, что UML происходит от...
#AnroidX
Релиз AndroidX от 22.07.2020
Новые релиз обновлений нам принес:
👉 Стабильный WorkManager 2.4.0 (о них ниже)
👉 AndroidX Core 1.3.1 с исправлением бага c Typeface на Android 10
👉 Lifecycle 2.3.0-alpha06 получил пачку интересных изменений (о них ниже)
👉 Room 2.3.0-alpha02 получил поддержку RxJava 3 и включил инкрементальный процессинг по умолчанию
👉 Множество новых альфа-версий других библиотек
Релиз AndroidX от 22.07.2020
Новые релиз обновлений нам принес:
👉 Стабильный WorkManager 2.4.0 (о них ниже)
👉 AndroidX Core 1.3.1 с исправлением бага c Typeface на Android 10
👉 Lifecycle 2.3.0-alpha06 получил пачку интересных изменений (о них ниже)
👉 Room 2.3.0-alpha02 получил поддержку RxJava 3 и включил инкрементальный процессинг по умолчанию
👉 Множество новых альфа-версий других библиотек
Android Developers
Recent Release Notes | Android Developers
#WorkManager
WorkManager 2.4.0
👉 Больше возможностей для планировщика
👉 Поддержка RxJava3
👉 Возможность получить WorkInfo, используя WorkQuery.
👉 Возможность получить диагностическую информацию о работе WorkManager
👉 Новая политика ExistingWorkPolicy.APPEND_OR_REPLACE
👉 Возможность задать свой собственный RunnableScheduler для отслеживания WorkRequest, который будет выполнен позже
👉 Возможность динамического добавления фабрик в DelegatingWorkerFactory
👉 Новые правила Android Lint
👉 Улучшения в отслеживании BATTERY_NOT_LOW
👉 Улучшения в работе и исправления багов
WorkManager 2.4.0
👉 Больше возможностей для планировщика
WorkManager
, что запускает WorkRequest-ы👉 Поддержка RxJava3
👉 Возможность получить WorkInfo, используя WorkQuery.
👉 Возможность получить диагностическую информацию о работе WorkManager
👉 Новая политика ExistingWorkPolicy.APPEND_OR_REPLACE
👉 Возможность задать свой собственный RunnableScheduler для отслеживания WorkRequest, который будет выполнен позже
👉 Возможность динамического добавления фабрик в DelegatingWorkerFactory
👉 Новые правила Android Lint
👉 Улучшения в отслеживании BATTERY_NOT_LOW
👉 Улучшения в работе и исправления багов
#Lifecycle
Lifecycle 2.3.0-alpha06
Изменение поведения
👉 DESTROYED теперь терминальное состояние, что означает отсутствие каких-либо дальнейших событий
👉
👉 Новые вспомогательные методы
👉 Новый метод Lifecycle.withStateAtLeast, который дожидается когда Lifecycle, достигнет заданного состояния
Lifecycle 2.3.0-alpha06
Изменение поведения
👉 DESTROYED теперь терминальное состояние, что означает отсутствие каких-либо дальнейших событий
👉
LifecycleRegistry
теперь будет проверять, что метод вызываются на главном потоке👉 Новые вспомогательные методы
downFrom(State)
, downTo(State)
, upFrom(State)
, upTo(State)
, которые генерирует Event для заданного State и направление перехода для его осуществления.👉 Новый метод Lifecycle.withStateAtLeast, который дожидается когда Lifecycle, достигнет заданного состояния
#Resourses
How to name a color in Android
Есть мнение, что одной из основных проблем в программировании является именование. Как часто вы сталкивались с тем что не можете придумать название функции или ресурса? Для нас, как Android разработчиков беспорядок в xml с цветами является весьма привычным делом, хотя студия часто спасет, отображая цвет в колонке с нумерацией строк.
Автор статьи предлагает систему для именования цветов в xml, дабы в будущем избежать путаницы.
How to name a color in Android
Есть мнение, что одной из основных проблем в программировании является именование. Как часто вы сталкивались с тем что не можете придумать название функции или ресурса? Для нас, как Android разработчиков беспорядок в xml с цветами является весьма привычным делом, хотя студия часто спасет, отображая цвет в колонке с нумерацией строк.
Автор статьи предлагает систему для именования цветов в xml, дабы в будущем избежать путаницы.
Medium
How to name a color in Android
Is “login_background” really a color?
Используете ли вы в production проектах Navigation из Arch Components ?
Final Results
44%
Да
41%
Нет
6%
Что это?
9%
Не участвую в опросе
#Activity
Improving inter-activity communication with Jetpack ActivityResult
В ближайшем релизе
Самое важное еще - все гайды с получением результата уже переписаны на новое API, а
Improving inter-activity communication with Jetpack ActivityResult
В ближайшем релизе
androidx.activity
нас ждёт замена onActivityResult() на новое API - Activity Result API. Вместо хранения requestCode
, понимание правильно resultCode
вы теперь просто делаете запрос и получаете результата.Самое важное еще - все гайды с получением результата уже переписаны на новое API, а
onActivityResult()
будет deprecatedAndroid Developers Blog
Improving inter-activity communication with Jetpack ActivityResult
Posted by Yacine Rezgui , Developer Advocate Whether you're requesting a permission, selecting a file from the system file manager, or...
#BestPractices
40 советов, которые навсегда изменят ваше программирование
Статья, которая содержит 40 достаточно полезных рекомендаций для разработчика, будет полезна как новичкам, так и опытным программистам. Заголовок немного кликбейтный, потому что каждому разработчику присущ свой стиль написания кода, но советы действительно помогут пересмотреть свои взгляды на определённые вещи в разработке.
40 советов, которые навсегда изменят ваше программирование
Статья, которая содержит 40 достаточно полезных рекомендаций для разработчика, будет полезна как новичкам, так и опытным программистам. Заголовок немного кликбейтный, потому что каждому разработчику присущ свой стиль написания кода, но советы действительно помогут пересмотреть свои взгляды на определённые вещи в разработке.
AppTractor
40 советов, которые навсегда изменят ваше программирование
В этой статье я даю некоторые советы, которые помогли мне в моей карьере. Прочитать это все можно быстро, но их внедрение и использование может занять всю жизнь.
#ArchitectureComponents #Navigation
What’s New in Navigation 2020
Navigation Arch Component в первой своей версии много чего не умел, чего не хватало разработчикам. За последнее время все это наверстали:
👉 Доступ к NavBackStackEntry: расширение навигации за рамки NavDestination
👉 Шаринг данных между элементами NavGraph с помощью NavBackStackEntry, которая является ViewModelProvider
👉 Поддержка Activity Result
👉 Поддержка Dynamic Features
👉 Тестирование навигации
👉 Получение параметров из Deep Link
👉 Kotlin DSL для описания графа
👉 Улучшения API
В статье найдете более подробный обзор этих возможностей
What’s New in Navigation 2020
Navigation Arch Component в первой своей версии много чего не умел, чего не хватало разработчикам. За последнее время все это наверстали:
👉 Доступ к NavBackStackEntry: расширение навигации за рамки NavDestination
👉 Шаринг данных между элементами NavGraph с помощью NavBackStackEntry, которая является ViewModelProvider
👉 Поддержка Activity Result
👉 Поддержка Dynamic Features
👉 Тестирование навигации
👉 Получение параметров из Deep Link
👉 Kotlin DSL для описания графа
👉 Улучшения API
В статье найдете более подробный обзор этих возможностей
Android Developers Blog
What’s New in Navigation 2020
News and insights on the Android platform, developer tools, and events.
#Jetpack #GItHub
Jetpack вернулся на GitHub!
Легендарное возвращение Jetpack на GitHub и возможность контрибьютить туда. Сейчас принимаются pull request-ы в Room и WorkManager
Jetpack вернулся на GitHub!
Легендарное возвращение Jetpack на GitHub и возможность контрибьютить туда. Сейчас принимаются pull request-ы в Room и WorkManager
Medium
Introducing Jetpack on GitHub
Interested in looking at the source code for or contributing to Jetpack libraries, and you like Github? We have something for you.
#WorkManager
Use WorkManager for immediate background execution
В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.
В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
Use WorkManager for immediate background execution
В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.
В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
Medium
Use WorkManager for immediate background execution
Some tasks just shouldn’t be deferred
Вы уже пробовали библиотеку CameraX ?
Final Results
20%
Да
63%
Нет
10%
Что это?
7%
Не участвую в опросе
#Jetpack #CameraX
CameraX: a glimpse into the past, present, and future
CameraX все еще пока находится в Beta, но уже множество разработчиков высказываются о позитивных моментах ее использования: уменьшение размера кодовой базы, связанной с камерой, и что теперь не надо отлаживать камеру на устройствах от различных производителей.
Чтобы все это еще работало точно и без проблем в Google создали специальную тестовую лабораторию с более чем 90 устройствами (полный список здесь) для проверки работы CameraX.
Возможности использования ночного режима, HDR и др функций, которые раньше были только доступны в стоковой камеры теперь доступны всем через CameraX.
CameraX: a glimpse into the past, present, and future
CameraX все еще пока находится в Beta, но уже множество разработчиков высказываются о позитивных моментах ее использования: уменьшение размера кодовой базы, связанной с камерой, и что теперь не надо отлаживать камеру на устройствах от различных производителей.
Чтобы все это еще работало точно и без проблем в Google создали специальную тестовую лабораторию с более чем 90 устройствами (полный список здесь) для проверки работы CameraX.
Возможности использования ночного режима, HDR и др функций, которые раньше были только доступны в стоковой камеры теперь доступны всем через CameraX.
Medium
CameraX: a glimpse into the past, present, and future
CameraX is an unbundled Android Jetpack library that helps you easily add camera capabilities within your Android apps. Traditionally…
#Arhitecture #LIveData
Don’t use LiveData in Repositories
Появление Arch Component показало и видение архитектуры от Google на основе этих компонентов (схема тут). Видение это подразумевало, что начиная от источников данных в Storage и Repostiory у вас возвращаются LiveData, для обеспечения реактивного получения обновления данных.
Вы задумывались о том, почему компонент
Также
Хорошей заменой для этого будет использование LiveData только для коммуникации между ViewModel и UI, а на всех остальных слоях другие реактивные подходы:
👉 Coroutines Flow
👉 Reaktive
👉 RxJava
Don’t use LiveData in Repositories
Появление Arch Component показало и видение архитектуры от Google на основе этих компонентов (схема тут). Видение это подразумевало, что начиная от источников данных в Storage и Repostiory у вас возвращаются LiveData, для обеспечения реактивного получения обновления данных.
Вы задумывались о том, почему компонент
LiveData
, который имеет связь с жизненным циклом (ЖЦ), используется в слое с данными. Данные должны быть абстрагированы от особенностей платформы, в особенности таких как ЖЦ. Также
LiveData
имеет особенности по работе, например обновление данных происходит через главный поток, для обеспечения синхронизации обновленийХорошей заменой для этого будет использование LiveData только для коммуникации между ViewModel и UI, а на всех остальных слоях другие реактивные подходы:
👉 Coroutines Flow
👉 Reaktive
👉 RxJava
Medium
Don’t use LiveData in Repositories
We recently joined a new project with heavy LiveData usage, everywhere. Here’s what we learned about LiveData, Threading and Repositories.
#AndroidBroadcast #Security
Безопасность мобильных приложений (Livestream)
Когда: Вторник, 28 июля, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Какие дыры есть в Android? Как ими могут воспользоваться злоумышленники? Куда развивается Android ОС в рамках безопасности? Как обеспечить защиту пользователя и сервиса от злоумышленников? На все эти вопросы будем искать ответы вместе в ходе выпуска.
Гость выпуска - Ольга Шкряба, Senior Mobile Security Engineer. Занимается исследованием и разработкой решений в сфере безопасности, а также поиском уязвимостей. Автор Telegram канала о безопасности мобильных приложений paradiSEcurity
Безопасность мобильных приложений (Livestream)
Когда: Вторник, 28 июля, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Какие дыры есть в Android? Как ими могут воспользоваться злоумышленники? Куда развивается Android ОС в рамках безопасности? Как обеспечить защиту пользователя и сервиса от злоумышленников? На все эти вопросы будем искать ответы вместе в ходе выпуска.
Гость выпуска - Ольга Шкряба, Senior Mobile Security Engineer. Занимается исследованием и разработкой решений в сфере безопасности, а также поиском уязвимостей. Автор Telegram канала о безопасности мобильных приложений paradiSEcurity
#UnderTheHood
Android Vitals - Diving into cold start waters
В статье разбирается как происходит холодный (когда процесса приложения не существует) запуск приложения Android. Хардкорненько и на любителя. Ставьте свои лайки и дизлайки чтобы понять интересно вам или нет
Android Vitals - Diving into cold start waters
В статье разбирается как происходит холодный (когда процесса приложения не существует) запуск приложения Android. Хардкорненько и на любителя. Ставьте свои лайки и дизлайки чтобы понять интересно вам или нет
DEV Community
Android Vitals - Diving into cold start waters 🥶
Header image: A Song of Ice and Fire by Romain Guy. This blog series is focused on stability and p...
#Kotlin
Kotlin 1.4.0-RC Released
Kotlin 1.4 уже совсем близко. В RC версии добавились следующие улучшения:
👉 Улучшена поддержка Gradle Kotlin Script
👉 Больше не нужно явно добавлять зависимость на stdlib, она будет подключаться вместе с плагином kotlin
👉 Управление CocoaPods зависимостями стало проще
👉 Различные улучшения в Koitlin/JS
👉 Часть API в stdlib перешло из состояния experimental в stable.
Kotlin 1.4.0-RC Released
Kotlin 1.4 уже совсем близко. В RC версии добавились следующие улучшения:
👉 Улучшена поддержка Gradle Kotlin Script
👉 Больше не нужно явно добавлять зависимость на stdlib, она будет подключаться вместе с плагином kotlin
👉 Управление CocoaPods зависимостями стало проще
👉 Различные улучшения в Koitlin/JS
👉 Часть API в stdlib перешло из состояния experimental в stable.
The JetBrains Blog
Kotlin 1.4.0-RC Released | The Kotlin Blog
We’re almost there! We're happy to unveil Kotlin 1.4.0-RC – the release candidate for the next major version of our programming language. Read on to learn about what has changed in Kotlin 1.4.0-RC, an
#Battery
Энергопотребление Android-приложений
Статья с обзором различных оптимизаций, которые ОС Android использует для ограничения работы приложений, направленных на продление работы устройства.
Мы как разработчики должны знать какие они есть, как с ними работать, а главное как протестировать их эффект на приложение.
Энергопотребление Android-приложений
Статья с обзором различных оптимизаций, которые ОС Android использует для ограничения работы приложений, направленных на продление работы устройства.
Мы как разработчики должны знать какие они есть, как с ними работать, а главное как протестировать их эффект на приложение.
Хабр
Энергопотребление Android-приложений
Ваши пользователи жалуются на то, что приложение очень быстро сажает заряд телефона? Запущенный фоновый сервис внезапно останавливается? Сообщения от FCM не дохо...
#R8 #Security
Shrinking Your App with R8
Буквально вчера мы поговорили про безопасность на стриме, и в дополнение рекомендую ознакомиться с альтернативой ProGuard от Google - R8.
В статье рассматривается:
👉 возможности R8
👉 зачем использовать code shrinking
👉 каких результатов позволяет достичь использование R8 для уменьшения размера приложений
👉 Как настроить R8 в приложении
Shrinking Your App with R8
Буквально вчера мы поговорили про безопасность на стриме, и в дополнение рекомендую ознакомиться с альтернативой ProGuard от Google - R8.
В статье рассматривается:
👉 возможности R8
👉 зачем использовать code shrinking
👉 каких результатов позволяет достичь использование R8 для уменьшения размера приложений
👉 Как настроить R8 в приложении
Medium
Shrinking Your App with R8
Posted by Søren Gjesse, Software Engineer