#News #AndroidXWeekly
AndroidX Weekly теперь переезжает на Medium и будет выходить на английском, для того чтобы быть доступным более широкой аудитории.
Также рубрика переименовывается в Android Jetpack Weekly.
AndroidX Weekly теперь переезжает на Medium и будет выходить на английском, для того чтобы быть доступным более широкой аудитории.
Также рубрика переименовывается в Android Jetpack Weekly.
#JetpackWeekly
Android Jetpack Weekly #3
Текущая неделя была очень богатой на события в обновление библиотек из Android и появлением новых: Fragment, Arch Components, Chrome Custom Tabs, Activity, RecyclerView и пр.
Android Jetpack Weekly #3
Текущая неделя была очень богатой на события в обновление библиотек из Android и появлением новых: Fragment, Arch Components, Chrome Custom Tabs, Activity, RecyclerView и пр.
Medium
Android Jetpack Weekly #3
Review of the most interesting updates in Android Jetpack libraries August 5–11
#AndroidQ #GestureNavigation
Gesture Navigation: A Backstory
История о том как Google решили сделать навигацию жестами в Android: причины, реализация, стандартизация между устройствами различным и пр.
Gesture Navigation: A Backstory
История о том как Google решили сделать навигацию жестами в Android: причины, реализация, стандартизация между устройствами различным и пр.
Android Developers Blog
Gesture Navigation: A Backstory
One of the biggest changes in Android Q is the introduction of a new gesture navigation. Just to recap - with the new system navigation mode - users can navigate back (left/right edge swipe), to the home screen (swipe up from the bottom), and trigger the…
#Profiling
Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android
Uber представила для профайлинга CPU новую утилиту - Nanoscope, которая лучше чем Android Studio CPU профайлер по заявлением авторов.
Nanoscope Github репозиторий
Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android
Uber представила для профайлинга CPU новую утилиту - Nanoscope, которая лучше чем Android Studio CPU профайлер по заявлением авторов.
Nanoscope Github репозиторий
This media is not supported in your browser
VIEW IN TELEGRAM
Сравнение скорсти работы Nanoscope (слева) и Android Studio CPU профайлер (справа)
#Networking
Вышел OkHttp 4.1.0
Вышла новая версия популярного HTTP клиента. В ней появилось произошли следующие изменения:
👉 Новый модуль
👉 Улучшения в API
👉 Исправление багов
Вышел OkHttp 4.1.0
Вышла новая версия популярного HTTP клиента. В ней появилось произошли следующие изменения:
👉 Новый модуль
okhttp-brotli, реализующий алгоритм компрессии Brotli, обеспечивающий компрессию на 5-20% эффективнее чем gzip👉 Улучшения в API
👉 Исправление багов
Какой CI вы используете?
Final Results
32%
Jenkins
5%
Bitrise
3%
Travis
6%
Circle
11%
TeamCity
18%
Другой
24%
Не использую CI
#CI #Bitrise #CircleCI
Bitrise vs. CircleCI for Android in a head-to-head battle
Сравнение CircleCI и Bitrise командой, которая осуществила миграцию с первого на последний. Рассматриваются такие параметры как:
👉 Цены
👉 Производительность
👉 Удобство использования
👉 Параллельная сборка
👉 UI тесты
👉 Google Play Deploy
Bitrise vs. CircleCI for Android in a head-to-head battle
Сравнение CircleCI и Bitrise командой, которая осуществила миграцию с первого на последний. Рассматриваются такие параметры как:
👉 Цены
👉 Производительность
👉 Удобство использования
👉 Параллельная сборка
👉 UI тесты
👉 Google Play Deploy
Infinum
Bitrise vs. CircleCI for Android in a Head-to-Head Battle
The best CI is the one that engineers waste the least time on so they can focus on development more. Is Bitrise it?
#ArchitectureComponents #ViewModel #BestPractices
When to load data in ViewModels
Советы по загрузке данных в ViewModel:
⛔Вызывать метод для загрузки данных
⛔Запускать загрузку при создании
✅Запускать загрузку данных отложено (lazy)
✅Загружать данные в
✅Передавайте все необходимые данные в
When to load data in ViewModels
Советы по загрузке данных в ViewModel:
⛔Вызывать метод для загрузки данных
⛔Запускать загрузку при создании
ViewModel✅Запускать загрузку данных отложено (lazy)
✅Загружать данные в
LiveData, когда происходит вызов onActive()✅Передавайте все необходимые данные в
ViewModel через конструктор, а не функции или свойстваMedium
When to load data in ViewModels
Recently I had a surprisingly long discussion on an ostensibly easy question. Where in our code should we actually trigger the loading of…
#Image #Kotlin #Coroutines
Introducing Coil: Kotlin-first image loading on Android
Вышла новая библиотека для загрузки изображений, которая полностью реализована на Kotlin.
В чем ее преимущества перед Glide 4? Вот список:
👉Использование возможностей Kotlin
👉В 8 раз меньше строк кода
👉Не используется annotation processing
👉Удобство тестирования
👉 Для асинхронности используются
Библиотека работает на основе современных библиотек: OkHttp, Okio и AndroidX Lifecycle.
Coil еще в разработке и текущая версия 0.6.0 + имеется баги.
Документацию можно найти здесь
Исходный код доступен в репозитории на GitHub
Introducing Coil: Kotlin-first image loading on Android
Вышла новая библиотека для загрузки изображений, которая полностью реализована на Kotlin.
В чем ее преимущества перед Glide 4? Вот список:
👉Использование возможностей Kotlin
👉В 8 раз меньше строк кода
👉Не используется annotation processing
👉Удобство тестирования
👉 Для асинхронности используются
CoroutineБиблиотека работает на основе современных библиотек: OkHttp, Okio и AndroidX Lifecycle.
Coil еще в разработке и текущая версия 0.6.0 + имеется баги.
Документацию можно найти здесь
Исходный код доступен в репозитории на GitHub
Medium
Introducing Coil: Kotlin-first image loading on Android
Coil is a Kotlin-first image loader for Android backed by Coroutines, OkHttp, and AndroidX Lifecycles.
This media is not supported in your browser
VIEW IN TELEGRAM
Одна из фичей библиотеки - Dynamic image sampling. Допустим у вас есть картинка размера 500x500 и в начале вы отображает ее в списке с размером 100x100. Картинка с более мелким размером будет закэширована в оперативной памяти. Затем вы хотите открыть эту же картинку в оригинальном качестве и снова запускаете ее загрузку.
Библиотека может определить что исходная картинка уже есть в памяти в более мелком разрешение и использовать ее как временный стаб до загрузки необходимого изображения.
Библиотека может определить что исходная картинка уже есть в памяти в более мелком разрешение и использовать ее как временный стаб до загрузки необходимого изображения.
#Kotlin #CodeQuality
Вышел первый стабильный релиз Detekt 1.0.0
Вышла первая стабильная версия статического анализатора Kotlin кода.
В релизе (по сравнению с последней RC 16) были исправлены баги, обновлены зависимости, произошли улучшения в Gradle плагине.
Вышел первый стабильный релиз Detekt 1.0.0
Вышла первая стабильная версия статического анализатора Kotlin кода.
В релизе (по сравнению с последней RC 16) были исправлены баги, обновлены зависимости, произошли улучшения в Gradle плагине.
#SQLite #ArchitectureComponents #Room
Packing the Room: Pre-populate your database with this one method
Сейчас в разработке находится следующая версия (2.2) популярного ORM решения для Android - Room. В этой версии появляется функция предзаполнения, которая позволяет вам заполнить БД контентом из файла.
Это позволит избегать парсинга данных из файлов для заполнения данными и ускорить старт приложения.
Packing the Room: Pre-populate your database with this one method
Сейчас в разработке находится следующая версия (2.2) популярного ORM решения для Android - Room. В этой версии появляется функция предзаполнения, которая позволяет вам заполнить БД контентом из файла.
Это позволит избегать парсинга данных из файлов для заполнения данными и ускорить старт приложения.
Medium
Packing the Room: pre-populate your database with this one method
Let’s say that you want to pre-populate your database with data either packaged in your APK or downloaded from server. Whether you wanted…
#BestPractices
10 Tips for Android Library Developers
Вы разрабатываете Android библиотеку? Думаете начать? Если да - то вам могут полезны советы, приведенные в статье, которые упростят работу конечным пользователям вашего творения.
10 Tips for Android Library Developers
Вы разрабатываете Android библиотеку? Думаете начать? Если да - то вам могут полезны советы, приведенные в статье, которые упростят работу конечным пользователям вашего творения.
Medium
10 Tips for Android Library Developers
If you’re distributing a library or just maintaining some library modules in your project, here’re some tips that may be useful to you.
Пишите ли вы какие-то библиотеки (Android или нет неважно)?
Anonymous Poll
15%
Да, open-source
28%
Да, внутренние в компании
7%
Раньше писал
50%
Нет
#Animation #Tooling
Experimenting with motion in Android
Как сделать красивую анимацию на Android? В этом поможет коллаборация с вашим дизайнером и выбор правильного инструмента. Все надо делать в векторе. В статье обозревается:
1️⃣ Sketch + Android Studio
2️⃣ Shapeshifter
3️⃣ AfterEffects + Lottie
Experimenting with motion in Android
Как сделать красивую анимацию на Android? В этом поможет коллаборация с вашим дизайнером и выбор правильного инструмента. Все надо делать в векторе. В статье обозревается:
1️⃣ Sketch + Android Studio
2️⃣ Shapeshifter
3️⃣ AfterEffects + Lottie
Medium
Experimenting with motion in Android
This year Juhani Lehtimäki and I are attending a few conferences giving a talk on the topic “Meaningful animations and how to implement…
#RecyclerView
OneAdapter
Столкнулся с библиотекой, которая упрощает работу с
👉 Больше не нужно работать с
👉 Отображение каждого типа элементов организовано по модульной архитектуре, что позволяет эффективно повторно использовать логику и использовать Dependency Injection
👉 Поддержка
👉 Поддержка пагинации
👉 Поддержка отображения UI для пустого списка
👉 Поддержка выбора одного или множества элементов
👉 Поддержка кликов на элементах списка
И все это приправлено простой использования
OneAdapter
Столкнулся с библиотекой, которая упрощает работу с
RecyclerView (да знаю что их много, но почему-то именно эта вызвала интерес). Основные преимущества:👉 Больше не нужно работать с
RecyclerView.Adapter👉 Отображение каждого типа элементов организовано по модульной архитектуре, что позволяет эффективно повторно использовать логику и использовать Dependency Injection
👉 Поддержка
DiffUtil в более простом варианте👉 Поддержка пагинации
👉 Поддержка отображения UI для пустого списка
👉 Поддержка выбора одного или множества элементов
👉 Поддержка кликов на элементах списка
И все это приправлено простой использования
GitHub
GitHub - idanatz/OneAdapter: A Viewholderless Adapter for RecyclerView, who supports builtin diffing, states (paging, empty...)…
A Viewholderless Adapter for RecyclerView, who supports builtin diffing, states (paging, empty...), events (clicking, swiping...), and more. - idanatz/OneAdapter
Android Broadcast
Какой CI вы используете?
Как и ожидалось - победил Jenkins. (хотя тружно назвать победой когда второе место занимает "Не использую CI") Печально ли? Я считаю что да. Jenkins сильно отстает от своих конкурентов на рынке, побеждая только бесплатностью и наличием кучи плагинов на любой чих. Плагины Jenkins - тоже не самое лучшее, так как контроля их качеста не осуществляется.
В мобильной практике EPAM не так давно мы отказались от использования Jenkins в пользу Bitrise. Лучше ли он? Сказать пока не готов, так как я пока с ним еще осваиваюсь. Однозначно настраивать его проще, так как все визуализировано.
P.S. Та четверь людей что не используют CI, отпишите, пожалуйста, в @android_broadcast_discussions почему вы так делаете. Если же причины нет - упростите свою жизнь и автоматизируйте задачи.
В мобильной практике EPAM не так давно мы отказались от использования Jenkins в пользу Bitrise. Лучше ли он? Сказать пока не готов, так как я пока с ним еще осваиваюсь. Однозначно настраивать его проще, так как все визуализировано.
P.S. Та четверь людей что не используют CI, отпишите, пожалуйста, в @android_broadcast_discussions почему вы так делаете. Если же причины нет - упростите свою жизнь и автоматизируйте задачи.
#Gradle
Вышел Gradle 5.6.0
Вышла новая версия системы сборки Gradle в которой произошли следующие изменения:
⚡Более быстрая компиляция Groovy (добавлены эксперементальные compilation avoidance и инкрементальная компиляции)
🛠 Поддержка `test fixtures` для Java проектов. Теперь добавленный отдельный source set для настройки ваших тестов, который также можно подключить и к другим модулям в проекте
📝 Объявление версии всех плагинов в одном месте -
⚡Исправлена скорость сборки на Windows при использование Java Library плагина
⚡Теперь PMD поддерживает инкрементальную компиляцию
➕Улучшения в Worker API
➕Множество мелких улучшений и исправлений багов
Вышел Gradle 5.6.0
Вышла новая версия системы сборки Gradle в которой произошли следующие изменения:
⚡Более быстрая компиляция Groovy (добавлены эксперементальные compilation avoidance и инкрементальная компиляции)
🛠 Поддержка `test fixtures` для Java проектов. Теперь добавленный отдельный source set для настройки ваших тестов, который также можно подключить и к другим модулям в проекте
📝 Объявление версии всех плагинов в одном месте -
settings.gradle⚡Исправлена скорость сборки на Windows при использование Java Library плагина
⚡Теперь PMD поддерживает инкрементальную компиляцию
➕Улучшения в Worker API
➕Множество мелких улучшений и исправлений багов
#ArchitectureComponent #WorkManager #GooglePlayServices
Вышел WorkManager 2.2.0
WorkManager добрался до очередной стабильной версии. В ней произошло только одно изменение (по отношению к 2.1.0) - был добавлен новый артифакт
Это поможет более эффективно работать тем кто поддерживает старые версии API и выкладывает приложение в Google Play.
Вышел WorkManager 2.2.0
WorkManager добрался до очередной стабильной версии. В ней произошло только одно изменение (по отношению к 2.1.0) - был добавлен новый артифакт
androidx.work:work-gcm:2.2.0, в котором реализована поддержка использования GCMNetworkManager в качестве исполнителя задач на Android API Level <= 22. Это поможет более эффективно работать тем кто поддерживает старые версии API и выкладывает приложение в Google Play.