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

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

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

  • Android Broadcast

    #PWA

    Play Store теперь принимает прогрессивные веб-приложения (PWA)

    Статья поможет вам в первых шагах с Progressive Web Apps (PWA):
    👉 Преимущества перед стандартными PWA
    👉 Является ли TWA гибридным фреймворком, похожим на Cordova?
    👉 Требования Play Store
    👉 Способы разработки
    👉 Ограничения
    👉 Создание первого APK с PWA
    👉 Тестирование
  • Android Broadcast

    #Room #Coroutines

    Room 🔗 Coroutines

    Room 2.1 добавил поддержку Kotlin Coroutines. Теперь Room DAO можно описывать следующим образом:

    @Daointerface
    UsersDao {
        @Query("SELECT * FROM users")
    suspend fun getUsers(): List<User>

        @Insert
    suspend fun insertUser(user: User)

        @Update
    suspend fun updateUser(user: User)

        @Delete
    suspend fun deleteUser(user: User)
    }

    В статье описаются детали как механизм работает под капотом
  • Android Broadcast

    #Security #Encryption

    Introducing Adiantum: Encryption for the Next Billion Users

    Google представила новый формат шифрования - Adiantum, который предназначен для запуска на телефонах и умных устройствах, которые не имеют специального железа/чипа для шифрования на аппаратном уровне.

    Необходимость такого формата связана с тем что новый миллиард устройств - это Индия, страны Африки и Южной Америки, где покупаются дешевые устройства, который работают на старых версиях ОС или Android GO + такие устройства в основе используют процессоры на основе архитектуры ARM Cortex-A7, который не имеют аппаратного шифрования.
  • Реклама

  • Android Broadcast

    #AndroidX #ViewPager #RecyclerView

    ViewPager2 Alpha 1

    Google показала ViewPager2. Основные изменения:
    👉 Обратной совместимости нет
    👉 Базируется на RecyclerView
    👉 Реализована поддержка RTL
    👉 Поддержка вертикальной ориентации
    👉 Модифицируемый контент, когда элементами являются Fragment

    Ждем стабильной версий
  • Android Broadcast

    #UI #HowItWorks #Text

    Android’s Font Renderer - Efficient text rendering with OpenGL ES

    Отрисовка текста очень непростая задача и ресурсоёмкая для устройства. О том как работает механизм отрисовки текста в Android, с какие задачи решали разработчики чтобы сделать процесс отрисовки текста быстрым.

    В статье раскрываются:
    👉 libhwui - движок для отрисовки 2D на Android 3.0
    👉 Работа Skia
    👉 Изменения в Android 4.4: HarfBuzz, TextLayoutCache
    👉 Растеризация и кэширование
    👉 Альтернативы растеризации
    👉 Кэширование до использования шрифтов
    👉 Очистка кэша
    👉 Оптимизация
  • Android Broadcast

    #Lite #Architecture #Optimizations

    Expanding Access: Engineering Uber Lite

    История того как в Uber пришли к тому что им надо разрабатывать Lite версию приложения из-за того что множество устройств, на которых используется приложения - это модели 2015 года и более раненого выпуска

    Основные принципы которыми руководствовались разработчики:
    👉 Компактный размер
    👉 Минимизация расхода трафика и запросов на сервер
    👉 Высокая отзывчивость UI (< 300 мс при переходе между экранами)
    👉 1 DEX

    Какие вопросы пришлось решать:
    Поиск компактных библиотек
    Выбор архитектуры приложения
    ProGuard, ReDex и Android App Bundle
    Настройка CI для проверок соблюдения ограничений
  • Android Broadcast

    #Coroutines #Library

    Coroutines Operators

    RxJava очень популярное решение для работы с асинхронными задачами в Android разработке. Kotlin все активнее вытесняет Java в Android проектах и разработчики стараются втягивать нативные для зыки библиотеки, примерами которых является реализация корутин.

    Для того чтобы миграция проходила проще ребята из EPAM сделали библиотеку, которая портирует основные операторы и позволяет упростить процесс миграции. Библиотека опубликована в версии 0.9.0 и авторам нужно ваше ревью и обратная связь перед релизом.

    Пример использования библиотеки:
    val firstName = async { "James" }
    val secondName = async { "Kirk" }
    zip(first, second) { first: String, second: String ->
    "$first $second" // Результат = "James Kirk"
    }
  • Android Broadcast

    #EffectiveJava #ErrorProne #CodeQuality

    Nope'n! from Jake Wharton

    Расширение для ErrorProne, которое будет полезно для авторов библиотек. Оно требует чтобы все ваши классы были явно объявлены как final, либо abstract либо помечены аннотацией @Open, в противном случае код не скомпилируется.

    В результате проверки вы увидите ошибку:
    Bad.java:1: error: [Nopen] Classes should be explicitly marked final, abstract, or @Openclass Bad {}
  • Android Broadcast

    #NullSafety #ErrorProne #CodeQuality

    Engineering NullAway, Uber’s Open Source Tool for Detecting NullPointerExceptions on Android

    В Uber разработали расширение для ErrorPhone, который позволяет анализировать Java код во время компиляции на потенциальные NPE и в случае проблем не дает скомпилироваться коду.

    Для тех кто пишет на Kotlin и не имеет Java исходников в проекте - библиотека неактуальна.

    NullAway Github
  • Android Broadcast

    ​#Networking #LibUpdates OkHttp 3.13 was released Вышла новая версия библиотеки OkHttp. В обновление реализовано: 👉Минимальная поддерживая версия Android 5.0 и Java 8. Это связано с проблемой поддержки TLS 1.2 на старых версиях Android 👉TLSv1 и TLSv1.1 отключены…
  • Android Broadcast

    #Gradle

    Gradle 5.2 Release Notes

    Вышел Gradle 5.2. Релиз не содержит каких-то значимых изменений, из основного:
    👉 Новый плагин Java Platform - он позволяет описывать совместимые между собой версии библиотек. Плагин аналогичен функционалу Maven BOM, но только в специфичном формате для Gradle
    👉 Сборка нативных проектов при помощи Gradle. В новом релизе рекомендуют использовать новый Gradle C++ плагин
    👉 Множество улучшений и багфиксов
  • Android Broadcast

    #Networking #LibUpdates

    OkHttp 3.13 was released

    Вышла новая версия библиотеки OkHttp. В обновление реализовано:
    👉Минимальная поддерживая версия Android 5.0 и Java 8. Это связано с проблемой поддержки TLS 1.2 на старых версиях Android
    👉TLSv1 и TLSv1.1 отключены по умолчанию
    👉Обновлено Okio до версии 1.17.3. Для тех кто использует Kotlin friendly Okio - обновитесь до версии 2.2.2 и выше
    👉 Различный багфикс и улучшения API
  • Android Broadcast

    #AndroidAcademy #Concurrency #Coroutines #Rx

    Android Academy Minsk #2: Threading

    Сегодня пройдет встреча Android Academy 😎, на которой я расскажу о как делать многопоточными приложения в Android. В программе:
    1️⃣ Как работает Handler/Looper механизм в Android
    2️⃣ RxJava: основы подхода, в чем ее сила и как она может стать болью в вашем проекте
    3️⃣ Kotlin Coroutines: основы идеи, отличие от блокирующего подхода, основы работы с корутинами, structured concurrency
    4️⃣ Подводные камни многопоточной разработки

    Проведите вечер понедельника с пользой и приходите в Space (Октябрьская 10Б). Мы начинаем ровно в 19:00! До встречи 👋

    Участие бесплатно по предварительной регистрации. Количество билетов ограничено
  • Android Broadcast

    #Kotlin #Architecture

    Tips For Writing a Library in Kotlin

    Когда вы будете писать библиотеку под Android, какой язык вы выберете: Java или Kotlin? Если конечный проект не использует Kotlin для него это может быть overhead по размеру. В свою очередь, разработка на Kotlin позволит вам использовать Multiplatform Project (MPP) и писать библиотеку, которая может использоваться на различных платформах: JVM, JS и Native!

    Общие советы для написания библиотек:
    👉 Делайте API компактным
    👉 Делайте API абстрактным и чистым
    👉 Используйте интерфейсы
    👉 Модуляризация библиотеки

    Для Kotlin библиотек:
    👉 Добавляйте companion object, даже если он пустой
    👉 Extension функции помогают делать более гибкий API
    👉 Используйте reified в функциях

    И наконец для MPP:
    👉 Используйте Property вместо Getter-ов
    👉 Скрывайте Kotlin API, которая не подходит для Java проектов
    👉 Скрывайте Java API, который генерируется Kotlin (например с модификатором internal)
    👉 Расширяемость
    👉 Используйте Multiplatform аннотации
    👉 Проблема Multiplatform SAM (Single Abstract Method) -> используйте интерфейсы вместо функций
  • Android Broadcast

    От себя порекомендую перед тем как публиковать библиотеку покажите ее своим коллегам, ребятам из сообщества и постарайтесь максимально привлечь людей, чтобы API вашей библиотеки было изучено конечными пользователям с разными потребностями.
  • Реклама

  • Android Broadcast

    #Dagger #AnnotationProcessing

    Dagger 2 Reflect

    Annotation Processing - бич современной Android разработки, т.к. он увеличивает время сборки значительно и полноценной поддержки инкрементальной компиляции его нет 😞. Jake Wharton разрабатывает решение, которое позволит избавиться от annotation processing для Dagger 2. Однозначное решение более медленное в работе в runtime, но вот время сборки улучшится разы и идеально подходит во время разработки.

    Ждем первого релиза и скрестим пальцы 🤞 что Google поддержит эту инициативу и сделает этот проект официальной частью Google Dagger 2
  • Android Broadcast

    Пример реализации FlexbotLayoutManager для RecyclerView
  • Android Broadcast

    #UI #Layout #FlexBox

    Google FlexboxLayout for Android

    Те кто работает с Web технологиями знают о CSS Flexible Layout, довольно гибкое решение для построения UI. Ребята из Google реализовали это решение для Android FlexboxLayout.

    Суть layout сводится к тому что он позволяет довольно гибко выстраивать сетку из View, переносить их на новую строку/столбец если они не вмещаются на экране, задвать веса

    Поиграться с layout можно с помощью примера Flexbox Playground