Android Broadcast
В прошлом году прошел первый курс SchoolKt. В начале следующего хочется сделать его продолжение. Какой формат вы хотели бы увидеть?
Спасибо всем кто поучаствовал в опросе. В ближайшее время я буду формировать программу и собирать команду. Буду рад услышать от вас предложения по темам. Присоединяйтесь в Slack SchoolKt чтобы обсудить что вы хотите услышать и увидеть на курсе. Сейчас именно вы влияете на программу!
#ArchitectureComponents #Navigation #DynamicFeature
Navigation with Dynamic Feature Modules
Android Architecture Components - набор библиотек, который решил много проблем Android разработчиков и дал множество простых решений, одним из который является Navigation, который упрощает переходы между экранами в Android приложениях.
В свою очередь Google до сих пор не представила стабильного решения (пока есть только SNAPSHOT сборки) для навигации по приложению, когда вы используете Dynamic Delivery.
В статье описывается способ как с помощью Deep Link и Activity медиатора для обработки все таких ссылок достигается зен Navigation + Dynamic Delivery.
Navigation with Dynamic Feature Modules
Android Architecture Components - набор библиотек, который решил много проблем Android разработчиков и дал множество простых решений, одним из который является Navigation, который упрощает переходы между экранами в Android приложениях.
В свою очередь Google до сих пор не представила стабильного решения (пока есть только SNAPSHOT сборки) для навигации по приложению, когда вы используете Dynamic Delivery.
В статье описывается способ как с помощью Deep Link и Activity медиатора для обработки все таких ссылок достигается зен Navigation + Dynamic Delivery.
Medium
Navigation with Dynamic Feature Modules
Recently at work, my team started taking on the challenge of modularising our app, one of the first things we started grappling with…
#Animation
Easy Reveal Android Library
Библиотека, которая упростит вам создание анимации Reveal в разных ее проявлениях: круговой, волна, звезда и пр.
Easy Reveal Android Library
Библиотека, которая упростит вам создание анимации Reveal в разных ее проявлениях: круговой, волна, звезда и пр.
GitHub
GitHub - Chrisvin/EasyReveal: Android Easy Reveal Library
Android Easy Reveal Library. Contribute to Chrisvin/EasyReveal development by creating an account on GitHub.
#Kotlin
Вышел Kotlin 1.3.60 и будущие изменения в Kotlin 1.4
В новой стабильной версии языка вас ждут следующие улучшения:
👉 Улучшение работы Inline классов
👉 Более подробные сообщения об ошибках
👉 IDEA: Улучшена поддержка Scratch файлов
👉 IDEA: Улучшена поддержка Gradle Kotlin DSL
👉 IDEA: Улучшение дебага
👉 IDEA: Улучшение автодополнения
👉 IDEA: Новый конвертер из Java в Kotlin
Также стало известно, что Kotlin 1.4 выйдет когда-то в 2020😁, но уже сейчас можно попробовать функции из новой версии, которые уже готовы:
👉 NPE assertions: теперь выбрасывается
👉 Break & continue внутри
👉 Улучшения в tail-recursive функциях
👉 Запрет на использование
Вышел Kotlin 1.3.60 и будущие изменения в Kotlin 1.4
В новой стабильной версии языка вас ждут следующие улучшения:
👉 Улучшение работы Inline классов
👉 Более подробные сообщения об ошибках
👉 IDEA: Улучшена поддержка Scratch файлов
👉 IDEA: Улучшена поддержка Gradle Kotlin DSL
👉 IDEA: Улучшение дебага
👉 IDEA: Улучшение автодополнения
👉 IDEA: Новый конвертер из Java в Kotlin
Также стало известно, что Kotlin 1.4 выйдет когда-то в 2020😁, но уже сейчас можно попробовать функции из новой версии, которые уже готовы:
👉 NPE assertions: теперь выбрасывается
NullPointerException
вместо IllegalStateException
, в случае когда вы сталкиваетесь с null из Java кода в Kotlin, там где это не ожидается👉 Break & continue внутри
when
👉 Улучшения в tail-recursive функциях
👉 Запрет на использование
open tailrec
функцийThe JetBrains Blog
Kotlin 1.3.60 Released | The Kotlin Blog
We’re happy to present the new release today, Kotlin 1.3.60. In addition to the quality improvements, this version focuses on:
Optimizing the comparison of inline classes.
Tooling improvements fo
Optimizing the comparison of inline classes.
Tooling improvements fo
#Testings
Pixel perfect UI: How to automatize automation testing on Android
Краткий рассказ о подходе к тестированию вашего UI по скриншотам для проверки что при изменении кода или ресурсов в одних местах у вас не едет код в других.
Pixel perfect UI: How to automatize automation testing on Android
Краткий рассказ о подходе к тестированию вашего UI по скриншотам для проверки что при изменении кода или ресурсов в одних местах у вас не едет код в других.
Medium
Pixel perfect UI: How to automatize automation testing on Android
Have you ever modify a dimensions file and realized too late, that this change has affected unexpected parts of your app? This is a common…
#AndroidDevSummit
Итоги Android Dev Summit 2019
Я давно обещал сделать подведение итогов Android Dev Summit 2019. Прошёл уже месяц, но в итоге я это сделал! Просмотрел много статей, видео и перечитал статьи. Видео содержит мое личное мнение по поводу множества новинок. Буду рад услышать и ваше в @android_broadcast_discussions
Итоги Android Dev Summit 2019
Я давно обещал сделать подведение итогов Android Dev Summit 2019. Прошёл уже месяц, но в итоге я это сделал! Просмотрел много статей, видео и перечитал статьи. Видео содержит мое личное мнение по поводу множества новинок. Буду рад услышать и ваше в @android_broadcast_discussions
YouTube
Итоги Android Dev Summit 2019
Подведение итогов Android Dev Summit, прошедшего 22-23 октября. Высказываю свое мнение о новинках, будущем Android в пост Jetpack Compose эре, Android Studio 4.0, Kotlin, новинках Jetpack и пр.
Подписывайтесь на новости для Android разработчиков - t.iss.one/…
Подписывайтесь на новости для Android разработчиков - t.iss.one/…
#Kotlin
Type-safe time calculations using Duration
В Kotlin 1.3.50 был добавлен новый класс Duration (в статусе experimental), цель которого избавиться от вечного использования long в качестве продолжительности и дать полноценные возможности и более строгие проверки в compile time для типов.
Type-safe time calculations using Duration
В Kotlin 1.3.50 был добавлен новый класс Duration (в статусе experimental), цель которого избавиться от вечного использования long в качестве продолжительности и дать полноценные возможности и более строгие проверки в compile time для типов.
Duration
- это inline класс и его влияние на производительность минимально.Okkotlin
Type-safe time calculations using Duration
Dealing with time calculations can be a headache. Let's see how Kotlin's new Duration class makes it easy.
#WorkManager
Unifying Background Task Scheduling on Android
Google проводит унификацию своих библиотек для выполнения задач в фоновом режиме. Суть проста - все мигрируем на WorkManager.
Если кто-то пользуется FirebaseJobDispatcher (FJD) или GCMNetworkManager (GCM), то вам пора браться за гайды по миграции: для FJD и для GCM. Поддержка FJD будет закрыта в апреле 2020, GCM - ноябрь 2020.
Если вы обновите targetSdk вашего приложения до Android 10 (API level 29), то FJD и GCM перестанут работать на Android 6.0+
Unifying Background Task Scheduling on Android
Google проводит унификацию своих библиотек для выполнения задач в фоновом режиме. Суть проста - все мигрируем на WorkManager.
Если кто-то пользуется FirebaseJobDispatcher (FJD) или GCMNetworkManager (GCM), то вам пора браться за гайды по миграции: для FJD и для GCM. Поддержка FJD будет закрыта в апреле 2020, GCM - ноябрь 2020.
Если вы обновите targetSdk вашего приложения до Android 10 (API level 29), то FJD и GCM перестанут работать на Android 6.0+
Android Developers Blog
Unifying Background Task Scheduling on Android
Android users care a lot about the battery life on their phones. In particular, how your app schedules deferrable background tasks play an important role in battery life. To help you build more battery-friendly apps, we introduced WorkManager as the unified…
#Calendar
Android Calendar Intent
Подробная инструкция того как работать с системным календарем в Android:
👉 Создать событие
👉 Открыть календарь на необходимой дате или событие
👉 Доступ к деталям события по id
Все описано очень хорошо и подробно!
Android Calendar Intent
Подробная инструкция того как работать с системным календарем в Android:
👉 Создать событие
👉 Открыть календарь на необходимой дате или событие
👉 Доступ к деталям события по id
Все описано очень хорошо и подробно!
Medium
Android Calendar Intent
Create a calendar event is not difficult. App can handle off all the operation to system Calendar app. How to do it? Click to see more!
#Kotlin
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
👉 Работа с
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
Fragment
👉 Работа с
SharedPreference
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Medium
Kotlin Delegates in Android
Making use of Delegated Properties in Android development
#Security
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}
Medium
How to enable logging on any Android app
Welcome to a series of Spy security articles where we’ll learn how to hack apk and …
#Room #SQLite
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
@Relation
над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.Medium
Database relations with Room
An important part of designing a relational database is splitting the data into related tables and pulling the data together in meaningful…
#Gradle #AndroidGradlePlugin
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Product Flavor
и Build Type
.Medium
A Simple Guide to Android Product Flavors
When i first heard of the term product flavors the first thing that came into mind had nothing to do with Android…
#JetpackWeekly #Benchmark #ViewPager2
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
RecyclerView
!👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Medium
2
Benchmark Stable, ViewPager2 Stable, and next RecyclerView
#Podcast
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Answers for Your OS
OS Today
questions about operating systems About Contacts Privacy Policy Cookies Android Windows Linux Apple Photoshop guide Other Quick Answer How You Know What Operating System You Have Find operating system info Windows button, type Computer...
#AndroidBroadcastBreakfest #Minsk #Meetup
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
#CodeQuality #Kotlin
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
#Dagger
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Zac Sweers
Dagger Party Tricks: Refactoring
Techniques for refactoring Dagger code with ease.
#Kotlin #Parcel
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
Medium
A study of the Parcelize feature from Kotlin Android Extensions
Life is too short to waste time on writing Parcelable code
#Kotlin #Coroutines #Arhitecture
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
Обновление подхода просто. Если раньше ваш слой модели мог возвращать
В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
UseCase
) и Model (Repository
, Data Source
) слоев.Обновление подхода просто. Если раньше ваш слой модели мог возвращать
LiveData
(например за наблюдением обновление обновление в Room), то теперь все это переходит во Flow и превращается в LiveData
только в ViewModel
. Если вам не нужно наблюдать за изменениями - используйте обычные suspend
функции.В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Medium
Lessons learnt using Coroutines Flow
in the Android Dev Summit 2019 app