#Podcast #Kotlin #Multiplatform
Android Broadcast Podcast #8: "Kotlin Mobile Multiplatform"
Mobile имеет огромное значение для Kotlin, причем настолько, что появилась отдельная команда - Kotlin Mobile MultiPlatform. Они сделали свой сайт и двигаются только вперед, чтобы показать Flutter и React Native, как шарить код правильно! Упустить шанс сейчас нельзя, и я позвал в гости представителей команды: Анастасию Капанину и Кирилла Шмакова.
Мы обсудили множество тем:
- Kotlin MPP vs Flutter
- Большие компании, которые уже используют Kotlin MPP
- Что можно сделать с Kotlin MPP, но не получится с Flutter или ReactNative
- Как продавать Kotlin MPP iOS команде
- Когда Jetpack Compose станет Multiplatform?
- Как Kotlin/Native сейчас тормозит MPP
- Плагины для Kotlin компилятора
- Kotlin Mobile MPP плагин для Android Studio
- Что Kotlin 1.4 принесёт для Multiplatform разработки?
- Какие библиотеки с поддержкой Kotlin MPP нам ждать в этом году
Android Broadcast Podcast #8: "Kotlin Mobile Multiplatform"
Mobile имеет огромное значение для Kotlin, причем настолько, что появилась отдельная команда - Kotlin Mobile MultiPlatform. Они сделали свой сайт и двигаются только вперед, чтобы показать Flutter и React Native, как шарить код правильно! Упустить шанс сейчас нельзя, и я позвал в гости представителей команды: Анастасию Капанину и Кирилла Шмакова.
Мы обсудили множество тем:
- Kotlin MPP vs Flutter
- Большие компании, которые уже используют Kotlin MPP
- Что можно сделать с Kotlin MPP, но не получится с Flutter или ReactNative
- Как продавать Kotlin MPP iOS команде
- Когда Jetpack Compose станет Multiplatform?
- Как Kotlin/Native сейчас тормозит MPP
- Плагины для Kotlin компилятора
- Kotlin Mobile MPP плагин для Android Studio
- Что Kotlin 1.4 принесёт для Multiplatform разработки?
- Какие библиотеки с поддержкой Kotlin MPP нам ждать в этом году
#Security #Biometric
Using BiometricPrompt with CryptoObject: How and Why
Практически все современные смартфоны имеют встроенные сканеры отпечатка пальца и распознавание лица. Последнее не у всех реализовано хорошо, но что имеем. Наличие таких сканеров позволяет нам шифровать данные, используя уникальный пользовательский ключ - отпечаток пальца или лицо.
В статье разбирается как в Android связать системный KeyStore и биометрическую авторизацию.
Using BiometricPrompt with CryptoObject: How and Why
Практически все современные смартфоны имеют встроенные сканеры отпечатка пальца и распознавание лица. Последнее не у всех реализовано хорошо, но что имеем. Наличие таких сканеров позволяет нам шифровать данные, используя уникальный пользовательский ключ - отпечаток пальца или лицо.
В статье разбирается как в Android связать системный KeyStore и биометрическую авторизацию.
Medium
Using BiometricPrompt with CryptoObject: how and why
Biometrics and Cryptography are not the same thing. They are in fact completely independent of each other:
Есть ли у вас в коде свой класс BaseFragment? BaseActivity/BaseService/BaseBroadcastReceiver тоже считаются
Final Results
84%
Да
7%
Нет
4%
Только в Legacy
1%
Не знаю
3%
Не скажу, ведь это сверхсекретно
#Database #SQLite #NoSQL
Mobile Databases in Android
Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.
Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
Mobile Databases in Android
Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.
Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
Medium
Mobile Databases in Android.
Distribution of power and information among local governments…
#Jetpack #ArchitectureComponents #Lifecycle
Optimizing Android ViewModel with Lifecycle 2.2.0
Обзор последних возможностей библиотек Lifecycle (LiveData, ViewMode, Lifecycle), ktx расширений и лучших практик:
👉 Делегаты ViewModel
👉 Почему не стоит использовать AndroidViewModel
👉 Какие данные не стоит передавать в ViewModel
👉 Сохранение данных ViewModel
Optimizing Android ViewModel with Lifecycle 2.2.0
Обзор последних возможностей библиотек Lifecycle (LiveData, ViewMode, Lifecycle), ktx расширений и лучших практик:
👉 Делегаты ViewModel
👉 Почему не стоит использовать AndroidViewModel
👉 Какие данные не стоит передавать в ViewModel
👉 Сохранение данных ViewModel
Medium
Optimizing Android ViewModel with Lifecycle 2.2.0
Initialization, passing arguments, and saved state
#KotlinVocabulary #Kotlin #AndroidDev
Collections and sequences - Kotlin Vocabulary (5:17)
Google решила что вместо создания нового контента, лучше снять видео на свою старую статью
Collections and sequences - Kotlin Vocabulary (5:17)
Google решила что вместо создания нового контента, лучше снять видео на свою старую статью
Say no to BaseActivity and BaseFragment
Раньше нам приходилось переопределять методы жизненного цикла в Activity и Fragment, создавать базовые классы на их основе, чтобы не дублировать код.
Но Android ушел дальше и вы можете заменить их с помощью
Раньше нам приходилось переопределять методы жизненного цикла в Activity и Fragment, создавать базовые классы на их основе, чтобы не дублировать код.
Но Android ушел дальше и вы можете заменить их с помощью
ActivityLifecycleCallbacks
и FragmentLifecycleCallbacks
. Также можете обратить внимание на Lifecycle
Medium
Say no to BaseActivity and BaseFragment
Many apps face a similar challenge. Where do we put common logic for all of our screens? A base class is often the solution, but it can…
#Kotlin
Вышел Kotlin 1.3.70
Вышла новая версия Kotlin. Не 1.4, но тоже сладко:
👉 Расширена функциональность
👉 Часть функционала в
👉 Аннотации
👉
👉 Добавлена kotlin.collections.ArrayDeque
👉 Collection Builders:
👉 Новые функции для коллекций:
👉 Возможно генерации аннотаций типов в байткода для target 1.8+
👉 Улучшение поддержке *.gradle.kts
👉 Улучшение отладчика
👉 Улучшение Kotlin скриптов и примеры
Вышел Kotlin 1.3.70
Вышла новая версия Kotlin. Не 1.4, но тоже сладко:
👉 Расширена функциональность
StringBuilder
, но на JVM не почувствуете, так как сделали перенос функционала с JVM в Common👉 Часть функционала в
KClass
теперь не требует зависимости kotlin-reflect
👉 Аннотации
Experimental
и UseExperimental
переименованы в OptIn
и RequiresOptIn
👉
Clock
и ClockMark
переименованы в TimeSource
и TimeMark
👉 Добавлена kotlin.collections.ArrayDeque
👉 Collection Builders:
buildList()
, buildSet()
и buildMap()
👉 Новые функции для коллекций:
scan()
, scanReduce()
👉 Возможно генерации аннотаций типов в байткода для target 1.8+
👉 Улучшение поддержке *.gradle.kts
👉 Улучшение отладчика
👉 Улучшение Kotlin скриптов и примеры
#GoogleIO
Google I/O 2020 отменён
В этом году конференции Google I/O не будет. Точнее в привычном формате для горстки избранных, кто смог получить туда билет. В этом раз вся конференция будет только онлайн. Причиной всему китайский коронавирус.
Также было объявлено об отмене конференции Microsoft MVP Summit. Интересно отменят ли Kotlin Conf в сентября?
Как по мне, то даже лучше. Спикер будет говорить прямо в камеру и показ слайдов заточен будет под онлайн формат.
Google I/O 2020 отменён
В этом году конференции Google I/O не будет. Точнее в привычном формате для горстки избранных, кто смог получить туда билет. В этом раз вся конференция будет только онлайн. Причиной всему китайский коронавирус.
Также было объявлено об отмене конференции Microsoft MVP Summit. Интересно отменят ли Kotlin Conf в сентября?
Как по мне, то даже лучше. Спикер будет говорить прямо в камеру и показ слайдов заточен будет под онлайн формат.
#AppBundle #DynamicFeature
Local development and testing with on-demand modules
Возможность загрузки модулей вашего приложения динамически - прекрасная возможность Google Play, но тестировать ее можно было только через публикацию App Bundle через Google Play Console ☹️.
В утилите bundletool 0.13.0 появилась возможность тестировать эту фичу локально. Все подробности в статье
Local development and testing with on-demand modules
Возможность загрузки модулей вашего приложения динамически - прекрасная возможность Google Play, но тестировать ее можно было только через публикацию App Bundle через Google Play Console ☹️.
В утилите bundletool 0.13.0 появилась возможность тестировать эту фичу локально. Все подробности в статье
Medium
Local development and testing with on-demand modules
New releases of Bundletool and the Play Core library made local iteration faster and testing possible with on-demand dynamic feature…
#UI
How to implement skeletons and shimmering effects on layouts and recyclerViews for Android
Вместо того чтобы показывать прогресс посередине экрана или вообще ничего (надеюсь так не делаете) можно рассмотреть модный вариант - skeleton + анимация с эффектом Шиммера.
Это похоже на то что у нас отображается примерный контент, но все данные пустые и заполняются когда загружаются.
В статье разбирается как это реализовать при помощи библиотеки AndroidVeil
How to implement skeletons and shimmering effects on layouts and recyclerViews for Android
Вместо того чтобы показывать прогресс посередине экрана или вообще ничего (надеюсь так не делаете) можно рассмотреть модный вариант - skeleton + анимация с эффектом Шиммера.
Это похоже на то что у нас отображается примерный контент, но все данные пустые и заполняются когда загружаются.
В статье разбирается как это реализовать при помощи библиотеки AndroidVeil
Medium
How to implement veil skeletons and shimmering effects to your layouts and recyclerView on Android.
W e should load much of the data from the network or external/internal storage from devices. It is best if there is no delay to get data…
Think before using BuildConfig.DEBUG
Я уверен, что в большинстве проектах, если не во всех используется константы из
Хорошо это или плохо - вы сможете найти в статье, но уже в название автор спойлерит что не всегда это удачное решение. Суть проста - константа не дает гибкости (
Я уверен, что в большинстве проектах, если не во всех используется константы из
BuildConfig
, а в особенности BuildConfig.DEBUG
. Хорошо это или плохо - вы сможете найти в статье, но уже в название автор спойлерит что не всегда это удачное решение. Суть проста - константа не дает гибкости (
Medium
Think before using BuildConfig.DEBUG
Last week I was working in a feature that syncs data between phone and backend. That sync mechanism is triggered under certain conditions…
#Material #Animation
Implementing Motion
Google показала новую утилиту, которая позволит упростить коммуникацию между разработчиками и дизайнерами для создания прекрасных анимаций - Direct.
Implementing Motion
Google показала новую утилиту, которая позволит упростить коммуникацию между разработчиками и дизайнерами для создания прекрасных анимаций - Direct.
Medium
Implementing Motion
An introduction to Material Design’s new motion system and transition patterns
#Meetup #НижнийНовгород
Материалы с нижегородского Android-митапа компании Avito
Стали доступны записи докладов с Android совместного митапа Avito и GDG Gorky в Нижнем Новгороде, который прошёл 29 февраля.
Я рассказал о том, почему стоит выбрать Kotlin Coroutine для выполнения асинхронных задач в Android.
Жители Львова не смотрите, я еду к вам! В конце марта я выступлю на митапе Kotlin User Group, расскажу этот доклад с добавлением нового контента. Анонс совсем скоро
Материалы с нижегородского Android-митапа компании Avito
Стали доступны записи докладов с Android совместного митапа Avito и GDG Gorky в Нижнем Новгороде, который прошёл 29 февраля.
Я рассказал о том, почему стоит выбрать Kotlin Coroutine для выполнения асинхронных задач в Android.
Жители Львова не смотрите, я еду к вам! В конце марта я выступлю на митапе Kotlin User Group, расскажу этот доклад с добавлением нового контента. Анонс совсем скоро
Хабр
Материалы с нижегородского Android-митапа. MotionLayout, Kotlin Coroutines, CI/CD инфраструктура и дизайн-системы
Всем привет! В прошлую субботу, 29 февраля, прошёл наш первый митап для Android-разработчиков в Нижнем Новгороде. Спикеры выступали с докладами о создании красивых...
#Conference #Минск #Flutter
FlutterConf.by - первая конференция по Flutter в Беларуси
18 апреля 2020 (сб) пройдет первая конференция по Flutter в Беларуси. Мы хотим собрать всех Flutter энтузиастов и компании, которые хотят развивать это направление или уже сделали это и ищут специалистов. В программе вас ждут доклады, воркшоп и возможность пообщаться с коллегами.
Уже среди заявленных спикеров (список пополнится):
👉 Remi Rousselet, автор пакетов Provider and Flutter Hooks
👉 Геннадий Евстратов, Lead первого проекта на Flutter в Яндекс
👉 Александр Денисов, возглавляет Flutter компетенцию в EPAM
До 20 марта есть шанс купить билеты по сниженной цене - 20 рублей!
На тему воркшопа вы можете повлиять - пишите свои пожелания в чате конференции и чтобы вам в целом хотелось увидеть на конференции.
Организаторами выступают Android Broadcast и SUP.
FlutterConf.by - первая конференция по Flutter в Беларуси
18 апреля 2020 (сб) пройдет первая конференция по Flutter в Беларуси. Мы хотим собрать всех Flutter энтузиастов и компании, которые хотят развивать это направление или уже сделали это и ищут специалистов. В программе вас ждут доклады, воркшоп и возможность пообщаться с коллегами.
Уже среди заявленных спикеров (список пополнится):
👉 Remi Rousselet, автор пакетов Provider and Flutter Hooks
👉 Геннадий Евстратов, Lead первого проекта на Flutter в Яндекс
👉 Александр Денисов, возглавляет Flutter компетенцию в EPAM
До 20 марта есть шанс купить билеты по сниженной цене - 20 рублей!
На тему воркшопа вы можете повлиять - пишите свои пожелания в чате конференции и чтобы вам в целом хотелось увидеть на конференции.
Организаторами выступают Android Broadcast и SUP.
Принимайте участие в розыгрыше билетов на FlutterConf.by.
Условия участия простые:
1️⃣ Подписаться на Telegram канал
2️⃣ Подписаться на YouTube канал Android Broadcast (тут появятся записи докладов)
3️⃣ Заполнить анкету участника розыгрыша
Розыгрыш состоится 12 марта в 21.00
Условия участия простые:
1️⃣ Подписаться на Telegram канал
2️⃣ Подписаться на YouTube канал Android Broadcast (тут появятся записи докладов)
3️⃣ Заполнить анкету участника розыгрыша
Розыгрыш состоится 12 марта в 21.00
#ProGuard #R8 #Navigation
How to generate Proguard/R8 rules for Navigation component arguments
Navigation Architecture Component не имеет поддержки работы с ProGuard/R8, точнее параметры, которые вы указываете в XML графе не добавляет в исключения типы, которые указываются как аргументы.
Исправляется это добавлением всех этих типов в
How to generate Proguard/R8 rules for Navigation component arguments
Navigation Architecture Component не имеет поддержки работы с ProGuard/R8, точнее параметры, которые вы указываете в XML графе не добавляет в исключения типы, которые указываются как аргументы.
Исправляется это добавлением всех этих типов в
proguard-rules.pro
вашего проекта, но будет правильнее автоматизировать этот процесс, что и приводится в статье.#OkHttp #Networking
OkHttp Interceptor - Making the most of it
Популярная библиотека для работы по сети по протоколу HTTP OkHttp используется во всех проектах на Android, где есть выход в сеть.
Библиотека имеет одну удобную возможность - перехват любого запроса (Intercepting). С помощью нее можно логировать любой запрос (например, OkHttp Logging Interceptor).
В статье показывается пример как вы сможете использовать мощь Interceptor в своем коде.
OkHttp Interceptor - Making the most of it
Популярная библиотека для работы по сети по протоколу HTTP OkHttp используется во всех проектах на Android, где есть выход в сеть.
Библиотека имеет одну удобную возможность - перехват любого запроса (Intercepting). С помощью нее можно логировать любой запрос (например, OkHttp Logging Interceptor).
В статье показывается пример как вы сможете использовать мощь Interceptor в своем коде.
Outcome School | Get High Paying Tech Job
OkHttp Interceptor
In this blog, we will learn how to work with the OkHttp Interceptors.