#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.
#Architecture #BestPractices
The “Real” Repository Pattern in Android
Repository - это довольно популярный шаблон проектирования, позволяющий инкапсулировать получение/хранение данных из различных источников: сервер, БД, хранилища на устройстве и пр.
Шаблон проектирования - это рекомендация и общее описание компонентов и их отношений между ними, поэтому зачастую разработчики делают реализацию по разному и не всегда хорошо.
Наиболее популярные ошибки, которые допускают пользователи:
👉
👉 Различные несвязанные между собой DataSource используются одни и те же DTO
👉 Repository реализуется по на основе endpoint-ов, а не на основе модели
👉 Repository кэширует всю модель, даже те поля, которые всегда должны быть свежими
👉 DataSource используется более чем одним Repository
В статье разбираются эти лучшие практики по реализации и почему им стоит следовать
The “Real” Repository Pattern in Android
Repository - это довольно популярный шаблон проектирования, позволяющий инкапсулировать получение/хранение данных из различных источников: сервер, БД, хранилища на устройстве и пр.
Шаблон проектирования - это рекомендация и общее описание компонентов и их отношений между ними, поэтому зачастую разработчики делают реализацию по разному и не всегда хорошо.
Наиболее популярные ошибки, которые допускают пользователи:
👉
Repository
возвращает DTO (модели источников данных, которые используются источниками данных в нем) а не модели Domain слоя👉 Различные несвязанные между собой DataSource используются одни и те же DTO
👉 Repository реализуется по на основе endpoint-ов, а не на основе модели
👉 Repository кэширует всю модель, даже те поля, которые всегда должны быть свежими
👉 DataSource используется более чем одним Repository
В статье разбираются эти лучшие практики по реализации и почему им стоит следовать
Medium
The “Real” Repository Pattern in Android
Over the years I’ve seen many implementations of the repository pattern, yet I think most of them are wrong and not beneficial.
#Testing
Android UI Testing Frameworks
Сравнение различных тестовых фреймворков для UI на Android. В ходе сравнения производится сравнения реализации одного тестового сценария на разных фреймворках:
👉 Appium
👉 Espresso
👉 UI Automator
Android UI Testing Frameworks
Сравнение различных тестовых фреймворков для UI на Android. В ходе сравнения производится сравнения реализации одного тестового сценария на разных фреймворках:
👉 Appium
👉 Espresso
👉 UI Automator
Medium
Android UI Testing Frameworks
Testing is an essential part of the software development process and product release. Often, there is a situation when there are two…
#Java
Jabel - unlock Javac 12+ syntax when targeting Java 8
Все еще боретесь за права Java и не признаёте Kotlin? Пока Android команда молчит о добавление поддержке возможностей из свежих версий Java, проект Jabel может вас порадовать. Автор занимается тем чтобы использовать такие новинки Java 12+ на Java 9 как:
👉 var
👉 Type inference
👉 switch expression
👉 много другого менее интересного
Jabel - unlock Javac 12+ syntax when targeting Java 8
Все еще боретесь за права Java и не признаёте Kotlin? Пока Android команда молчит о добавление поддержке возможностей из свежих версий Java, проект Jabel может вас порадовать. Автор занимается тем чтобы использовать такие новинки Java 12+ на Java 9 как:
👉 var
👉 Type inference
👉 switch expression
👉 много другого менее интересного
GitHub
GitHub - bsideup/jabel: Jabel - unlock Javac 9+ syntax when targeting Java 8
Jabel - unlock Javac 9+ syntax when targeting Java 8 - bsideup/jabel