Мобильная разработка – Telegram
Мобильная разработка
13.9K subscribers
854 photos
239 videos
2.95K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Релиз Kotlin 1.5.20

Что нового:
— конкатенация строк через invokedynamic;
— экспериментальная поддержка JSpecify-аннотаций для контроля nullability;
— экспериментальная поддержка методов, сгенерированных Lombok.

Подробнее в блоге Kotlin: https://tprg.ru/WMib

Также JetBrains сделала наглядный ролик, рассказывающий об изменениях: https://youtu.be/SV8CgSXQe44

#kotlin
На Windows 11 можно будет запустить Android-приложения без сторонних эмуляторов

На этой неделе Microsoft показала свою следующую ОС — Windows 11. Одним из ключевых нововведений системы стала поддержка Android-приложений. Да, они будут работать как обычные программы.

Такое стало возможно благодаря технологии Intel Bridge. Она в реальном времени переводит приложения, скомпилированные для других платформ, в инструкции x86. Принцип работы напоминает проект Rosetta от Apple, но наоборот — там x86-инструкции транслируются в ARM.

Android-приложения можно будет запустить на процессорах Intel и AMD. А распространяться они будут через Amazon Appstore и Microsoft Store.

#android
В курсе Android Basics появился новый раздел

Android Basics in Kotlin — это официальный курс по Android-разработке для новичков.

В июне курс обновили, и в нём появился юнит по хранению данных. В разделе знакомят с основами SQL и библиотекой Room, которая помогает управлять базами данных:

https://developer.android.com/courses/android-basics-kotlin/unit-5

#android #native #начинающим
Библиотека для создания красивых онбордингов

Онбординг — это экран, который видит пользователь при первом запуске приложения. Стартовый экран рассказывает о ключевых возможностях приложения и должен зацепить пользователя.

Библиотека поможет сделать красивые анимации, индикаторы и переходы:

https://github.com/Mindinventory/Walk-Through-Screen

#android #библиотеки #native
Память в Swift от 0 до 1

Знаете ли вы, как язык Swift работает с памятью?

В статье рассказано:
— как байты в памяти размещаются в Swift;
— как Swift управляет памятью;
— как выглядит жизненный цикл объектов:

https://tprg.ru/jSys

#swift #ios
Реализуем сквирклморфизм

Недавно мы разбирали, что такое сквирклморфизм. Его принципы реализованы в библиотеке SquircleView. С её помощью вы можете создавать View в форме сквиркла.

Репозиторий: https://github.com/Juky-App/SquircleView

#android #библиотеки
Управляем микроконтроллером с Android-смартфона

Концепция «умного дома» — уже не фантастика. С Android-устройства можно, например, считывать температуру и управлять светодиодами с микроконтроллера ESP8266. И всё это через Wi-Fi.

Вот как это можно реализовать:

https://youtu.be/BmEqc8nOqWM

#android #native
С августа новые Android-приложения должны перейти на формат Android App Bundle

Иначе их не пропустят в Google Play.

Формат Android App Bundle (AAB) пришёл на замену Android Package (APK). Внутри него приложение делится на специальные модули, и пользователь загружает приложение только с необходимыми для устройства пакетами.

Благодаря этому разработчики могут более свободно работать с лимитом на размер установочного файла приложения — 150 МБ.

Если вы уже упаковывали приложение в оптимизированный APK, то переход на AAB пройдёт гладко: достаточно пересобрать приложение в новый формат в Android Studio или через командную строку.

Подробнее об Android App Bundle и как собрать приложение: https://developer.android.com/guide/app-bundle

#android #native
Как в View Model избавиться от наследования ViewModel

Обычно в проекте отвязки от ViewModel не требуется. Но если вы реализуете приложение на Kotlin Mutliplatform (KMM), то необходимо написать код так, чтобы он работал на разных платформах и не зависел от Android.

В статье подробно разобрана эта проблема:

https://tprg.ru/BYDu

#android #native
This media is not supported in your browser
VIEW IN TELEGRAM
Реализуем эффект размытия на Flutter

Если вам нужно «заблюрить» экран Flutter-приложения, например, при выскакивании уведомления, то в этом может помочь виджет BackdropFilter. Он применяет нужный фильтр как к нужному виджету, так и ко всему экрану.

В статье рассказано, как достичь эффекта размытия с помощью BackdropFilter:

https://tprg.ru/1mDn

#flutter
Вышла первая Release Candidate-версия Jetpack Compose

Новых функций в Compose-библиотеках нет. Но сам факт перехода Jetpack Compose в ветку RC уже говорит о том, что релиз не за горами. Вот полные списки всех изменений.

Вместе с Compose обновления получили и другие Jetpack-библиотеки:

Navigation 2.4.0-alpha04 получила встроенную поддержку двухпанельных layout с помощью AbstractListDetailFragment;
Paging 3.1.0-alpha02 теперь может слушать, когда происходит обновление страниц.

#android #jetpack
Как работать с API StoreKit 2

Storekit — это фреймворк от Apple, который позволяет встроить покупки прямо в iOS-приложение. В июне фреймворк получил обновление до второй версии.

В статье рассматривается работа с StoreKit 2 со стороны сервера через App Store Server API:

https://tprg.ru/vu91

#ios
Поддержка настольного режима для складных Android-устройств

Хоть складных устройств на рынке довольно мало, но они обладают уникальными фишками. В их число входит настольный режим (tabletop mode), когда верхняя часть экрана приподнимается.

К счастью, на Android есть инструменты, которые позволяют определить, в каком положении находится устройство, и адаптировать под него приложении.

В статье объясняется, как реализовать поддержку настольного режима на примере простого видеоплеера:

https://tprg.ru/jXFk

#android

Кстати, так выглядит Google Duo до и после оптимизации под складные устройства:
This media is not supported in your browser
VIEW IN TELEGRAM
К слову о фичах складных Android-устройств. Пожалуй, сложно придумать что-то лучше, чем превращение смартфона RAZR в ностальгическую «звонилку».

#android
Интеграция Huawei Mobile Services в Android-приложение

Huawei — один из лидеров на рынке мобильных смартфонов. Но на относительно новых смартфонах от Huawei вместо сервисов Google встроены Huawei Mobile Services (HMS) и свой магазин приложений AppGallery.

Если вы хотите опубликовать приложение в AppGallery, то в видео показывается, как интегрировать HMS:

https://youtu.be/LQAgkxfu7M4

#android
Переход новых приложений на формат Android App Bundle

С 1 августа все новые Android-приложения должны загружаться в Google Play в формате Android App Bundle (AAB). Новый формат обещает уменьшить размер пакетов для конечных пользователей. Однако его внедрение может повлечь потенциальные проблемы:

привязка к Google Play. Приложение будет теснее завязано на сервисах Google, и поэтому для альтернативных платформ (например, AppGallery) понадобится делать свою версию приложения;

Google сама будет подписывать приложения, поскольку нужные для пользователя APK-файлы генерируются автоматически. Поэтому APK-файл от разработчика и версия из Google Play могут быть несовместимы из-за разных подписей.

Используете ли вы формат Android App Bundle? Действительно ли он хорош и удобен для разработчика?

#чат
Библиотека для визуализации сложности пароля

Имеет 6 градаций сложности. Написана на Java.

Код: https://github.com/RHSaliya/PasswordStrengthView

#android #ui
Корутины в Android

Корутины — это «фишка» Kotlin. С их помощью вы можете написать асинхронный код.

В Android корутины не только нативно поддерживаются, но и часто используются для обеспечения многопоточности приложения.

Статья объяснит, как использовать корутины: https://tprg.ru/rShZ

#android #начинающим
Судоку на Kotlin Multiplatform и Jetpack Compose

Приложение представляет собой хороший пример того, как сделать для разных платформ общим код: данные, бизнес-логику, представление, навигацию и UI.

Код проекта: https://github.com/aaronoe/ComposeArcade

#android #jetpack
Как определить, находится ли курсор мыши на виджете

Для этого в Flutter есть виджет MouseRegion. Он помогает определить координаты курсора и отследить выход из исследуемой области.

Где может пригодиться? Для создания десктопных приложений на Flutter или для поддержки Android-планшетов с возможностью использования мыши.

Подробнее о MouseRegion в документации: https://tprg.ru/0Agy

#flutter #библиотеки
Рекламодатели стали меньше тратить на iOS, но больше на Android

В апреле вышла iOS 14.5 с внедрённым фреймворком App Tracking Transparency. С этого момента разработчики обязаны спрашивать разрешение на отслеживание пользовательской активности.

Ожидаемо, что со сбором данных согласилось менее трети пользователей. В результате рекламодатели переключились на Android, и реклама на Android стала стоить в среднем на 30% дороже, чем на iOS.

Пришли золотые времена Android-разработчиков?

#android #ios