На этой неделе я в Тинькофф запустил YouTube канал "IT's Tinkoff Mobile" и новое шоу "Как это работает". С этим мне помогает автор @ios_broadcast - Розалия Амирова
Интервью
📺 Compose iOS. Как это работает #0. Пилот (1 час)
Разборы
📺 Как уменьшить размер приложения (17 мин)
Новости
📺 Announcing TensorFlow Lite with Google Play services (7 мин)
📺 Новости Мобильной разработки 2023.5 от @android_broadcast
Лекции
📺 AA Jetpack Compose #3: Animations (1.5 часа)
Кодинг
📺 How Easily You Can Record & Play Audio In Android (13 мин)
📺 AA Jetpack Compose #3: Animations (20 мин)
📺 AA Jetpack Compose #3: Animations. Practice 2 (9 мин)
📺 How Scan for Bluetooth Devices | Building a Bluetooth Chat App | Part 1 (45 мин)
📺 Unreal Engine for Android Devs (1.5 часа)
Делитесь в комментариях видео по разработке, которые вам понравились на этой неделе
#подборкавидео
Интервью
📺 Compose iOS. Как это работает #0. Пилот (1 час)
Разборы
📺 Как уменьшить размер приложения (17 мин)
Новости
📺 Announcing TensorFlow Lite with Google Play services (7 мин)
📺 Новости Мобильной разработки 2023.5 от @android_broadcast
Лекции
📺 AA Jetpack Compose #3: Animations (1.5 часа)
Кодинг
📺 How Easily You Can Record & Play Audio In Android (13 мин)
📺 AA Jetpack Compose #3: Animations (20 мин)
📺 AA Jetpack Compose #3: Animations. Practice 2 (9 мин)
📺 How Scan for Bluetooth Devices | Building a Bluetooth Chat App | Part 1 (45 мин)
📺 Unreal Engine for Android Devs (1.5 часа)
Делитесь в комментариях видео по разработке, которые вам понравились на этой неделе
#подборкавидео
❤26👎17👍15🔥9
📺 Свежий выпуск новостей мобильной разработки (17 мин)
👉 Microsoft делает ставку на ChatGPT
👉 Курсы по Jetpack Compose
👉 KSP рекомендуется для использования
#AndroidBroadcast
👉 Microsoft делает ставку на ChatGPT
👉 Курсы по Jetpack Compose
👉 KSP рекомендуется для использования
#AndroidBroadcast
👍30👎8🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Если в свежей версии Android Studio у вас стал тормозить эмулятор, то возможно это связано с настройкой аппратного ускорения. В настройках эмулятора поставьте в опции "Graphics acceleration" из автоматического в hardware (HW).
#androidstudio
#androidstudio
👍93👎5🔥4
Опубликовали полное пошаговое руководство по публикации и подключения монетизация (только для юр. лиц) в RuStore. Все приправлено скриншотами и рассматриваются физ. и юр. лица.
Кому интересно узнать про RuStore, то совсем недавно я взял интервью у операционного директора RuStore. Смотреть тут
#rustore
Кому интересно узнать про RuStore, то совсем недавно я взял интервью у операционного директора RuStore. Смотреть тут
#rustore
👎112👍41🔥3
Опыт интеграции использования Relay - инсторумента для генерации Compose кода из прототипов в Figma
#compose #tooling
#compose #tooling
🔥38👎9🤔3👍2
Вышла вторая Dev Preview Android 14, которую можно ознаменовать как "еще больше ограничений для разработчиков" и радость для магазинов приложений!
👉 Выдача доступа приложения к отдельным фото и видео, вместо всех (аналогично на iOS)
👉 Credential Manager - единая точка работы с sign-in. Через Jetpack это API уже портировано на Android 4.4+
👉 Дополнительные ограничения по запуску Activity из фона
👉 Больше ограничений на фоновую работу
👉 Новое API в PackageInstaller позволит каждый раз не запрашивать установку приложений, а сделать это один раз для приложений. Альтернативным магазинам станет жить проще
👉 Региональные настройки для всей системы и для каждого приложения
👉 Разработчики смогут определить когда делаются скриншоты
Все изменения я разберу в отдельных постах
@android_broadcast #android14
👉 Выдача доступа приложения к отдельным фото и видео, вместо всех (аналогично на iOS)
👉 Credential Manager - единая точка работы с sign-in. Через Jetpack это API уже портировано на Android 4.4+
👉 Дополнительные ограничения по запуску Activity из фона
👉 Больше ограничений на фоновую работу
👉 Новое API в PackageInstaller позволит каждый раз не запрашивать установку приложений, а сделать это один раз для приложений. Альтернативным магазинам станет жить проще
👉 Региональные настройки для всей системы и для каждого приложения
👉 Разработчики смогут определить когда делаются скриншоты
Все изменения я разберу в отдельных постах
@android_broadcast #android14
👍31👎11🔥3😢2
Анонсировали Google I/O 2023, который пройдет 10 мая 2023. Событий пройдет оффлайн в Калифорнии, а также будет онлайн трансляция. По слухам могут показать Pixel Tablet и Pixel 7a, а также другие софтовые новинки. Тема чат бота, аналога GhatGPT, будет очень важной
👍25👎8
Еще один анонс мероприятия - TheAndroidShow, посвященное большим экранам, складным Android смартфонам и Compose. Событий пройдет сегодня, 9 марта, в 20:00 (GMT+3)
👎13👍11❤1
Команда Android и Google Play рассказали про свои ключевые направление в обеспечении безопасности и инициативы
👉 Разработка рекламного решения, которое будет лучше защищать приватность пользователей (Privacy Sandbox)
👉 Больше контроля на данными для пользователей
👉 Защита приложений от атак (Play Integrity API)
👉 Улучшение защиты детей и семей
👉 Больше ответственности разработчиков за сбор и использование данных
👉 Поощрение инноваций разработчиков при сохранении безопасности пользователей
👉 Лучший опыт с политиками Google Play и консолью разработчика
#googleplay
👉 Разработка рекламного решения, которое будет лучше защищать приватность пользователей (Privacy Sandbox)
👉 Больше контроля на данными для пользователей
👉 Защита приложений от атак (Play Integrity API)
👉 Улучшение защиты детей и семей
👉 Больше ответственности разработчиков за сбор и использование данных
👉 Поощрение инноваций разработчиков при сохранении безопасности пользователей
👉 Лучший опыт с политиками Google Play и консолью разработчика
#googleplay
👎12👍6
Extending the Android SDK — SDKExtensions (5 мин)
Погружение в Android SDK Extentions - надстройка над Android SDK, которая позволяет работать с функционалом, который распространяется через систему обновлений модульных компонентов Android
Погружение в Android SDK Extentions - надстройка над Android SDK, которая позволяет работать с функционалом, который распространяется через систему обновлений модульных компонентов Android
👍16👎7
📺 Что внутри APK. App Bundle. Google Play Dynamic Feature (14 мин)
В видео я рассказываю про то из чего состоит APK, как Google подходила к уменьшению размера загружаемого APK. App Bundle, Google Play Dynamic Delivery, Dynamic Feature и другое
Продолжение видео "Как уменьшить размер приложения" уже доступно на Boosty для патронов
#AndroidBroadcast #googleplay
В видео я рассказываю про то из чего состоит APK, как Google подходила к уменьшению размера загружаемого APK. App Bundle, Google Play Dynamic Delivery, Dynamic Feature и другое
Продолжение видео "Как уменьшить размер приложения" уже доступно на Boosty для патронов
#AndroidBroadcast #googleplay
🔥26👎7👍6
Обновление Android Jetpack от 8 марта 2023
Lifecycle 2.6.0
👉 Метод LiveData.isInitialized() позволит проверить задавалось ли значение в LiveData
👉 Стабильный collectAsStateWithLifecycle() в Compose. Подробности тут
👉 Методы Lifecycle.launchWhenX теперь deprecated. Используйте Lifecycle.repeatOnLifecycle
👉 Множество классов переписали на Kotlin
RecyclerView 1.3.0
👉 Улучшение производительности при работе с Compose
Что еще:
👉 Первая RC Jetpack Compose 1.4
👉 Исправление багов
👉 Поддержка Android 14
#jetpack #jetpackupdate
Lifecycle 2.6.0
👉 Метод LiveData.isInitialized() позволит проверить задавалось ли значение в LiveData
👉 Стабильный collectAsStateWithLifecycle() в Compose. Подробности тут
👉 Методы Lifecycle.launchWhenX теперь deprecated. Используйте Lifecycle.repeatOnLifecycle
👉 Множество классов переписали на Kotlin
RecyclerView 1.3.0
👉 Улучшение производительности при работе с Compose
Что еще:
👉 Первая RC Jetpack Compose 1.4
👉 Исправление багов
👉 Поддержка Android 14
#jetpack #jetpackupdate
👍27👎6🔥1
Под какие устройства вы писали/адаптировали Android приложения?
Anonymous Poll
90%
Смартфоны
47%
Планшеты
3%
Складные устройства
7%
Часы (wearOS)
12%
Телевизоры (Android TV)
3%
Android Auto
1%
Десктопы (ChromeOS)
3%
Десктопы (Windows 11)
4%
Другие (пишите в комментарияз)
7%
Не участвую
❤14👎5👍1🎉1
В Циан попробовали перейти с Dagger на Yatagan (аля Dagger Lite) и оценить эффект на скорость сборки проекта.
Характеристики проекта: 479 Gradle модулей, 813K строк Kotlin, 53K строк Java и 136K строк XML, 528 Dagger компонентов
Важно - при тестах проекта перейти на ksp и полностью избавиться от kapt не получилось из-за других библиотек (Moxy), но автор просто сделал тест с отключением генерации кода через kapt.
Результаты - сокращение времени сборки на 17-25%. Очень не хватило показателей сколько будет строк кода сгенерировано Yatagan по сравнению с Dagger, а также размер финальной сборки
#dagger #performance
Характеристики проекта: 479 Gradle модулей, 813K строк Kotlin, 53K строк Java и 136K строк XML, 528 Dagger компонентов
Важно - при тестах проекта перейти на ksp и полностью избавиться от kapt не получилось из-за других библиотек (Moxy), но автор просто сделал тест с отключением генерации кода через kapt.
Результаты - сокращение времени сборки на 17-25%. Очень не хватило показателей сколько будет строк кода сгенерировано Yatagan по сравнению с Dagger, а также размер финальной сборки
#dagger #performance
👍38👎19
В Android 14 пользователь сможет выдавать доступ на чтение не всех фото/видео из галереи, а лишь к выбранным. Этот функционал уже есть на iOS вот теперь приходит и на Android, что лишний раз показывает сближение двух основных мобильных ОС.
Добавили новое разрешение READ_MEDIA_VISUAL_USER_SELECTED, которое позволяет повторно запросить выбор к отдельным фото/видео. Новое разрешение должно использоваться в дополнение к
Если вашему приложение нужен доступ к фото/видео при работе из фона, то настоятельно рекомендуется поддержать новое разрешение для корректной работы.
@android_broadcast #android14
Добавили новое разрешение READ_MEDIA_VISUAL_USER_SELECTED, которое позволяет повторно запросить выбор к отдельным фото/видео. Новое разрешение должно использоваться в дополнение к
READ_MEDIA_IMAGES и READ_MEDIA_VIDEO (из Android 13), чтобы поддержать новое поведение. Его объявление означает, что вы поддерживаете из кода повторный запрос на частичный доступ к фото/видео.Если вашему приложение нужен доступ к фото/видео при работе из фона, то настоятельно рекомендуется поддержать новое разрешение для корректной работы.
@android_broadcast #android14
👍28😢16👎9
Credential Manager стал частью API Android платформы, но напрямую вам использовать его не придется. Все также это будет делаться через Jetpack API.
CredentialManager - это специальное API, которое поддерживает различные методы входа: логин/пароль, passkey, "Sign-in with Google" и другие. Все способы реализованы через единое стандартизированное API в Jetpack.
#android14
CredentialManager - это специальное API, которое поддерживает различные методы входа: логин/пароль, passkey, "Sign-in with Google" и другие. Все способы реализованы через единое стандартизированное API в Jetpack.
#android14
👍30👎6🔥4
Android Broadcast - это не только Telegram канал, но и множество других ресурсов
📣 Мы в Telegram
@kotlin_broadcast - новости Kotlin
@android_broadcast_talks - чатик про Android разработку
@rozov_blog - личный блог Кирилла где он делится своей жизнью
@ios_broadcast - новости iOS (развиваем)
@android_broadcast_bot - предложка контента, реклама, связь с командой
📺 YouTube канал "Android Broadcast" - видео по Android разработки, интервью с экспертами
👨🎓 YouTube канал - это также и площадка где вы можете выступить. Темы по которым мы экспертов здесь, либо предложить свою можно здесь
🎧 Часть выпусков можно еще послушать и в виде подкастов на популярных площадках
👕 Мы делаем крутые фирменные майки, которые нестыдно носить. Смотрите здесь
Также вы представлены и на других площадках.
👉 Сообщество в VK
👉 Дзен
👉 Группа в LinkedIn
👉 Twitter
-----
Если вы хотите получать вам нравится что я делаю, вы хотите чтобы это продолжалось и получить экслюзивный контент, то вы можете подписаться на Boosty.
📣 Мы в Telegram
@kotlin_broadcast - новости Kotlin
@android_broadcast_talks - чатик про Android разработку
@rozov_blog - личный блог Кирилла где он делится своей жизнью
@ios_broadcast - новости iOS (развиваем)
@android_broadcast_bot - предложка контента, реклама, связь с командой
📺 YouTube канал "Android Broadcast" - видео по Android разработки, интервью с экспертами
👨🎓 YouTube канал - это также и площадка где вы можете выступить. Темы по которым мы экспертов здесь, либо предложить свою можно здесь
🎧 Часть выпусков можно еще послушать и в виде подкастов на популярных площадках
👕 Мы делаем крутые фирменные майки, которые нестыдно носить. Смотрите здесь
Также вы представлены и на других площадках.
👉 Сообщество в VK
👉 Дзен
👉 Группа в LinkedIn
-----
Если вы хотите получать вам нравится что я делаю, вы хотите чтобы это продолжалось и получить экслюзивный контент, то вы можете подписаться на Boosty.
👍12👎12
В Android 14 добавили новое API в PackageManager, которое позволит улучшить пользовательский опыт магазинов приложений.
Сейчас сторонним магазинам при каждой установке нового или обновлении существующего приложения приходится получать разрешение пользователя на установку. Это также делает невозможным обновление приложений в фоне.
С помощью PackageInstaller.Session.requestUserPreapproval() можно запросить разрешение один раз в рамках сессии (установка нескольких APK), а не навсегда (
#android14
Сейчас сторонним магазинам при каждой установке нового или обновлении существующего приложения приходится получать разрешение пользователя на установку. Это также делает невозможным обновление приложений в фоне.
С помощью PackageInstaller.Session.requestUserPreapproval() можно запросить разрешение один раз в рамках сессии (установка нескольких APK), а не навсегда (
#android14
🔥34👍8👎7
Следующая новинка для сторонних магазинов в API - PackageInstaller.SessionParams.setRequestUpdateOwnership(). Метод позволяет сменить приложение, которое ответственно за обновления приложения и запрос на установку обновления из такого приложения не будет показываться пользователю. Для работы этого метода надо будет запросить разрешение ENFORCE_UPDATE_OWNERSHIP
@android_brodcast #android14
@android_brodcast #android14
🔥20👎5👍3🤯2
Новый класс PackageInstaller.InstallConstraints позволит задавать условия, когда может быть выполнено обновление приложения, а именно:
👉 Приложение не на переднем плане
👉 Пользователь не взаимодействует с приложением
👉 Приложение не в Foreground (невидимо и нет Foreground Service)
👉 Устройство не используется
👉 Нет активного звонка
Появилось 3 новых методы в PackageInstaller, которые позволяют задавать требования для установки:
👉 checkInstallConstraints() - асинхронный метод, который проверяет удовлетворяет ли требованиям приложение для установки
👉 commitSessionAfterInstallConstraintsAreMet() - коммитит сессию, только когда все требования будут удовлетворены
👉 waitForInstallConstraints() - асинхронных метод. Аналог
@android_broadcast #android14
👉 Приложение не на переднем плане
👉 Пользователь не взаимодействует с приложением
👉 Приложение не в Foreground (невидимо и нет Foreground Service)
👉 Устройство не используется
👉 Нет активного звонка
Появилось 3 новых методы в PackageInstaller, которые позволяют задавать требования для установки:
👉 checkInstallConstraints() - асинхронный метод, который проверяет удовлетворяет ли требованиям приложение для установки
👉 commitSessionAfterInstallConstraintsAreMet() - коммитит сессию, только когда все требования будут удовлетворены
👉 waitForInstallConstraints() - асинхронных метод. Аналог
checkInstallConstraints(), но вызывается когда требования для установки будут удовлетворены@android_broadcast #android14
🔥13👍6👎5