Мобильная разработка
13.1K subscribers
995 photos
238 videos
3.12K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

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

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Пять функций Android Studio для работы с изменениями в коде

Android Studio умеет отложить локальные правки без коммита, упаковать их в патч и разобрать конфликт слияния в редакторе из трёх секций. Это пригодится Android-разработчику при переключении между задачами и ревью кода.

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

Отложенные правки хранит сама IDE, а не Git. Если установка Android Studio повредится, изменения можно потерять. В материале показаны действия в меню и снимки интерфейса.
❤1👍1
Как показать данные, пока остальные запросы ещё выполняются

Для одного экрана CardioBot нужно 40–50 запросов к HealthKit. Если собрать их результаты в один объект и только потом обновить интерфейс, пользователь будет ждать завершения всей загрузки.

В разборе Majid данные загружаются через AsyncSequence: каждый шаг возвращает накопленный снимок, а ViewModel обновляет состояние в цикле for await. Внутри отдельных шагов можно сохранить параллельные запросы через async let.

Порядок загрузки становится частью интерфейса: сначала можно получить данные для видимого раздела, затем остальные. Итератор также проверяет отмену задачи и завершает последовательность, когда работа больше не нужна.
💯1
Что меняется в подписках Google Play

Подписка и разовая покупка обычно требуют отдельных оплат. В обзоре новых возможностей Google Play описан Mixed Carts: подписку с автопродлением и разовый товар можно оформить через один вызов API и общий экран оплаты.

Среди других направлений — покупка нескольких мест для команды и предоплаченный баланс с автоматическим пополнением для функций с переменной стоимостью. Часть возможностей проходит тестирование с партнёрами или распространяется через Early Access.

In-App Messaging API уже доступен всем разработчикам. Он позволяет прямо в приложении предложить исправить отклонённый платёж или сообщить о предстоящем изменении цены.
🔥1
Бот для перехода с iPhone на Android

Оказывается, что есть бот, который помогает подобрать подходящую модель Android-смартфона буквально за пару минут.

Нужно ответить на несколько вопросов о характеристиках и сценариях использования, а бот выдаст подборку подходящих смартфонов.

Удобно, если уже давно задумывались о смене операционной системы или понадобился телефон на базе Android.
👎3👍1🔥1😁1💯1
Kotlin 2.4.20 упрощает передачу sealed-типов в Swift

В Kotlin 2.4.20 Swift Export получил поддержку sealed-классов и интерфейсов. Через sealedType() можно получить Swift enum и разобрать варианты в switch без default. Когда в Kotlin появится новый подкласс, компилятор поможет найти необработанную ветку.

Для XCFramework со SwiftPM-зависимостями задача assembleSharedXCFramework теперь генерирует Package.swift. Его нужно распространять вместе с фреймворком, чтобы зависимости корректно разрешались.

Инкрементальная компиляция klib перешла в Beta. Для проверки в своём проекте её включают через kotlin.incremental.native=true в gradle.properties; по умолчанию она пока не активирована.
🤝1
В Xcode появился JSON-формат проекта

Добавление файла в старый project.pbxproj меняет несколько секций и создаёт новые идентификаторы. Когда два разработчика делают это в разных ветках, приходится разбирать конфликты в описании проекта.

В разборе нового формата Xcode 27.2 показан project.xcproj: файл описывается одной записью, а настройки сборки не приходится дублировать для каждой конфигурации. В примере автора 300 строк property list превратились в 123 строки JSON.

Переключение доступно в File inspector проекта. Перед миграцией нужно проверить версии Xcode в команде и инструменты, которые читают project.pbxproj напрямую: CocoaPods, XcodeGen, Tuist и собственные CI-скрипты.
❤1👍1
SwiftFairy проверяет структуру SwiftUI-кода локально

Агент может знать правило и всё равно написать код, который ему противоречит. SwiftFairy разбирает Swift-код на Mac, ищет известные проблемные конструкции и через MCP возвращает замечания с привязкой к строкам и примерами исправлений.

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

Проверки сопоставляют структуру кода с заданными шаблонами. Сейчас есть наборы для SwiftUI, Swift Charts и современного Swift; найденное замечание стоит рассматривать вместе с контекстом конкретного экрана.
💯1
От чатбота к агентам: опыт Митчелла Хашимото

Для работы с кодом Хашимото перешёл от отдельного чата к агенту, который читает файлы проекта и запускает программы. После этого начал повторять собственную работу: сначала решал задачу сам, затем давал её агенту без готового решения.

Так он выяснял, какие задачи можно поручать ИИ. Дальше добавлял инструкции в AGENTS.md, файл с правилами проекта, и способы проверить изменения, включая запуск тестов.

В истории освоения ИИ в разработке Хашимото связывает выбор задач с настройкой рабочего окружения. Отдельные чаты при этом остались в его повседневной работе.

#ии #инструменты
💯1