#Jetpack #Camera
Вышла первая Beta версия CameraX
Новая библиотека в семействе Jetpack - CameraX, выходит на финишную прямую и скоро можно ждать стабильного релиза.
Вышла первая Beta версия CameraX
Новая библиотека в семействе Jetpack - CameraX, выходит на финишную прямую и скоро можно ждать стабильного релиза.
Android Developers
CameraX | Jetpack | Android Developers
Закончился монтаж выпуска подкаста с командой Kotlin Mobile Multiplatform из JetBrains. Остаются последние приготовления и уже завтра вы сможете его послушать, или отложить немного позже и послушать в понедельник под фон работе.
Версия на YouTube будет позже, так как уже сижу в аэропорту и еду в Нижний Новгород, чтобы рассказать почему Kotlin Coroutines - лучший выбор для Android приложений на сегодня.
Версия на YouTube будет позже, так как уже сижу в аэропорту и еду в Нижний Новгород, чтобы рассказать почему Kotlin Coroutines - лучший выбор для Android приложений на сегодня.
#Android #Java10 #JakeWharton
Wormhole
Модификатор байткода, который добавляет будущие API в
Wormhole
Модификатор байткода, который добавляет будущие API в
android.jar
, которые могут работать на все версиях Android с использованием D8 и R8GitHub
GitHub - JakeWharton/wormhole: A time-traveling bytecode rewriter which adds future APIs to android.jar
A time-traveling bytecode rewriter which adds future APIs to android.jar - JakeWharton/wormhole
#Java
Ужасы Set.removeAll
Статья из разряда - "На библиотеки надейся, но сам не плошай". Выяснилось, что
Точно место где происходит ошибка
Ужасы Set.removeAll
Статья из разряда - "На библиотеки надейся, но сам не плошай". Выяснилось, что
Set.removeAll(list)
в определенных случаях может работать за O(N²) 😮Точно место где происходит ошибка
Хабр
Ужасы Set.removeAll
Мы привыкли, что стандартные коллекции в JDK сделаны достаточно хорошо и ведут себя интуитивно-понятно. Но так ли это на самом деле? Вчера Роман Елизаров elizaro...
#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-разработчиков в Нижнем Новгороде. Спикеры выступали с докладами о создании красивых...