#Widget #Calendar
CalendarView - хорошо кастомизируемый виджет календаря, основанный на RecyclerView.
Возможности библиотеки:
👉 Выбор одного значения или диапазона
👉 Режим недели или месяца
👉 Ограничение дат
👉 Кастомизация внешнего вида ячеек
👉 Кастомизация внешнего вида календаря
👉 Любой день в качестве первого дня недели
👉 Горизонтальный или вертикальный скролл
👉 Добавление headers/footers к любому месяцу
👉 Простой скролл к дате и месяцу
👉 Возможность использования любых кастомизаций RecyclerView
Библиотека работает на основе ThreeTenABP для возможности работы с Java 8 Date Time на старых версиях Android SDK
CalendarView - хорошо кастомизируемый виджет календаря, основанный на RecyclerView.
Возможности библиотеки:
👉 Выбор одного значения или диапазона
👉 Режим недели или месяца
👉 Ограничение дат
👉 Кастомизация внешнего вида ячеек
👉 Кастомизация внешнего вида календаря
👉 Любой день в качестве первого дня недели
👉 Горизонтальный или вертикальный скролл
👉 Добавление headers/footers к любому месяцу
👉 Простой скролл к дате и месяцу
👉 Возможность использования любых кастомизаций RecyclerView
Библиотека работает на основе ThreeTenABP для возможности работы с Java 8 Date Time на старых версиях Android SDK
#ArchitectureComponents #LiveData
Unit-testing LiveData and other common observability problems
Важно помнить, что
В статье рассматриваются ошибки и рекомендации по использованию
👉 Используйте
👉 Используйте InstantTaskExecutorRule для предотвращения проблем с многопоточностью при работе с
👉 Частая ошибка - используйте один и тот же объект
Unit-testing LiveData and other common observability problems
Важно помнить, что
LiveData
посылает обновления, только в том случае, когда у нее есть хотя бы один подписчик (observer). Это может привести к ошибкам в ваших тестах (успешно их прохождению или нет).В статье рассматриваются ошибки и рекомендации по использованию
LiveData
в тестах:👉 Используйте
LiveData.getOrAwaitValue(timeout: Long)
для получения результата из LiveData
в unit тестах👉 Используйте InstantTaskExecutorRule для предотвращения проблем с многопоточностью при работе с
LiveData
👉 Частая ошибка - используйте один и тот же объект
ViewModel
, если он шарится между несколькими Fragment
Medium
Unit-testing LiveData and other common observability problems
Next time you’re scratching your head looking at a perfectly fine unit test with LiveDatas that should be passing, or at an empty screen…
#Coroutines
Corbind
Помните RxBinding? Так вот её аналог, только построенный на Kotlin Coroutine-ах. Библиотека позволяет осуществлять биндинги к самым популярным виджетам из Android SDK и AndroidX
Corbind
Помните RxBinding? Так вот её аналог, только построенный на Kotlin Coroutine-ах. Библиотека позволяет осуществлять биндинги к самым популярным виджетам из Android SDK и AndroidX
Corbind
поддерживает Channel и Flow.#AndroidQ
Вышел Android 10
Вот и состоялся выход новой стабильной версии ОС Android. Что это привносит? Давайте разбираться:
👉 Теперь нет букв в названиях Android и сладостей. Только цифры. Скатились до iOS 😥
👉 Поддержка складываемых устройств (кстати оба из них не стали выходить 😁)
👉 Поддержка сетей 5G
👉 Темная тема
👉 LiveCaption - теперь можно сделать субтитры для всего что воспроизводится в системе
👉 Новая система навигации жестами, которую Google пытается стандартизировать кросс производителей устройств
👉 Большой упор на приватность данных
👉 Улучшение работы с камерой
👉 Улучшение виртуальной машины ART
👉 Поддержка быстрых обновлений безопасностей и патчей без необходимости перезагрузки
Вышел Android 10
Вот и состоялся выход новой стабильной версии ОС Android. Что это привносит? Давайте разбираться:
👉 Теперь нет букв в названиях Android и сладостей. Только цифры. Скатились до iOS 😥
👉 Поддержка складываемых устройств (кстати оба из них не стали выходить 😁)
👉 Поддержка сетей 5G
👉 Темная тема
👉 LiveCaption - теперь можно сделать субтитры для всего что воспроизводится в системе
👉 Новая система навигации жестами, которую Google пытается стандартизировать кросс производителей устройств
👉 Большой упор на приватность данных
👉 Улучшение работы с камерой
👉 Улучшение виртуальной машины ART
👉 Поддержка быстрых обновлений безопасностей и патчей без необходимости перезагрузки
Android Developers Blog
Welcoming Android 10!
Posted by Stephanie Cuthbertson, Senior Director of Product Management, Android After more than a year of development and months of te...
Вы уже адаптировали приложения для Android 10 ?
Final Results
9%
Да
20%
Сейчас начнём
16%
Начнём когда Google прижмёт
29%
Пока не крешится - забиваем
26%
А надо?
#Coroutines #DynamicProxy
A little reflection about coroutines
Как протестировать код, который использует
A little reflection about coroutines
Как протестировать код, который использует
Retrofit
интерфейс? Использовать моки или HttpMocker. Есть более эффективный способ - самому реализовать свою Proxy
для Retrofit
со стабами. Подробности того как это сделать когда вы используете Coroutine или нет вы найдёте в статьеMedium
A little reflection about coroutines
How Kotlin coroutines can make java reflection a bit more complicated.
#Gradle #Performance
Gradle Remote Build Cache Misses
Gradle дало большую гибкость в сборке приложений. Но за все приходится платить и цена - это скорость сборки. С ростом проектом она увеличивается. Разработчики решили эту проблему, начав разбивать проекты на модули, где каждый из них собирается отдельно и может более эффективно кэшироваться.
Кэширование сборки тоже не самый эффективный механизм Gradle, но есть часть Gradle Enterprise - Remote Build Cache, которая позволяет шарить кэш между различными машинами. Больше подробностей о этой функции в статье от SoundСloud
Gradle Remote Build Cache Misses
Gradle дало большую гибкость в сборке приложений. Но за все приходится платить и цена - это скорость сборки. С ростом проектом она увеличивается. Разработчики решили эту проблему, начав разбивать проекты на модули, где каждый из них собирается отдельно и может более эффективно кэшироваться.
Кэширование сборки тоже не самый эффективный механизм Gradle, но есть часть Gradle Enterprise - Remote Build Cache, которая позволяет шарить кэш между различными машинами. Больше подробностей о этой функции в статье от SoundСloud
Всем привет. На этой неделе я не смог выдерживать ритм по новостям + мало чего интересно + все мои силы между старой и новой работой идут на то, чтобы сделать Kotlin/Everywhere Minsk, которая состоится 7 сентября. Были 3 напряжённых месяца подготовки и остается совсем чуть-чуть. Регистрируйтесь чтобы получить видео, посетить мероприятие или помочь в качестве волонтёра.
Со следующей неделе я вернусь к привычному ритму посту новостей. Спасибо за понимание
Со следующей неделе я вернусь к привычному ритму посту новостей. Спасибо за понимание
gdg-minsk.timepad.ru
KOTLIN/Everywhere Minsk / События на TimePad.ru
7 сентября в Минске состоится первая бесплатная конференция для тех, кто изучает и использует в работе язык Kotlin.
#Tablet #Android10
Expand your app beyond mobile to reach Android users at large
В Google неожиданно решили вспомнить, что у них есть поддержка больших экранов, а вендоры производят планшеты и Chrome OS имеет поддержку Android приложений и там очень эффективно работает планшетный дизайн.
Expand your app beyond mobile to reach Android users at large
В Google неожиданно решили вспомнить, что у них есть поддержка больших экранов, а вендоры производят планшеты и Chrome OS имеет поддержку Android приложений и там очень эффективно работает планшетный дизайн.
Android Developers Blog
Expand your app beyond mobile to reach Android users at large
Posted by Sameer Samat, Vice President, Platforms & Ecosystems From day one, we designed Android to be a flexible, adaptive platform...
Рассылка Now in Android
Google стала делать рассылку с новостями в мире Android, но зачем они если есть Android Broadcast 😁
Google стала делать рассылку с новостями в мире Android, но зачем они если есть Android Broadcast 😁
#Tools #Performance
Android third party tools to increase the performance of your app
Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
Android third party tools to increase the performance of your app
Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
#UI
Contour
Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉
Представляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
Contour
Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉
Создавать View через код
- мучительно и больноПредставляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
GitHub
GitHub - cashapp/contour: Layouts with lambdas 😎
Layouts with lambdas 😎. Contribute to cashapp/contour development by creating an account on GitHub.
#AndroidX #JetpackWeekly
Android Jetpack Weekly #7
Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
Android Jetpack Weekly #7
Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
Medium
Android Jetpack Weekly #7
Review of the most interesting updates in Android Jetpack libraries
#AndroidAcademy #Minsk
Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о
Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о
Context
и Activity
#Android10 #Security
Project Mainline в Android 10
Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.
Google стала решать эту проблему -
В статье разбираются детали работы «Project Mainline»
Project Mainline в Android 10
Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.
Google стала решать эту проблему -
«Project Treble»
в Android 8 и потом «Project Mainline»
в Android 10. Первый разделил ядро ОС на слои, отделив работу с железом в отдельный слой, а второй - позволяет обновлять наиболее критичные компоненты без необходимости перезагрузки устройства и обновления прошивки, аналогично приложениям Google Play.В статье разбираются детали работы «Project Mainline»
Хабр
Project Mainline в Android 10
Вчера вышло очередное обновление ОС для мобильных устройств от Google. Одним из главных нововведений Android 10 стал «Project Mainline». Попробую разобраться что это, для чего и как работает. В...
#ArchitectureComponents #LiveData #Location
Android Tutorial On Location Update With LiveData
Гайд по интеграции Fused Location Provider и
Android Tutorial On Location Update With LiveData
Гайд по интеграции Fused Location Provider и
LiveData
, чтобы получать обновления геопозиции красиво с использованием Architecture ComponentsMedium
Android Tutorial On Location Update With LiveData
In this tutorial, I will introduce you to how to implement continuous location update with Android architecture components and Google…
#Kotlin
Unit, Nothing, Any (and null)
Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы
Unit, Nothing, Any (and null)
Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы
Any
, Nothing
и Unit
. За что эти типы отвечают, в каких ситуациях применяются и чем отличаются - вы найдете в статье.Medium
[Kotlin Pearls 7] Unit, Nothing, Any (and null)
How to take advantage of Kotlin special Types
Хотитет узнать больше интересного о системе типов в Kotlin? Рекомендую почитать статью от Marcin Moskala "The beauty of Kotlin typing system"
Medium
The beauty of Kotlin typing system
Many amazing Kotlin features are just a result of its amazingly designed type system. See how all those pieces perfectly fit together.