Android Broadcast
14.2K subscribers
3.49K photos
335 videos
11 files
5.87K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#AndroidQ

Вышла Android Q Beta 4 и финальное API

Вышла новая Beta Android Q в которой финализировали SDK и вы можете уже скачать 29 версию в Android Studio, а также Build Tools и Platform Tools. Также открыта публикация приложений с compileSdk и/или targetSdk 29. Дальше нас ждёт исправление багов в работе системы и SDK.

Владельцы Pixel всех поколений уже могут накатить новую бетку и похвастаться, а главное рассказать стабильно ли там все работает.
#Network

Вышел Retrofit 2.6.0

Что нового:
🎉 Поддержка корутин
@GET("users/{id}")
suspend fun user(@Path("id") long id): User

👉 Новая аннотация @Tag, позволяющая задать tag для OkHttp Request. Это можно использовать чтобы идентифицировать запрос
👉Новая аннотация @SkipCallbackExecutor, которая выполняет callback на том же executor, на котором происходит HTTP запрос
👉Поддержка типов header-ок в @HeaderMap
👉Исправление багов
#AndroidX

Обновление AndroidX

Вышло свежая порция обновление библиотек AndroidX. Из интересного:

Стабильная версия Collection 1.1.0 + ktx
👉Улучшена производительность и API Android коллекций

Первая beta Fragment 1.1.0
👉 Создание собственной FragmentFactory, которая будет использоваться для создание Fragment. Это позволяет избавиться от рефлексии при создании Fragment и начать передавать параметры в конструктор.
👉 Тестирование Fragment в изоляции с помощью FragmentScenario
👉 Больше nullability аннотаций в API
👉 Kotlin делегаты by viewModels() и by activityViewModels() для получения ViewModel
👉 Поддержка задания View для Fragment с помощью передачи его в конструктор
👉Креши, выбрасываемые FragmentManager, теперь содержат информацию о Fragment
👉Возможность задать максимальное состояние в Lifecycle для выполнения транзакции FragmentManager

Первая beta Activity 1.0.0
👉 Возможность задать OnBackPressedCallback в Activity
👉 Новые удобные Kotlin API
👉 Задание content view Activity с помощью аннотации @ContentView

Первая beta Preference 1.1.0
👉 Возможность динамического изменения описания Preference с помощью SummaryProvider
👉 Обновлена SeekBarPreference: соответствие Material Design и возможность обновление во время перемещения ползунка
👉 Возможность задания доступности для копирования содержимого с помощью Preference.setCopyingEnabled()
👉 Используйте PreferenceFragmentCompat вместо PreferenceFragment. Аналогично правило теперь действует и для Preference
👉 Кастомизациия EditText с помощью EditTextPreference.OnBindEditTextListener
#Kotlin

JetBrains запустила Kotlin Hands-On

Kotlin Hands-On - уроки в рамках которых вы можете различные технологии по Kotlin. Сейчас доступно 2 урока: "Introduction to Coroutines and Channels" и "Introduction to Kotlin/Native".

Kotlin Hands-On очень похоже на Google Codelabs и понравится любителям данного сервиса для знакомства с технологиями.
#Dagger #ArchitectureComponents #ViewModel

Assisted ViewModel

Как много усилий вы тратите на то чтобы написать ViewModelProvider.Factory для ViewModel из Architecture Components? Процесс не самый удобный, особенно когда в конструктор вы передаете только зависимости из графа . Dagger?

Я с коллегами решили написать библиотеку, которая избавит нас от этой тягомотины и поможет убрать необходимость реализации ViewModelProvider.Factory.

Пример использования:
class SampleViewModel @AssistedViewModel constructor(
repository:Repository
): ViewModel


class SampleFragment: Fragment {

private lateinit var viewModel: SampleViewModel

@Inject
// AssistedViewModelFactory is generated
fun init(factory: AssistedViewModelFactory) {
viewModel =
ViewModelProviders.of(this, factory)
.get(SampleViewModel::class.java)
}
}
#Performance

Android app startup time: why we care

Почему важна производительность мобильных приложений? На мой взгляд причины следующие:
👉 Улучшение пользовательского опыта использования приложения
👉 Более высокое расположение в Google Play
👉 Возможность работы на более слабых устройствах, что расширяет аудиторию

В статье разбирается из чего состоит запуск приложения, как измерять скорость и оптимизировать её
#News

Опрос Android Broadcast

Чтобы сделать контент лучше на канале, очень важно иметь обратную связь от аудитории и пониманить какой контент ей интересене. Уделите 5 минут чтобы ответить на несколько вопросов
#Test #Coroutines

Android Testing Codelab теперь содержит информацию про корутины

Теперь в официальной codelab по тестированию на Android можно найти следующую информацию:
👉 Как создать настроить тест корутин
👉 Когда использовать runBlockingTest
👉 Как тестировать Architecture Components
👉 Как использовать TestCoroutineDispatcher для приостановки выполнения корутин
#Architecture #DynamicFeature #Modularization

Patterns for accessing code from Dynamic Feature Modules

Модуляризация и динамическая доставка модулей - это самый трендовые направления в архитектуре Android направлений. Проблема динамических модулей в том, что код основного приложения не знает о коде в динамическом модуле.

Решение проблемы в лоб - использование рефлексии. Но это решение влияет на производительность, особенно на старых устройствах. Какие решения можно использовать помимо рефлексии:
👉 ServiceLoader
👉 Интеграция с Dagger 2 или Koin 2
👉 Выделение интерфейса для взаимодействия c динамическим модулем из основного путем создания общего модуля. В основной модуль будет подключаться как compileOnly зависимость, а в динамический - implementation.

В статье рассматривается как реализовать эти подходы (все кроме последнего) и даются советы по модуляризации вашего приложения.
Android Broadcast pinned «#News Опрос Android Broadcast Чтобы сделать контент лучше на канале, очень важно иметь обратную связь от аудитории и пониманить какой контент ей интересене. Уделите 5 минут чтобы ответить на несколько вопросов»
Почему только прокачка кодинга не сделает из тебя лучшего разработчика

Как быть крутым разработчиком? Многие программисты задавались таким вопросом. Я также всегда задавался этим вопросом, но мнение мое меняется с течением времени. В начале я делал большой упор на технические навыки, но со временем мои взгляды менялись и начали смещаться приоритеты. Статья очень подробно отразила их. В ней вы найдете навыки, которые важно иметь хорошему программисту, а главное почему.
#Coroutines

Using the synchronized keyword in coroutines?

Coroutine-ы отличаются по своему механизму работы от потоков, соответственно требует отличные от Java механизмы для решения стандартных задач, например synchronized или ReentrantLock. На замену им рекомендуется использовать Channel или Mutex.
Какую библиотеку для работы с JSON вы используете?
Final Results
81%
GSON
5%
Jackson
12%
Moshi
1%
JSON Java (org.json)
0%
Другое решение
1%
Не работаю с JSON
#SQLite #Tools

Android SQLite debug tools

Разбор инструментов для дебага SQLite:
👉 SQLScout (платная) - плагин для Android Studio и Intellij IDEA
👉 Facebook Stetho - дебаг Android приложений из Chrome консоли
👉 AppSpector (платная) - сервис для удаленного дебага Android и iOS
👉 SQLiteFlow (macOS, платная) - SQLite редактор

Самый богатая по возможностям из этих утилит - SQLScout. Она строится вокруг работы с SQLite БД и имеет следующие возможности:
👉 поддержка Room
👉 просматривать схему БД
👉 выполнять SQL запросы
👉 просматривать данные, редактировать и экспортировать
👉 визуализировать БД в виде диаграммы
#Gradle

Gradle Dependency: api vs implementation

Визуализация отличий между подключением зависимостей в Gradle через implementation и api
#AndroidX

AndroidX Versions

Наконец-то Google упростила способ понять какую версию библиотеки из AndroidX сейчас можно использовать: доступна таблица всех библиотек из AndroidX с текущей стабильной, rc, beta и alpha версиями.
#AndroidStudio #Emulator

Moving Android Studio and Android Emulator to 64-bit versions

Google убивает 32-битные версии Android Studio и эмулятора. В первую очередь это затронет пользователей Windows.

Android Studio 3.6 и Android Emulator 28.0.5 станут последними версиями, содержащие x32 варианты. До конца 2020 года их можно будет скачать, а после ссылки на них будут удалены с официального сайта

Google как всегда слишком мягкие 😔