Разборы
📺 Что внутри APK. App Bundle. Google Play Dynamic Feature (13 мин)
📺 Как уменьшить размер приложения (17 мин)
📺 Мобильная аналитика в hh (18 мин)
Новости
📺 Новости мобильной разработки 2023.6 (15 мин)
📺 Google Dev News (2 мин)
📺 Now in Android #73 (4 мин)
Доклады
📺 Как написать свой DI-контейнер на Kotlin (0.5 часа)
📺 Как пройти архитектурную секцию собеседования (~1 час)
Прочее
📺 #TheAndroidShow: Large screens, Jetpack Compose and more! (1.5 часа)
Делитесь в комментариях видео по разработке, которые вам понравились на этой неделе
#подборкавидео
📺 Что внутри APK. App Bundle. Google Play Dynamic Feature (13 мин)
📺 Как уменьшить размер приложения (17 мин)
📺 Мобильная аналитика в hh (18 мин)
Новости
📺 Новости мобильной разработки 2023.6 (15 мин)
📺 Google Dev News (2 мин)
📺 Now in Android #73 (4 мин)
Доклады
📺 Как написать свой DI-контейнер на Kotlin (0.5 часа)
📺 Как пройти архитектурную секцию собеседования (~1 час)
Прочее
📺 #TheAndroidShow: Large screens, Jetpack Compose and more! (1.5 часа)
Делитесь в комментариях видео по разработке, которые вам понравились на этой неделе
#подборкавидео
👎7🔥7👍4
В настройках системы появился раздел с персонализированными региональными настройками: единицы измерения температуры, первый день недели и система исчисления.
Используйте новые API getTemperatureUnit и getFirstDayOfWeek (доступны на Android 5.0+), чтобы учитывать это в отображении вашего контента.
@android_broadcast #android14
Используйте новые API getTemperatureUnit и getFirstDayOfWeek (доступны на Android 5.0+), чтобы учитывать это в отображении вашего контента.
@android_broadcast #android14
👍32👎4
Дополнительные ограничения по запуску Activity из фона:
👉 При вызове биндинги Service, которые находится в приложения в фоне, вызовом bindService() из видимого приложения необходимо будет передать флаг BIND_ALLOW_ACTIVITY_STARTS, чтобы можно было запускать из Activity из этого Service
👉 Для отправки PendingIntent с помощью PendingIntent#send() теперь необходимо явно указывать хочет ли приложение давать права своим фоновым Activity для запуска PendingIntent
Нововведение применяется только для targetSdk=34 (Android 14)
#android14
👉 При вызове биндинги Service, которые находится в приложения в фоне, вызовом bindService() из видимого приложения необходимо будет передать флаг BIND_ALLOW_ACTIVITY_STARTS, чтобы можно было запускать из Activity из этого Service
👉 Для отправки PendingIntent с помощью PendingIntent#send() теперь необходимо явно указывать хочет ли приложение давать права своим фоновым Activity для запуска PendingIntent
Нововведение применяется только для targetSdk=34 (Android 14)
#android14
😢12🤯6👍3👎2🤔2
В Android 14 разработчик сможет определить когда пользователь пытается сделать скриншот приложения. Для Activity можно зарегистрировать callback, который будет срабатывать при попытке сделать скриншот.
Для этого надо будет объявить разрешение DETECT_SCREEN_CAPTURE (не требует запроса во время работы приложения). Новый callback - Activity.ScreenCaptureCallback
Как я смог понять callback будет вызываться после совершения и никак повлиять на контент в скриншоте нельзя, как и предотвратить чтобы пользователь сделал его
Подробности тут
@android_broadcast #android14
Для этого надо будет объявить разрешение DETECT_SCREEN_CAPTURE (не требует запроса во время работы приложения). Новый callback - Activity.ScreenCaptureCallback
Как я смог понять callback будет вызываться после совершения и никак повлиять на контент в скриншоте нельзя, как и предотвратить чтобы пользователь сделал его
Подробности тут
@android_broadcast #android14
👍37👎9🤔4
В Android 14 поменяется поведение неудаляемых уведомлений из системной панели. По умолчанию теперь часть ongoing уведомлений можно будет удалять.
Ограничения не распространяются на:
👉 Когда телефон заблокирован удалить уведомление не получится
👉 Кнопка "Удалить все" в уведомлениях не будет удалять ongoing уведомления
👉 MediaStyle уведомления не удаляются
👉 Уведомления, которые не могут быть удалены по политикам безопасности
👉 Уведомления, связанные с частями работы Android Enterprise
В Android 13 уже стало возможным удалять уведомления, связанные с Foreground Service, если у уведомления не было помечен статус ongoing
Подробности изменения тут
@android_broadcast #android14
Ограничения не распространяются на:
👉 Когда телефон заблокирован удалить уведомление не получится
👉 Кнопка "Удалить все" в уведомлениях не будет удалять ongoing уведомления
👉 MediaStyle уведомления не удаляются
👉 Уведомления, которые не могут быть удалены по политикам безопасности
👉 Уведомления, связанные с частями работы Android Enterprise
В Android 13 уже стало возможным удалять уведомления, связанные с Foreground Service, если у уведомления не было помечен статус ongoing
Подробности изменения тут
@android_broadcast #android14
👎9👍5🤔3
Android 14 Dev Preview 2 содержит оптимизации системы управления памятью Android для улучшения использования ресурсов, когда приложения работают в фоновом режиме.
Через несколько секунд после того, как приложение переходит в состояние "cached", фоновая работа будет разрешена только в Foreground Services, JobScheduler или WorkManager. Фоновая работа вне этих API теперь будет запрещаться на порядок быстрее, чем в Android 13.
@android_broadcast #android14
Через несколько секунд после того, как приложение переходит в состояние "cached", фоновая работа будет разрешена только в Foreground Services, JobScheduler или WorkManager. Фоновая работа вне этих API теперь будет запрещаться на порядок быстрее, чем в Android 13.
@android_broadcast #android14
😢18👎10👍6
Если вы хотите проверить поведение вашего приложения независимо от targetSdk, включить или отключить какие-то изменения поведения и другие
Подробности тут
@android_broadcast #android14
Подробности тут
@android_broadcast #android14
👍14👎6
Из Android SDK были удалены API, связанные с Android Beam - технология для быстрой передачи файлов, которая для установления соединения работала на основе NFC, а передача шла через Bluetooth
@android_broadcast #android14
@android_broadcast #android14
🤔22😢17👎6👍2
В Android SDK появились интересные аннотации для вызова native методов для ускорения работы JNI в ART runtime:
🚀 @CriticalNative - использовать самую быструю JNI передачу из управляемого кода в нативный и обратно
👉 @FastNative - использовать более быструю (по сравнению с обычной) JNI передачу из управляемого кода в нативный и обратно
@android_broadcast #android14
🚀 @CriticalNative - использовать самую быструю JNI передачу из управляемого кода в нативный и обратно
👉 @FastNative - использовать более быструю (по сравнению с обычной) JNI передачу из управляемого кода в нативный и обратно
@android_broadcast #android14
👍12👎6
Automating dependency updates in a Compose project (4 мин)
Статья с рассказом подхода автоматического обновления зависимостей в Google с помощью сервиса Renovate на примере Compose и его зависимостей от Kotlin компилятора. Утилита сама генерирует Pull Request на основе описанных правил.
#tooling
Статья с рассказом подхода автоматического обновления зависимостей в Google с помощью сервиса Renovate на примере Compose и его зависимостей от Kotlin компилятора. Утилита сама генерирует Pull Request на основе описанных правил.
#tooling
👍16👎9
В системном окне выбора Activity при запуске Intent теперь будет возможность добавить собственные действия. Для этого нужно положить extra EXTRA_CHOOSER_CUSTOM_ACTIONS в Intent. Помиго это есть специальная экстра для действия чтобы модифицировать отправляемый контент - EXTRA_CHOOSER_MODIFY_SHARE_ACTION
#android14
#android14
👍23👎5🤔3❤1
Кто производитель вашего основно смартфона? (опрос для тех кто имеет отношение к разработке)
Anonymous Poll
25%
Google
15%
Apple
21%
Samsung
20%
Xiaomi/Redmi/POCO
6%
OnePlus
4%
Realme
1%
ASUS/ROG
4%
HUAWEI
3%
Другой бренд (пишите в комментариях)
1%
Не участвую/не пользуюсь смартфоном (пишите почему)
👍30👎6
Начиная с Android 14, с помощью killBackgroundProcesses() нельзя будет убить процесс другого приложения. При попытке передать туда название пакета отличного от приложения из которого происходит вызов больше ничего происходить не будет, а в логах появится сообщение:
Invalid packageName: <package_name>
Новое поведение применяется ко всем приложениям, независимо от targetSdk. Подробности тут
@android_broadcast #android14
Invalid packageName: <package_name>
Новое поведение применяется ко всем приложениям, независимо от targetSdk. Подробности тут
@android_broadcast #android14
👍35👎8
🔥64👎7
📺 Новости мобильной разработки 2023.7 (19 мин)
Первый рабочий день - самое лучшее время освежить, что произошло в Android разработке за прошедшую неделю
🔥 Android 14 Dev Preview 2
👉 Новый стабильный Jetpack Lifecycle
🚀 Насколько Yatagan быстрее Dagger 2
#AndroidBroadcast
Первый рабочий день - самое лучшее время освежить, что произошло в Android разработке за прошедшую неделю
🔥 Android 14 Dev Preview 2
👉 Новый стабильный Jetpack Lifecycle
🚀 Насколько Yatagan быстрее Dagger 2
#AndroidBroadcast
👍27👎12🔥5
В Jetpack Annotation появилась новая аннотация - @Discouraged. Она схожа с @Deprecated, но предназначается если вы не хотите что-то помечать устаревшим, но хотите "не рекомендуется к использованию"
#jetpack
#jetpack
👍60🤔18👎6❤3🔥2
Стартует Неделя Приватности для Android разработчиков. Что будет:
👉 Обновленная страница "Privacy & Security" на официальном сайте разработчиков
👉 Новая Codelab по приватности
👉 Cheatsheet по основным принципам приватности
👉 Рекомендуется посмотреть это и это видео
Все новости я вам буду вещать в @android_broadcast
#security
👉 Обновленная страница "Privacy & Security" на официальном сайте разработчиков
👉 Новая Codelab по приватности
👉 Cheatsheet по основным принципам приватности
👉 Рекомендуется посмотреть это и это видео
Все новости я вам буду вещать в @android_broadcast
#security
👍16👎10🤔1
Cheatsheet по основным принципам приватности от Google. Версия в pdf тут или в комментарии к этому посту
🔥20👎9👍5