Обложка канала

Android Broadcast. Страница 170

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

  • Android Broadcast

    #Gson

    Kson - генерация Gson TypeAdapter & Factory для Kotlin data классов

    Большинство современных решения для сериализации/десериализации JSON используют рефлексию, которая несете в себе низкую производительность и невозможность оптимизации кода при компиляции. Kson - библиотека, которая была создана с целью чтобы избавить вас от этого.
  • Android Broadcast

    #AnnotationProcessor #kapt

    Making incremental KAPT work

    Все мы хотим быструю сборку проектов, но современная Android разработка переполнена различными библиотеками с процессорами аннотаций: Dagger, Glide, AndroidX, Room, Butterknife и пр. Их проблема заключается в том, что каждое изменение кода приводит к повторной генерации кода всеми процессорами.

    Эту проблему решили в Gradle 4.7, добавив поддержку инкрементальной компиляции в процессорах аннотаций. К сожалению, из коробки это не работает и требует усилий разработчиков библиотек.

    В Kotlin 1.3.31 в kapt добавили поддержку инкрементальной компиляции. Руководство по настройке вы найдете в статье.

    Замечание: Gradle модуль будет работать с инкрементальным процесингом аннотаций только если все процессоры, использующиеся в модуле, поддерживают эту возможность.
  • Android Broadcast

  • Реклама

  • Android Broadcast

    #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 как всегда слишком мягкие 😔
  • Android Broadcast

    #AndroidX

    AndroidX Versions

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

  • Android Broadcast

  • Android Broadcast

    #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 запросы
    👉 просматривать данные, редактировать и экспортировать
    👉 визуализировать БД в виде диаграммы
  • Android Broadcast

    #Coroutines

    Using the synchronized keyword in coroutines?

    Coroutine-ы отличаются по своему механизму работы от потоков, соответственно требует отличные от Java механизмы для решения стандартных задач, например synchronized или ReentrantLock. На замену им рекомендуется использовать Channel или Mutex.
  • Android Broadcast

    Почему только прокачка кодинга не сделает из тебя лучшего разработчика

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

    #Architecture #DynamicFeature #Modularization

    Patterns for accessing code from Dynamic Feature Modules

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

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

    В статье рассматривается как реализовать эти подходы (все кроме последнего) и даются советы по модуляризации вашего приложения.
  • Android Broadcast

    #Test #Coroutines

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

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

  • Android Broadcast

    #News

    Опрос Android Broadcast

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

    #Performance

    Android app startup time: why we care

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

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

  • Android Broadcast

    #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)
    }
    }
  • Android Broadcast

    #Kotlin

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

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

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

    #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