Audio
Обещали — делимся.
Устраивайтесь поудобнее, наливайте чашечку кофе и слушайте запись нашего баттла «Compose vs XML» в формате подкаста.
Остались вопросы? Пиши в комментариях, с удовольствием продолжим дискуссию.
Таймлайны:
00:00 — Приветствие.
00:39 — Пара слов о ведущих.
01:30 — О формате эфира.
02:23 — Вводная о Сompose и XML.
03:45 — Производительность.
14:43 — Простота освоения и использования.
22:03 — Размер APK.
24:08 — Cтабильность.
32:20 — Мультиплатформенность.
37:17 — Ответы на вопросы из чата.
40:59 — Сustom Views.
45:30 — Организация файлов в проекте.
51:12 — Анимации.
53:30 — Фрагменты.
56:40 — Навигация.
1:01:28 — Итог. Надо ли отказываться от XML?
1:06:51 — Ответы на вопросы из чата.
Устраивайтесь поудобнее, наливайте чашечку кофе и слушайте запись нашего баттла «Compose vs XML» в формате подкаста.
Остались вопросы? Пиши в комментариях, с удовольствием продолжим дискуссию.
Таймлайны:
00:00 — Приветствие.
00:39 — Пара слов о ведущих.
01:30 — О формате эфира.
02:23 — Вводная о Сompose и XML.
03:45 — Производительность.
14:43 — Простота освоения и использования.
22:03 — Размер APK.
24:08 — Cтабильность.
32:20 — Мультиплатформенность.
37:17 — Ответы на вопросы из чата.
40:59 — Сustom Views.
45:30 — Организация файлов в проекте.
51:12 — Анимации.
53:30 — Фрагменты.
56:40 — Навигация.
1:01:28 — Итог. Надо ли отказываться от XML?
1:06:51 — Ответы на вопросы из чата.
🔥8👍2
Зачем разработчики разделяют сборки для разных сторов
🔹 Предыстория
В середине 2019 года США запретили распространять сервисы Google (GMS) на Huawei-устройствах. Тогда Huawei создал аналогичное ПО — Huawei Mobile Services (HMS), которое дублирует многие функции GMS.
В HMS появился магазин приложений AppGallery, сервис доставки пушей Push Kit, сервис аналитики Analytics Kit и другие аналогичные по функциональности библиотеки.
У разработчиков определенно добавилось работы: при реализации многих фич теперь необходимо было проверять, GMS или HMS используются на устройстве. Поэтому на девайсах в качестве сторонних зависимостей использовались библиотеки и от Google, и от Huawei.
Так длилось пару лет, но весной 2022 года разработчики приложений начали массово получать запреты на обновления в Play Store и предупреждения, что приложение может быть удалено. Причиной этого было использование Huawei-сервисов внутри APK: Google счёл это небезопасным.
🔹 Решение: разделение сборок с помощью ProductFlavor
Наверное, многие знакомы с понятием buildTypes — это различные настройки сборки APK для дебага и релиза.
Но Flavors — немного другая вещь: она позволяет настроить сборки для сторов с включением разных фич, использования различных ресурсов. Например, фичи для платных и бесплатных пользователей, локализованные картинки для разных стран.
💬 Было бы вам интересно прочитать про детальную настройку различных типов сборок? Пишите в комментариях
🔹 Предыстория
В середине 2019 года США запретили распространять сервисы Google (GMS) на Huawei-устройствах. Тогда Huawei создал аналогичное ПО — Huawei Mobile Services (HMS), которое дублирует многие функции GMS.
В HMS появился магазин приложений AppGallery, сервис доставки пушей Push Kit, сервис аналитики Analytics Kit и другие аналогичные по функциональности библиотеки.
У разработчиков определенно добавилось работы: при реализации многих фич теперь необходимо было проверять, GMS или HMS используются на устройстве. Поэтому на девайсах в качестве сторонних зависимостей использовались библиотеки и от Google, и от Huawei.
Так длилось пару лет, но весной 2022 года разработчики приложений начали массово получать запреты на обновления в Play Store и предупреждения, что приложение может быть удалено. Причиной этого было использование Huawei-сервисов внутри APK: Google счёл это небезопасным.
🔹 Решение: разделение сборок с помощью ProductFlavor
Наверное, многие знакомы с понятием buildTypes — это различные настройки сборки APK для дебага и релиза.
Но Flavors — немного другая вещь: она позволяет настроить сборки для сторов с включением разных фич, использования различных ресурсов. Например, фичи для платных и бесплатных пользователей, локализованные картинки для разных стран.
💬 Было бы вам интересно прочитать про детальную настройку различных типов сборок? Пишите в комментариях
🔥5👍3
Полезные статьи по настройке Flavors в проекте
👉 Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
👉 ProductFlavor: документация
👉 Integrate HMS and GMS in a single project using product flavors
👉 Android Build Types and Product Flavors
👉 Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
👉 ProductFlavor: документация
👉 Integrate HMS and GMS in a single project using product flavors
👉 Android Build Types and Product Flavors
👍5
Как Android работает в автомобилях
Есть две системы: Android Auto и Android Automotive OS.
Android Auto
Система для автомобилей и встраиваемых магнитол. Телефон подключается к совместимому автомобилю, и водитель может взаимодействовать с приложениями телефона с помощью экрана автомобиля и голосовых команд.
Android Auto обеспечивает простой способ навигации, прослушивания мультимедиа и сообщений и многого другого.
Android Automotive OS
Android Automotive OS (AAOS) — информационно-развлекательная платформа, встроенная в автомобиль автопроизводителем.
Водители могут загружать совместимые мультимедийные приложения прямо в машину — без телефона. Для взаимодействия используется интерфейс, разработанный для экрана автомобиля.
Какая между ними разница
Android Auto и Android Automotive OS не стоит путать между собой 🙅
Если говорить упрощённо:
👉 С Android Auto пользователь шарит экран на монитор в машине через подключение телефона напрямую к компьютеру авто.
👉Android Automotive OS — отдельная ОС, которая работает без участия смартфона. Android Automotive OS относительно свеж, машины на рынке с его поддержкой начали появляться пару лет назад.
Полезные ссылки
🔹 UX/UI гайдлайны
🔹 Документация
🔹 Клевый доклад
🔹 Тестирование
🔹 Как 2ГИС делал свое приложение
🔹 Кейс с примером внедрения поддержки авто в существующее приложение
Есть две системы: Android Auto и Android Automotive OS.
Android Auto
Система для автомобилей и встраиваемых магнитол. Телефон подключается к совместимому автомобилю, и водитель может взаимодействовать с приложениями телефона с помощью экрана автомобиля и голосовых команд.
Android Auto обеспечивает простой способ навигации, прослушивания мультимедиа и сообщений и многого другого.
Android Automotive OS
Android Automotive OS (AAOS) — информационно-развлекательная платформа, встроенная в автомобиль автопроизводителем.
Водители могут загружать совместимые мультимедийные приложения прямо в машину — без телефона. Для взаимодействия используется интерфейс, разработанный для экрана автомобиля.
Какая между ними разница
Android Auto и Android Automotive OS не стоит путать между собой 🙅
Если говорить упрощённо:
👉 С Android Auto пользователь шарит экран на монитор в машине через подключение телефона напрямую к компьютеру авто.
👉Android Automotive OS — отдельная ОС, которая работает без участия смартфона. Android Automotive OS относительно свеж, машины на рынке с его поддержкой начали появляться пару лет назад.
Полезные ссылки
🔹 UX/UI гайдлайны
🔹 Документация
🔹 Клевый доклад
🔹 Тестирование
🔹 Как 2ГИС делал свое приложение
🔹 Кейс с примером внедрения поддержки авто в существующее приложение
👍7🔥4👏2
Windows Subsystem for Android (WSA)
В 2021 году компания Microsoft выпустила новую операционную систему Windows 11. Одна из главных фич — запуск Android-приложений внутри системы безо всяких эмуляторов. Рассказываем на карточках, как это работает.
Полезные ссылки:
🔹 Официальная документация Microsoft
🔹 Способы установки WSA
🔹 Установка GApps
🔹 Подключение по ADB и установка сторонних APK вне сторов
В 2021 году компания Microsoft выпустила новую операционную систему Windows 11. Одна из главных фич — запуск Android-приложений внутри системы безо всяких эмуляторов. Рассказываем на карточках, как это работает.
Полезные ссылки:
🔹 Официальная документация Microsoft
🔹 Способы установки WSA
🔹 Установка GApps
🔹 Подключение по ADB и установка сторонних APK вне сторов
🔥5👍3👏1
Давай познакомимся поближе. Мы хотим развивать канал и понимать, какой контент больше подойдёт аудитории. Пожалуйста, ответь на пару вопросов.
1. Какой у тебя грейд?
1. Какой у тебя грейд?
Anonymous Poll
47%
Trainee
26%
Junior
20%
Middle
7%
Senior
2. Какой контент тебе интересен? Можешь выбрать несколько вариантов.
Anonymous Poll
81%
Лучшие практики Android-разработки Surf
60%
Кейсы и статьи
61%
Подборки инструментов и решений
24%
Обзоры апдейтов и новостей
35%
Ошибки и факапы
31%
Open-source решения Surf
36%
Жизнь Android-команды Surf
Фичи с пошаговым заполнением — это любые анкеты, заявки и аналогичные штуки. Они часто встречаются, например, в банковских приложениях. И хотя с виду всё выглядит несложно, их разработка обычно вызывает головную боль.
Мы знаем удобный способ организовать работу пошаговой фичи. С его помощью удаётся минимизировать связи между экранами и легко вносить изменения в порядок шагов: добавлять новые экраны, менять их последовательность и логику показа пользователю.
Смотри карточки, а за подробностями — велкам на Хабр.
Мы знаем удобный способ организовать работу пошаговой фичи. С его помощью удаётся минимизировать связи между экранами и легко вносить изменения в порядок шагов: добавлять новые экраны, менять их последовательность и логику показа пользователю.
Смотри карточки, а за подробностями — велкам на Хабр.
👍7🔥5👏4
Back compatibility: как поддерживать разные версии Android в приложении
Компании стремятся к максимальному охвату аудитории приложения. А это значит, что разработчикам необходимо поддерживать самые разные версии Android.
Вам сильно повезет, если минимальной версией будет хотя бы Android 8.0, но иногда придётся адаптировать код и для Android 5.0.
Как узнать версию Android в приложении
В коде можно узнать, на какой версии Android работает приложение, и создать обработку для некоторой его части. Для этого следует обратиться к полю
Для сравнения с версиями следует обращаться к классу
Каждая версия Android привносила что-то новое в систему и интерфейс, а значит, и в работу разработчика. Изменения применяются к приложению с помощью параметра
На какую функциональность внутри приложения стоит обратить внимание
🔹 Permissions. Начиная с Android 6 их можно запрашивать в runtime. С Android 11 пользователям дали возможность точнее настраивать permissions для большей конфиденциальности. Подробнее
🔹 Уведомления. Обязательна настройка Notification channel с Android 8. Для Android 13 необходимо запрашивать новый permission. Подробнее
🔹 Криптография. Для разных версий меняется работа с KeyStore. С Android 6 стала доступна работа с отпечатком пальца. Подробнее
🔹 Ограничения на работу в фоне. Начиная с Android 5 правила работы для фоновых задач подвергались серьезным изменениям. Подробнее
🔹 Splash-экран. Начиная с Android 12 очень рекомендуется использовать встроенное решение от Google, а не кастомный splash-экран. Подробнее
🔹 Render Script. Начиная с Android 12 эта технология больше не поддерживается. Подробнее
🔹 Вибрации. Начиная с Android 10 добавили новые вибрации, которые может проигрывать устройство. Предыдущая реализация признана устаревшей. Подробнее
Подготовка к изменениям следующей версии
Иногда разработчикам дают превью некоторой функциональности, которая будет работать на полную только со следующей версии. К таким можно отнести Scoped Storage и новый Back Stack, например. Обязательно нужно внимательно читать документацию к обновлениям.
Разработчикам следует понимать, когда поддерживать старые версии становится бесполезно
С помощью аналитики — например, в Firebase — можно узнать, какой процент пользователей использует определенную версию ОС.
Если приложением не пользуются на устаревших системах, от их поддержки можно отказаться и упростить себе работу.
Компании стремятся к максимальному охвату аудитории приложения. А это значит, что разработчикам необходимо поддерживать самые разные версии Android.
Вам сильно повезет, если минимальной версией будет хотя бы Android 8.0, но иногда придётся адаптировать код и для Android 5.0.
Как узнать версию Android в приложении
В коде можно узнать, на какой версии Android работает приложение, и создать обработку для некоторой его части. Для этого следует обратиться к полю
Build.VERSION.SDK_INT.
Для сравнения с версиями следует обращаться к классу
Build.VERSION_CODES. В нём перечислены все версии Android и краткое описание, что изменилось.
Каждая версия Android привносила что-то новое в систему и интерфейс, а значит, и в работу разработчика. Изменения применяются к приложению с помощью параметра
targetSdkVersion— он указывает, для какой версии API было разработано приложение.
На какую функциональность внутри приложения стоит обратить внимание
🔹 Permissions. Начиная с Android 6 их можно запрашивать в runtime. С Android 11 пользователям дали возможность точнее настраивать permissions для большей конфиденциальности. Подробнее
🔹 Уведомления. Обязательна настройка Notification channel с Android 8. Для Android 13 необходимо запрашивать новый permission. Подробнее
🔹 Криптография. Для разных версий меняется работа с KeyStore. С Android 6 стала доступна работа с отпечатком пальца. Подробнее
🔹 Ограничения на работу в фоне. Начиная с Android 5 правила работы для фоновых задач подвергались серьезным изменениям. Подробнее
🔹 Splash-экран. Начиная с Android 12 очень рекомендуется использовать встроенное решение от Google, а не кастомный splash-экран. Подробнее
🔹 Render Script. Начиная с Android 12 эта технология больше не поддерживается. Подробнее
🔹 Вибрации. Начиная с Android 10 добавили новые вибрации, которые может проигрывать устройство. Предыдущая реализация признана устаревшей. Подробнее
Подготовка к изменениям следующей версии
Иногда разработчикам дают превью некоторой функциональности, которая будет работать на полную только со следующей версии. К таким можно отнести Scoped Storage и новый Back Stack, например. Обязательно нужно внимательно читать документацию к обновлениям.
Разработчикам следует понимать, когда поддерживать старые версии становится бесполезно
С помощью аналитики — например, в Firebase — можно узнать, какой процент пользователей использует определенную версию ОС.
Если приложением не пользуются на устаревших системах, от их поддержки можно отказаться и упростить себе работу.
🔥8👍7