#Arhitecture #Kotlin #Multiplatform
MVIKotlin
Знакомы с библиотекой MVIDroid? Так вот ее больше нет. Она не умерла, а переродилась в MVIKotlin:
👉 Стала мультиплатформенной на основе Kotlin MPP
👉 Поддержка Android, JVM, JavaScript, iOS (Arm64 и X64), Linux X64
👉 Библиотека независимо от любого подхода и может работать на основе Reaktive или Kotlin Coroutines
👉 Поддержка многопоточности на Kotlin/Native
👉 Готовый подключаемый UI для Android и iOS
Одной из крутых фичей библиотеки является "Time Travel" - все изменения состояния сохраняются и можно переключаться между ними внутри приложения, с помощью библиотеки расширения. Демо "Time Travel"
MVIKotlin
Знакомы с библиотекой MVIDroid? Так вот ее больше нет. Она не умерла, а переродилась в MVIKotlin:
👉 Стала мультиплатформенной на основе Kotlin MPP
👉 Поддержка Android, JVM, JavaScript, iOS (Arm64 и X64), Linux X64
👉 Библиотека независимо от любого подхода и может работать на основе Reaktive или Kotlin Coroutines
👉 Поддержка многопоточности на Kotlin/Native
👉 Готовый подключаемый UI для Android и iOS
Одной из крутых фичей библиотеки является "Time Travel" - все изменения состояния сохраняются и можно переключаться между ними внутри приложения, с помощью библиотеки расширения. Демо "Time Travel"
GitHub
GitHub - arkivanov/MVIKotlin: Extendable MVI framework for Kotlin Multiplatform with powerful debugging tools (logging and time…
Extendable MVI framework for Kotlin Multiplatform with powerful debugging tools (logging and time travel) - arkivanov/MVIKotlin
#AndroidAcademy #Minsk #Testing
Android Academy Minsk Advanced Topic #4 - Testing
Все об этом говорят, но мало кто это делает в проектах - пишут тесты. Почему? Нет времени, спешка, считают что это не приносит много пользы.
На следующей лекции в Android Academy Minsk вы сможете узнать зачем писать тесты, как это делать правильно и какую пользу это вам принесёт.
Android Academy Minsk Advanced Topic #4 - Testing
Все об этом говорят, но мало кто это делает в проектах - пишут тесты. Почему? Нет времени, спешка, считают что это не приносит много пользы.
На следующей лекции в Android Academy Minsk вы сможете узнать зачем писать тесты, как это делать правильно и какую пользу это вам принесёт.
#Java
Что нового будет в Java 14
Пока большинство Android разработчиков забыли про Java в ней идет большая жизнь. Уже на подходе релиз 14ой версии. В ней нас ожидает:
👉 Pattern matching
👉 Record
👉 switch expression
👉 Text blocks
и много всего другого о чем можно почитать в статье
Что нового будет в Java 14
Пока большинство Android разработчиков забыли про Java в ней идет большая жизнь. Уже на подходе релиз 14ой версии. В ней нас ожидает:
👉 Pattern matching
👉 Record
👉 switch expression
👉 Text blocks
и много всего другого о чем можно почитать в статье
Хабр
Alconost, Alexandria - Локализуем на 70 языков, делаем видеоролики для IT / Статьи
382 статьи от авторов компании Alconost
#R8 #D8
When using enums and R8…
Chet Haase делиться с нами какую пользу может оказать R8 и убрать лишний JVM байткод, который генерируется Kotlin, когда вы используете его для компиляции кода на примере enum.
When using enums and R8…
Chet Haase делиться с нами какую пользу может оказать R8 и убрать лишний JVM байткод, который генерируется Kotlin, когда вы используете его для компиляции кода на примере enum.
Medium
When using enums and R8…
Kotlin Vocabulary — switching on enums, and R8 optimization
#RecyclerView
Android RecyclerView StickyHeader without external library
Инструкция как можно сделать Sticky Header в RecyclerView без использования сторонних библиотек на основе ItemDecoration
Android RecyclerView StickyHeader without external library
Инструкция как можно сделать Sticky Header в RecyclerView без использования сторонних библиотек на основе ItemDecoration
DEV Community
Android RecyclerView StickyHeader without external library
There are several occasions when we need to implement sticky header for some list of data displayed i...
#Meetup #Lviv #Kotlin
KLUG meetUp#13
28 марта во Львове пройдет митап Kotlin Lviv User Group на котором вас ждет 4 доклада! В том числе я расскажу о том, почему стоит выбрать Kotlin Coroutines как основной подход для асинхронных операций на Android.
Следите за обновлениями и до встречи!
KLUG meetUp#13
28 марта во Львове пройдет митап Kotlin Lviv User Group на котором вас ждет 4 доклада! В том числе я расскажу о том, почему стоит выбрать Kotlin Coroutines как основной подход для асинхронных операций на Android.
Следите за обновлениями и до встречи!
#Coroutines
Cancellation and Exceptions in Coroutines: "Coroutines: First things first" (Часть 1/3)
⏱️5 минут
Очень важной частью Coroutine является Structured Concurrency, которая позволяет избегать выполнения ненужной работы.
В первой части статьи раскрываются основные концепты:
👉 CoroutineScope
👉 Job
👉 CoroutineContext:
👉 Жизненный цикл Job
👉 Родительский
Cancellation and Exceptions in Coroutines: "Coroutines: First things first" (Часть 1/3)
⏱️5 минут
Очень важной частью Coroutine является Structured Concurrency, которая позволяет избегать выполнения ненужной работы.
В первой части статьи раскрываются основные концепты:
👉 CoroutineScope
👉 Job
👉 CoroutineContext:
Job
, CoroutineDispatcher
, CoroutineName
, CoroutineExceptionHandler
👉 Жизненный цикл Job
👉 Родительский
CoroutineContext
Medium
Coroutines: first things first
Cancellation and Exceptions in Coroutines (Part 1)
#Coroutines
Cancellation and Exceptions in Coroutines: "Cancellation in coroutines" (Часть 2/3)
⏱️8 минут
Во второй части серии статей рассматриваются особенности работы отмены выполнения Coroutine и как сделать это правильно
Cancellation and Exceptions in Coroutines: "Cancellation in coroutines" (Часть 2/3)
⏱️8 минут
Во второй части серии статей рассматриваются особенности работы отмены выполнения Coroutine и как сделать это правильно
Medium
Cancellation in coroutines
Cancellation and Exceptions in Coroutines (Part 2)
#Coroutines
Cancellation and Exceptions in Coroutines: "Exceptions in Coroutines" (Часть 3/3)
⏱️7 минут
В заключительной части серии статей рассматривается как Coroutine реагируют на Exception, произошедшие во время их выполнения, и как правильно обрабатывать их.
В статье вы найдете:
👉
👉 Обработка исключений
👉
Cancellation and Exceptions in Coroutines: "Exceptions in Coroutines" (Часть 3/3)
⏱️7 минут
В заключительной части серии статей рассматривается как Coroutine реагируют на Exception, произошедшие во время их выполнения, и как правильно обрабатывать их.
В статье вы найдете:
👉
Job
или SupervisorJob
👉 Обработка исключений
👉
CoroutineExceptionHandler
Medium
Exceptions in coroutines
Cancellation and Exceptions in Coroutines (Part 3) — Gotta catch ’em all!
#Coroutines
"Coroutines! Gotta catch 'em all!" Florina Muntenescu & Manuel Vivo
⏱️36:30
Видео версия с Kotlin Conf 2019
"Coroutines! Gotta catch 'em all!" Florina Muntenescu & Manuel Vivo
⏱️36:30
Видео версия с Kotlin Conf 2019
YouTube
KotlinConf 2019: Coroutines! Gotta catch 'em all! by Florina Muntenescu & Manuel Vivo
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
You've added #coroutines to your app and everything is fine while your users are on the happy path. But what happens if you cancel a coroutine, you get a timeout or other…
You've added #coroutines to your app and everything is fine while your users are on the happy path. But what happens if you cancel a coroutine, you get a timeout or other…
#Conference #Flutter #Minsk
Состоялся розыгрыш билетов на FlutterConf.by. Поздравляю Павел З. и Виталий Я. с победой.
Одновременно с этой радостной новостью я вынужден сказать, что конференция перенесена. Мы заботимся о здоровье всех участников и не хотим подвергать никого риску. Мы держим руку на пульсе всех событий и если ситуация улучшится, то мы оповестим вас о новостях.
Состоялся розыгрыш билетов на FlutterConf.by. Поздравляю Павел З. и Виталий Я. с победой.
Одновременно с этой радостной новостью я вынужден сказать, что конференция перенесена. Мы заботимся о здоровье всех участников и не хотим подвергать никого риску. Мы держим руку на пульсе всех событий и если ситуация улучшится, то мы оповестим вас о новостях.
Android Broadcast
В какие магазины приложений выкладываете вы свои приложения?
(можно выбрать несколько вариантов)
(можно выбрать несколько вариантов)
Ожидаемо победил Google Play. Huawei смогла пробиться на второое место из магазинов, но не смогла победить способ распространения вне магазинов. Присоединяйтесь чтобы поделиться своим опытом к @android_broadcast_talks
Какие карты вы используете в Android приложениях ?
Final Results
65%
Google Maps
9%
Mapbox
7%
Open Street Maps
20%
Yandex Карты
2%
MapMe
1%
Huawei Map Kit
6%
Другие карты
10%
Не использую карты
12%
Смотрю ответы
#oEmbed
Open video links like Telegram do with oEmbed and Kotlin
Хотите чтобы в вашем приложение был полноценный предпросмотр видео по ссылке? Это легко можно сделать с помощью oEmbed.
В статье автор показывает как это сделать для YouTube, а также библиотека, которая сможет сделать все это сразу для вас для самых популярных видео сервисов.
Open video links like Telegram do with oEmbed and Kotlin
Хотите чтобы в вашем приложение был полноценный предпросмотр видео по ссылке? Это легко можно сделать с помощью oEmbed.
В статье автор показывает как это сделать для YouTube, а также библиотека, которая сможет сделать все это сразу для вас для самых популярных видео сервисов.
Medium
Open video links like Telegram do with oEmbed and Kotlin
In the life of every messenger application there comes a time when more and more users are asking to add support for video from a variety…
#Kotlin #Android11
Handling Nullability in Android 11 and Beyond
Google улучшает Android SDK для поддержки nullability в Kotlin, добавляя аннотации
Также часть методов, аннотированных
Handling Nullability in Android 11 and Beyond
Google улучшает Android SDK для поддержки nullability в Kotlin, добавляя аннотации
@Nullable
/@NonNull
и @RecentlyNullable
/@RecentlyNonNull
.Также часть методов, аннотированных
@RecentlyXXX
, перестали быть Recenlty. Это значит, что теперь вместо предупреждения, будет происходить ошибка.Android Developers Blog
Handling Nullability in Android 11 and Beyond
Last May at Google I/O, we announced that Android was going Kotlin first, and now over 60% of the top 1000 Android apps use Kotlin. One feature we love about Kotlin is that nullability is baked into its type system — when declaring a reference, you say upfront…
#Firebase #Benchmark
Jetpack Benchmark on Firebase Test Lab
Библиотека Jetpack Benchmark позволяет вам сделать тест производительности UI вашего приложения. Эффективно интегрировать эту библиотеку на CI, чтобы определять регрессии в скорости работы приложения до мержа в основную ветку.
В статье разбирается как запускать тесты производительности на Jenkins, используя Firebase Test Lab.
Jetpack Benchmark on Firebase Test Lab
Библиотека Jetpack Benchmark позволяет вам сделать тест производительности UI вашего приложения. Эффективно интегрировать эту библиотеку на CI, чтобы определять регрессии в скорости работы приложения до мержа в основную ветку.
В статье разбирается как запускать тесты производительности на Jenkins, используя Firebase Test Lab.
#Dagger #DependencyInjection
Вышел Dagger 2.27
Новая версия популярного DI фреймворка привнесла следующий улучшения:
👉 Экспериментальный формат сообщений об ошибках (подробнее ниже)
👉 Более оптимальная генерация кода в зависимости от того как в класс происходит inject зависимостей
👉 Поддержка конструкторов с layout id из AndroidX
👉 Убрали использование Guava API, которое недоступно для использования в Android
👉 Улучшена работа с Kotlin
👉 Исправление багов
Экспериментальный формат сообщений об ошибках
Позволяет улучшить читабельность сообщений об ошибке. Этот формат в будущем станет стандартным.
При включение нового режима поменяется:
👉 Сокращенные имена всех классов
👉 Ошибки для каждого компонента отображаются как одна
👉 Добавление цветов к тэгам ошибок для визуального разделения ошибок
👉 Уменьшен объем информации в некоторых сообщениях
Для включения надо использовать
Вышел Dagger 2.27
Новая версия популярного DI фреймворка привнесла следующий улучшения:
👉 Экспериментальный формат сообщений об ошибках (подробнее ниже)
👉 Более оптимальная генерация кода в зависимости от того как в класс происходит inject зависимостей
👉 Поддержка конструкторов с layout id из AndroidX
👉 Убрали использование Guava API, которое недоступно для использования в Android
👉 Улучшена работа с Kotlin
👉 Исправление багов
Экспериментальный формат сообщений об ошибках
Позволяет улучшить читабельность сообщений об ошибке. Этот формат в будущем станет стандартным.
При включение нового режима поменяется:
👉 Сокращенные имена всех классов
👉 Ошибки для каждого компонента отображаются как одна
👉 Добавление цветов к тэгам ошибок для визуального разделения ошибок
👉 Уменьшен объем информации в некоторых сообщениях
Для включения надо использовать
-Adagger.experimentalDaggerErrorMessages=enabled
GitHub
Release Dagger 2.27 · google/dagger
What's New
Fix #955: No longer generate MembersInjectors for types without local injection sites. (20f6442)
Fix #1414: Allow multiple scoped component dependencies (113c498)
Fix #1734: Add sup...
Fix #955: No longer generate MembersInjectors for types without local injection sites. (20f6442)
Fix #1414: Allow multiple scoped component dependencies (113c498)
Fix #1734: Add sup...
#Podcast #Mobius
Android Broadcast Podcast #9 - "Как сделать крутую конференцию"
Получить новые знания, послушать доклады от крутых специалистов, пообщаться с коллегами по цеху и провести классно время - это основные причины по которым мы посещаем конференции. Но что стоит за тем чтобы сделать крупнейшую конференцию по мобильным технологиях в России?
Позвал команду Mobius, которая поделилась как происходит организация конференции. Зачем члены программного комитета тратят много времени вне работы на это и как это помогает им в их профессиональной работе, а главное как вступить в ПК и помочь сделать Mobius.
Гости:
Оксана Мирошниченко - Программный координатор Mobius
Евгений Кателла - Член ПК Mobius, Android
Алексей Кудрявцев - Член ПК Mobius, iOS
Купить билет со скидкой по промокоду "AndroidBC2020pc"
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
Android Broadcast Podcast #9 - "Как сделать крутую конференцию"
Получить новые знания, послушать доклады от крутых специалистов, пообщаться с коллегами по цеху и провести классно время - это основные причины по которым мы посещаем конференции. Но что стоит за тем чтобы сделать крупнейшую конференцию по мобильным технологиях в России?
Позвал команду Mobius, которая поделилась как происходит организация конференции. Зачем члены программного комитета тратят много времени вне работы на это и как это помогает им в их профессиональной работе, а главное как вступить в ПК и помочь сделать Mobius.
Гости:
Оксана Мирошниченко - Программный координатор Mobius
Евгений Кателла - Член ПК Mobius, Android
Алексей Кудрявцев - Член ПК Mobius, iOS
Купить билет со скидкой по промокоду "AndroidBC2020pc"
Спасибо Александру Марцинкевичу за помощь в подготовке выпуска
#Google #Maps
Announcing Google Maps Android Utility Library v1.0
Вышла первая стабильная версия утилит для Google Maps на Android. Библиотека добавляет множество новых возможностей:
👉 Marker clustering - отображения множество pin-ов
👉 Heat maps
👉 Icon Generator - отображение текста на картах
👉 Poly decoding and encoding
👉 Spherical geometry
👉 Поддержка отображения KML
👉 Отображение и стилизация GeoJSON
Announcing Google Maps Android Utility Library v1.0
Вышла первая стабильная версия утилит для Google Maps на Android. Библиотека добавляет множество новых возможностей:
👉 Marker clustering - отображения множество pin-ов
👉 Heat maps
👉 Icon Generator - отображение текста на картах
👉 Poly decoding and encoding
👉 Spherical geometry
👉 Поддержка отображения KML
👉 Отображение и стилизация GeoJSON
Google Maps Platform
Blog: Announcing Maps Android Utility Library v1.0 – Google Maps Platform
Maps SDK for Android Utility Library 1.0