По традиции опрос на стабильность новой версии AS - Meerkat Feature Drop
Anonymous Poll
30%
Уже использую. Полет нормальный
4%
Сижу на следующей версии
3%
Попробовал(а). Есть баги (пиши в комментариях)
45%
Буду обновляться позже
1%
Другой вариант
17%
Не участвую в опросе
👍4
Какой target SDK в вашем Android проекте?
Anonymous Poll
3%
Не знаю
8%
36
46%
35
26%
34
3%
33
5%
32 и ниже
3%
Что такое targetSdk ?
6%
Не участвую в опросе
👍5❤1
Когда: четверг, 8 мая, 18:30 (GMT+3)
Буквально вчера вышел Compose iOS Stable и конечно же открывает возможности Android разработчиками по написанию мобильных приложений под обе платформы. Но всё ли так сладко, как заявляет JetBrains? Будем разбираться в этом с экспертом кто уже познал прелести продакшена!
👨💻 Эксперт - Никита, фуллстек Kotlin разработчик, автор проектов FlowMVI и respawn.pro. При анонсе Compose iOS Stable, его приложение было в официальном анонсе 🔥
👨💻 И еще одни эксперт - Чикишев Тимур, Senior Android разработчик в KTS. Начал пробовать Compose iOS еще до официального релиза. Успел адаптировать Android приложение с Compose на iOS, буквально на этой неделе сделали релиз
Задавайте свои вопросы в комментариях к посту, чтобы они были заданы на эфире
#android #compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍9❤3
Edge-to-edge («от края до края») — это режим в Android, при котором приложение отрисовывается под системными панелями — строкой состояния (status bar), вырезами дисплея или «челкой» (display cutout) и панелью навигации (navigation bar), — используя весь экран смартфона.
В Android 16 все приложения будут отображаться в режиме edge-to-edge без исключений. Пора перенять опыт и адаптировать его к себе, либо ваше приложение будет выглядеть плохо
#android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23👍13🤯4🤔1
Media is too big
VIEW IN TELEGRAM
Software Engineers Dustin Lam и Yigit Boyar присоединяются к ведущему Tor Norbye, чтобы обсудить Kotlin Multiplatform (KMP).
0:00 - Введение
0:29 - Что такое KMP: не новый продукт, а Kotlin с новыми возможностями
3:20 - Зачем нужен KMP: преимущества и цели
6:17 - KMP vs. другие кроссплатформенные фреймворки
6:41 - Общая бизнес-логика — основной сценарий использования
9:18 - Практическое внедрение: превращение Android-приложения в KMP
13:15 - Работа с платформо-специфичными зависимостями
28:56 - Поддержка библиотек в Kotlin Multiplatform
35:56 - Developer Experience: инструменты и интеграция
40:16 - Совместимость с iOS: как добиться взаимодействия
42:51 - KMP в действии: как Google использует эту технологию
47:17 - Долгосрочное видение и потенциал KMP
51:30 - Консистентность поведения vs. нативная производительность
55:32 - Попробуйте KMP и присоединяйтесь к разработке!
#android #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4
🛠 Значительные переработки под капотом для улучшения поддержки KMP
👉 Добавлена поддержка обработки deep link из Kotlin Common кода
👉 Улучшения API
#jetpack #jetpackupdate #navigation #compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
🎉 Новый артефакт
lifecycle-viewmodel-testing - KMP библиотека для тестирования ViewModel в изоляции с помощью ViewModelScenario👉 SavedStateHandle теперь может возвращать MutableStateFlow
👉 CreationExtras добавили перегрузки операторов in, +=, и +
Больше поддержки KMP
👉
lifecycle-testing, lifecycle-viewmodel-savedstate теперь полностью KMP библиотеки👉 LocalLifecycleOwner стал доступен из common кода
👉 ViewModelProvider.NewInstanceFactory теперь доступна для Android и JVM
#android #jetpack #jetpackupdate #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5
Что нового:
👉 SavedState теперь полностью KMP библиотека с поддержкой Android, iOS, Linux, Mac и JVM
👉 LocalSavedStateRegistryOwner теперь не является частью Compose UI, а будет частью нового артефакта - savedstate-compose
👉 Появился обобщенный тип SavedState, который Bundle на Android и Map<String, Any> на других платформах
// Создаем SavedState с помощью DSL:
val savedState = savedState {
putInt("currentPage", 1)
putString("filter", "favorites")
}
val currentPage = savedState.read { getInt("currentPage") }
savedState.write { remove("currentPage") }
@Serializable
data class Person(val firstName: String, val lastName: String)
fun main() {
val person = Person("John", "Doe")
val encoded: SavedState = encodeToSavedState(person)
val decoded: Person = decodeFromSavedState(encoded)
}saved в Activity и ViewModelclass MyActivity : ComponentActivity() {
var person by saved { Person("John", "Doe") }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.person = Person("Jane", "Doe")
}
}
class MyViewModel(handle: SavedStateHandle) : ViewModel() {
var person by handle.saved { Person("John", "Doe") }
fun onPersonChanged(person: Person) {
this.person = person
}
}#android #jetpack #jetpackupdate #kmp #kotlin #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍9🤔5
Библиотека содержит CallsManager API (обертка над ConnectionService) для интеграции Telecom фреймворка в приложения со звонками через интернет, чтобы обеспечить использования всех фичей Android платформы! Это включает в себя:
👉 системные уведомления
👉 приоритезацию работы Foreground Service для звонка
👉 Интеграцию с Bluetooth
👉 Интеграцию с умными часами и автомобилями
👉 Упрощение вывода аудио на разные устройства
Различные функции добавляются через механизм расширений. Можете взять уже готовые или реализовать свои!
#android #jetpack #jetpackupdate #voip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍7❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍18❤1
Используете Fragment в нативной Android разработке приложений?
Anonymous Poll
46%
Да, активно
24%
Только legacy код остался на них
1%
Не пишу нативно под Android
22%
Уже всё только на Compose
1%
Другой вариант
6%
Не участвую в опросе
👍6
App Functions - новая экспериментальная функция Android, которая позволит интегрироваться приложениям с поиском, но в первую очередь с AI, чтобы выполнять запросы пользователя. Например, "закажи еду", "вызови такси" и пр.
Возможности приложения будут индексироваться системным сервисом AppSearchManager
Точка входа - класс AppFunctionManager и специальный сервис AppFunctionService.
Уже также разрабатывается библиотека
#android16 #ai #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍6
Media is too big
VIEW IN TELEGRAM
Лучшие подходы к тестированию Android. Хосе Альсерреке расскажет о тестировании скриншотов, Robolectric, управлении разными форм-факторами и использовании Espresso Device и Gradle Managed Devices (GMD) для масштабируемого тестирования.
0:00 - Введение
0:19 - Что такое тестирование скриншотов?
1:30 - Зачем использовать тестирование скриншотов?
2:52 - Robolectric для тестирования
4:40 - Тестирование для разных размеров экрана
6:48 - Стабильность больших тестов
9:05 - Gradle Managed Devices
9:47 - ИИ и тестирование
10:19 - Заключение
Ресурсы:
🔗 Тестирование скриншотов
🔗 Стратегии Robolectric
🔗 Тестирование разных размеров экрана и окон
🔗 Тестирование приложений на Android
🔗 Стратегии тестирования
🔗 Основы тестирования Android-приложений
🔗 Локальные тесты
🔗 Инструментированные тесты
🔗 UI-тесты
🔗 Тестирование разных размеров экрана
#android #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Media is too big
VIEW IN TELEGRAM
Оптимизируйте тестирование Android с помощью масштабируемой стратегии, которая поможет управлять нагрузкой на тесты вашего приложения и конфигурациями устройств. От понимания пирамиды тестирования до использования таких инструментов, как Robolectric и Gradle Managed Devices, вы узнаете, как принимать обоснованные решения для повышения надежности и эффективности тестирования. Узнайте, почему ручного тестирования недостаточно, и как автоматизация может сэкономить время и улучшить качество кода.
0:00 - Введение
0:41 - Зачем мы тестируем?
1:21 - Стратегии тестирования
3:06 - Область применения vs. Размер
5:45 - Категории
7:49 - Заключение
🔗 Стратегии тестирования
#android #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Google выпустила первую стабильную версию Jetpack Health Connect Client — библиотеки, которая упрощает доступ к данным о здоровье и активности пользователя через платформу Health Connect.
Health Connect — это единый слой доступа к данным здоровья на Android. Он агрегирует информацию от разных приложений (Google Fit, Samsung Health, Fitbit и др.) и даёт централизованный, безопасный способ работы с ними.
Библиотека connect-client — это Jetpack-обёртка над этим API, которая делает интеграцию максимально простой и безопасной.
Что умеет Jetpack Health Connect Client 1.0:
👉 Читать и записывать данные: шаги, калории, пульс, сон, тренировки, вес и многое другое (всего 40+ типов данных)
👉 Запрашивать данные по временным диапазонам и фильтрам
👉 Управлять разрешениями на доступ к чувствительным данным — всё централизовано и прозрачно
👉 Удалять данные (в том числе выборочно)
👉 Поддерживает suspend-методы и удобные Kotlin API
Подробнее читайте в документации
#android #jetpack #wear
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7
Passkey — это современный способ аутентификации, который позволяет пользователям входить в приложения и сайты без паролей, используя биометрию (Face ID, отпечаток пальца) или пин-код устройства.
Также в статье есть краткая инструкция и лучшие практики. Подробнее в документации
#android #passkey
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
Какие у вас отношения с технологией Passkey?
Anonymous Poll
45%
Что это?
36%
Слышал(а), но не использую
10%
Использую её, где есть поддержка
3%
Интегрировали в приложение
1%
Другой вариант
8%
Не участвую в опросе
👍7
Изменение размера страницы в памяти от 4 KB в 16 KB даст для приложений:
🚀 Ускорения запуска приложений
🔋 Сокращение расхода батареи
📷 Ускорение включения камеры
Новая требование Google Play обязует реализовать поддержку работы всех новых приложений и обновлений с targetSdk 35 (Android 15). Изменение вступает в силу с 1 ноября 2025 года
Что нужно делать
👉 Обновить библиотеки с нативынм кодом до версий с поддержку нового размера страницы
👉 Перекомпилировать свой нативный код на C/C++ с последней версией инструментов
В Google Play в AppBundle Explorer вы будете видеть совместимо ли ваше приложение cо страницей размера 16KB.
Полезные ссылки
🔗 Как адаптировать приложение
🔗 Как провести тестирование приложения на таком устройстве
🔗 Подробная документация по 16Kb page size
#android #googleplay #ndk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
Минусы повышения размера страницы памяти
⚠️ Мелкие объекты “тратят” больше памяти.
Если в 4 КБ-странице лежало 5 мелких объектов, в 16 КБ — может быть “пустого” пространства больше. Но в современных условиях прирост производительности важнее.
⚠️ Нужна поддержка от железа.
Процессор и ядро должны поддерживать размер страницы 16 КБ — это не просто «переключатель» в настройках.
#android #ndk
⚠️ Мелкие объекты “тратят” больше памяти.
Если в 4 КБ-странице лежало 5 мелких объектов, в 16 КБ — может быть “пустого” пространства больше. Но в современных условиях прирост производительности важнее.
⚠️ Нужна поддержка от железа.
Процессор и ядро должны поддерживать размер страницы 16 КБ — это не просто «переключатель» в настройках.
#android #ndk
🤔21👍14❤1