Мобильная разработка (@mobi_dev) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Мобильная разработка

Мобильная разработка

@mobi_dev

13.1K подписчиков технологии 💬 Комментарии открыты

Актуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/oVBP

Последние публикации

Мобильная разработка
20.09.2026 11:37 · 👁 1.3K
Как ProfilingManager на Android 15+ помогает искать причины тормозов в продакшене ProfilingManager собирает на устройствах трассировки процессора, образцы стека вызовов и дампы памяти. Datadog встроила API в мониторинг реальных пользователей: теперь команда видит не только долгий запуск или зависание главного потока, но и код с событиями системы, которые привели к проблеме. Показательный случай: трассировка раскрыла, что фоновый сервис синтеза речи заранее запускался вместе с приложением, занимал самое производительное ядро процессора и заставлял главный поток ждать. В разборе Android Developers' Blog описаны сбор миллионов профилей в неделю, встроенное ограничение частоты запросов и анализ трассировок через Perfetto. API доступен с Android 15, поэтому на более старых устройствах текущие средства телеметрии всё ещё нужны.
Мобильная разработка
20.09.2026 08:19 · 👁 1.3K
Как использовать свайп-действия вне List в SwiftUI В SwiftUI свайп-действия вроде удаления больше не привязывают интерфейс к List. Для ScrollView с LazyVStack или собственного Layout достаточно оставить swipeActions у строки и добавить контейнеру модификатор swipeActionsContainer(). Он не только включает жесты: следит, чтобы действия были раскрыты лишь у одной строки, и закрывает их при прокрутке или касании снаружи. В List эта логика уже встроена, поэтому отдельный модификатор там не нужен. Приём пригодится, когда экрану нужна нестандартная компоновка или собственный стиль, но хочется сохранить нативное свайп-взаимодействие. Код для ScrollView и пользовательского Layout автор показывает в статье «Swipe actions outside of List in SwiftUI».
Мобильная разработка
20.09.2026 05:02 · 👁 1.3K
Как переносить сложные Android-экраны на Jetpack Compose: опыт TikTok Команда TikTok переносила отдельные пользовательские сценарии и после каждого этапа сверяла метрики: начала с QR-кода, затем взялась за вход и регистрацию. При небольших изменениях время загрузки страниц сократилось на 20–30%, а для новых функций и полностью переписанных страниц — на 70–80%. Та же функция на Compose потребовала на 58% меньше кода, чем реализация на View. Практический нюанс: множество маленьких ComposeView внутри одного ViewHolder добавляло расходы на композицию. Один ComposeView на весь ViewHolder сработал лучше. Для пилота берите один сценарий и измеряйте результат до расширения миграции. В разборе Android Developers Blog есть также пример с ViewPager.
Мобильная разработка
19.09.2026 13:20 · 👁 1.3K
Как управлять кнопками панели инструментов в SwiftUI Одна и та же панель в SwiftUI ведёт себя по-разному: macOS показывает все действия справа сверху, а iOS часть оставляет вверху, остальные сворачивает в дополнительное меню. Новые API задают, что останется на виду. visibilityPriority задаёт высокий или низкий приоритет, и SwiftUI сворачивает элементы с низким. ToolbarOverflowMenu помещает группу в свёрнутое меню на всех платформах. topBarPinnedTrailing удерживает действие справа сверху и может свернуть его только при активном поиске, если места не хватает. toolbarMinimizeBehavior сворачивает панель вкладок, нижнюю, оконную или навигационную панель при прокрутке. Статья с примерами кода показывает все четыре API. Для iOS-команды схема такая: назначить приоритет ключевому действию, второстепенные убрать в меню, затем проверить интерфейс с активным поиском и при прокрутке.
Мобильная разработка
19.09.2026 09:31 · 👁 1.3K
Как безопасно освобождать временные ресурсы с defer в Swift В Swift блок defer выполняется перед выходом из ближайшей области видимости, которую задаёт пара фигурных скобок. Его можно поставить сразу после создания ресурса: код очистки останется рядом с настройкой, но сработает в конце функции, цикла или вычисляемого свойства. Для iOS-разработки автор разбирает два сценария. В первом приложение записывает данные во временный файл, а defer удаляет его даже при раннем выходе после неудачного создания XMLParser. Во втором API наблюдения HealthKit требует вызвать обработчик завершения после обработки данных; defer делает это при выходе из итерации. В статье с примерами кода также показано, как применять приём для снятия блокировок и восстановления изменённого состояния.
Мобильная разработка
19.09.2026 05:14 · 👁 1.4K
Как Flutter готовит приложения к новым версиям iOS Между WWDC и стабильным релизом iOS у команды Flutter около трёх месяцев. В 2026 году скрипт на Dart выгрузил стенограммы более 145 сессий, а Gemini оценил их важность и область влияния. К вечеру команда получила разбор всех докладов. Отдельный кейс в статье посвящён UIScene. Apple предупреждала: после iOS 26 UIKit-приложение, собранное последним SDK без UIScene, не запустится. Полная поддержка UIScene вошла во Flutter 3.41 в феврале 2026 года, до появления бета-версии iOS 27 с обязательной проверкой. Большинству разработчиков достаточно выполнить flutter upgrade; проекты со встраиванием Flutter в нативное приложение требуют ручной миграции, а плагины должны поддерживать UIScene. В разборе команды Flutter есть и другой полезный кейс: сбой жестов в webview воспроизвели на чистом Swift, после чего Apple исправила его в iOS 26.4.
Мобильная разработка
18.09.2026 19:39 · 👁 1.4K
Как проверять iOS-приложение из Cursor, Claude Code и Codex RocketSim 17 выводит поток с iOS Simulator на локальную веб-страницу, которую можно открыть в браузере среды разработки. По команде /rocketsim агент проходит по экранам приложения и проверяет изменения через командную строку. После прогона симулятор остаётся открыт. Разработчик выбирает элементы интерфейса прицелом, оставляет комментарии и возвращает их агенту в том же рабочем контексте. Слева видна иерархия доступности, снизу указаны рабочее дерево Git и ветка. Такой цикл сокращает переключения между средой разработки и симулятором, но сохраняет визуальную проверку за человеком. В материале SwiftLee показан весь сценарий и объяснено, как подключить навигацию и проверку к агенту.
Мобильная разработка
18.09.2026 16:22 · 👁 1.4K
Как установить рантаймы симуляторов Xcode из терминала После установки Xcode 27 beta загрузка рантайма iOS у автора зависла на получении сведений. Переустановка Xcode и перезагрузка Mac не помогли, поэтому он перешёл к xcodebuild. Сначала проверьте активную версию Xcode командой xcode-select -p. Если выбрана не та, переключите её: sudo xcode-select -s /Applications/Xcode-beta.app. Затем запустите xcodebuild -downloadPlatform iOS. Если команда ищет универсальный рантайм и отвечает No matching downloadable, явно запросите arm64: xcodebuild -downloadPlatform iOS -architectureVariant arm64. Команду для загрузки рантаймов всех платформ и полный вывод ошибки смотрите в статье Донни Уолса.
Мобильная разработка
18.09.2026 06:30 · 👁 1.4K
Как безопасно перевести Flutter-код на первичные конструкторы Dart 3.12 В Dart 3.12 появилась экспериментальная поддержка primary constructors, или первичных конструкторов: поля класса и параметры конструктора можно объявить одной записью. В Flutter это сокращает шаблонный код виджетов, но массовая замена требует проверки поведения, а не только синтаксиса. Попытка поручить миграцию агентам давала разные результаты даже при повторных запусках. Поэтому автор сделал детерминированную утилиту: она читает дерево кода через пакет Dart analyzer и применяет фиксированные правила. Утилита выполняет три вида преобразований и пропускает код в 31 ситуации, когда безопасность замены нельзя доказать. Она записывает файл только после успешного разбора, а тесты проверяют результат анализатором. В инженерном разборе миграции показано, что именно нужно проверять кроме синтаксиса.
Мобильная разработка
17.09.2026 20:08 · 👁 1.4K
Как настроить и обрабатывать диплинки в SwiftUI Диплинк открывает нужный экран iOS-приложения сразу после перехода по ссылке. В примере схема recipeapp:// принимает действие open-recipe и параметр name, а SwiftUI получает адрес через onOpenURL. Обработчик сверяет схему, разбирает адрес через URLComponents, проверяет действие и лишь затем читает имя рецепта. Если одну схему зарегистрируют несколько приложений, какое из них получит ссылку, не определено. Для однозначной привязки автор советует Universal Links. Диплинки пригодятся и для экранов отладки или переключения тестовой среды. Открыть поддерживаемый адрес может кто угодно, поэтому принимайте только известные действия и параметры. В материале SwiftLee показаны настройка URL Types в Xcode, варианты для AppDelegate и SceneDelegate и тестирование ссылок в RocketSim.
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.