Статья поможет вам в первых шагах с Progressive Web Apps (PWA): 👉 Преимущества перед стандартными PWA 👉 Является ли TWA гибридным фреймворком, похожим на Cordova? 👉 Требования Play Store 👉 Способы разработки 👉 Ограничения 👉 Создание первого APK с PWA 👉 Тестирование
Google представила новый формат шифрования - Adiantum, который предназначен для запуска на телефонах и умных устройствах, которые не имеют специального железа/чипа для шифрования на аппаратном уровне.
Необходимость такого формата связана с тем что новый миллиард устройств - это Индия, страны Африки и Южной Америки, где покупаются дешевые устройства, который работают на старых версиях ОС или Android GO + такие устройства в основе используют процессоры на основе архитектуры ARM Cortex-A7, который не имеют аппаратного шифрования.
Google показала ViewPager2. Основные изменения: 👉 Обратной совместимости нет 👉 Базируется на RecyclerView 👉 Реализована поддержка RTL 👉 Поддержка вертикальной ориентации 👉 Модифицируемый контент, когда элементами являются Fragment
Отрисовка текста очень непростая задача и ресурсоёмкая для устройства. О том как работает механизм отрисовки текста в Android, с какие задачи решали разработчики чтобы сделать процесс отрисовки текста быстрым.
В статье раскрываются: 👉 libhwui - движок для отрисовки 2D на Android 3.0 👉 Работа Skia 👉 Изменения в Android 4.4: HarfBuzz, TextLayoutCache 👉 Растеризация и кэширование 👉 Альтернативы растеризации 👉 Кэширование до использования шрифтов 👉 Очистка кэша 👉 Оптимизация
История того как в Uber пришли к тому что им надо разрабатывать Lite версию приложения из-за того что множество устройств, на которых используется приложения - это модели 2015 года и более раненого выпуска
Основные принципы которыми руководствовались разработчики: 👉 Компактный размер 👉 Минимизация расхода трафика и запросов на сервер 👉 Высокая отзывчивость UI (< 300 мс при переходе между экранами) 👉 1 DEX
Какие вопросы пришлось решать: ❓ Поиск компактных библиотек ❓ Выбор архитектуры приложения ❓ ProGuard, ReDex и Android App Bundle ❓ Настройка CI для проверок соблюдения ограничений
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" }
Расширение для ErrorProne, которое будет полезно для авторов библиотек. Оно требует чтобы все ваши классы были явно объявлены как final, либо abstract либо помечены аннотацией @Open, в противном случае код не скомпилируется.
В результате проверки вы увидите ошибку: Bad.java:1: error: [Nopen] Classes should be explicitly marked final, abstract, or @Openclass Bad {}
В Uber разработали расширение для ErrorPhone, который позволяет анализировать Java код во время компиляции на потенциальные NPE и в случае проблем не дает скомпилироваться коду.
Для тех кто пишет на Kotlin и не имеет Java исходников в проекте - библиотека неактуальна.
#Networking #LibUpdates OkHttp 3.13 was released Вышла новая версия библиотеки OkHttp. В обновление реализовано: 👉Минимальная поддерживая версия Android 5.0 и Java 8. Это связано с проблемой поддержки TLS 1.2 на старых версиях Android 👉TLSv1 и TLSv1.1 отключены…
Вышел Gradle 5.2. Релиз не содержит каких-то значимых изменений, из основного: 👉 Новый плагин Java Platform - он позволяет описывать совместимые между собой версии библиотек. Плагин аналогичен функционалу Maven BOM, но только в специфичном формате для Gradle 👉 Сборка нативных проектов при помощи Gradle. В новом релизе рекомендуют использовать новый Gradle C++ плагин 👉 Множество улучшений и багфиксов
Вышла новая версия библиотеки 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 Academy 😎, на которой я расскажу о как делать многопоточными приложения в Android. В программе: 1️⃣ Как работает Handler/Looper механизм в Android 2️⃣RxJava: основы подхода, в чем ее сила и как она может стать болью в вашем проекте 3️⃣Kotlin Coroutines: основы идеи, отличие от блокирующего подхода, основы работы с корутинами, structured concurrency 4️⃣ Подводные камни многопоточной разработки
Проведите вечер понедельника с пользой и приходите в Space (Октябрьская 10Б). Мы начинаем ровно в 19:00! До встречи 👋
Участие бесплатно по предварительной регистрации. Количество билетов ограничено
Когда вы будете писать библиотеку под 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) -> используйте интерфейсы вместо функций
От себя порекомендую перед тем как публиковать библиотеку покажите ее своим коллегам, ребятам из сообщества и постарайтесь максимально привлечь людей, чтобы API вашей библиотеки было изучено конечными пользователям с разными потребностями.
Annotation Processing - бич современной Android разработки, т.к. он увеличивает время сборки значительно и полноценной поддержки инкрементальной компиляции его нет 😞. Jake Wharton разрабатывает решение, которое позволит избавиться от annotation processing для Dagger 2. Однозначное решение более медленное в работе в runtime, но вот время сборки улучшится разы и идеально подходит во время разработки.
Ждем первого релиза и скрестим пальцы 🤞 что Google поддержит эту инициативу и сделает этот проект официальной частью Google Dagger 2
Те кто работает с Web технологиями знают о CSS Flexible Layout, довольно гибкое решение для построения UI. Ребята из Google реализовали это решение для Android FlexboxLayout.
Суть layout сводится к тому что он позволяет довольно гибко выстраивать сетку из View, переносить их на новую строку/столбец если они не вмещаются на экране, задвать веса