Дайджест мобильной разработки за июнь
Разработка
NativeScript для Storybook v7
Вышла бета-версия NativeScript для Storybook v7. Новая версия NativeScript позволит вам создавать пользовательские интерфейсы изолированно, чтобы прорабатывать труднодоступные состояния и пограничные случаи без необходимости запуска всего приложения.
Новый Coil 2.4.0
Вышла версия Coil 2.4.0: в неё вошли улучшения API и поддержка Compose, а также исправление багов.
Главный доклад KotlinConf 2023
На открытии KotlinConf 2023 представители JetBrains сделали несколько интересных анонсов о языке Kotlin и развитии экосистемы вокруг него.
Были анонсированы следующие изменения:
Компилятор K2 будет выпущен с Kotlin 2.0.
Gradle Kotlin DSL будет использоваться по умолчанию в новых сборках.
В Google наблюдается стремительный рост внедрения языка Kotlin.
Kotlin Foundation запускает программу финансирования для авторов библиотек и программу членства для компаний.
Kotlin Multiplatform станет стабильным в этом году.
Вышла альфа-версия Compose для iOS.
Экспериментальный Compose для Web будет работать на базе Kotlin/Wasm.
Android
Android Performance — I/O 2023
Обновления Baseline Profiles — они помогают заметно улучшить время старта приложения, избегая JIT-компиляции.
Startup Profiles — фича, которая позволяет описать код, который пойдет в primary dex file вашего приложения, за счет чего можно уменьшить время его старта.
Android Studio Power Profiler будет особо полезен для приложений, которые используют камеру, GPS и другие датчики.
Уведомления в Android
Для показа полноэкранных уведомлений Notification.Builder.setFullScreenIntent в Android 14 будет нужно запросить разрешение USE_FULL_SCREEN_INTENT. Все приложения, установленные до обновления на Android 14, получат разрешение, при этом пользователи смогут его отозвать. С помощью метода NotificationManager.canUseFullScreenIntent можно проверить, выдано ли разрешение и отправить пользователя в настройки с помощью Intent ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT.
Apple
Tap to Pay выходит в Австралии
Apple представила Tap to Pay на iPhone в Австралии, что позволяет предприятиям безопасно принимать бесконтактные платежи лично, сохраняя при этом конфиденциальность. Активировать функцию можно на iPhone XS и более поздних моделях под управлением iOS 16.4.
Новые функции для людей с ограниченными возможностями
Apple представила новые функции для пользователей с нарушениями моторики, зрения, слуха и когнитивных способностей. Новые возможности появятся в составе обновлений всех операционных систем Apple уже в этом году.
Фреймворки и IDE
RC/Stable
Compose Compiler (1.4.6 — 1.4.7)
Compose Animation/Foundation/Material/Runtime/UI (1.4.2 — 1.4.3)
Исправлена проблема, при которой AndroidView мог отображаться неверно при использовании с некоторыми модификаторами.
Исправлен баг, из-за которого клавиатура не отображалась для текстовых полей внутри диалогов, не созданных через Dialog composable.
Alpha/Beta
Compose Animation/Foundation/Material/Runtime/UI (1.5.0-alpha03 — 1.5.0-beta01)
Изменено дефолтное поведение SubcomposeLayout в LookaheadScope, внутри которого нет условных slot-блоков (как TabRow, Scaffold или BoxWithConstraints), что позволяет ему лучше работать с lookahead анимациями.
В AnimatedContent добавлена поддержка contentKey.
В ходе рефакторинга значительно сокращено количество выделений памяти в рекомпозиции, анимациях и AndroidComposeView.
FlowColumn/FlowRow теперь inline.
LazyStaggeredGrid API теперь stable.
Добавлены FlowRowScope и FlowColumnScope для дочерних элементов FlowRow и FlowColumn соответственно.
Добавлен экспериментальный модификатор Modifier.animateItemPlacement () для анимирования изменения и переупорядочивания позиций элементов при работе с LazyStaggeredGrid.
В BasicText добавлен отдельный лямбда-параметр color. По заявлению разработчиков, это позволит эффективнее задавать цвет текста, а также его анимировать.
В методы DrawScope.drawText, Paragraph.paint и MultiParagraph.paint добавлен параметр BlendMode для поддержки различных алгоритмов смешивания при рисовании текста на Canvas.
TextMeasurer и связанные с ним API больше не являются экспериментальными.
Дополнения Compose
Также были добавлены различные дополнения Compose, а именно:
constraintlayout-compose обновлен до версии 1.1.0-alpha10
Compose для Wear, а также дополнения compose-material и compose-navigation для него обновлены до версий 1.0.0-alpha05 и 1.2.0-beta01
Paging-Compose обновлен до версии 1.0.0-alpha20
Compose Material 3 (Material You) обновлен до версии 1.2.0-alpha02
Fluent 2
Microsoft анонсировала Fluent 2, обновленную версию своей системы проектирования, которая, по словам разработчиков, обеспечивает более беспрепятственную совместную работу.
По словам Кея Дэвиса, главного менеджера по дизайну Teams в Microsoft, Fluent 2 позволяет производить целостные обновления языка дизайна эффективным и систематическим образом.
Платформа Canva Developers Platform
Canva выпускает SDK и новые API для своей платформы. Эти изменения позволят разработчикам создавать приложения с более привлекательным дизайном для обширного сообщества Canva. В результате разработчики смогут продавать свои приложения через Canva App Marketplace и охватить еще более широкую аудиторию.
Обновления Android Jetpack
Room 2.5.2 с исправлением багов.
В Room 2.6.0-alpha02 появился Gradle плагин для корректной настройки Room с импортом схем БД. Плагин уберет необходимость настройки процессора аннотаций и хорошо скажется на кэшировании Gradle билда.
Обновление IntelliJ IDEA 2023.2 EAP 5
Вышло обновление IntelliJ IDEA 2023.2 EAP 5. Новая версия включает поддержку частичных коммитов и возможность запуска и отладки приложений в WSL Tomcat, а также улучшения для HTTP-клиента, Docker, Kubernetes, Swagger и т. д.
Новая версия Detekt 1.23.0
Плагин компилятора переехал в основное репо. Он позволяет подключать проверки не через Gradle плагин, а как часть процесса компиляции кода.
25 новых правил (включает правила из KtLint 0.49.1).
Поддержка Gradle Worker API, что ускорит проверку больших проектов.
Исправление багов.
Обновление IntelliJ IDEA 2023.2 EAP 5
Вышло обновление IntelliJ IDEA 2023.2 EAP 5:
Поддержка LSP API.
Предварительный просмотр пользовательского интерфейса Redoc для файлов OpenAPI и Swagger.
Поддержка GraphQL и WebSocket в интерфейсе командной строки HTTP-клиента.
Запросы gRPC через TLS в HTTP-клиенте.
Mos.Hub
30 мая 2023 года правительство Москвы открыло доступ всем пользователям к библиотеке разработок с открытым кодом Mos.Hub (МосХаб) — аналогу GitHub и GitLab. На данный момент в Mos.Hub разработчикам уже доступен репозиторий, в котором можно хранить и совместно улучшать код.
Другое
Рекомендации по использованию SQLite
В Google появился раздел с рекомендациями по производительности SQLite.
Оптимизация производительности базы данных.
Улучшение производительности запросов.
Инструменты для устранения неполадок.
Курс «Основы Android с Compose»
Курс по основам Android на Compose переработали и теперь базируется на Material3 (он же Material You).
RuStore
API
В Rustore запустили API загрузки и публикации приложений, который позволяет:
создавать и удалять черновики приложений;
загружать описания, скриншоты, иконки приложений и файлы APK.
А также API для работы с отзывами и рейтингами, с помощью которого можно:
получить информацию об отзывах и рейтингах за все время в двух форматах JSON и СSV (JSON за все время, CSV любой интервал в 90 дней);
отвечать на отзывы пользователей, а также изменять и удалять свой ответ;
получать статус ответа на отзыв пользователя.
RuStore Консоль
Обновили сценарий загрузки приложения в RuStore Консоль. Теперь система учитывает приоритет по отпечаткам подписи для APK-файлов.
Можно загружать APK-файлы с разными подписями разработчика или с поддержкой разных сервисов. Это снизит число ошибок при установке и расширит аудиторию приложения: RuStore отдаст каждому пользователю файл, созданный под устройство, или с совпадающей подписью.
Изменения в том числе помогут адаптировать загружаемые APK-файлы под устройства с Huawei Mobile Services. Раньше разработчики могли создавать только универсальные APK.
А ещё мы запустили официальный чат RuStore для разработчиков.
В нем вы сможете делиться мыслями и идеями друг с другом, просить совета у коллег и общаться с командой нашего стора в неформальной обстановке.