Мобильная разработка
СтатистикаАктуальное по мобильной разработке — Android, iOS, кроссплатформа Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/oVBP
- Последний пост
- 9 июл.
- Последнее чтение
- 09:21
- Постов за неделю
- 0
- Всего постов
- 44
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии (по похожим)
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Ваша память ещё работает или нейронки уже и помнят всё за вас? Чтобы это проверить мы приготовили для вас «Меморину» — игру, которая поможет проверить вашу память. Всё просто: нужно запомнить и выбрать одинаковые карточки. Если память плохая, то рано или поздно вы всё равно справитесь. А если хорошая, то сможете увидеть ваш потолок скорости. Ну что, готовы проверить? Тогда переходите по ссылке: https://tprg.ru/fw4Z
Почему ваш пет-проект ещё не бизнес, а вы — не предприниматель У каждого второго разработчика в столе лежит проект, который «вот-вот станет бизнесом». Осталось дописать пару фич — и дальше всё поедет само. Спойлер: не поедет. Разбираемся, где заканчивается код и начинается бизнес: почему всё стартует не с технологии, а с чужой проблемы, чем фаундер отличается от тимлида и почему рабочий сервис с первыми пользователями и MRR — это не бизнес, а промежуточный результат. Простой тест: уйдите в отпуск на две недели, и если без вас всё встало — поздравляем, у вас пока не бизнес, а вы сами и есть главный «производственный ресурс». Внутри ещё и про AR-очки на трамвайном заводе, которые зарубили сами рабочие: история о том, как ценность решения определяете не вы.
Android 17 даёт приложениям функции, которые ИИ-агенты могут вызывать сами Привыкли, что приложение ждёт, пока вы сами нажмёте кнопку? В Android 17 Google меняет правила: разработчик аннотирует функции приложения, и ИИ-агент может дергать их через Jetpack, получая доступ к локальному состоянию. Приложение перестаёт быть островом и становится частью инфраструктуры для агентов. 16 июня вышел Android 17 с API 37, а 9 июня появился Android CLI 1.0. Теперь проект можно собирать из командной строки. Вдобавок с 30 сентября разработчиков ждёт обязательная верификация в четырёх странах, а в Play сервисный сбор отделяется от платёжного. Разобрали дайджест июня — кто платит, кто мигрирует и что ломается.
Kotlin 2.4.0 стабилен: что меняется для Android- и iOS-приложений Летом Kotlin исполняется 15 лет, но для мобильной разработки важнее релиз 2.4.0. В стабильной ветке появились context parameters и explicit backing fields — то, что упростит шаблонный код в Android-проектах. Kotlin/Native теперь поддерживает Swift packages, что упрощает связку с iOS-зависимостями в Kotlin Multiplatform. Compose Multiplatform дошёл до 1.12.0-beta01, а Compose Hot Reload — до 1.2.0-beta01. Если собираете shared UI под Android и iOS, это сокращает цикл правка-сборка-проверка. Gradle 9.5.0 тоже на борту. Подробности в обзоре.
Аутсорс, инхаус или выделенная команда — что реально дешевле? Спойлер: ставка разработчика вам этого не скажет. Сравнивать модели по ставке довольно бессмысленное занятие, потому что за низкими ставками прячутся найм, налоги, онбординг, простои, переделки и часы техлида. В смете их не видно, а в бюджете — ещё как. Разбираемся, как считать настоящий TCO (полную стоимость владения) по трём моделям: 🔘Инхаус — почему свой разработчик дороже оффера; 🔘Аутсорс — за что вы платите маржу подрядчику; 🔘Выделенные команды — почему «возьмём человека и ускоримся» работает не всегда. Внутри — формулы для каждой модели и чек-лист из 3 пунктов, чтобы выбрать формат под свой проект.
Локализация через Enum: избавляемся от рантайм-парсинга В статье на Tproger разобрали три подхода к локализации: классическое наследование требует дублировать поля вручную, стандартные ARB/JSON парсятся в рантайме и съедают память, а табличные генераторы требуют ручного запуска после каждой строки. Выход — Enum в одном файле без внешних ресурсов. Это убирает рантайм-парсинг и ручное дублирование. Если ваши сервисы сопрягаются с клиентами, где локализация до сих пор требует JSON или генераторов, стоит переложить её на compile-time решение.
Если вы устали от бесконечных тасок и созвонов, то мы приготовили для вас игру, которая поможет отдохнуть А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях! Играть тут: https://tprg.ru/Yldr @mobi_dev (теперь и в Max)
Compose Multiplatform 1.11: iOS становится ближе к нативному ощущению Кроссплатформенный UI часто ломается на мелочах: курсор в text field, selection handles, жесты, системное меню. В Compose Multiplatform 1.11 JetBrains как раз двигает эти детали на iOS, а не только добавляет ещё один общий API. В релизе есть experimental native text input поверх UIView, concurrent rendering по умолчанию, обновлённые Compose UI test APIs v2 и переработанная обработка touch для web targets. Для мобильных команд это хороший набор сигналов: где shared UI уже зрелый, а где нужна проверка на устройстве. Можно изучить релиз и выбрать, что тестировать в своём KMP-приложении. В деталях особенно полезны ограничения новых text input API и изменения в тестах. @mobi_dev (теперь и в Max)
Пять багов, которые видно только на живом железе Подборка кейсов из практики мобильного QA — баги, которые проходят формальную проверку каждой итерации, но ломаются на стыке платформ: — Android RatingBar наследует ProgressBar и считает рейтинг через округление по stepSize. На реальных Samsung округление уходило вверх: касание четвёртой звезды давало 5. Фикс — stepSize 0,01 и ручное округление в листенере. — iPad слал в JSON OSName «iPadOS», бэкенд знал только «iOS» и возвращал 400 «Provider UUID not found». Все планшеты остались без пушей из-за одной строки. — WebSocket чата не отправлял код 1000 при выходе, сокеты копились на каждом входе, приложение падало. Корень — переиспользованная библиотека основного банковского продукта. — Чипсы специальностей и кнопка выбора счёта без скролла: на эмуляторе и тестовых данных всё ок, на восьми тегах и длинном списке UI ломался. Внутри ещё промокоды и валидация на стыке веба и мобилки. @mobi_dev (теперь и в Max) @mobi_dev (теперь и в Max)
Android Skills — модульные AI-инструкции для разработки Google выложила Android Skills — набор готовых markdown-инструкций для любой LLM (Claude, Gemini, GPT), которые проводят агента через рутинные архитектурные задачи в Android-проекте. В наборе: — View → Compose миграция с сохранением ViewModel-логики. — Реализация adaptive-лейаутов под Android 17 (sw > 600 dp). — Navigation 2 → Navigation 3 transformation. — Миграция со старых camera-библиотек на CameraX. Технически Skills — структурированные `.md` файлы с шагами, проверками и code patterns. LLM подключает их как контекст и идёт по чеклисту, не «вспоминая» Compose из памяти. Запуск — через новый Android CLI 1.0. Репо открытый, форкается под свой стек. @mobi_dev (теперь и в Max)
Android 17 убирает opt-out для адаптивности На Google I/O 2026 анонсировали: Android 17 (API level 37) удаляет временный opt-out от ограничений на ориентацию и resizability. При target API 37 приложение обязано адаптироваться к экранам sw > 600 dp — планшетам, foldables и ChromeOS. В Android 16 эти изменения уже ввели, но дали opt-out — можно было оставить app фиксированным под телефон. В Android 17 опции больше нет. Что делать: - Тестировать через флаг UNIVERSAL_RESIZABLE_BY_DEFAULT в App Compatibility Changes под SDK 36. - Готовить UI на Compose 1.11 — Grid/FlexBox-лейауты и MediaQuery API. Мотивация от Google Play — бейдж «Optimized for large screens» для приложений, прошедших новый quality bar.
Локальный ИИ на iPhone — без облака и без зависимости от API Google выпустил AI Edge Gallery для iOS: приложение запускает Gemma 4 прямо на устройстве. Ответы на вопросы, распознавание фото, расшифровка голоса — всё работает локально, без интернета. Для разработчиков это референсная реализация on-device ML с открытым исходником на GitHub — можно разобрать, как интегрировать модель в своё приложение. На iPhone запускаются облегчённые версии на 2 и 4 миллиарда параметров. Вместе с iOS-версией добавили Thinking Mode (chain-of-thought с видимыми шагами рассуждений) и Agent Skills — плагины-инструменты, которые модель вызывает сама. Tool use на телефоне — теперь не только в слайдах, а в коде на GitHub под Apache 2.0. @mobi_dev (теперь и в Max)
Три ИТ-события, которые вы могли пропустить (а зря) Пока все гонятся за хайповыми новостями, мы вместе с коллегой Андреем Дмитриевым из JUG.ru собрали события, которые уже повлияли на мир разработки. В пилотном выпуске нового подкаста: — Хакеры стерли десятки тысяч ПК через Microsoft Intune — Дефицит оперативной памяти до 2030 года — Оптимизация glibc под x86_64 О других событиях вы можете узнать, послушав подкаст. Особое внимание предлагаем уделить рефлексии. В выпуске мы подсветили, почему те или иные истории важны для ИТ-сообщества. А теперь призываем вас в комменты под видео: что уже вошло в вашу жизнь из этих кейсов? И как думаете, что из этого не производит резонанса? Смотрите подкаст и присоединяйтесь к дискуссии: https://tprg.ru/S7jD @mobi_dev (теперь и в Max)
Google двинул on-device ML в тренды GitHub — два проекта для мобильных В топ GitHub Trending недели попали два репозитория Google AI Edge. Gallery (+4,3 тыс.) — демо с примерами on-device ML: генерация текста, классификация изображений, перевод речи. Всё локально на Gemma через LiteRT (бывший TensorFlow Lite) и MediaPipe. Сборки под Android и iOS — готовый референс для GenAI-фичи без облака. LiteRT-LM (+2,2 тыс.) — C++ рантайм для 3–7B LLM на телефоне. Заточен под чипсеты Pixel и Samsung, единый API — альтернатива llama.cpp. Остальные проекты недели разобрали на Tproger. @mobi_dev (теперь и в Max)
Что скрывает приложение Белого дома? Трекинг, обход пейволлов и JS с GitHub Pages Декомпиляция официального Android-приложения правительства США показала, что даже государственный софт может быть напичкан сомнительными практиками. Но разбор интересен не скандалом, а набором антипаттернов, которые разработчики (и их заказчики) допускают слишком часто. Ключевые находки, полезные для любого мобильного разработчика: — Инжектор в WebView скрывает cookie-баннеры, GDPR-диалоги и пейволлы на сторонних сайтах. Встроенный браузер приложения подменяет поведение страниц — это и нарушение регуляций, и пример того, как не стоит вмешиваться в чужой контент. — GPS-трекинг через OneSignal. Код для сбора координат (с интервалом 4,5 минуты в фоне) полностью присутствует в сборке, формально отключён флагом, но может быть активирован серверным конфигом без обновления через Google Play. Урок: если функциональность не нужна, исключайте соответствующие модули из билда, а не просто отключайте их флагами. — Supply-chain риск: YouTube-плеер загружает HTML-страницу с GitHub Pages стороннего разработчика. Компрометация этого аккаунта позволит выполнить произвольный код в приложении. Хостинг критичных ресурсов на непроверенных площадках без SRI — плохая практика для любого продукта, особенно государственного. — Артефакты разработки в продакшен-сборке: localhost, IP разработчика, экспортированная отладочная Activity, дев-меню. Это не просто неаккуратность, а потенциальные векторы атаки (например, через IPC). — Отсутствие certificate pinning. Трафик между приложением и серверами можно перехватить на скомпрометированной сети. Для мобильных разработчиков этот разбор — готовый чек-лист того, что нужно проверить перед релизом: исключить дев-артефакты, изолировать сторонние зависимости, настроить pinning и пересмотреть использование SDK с избыточными возможностями. Полный список найденных уязвимостей: https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod- #новости #android
Отладка iOS-приложений на практике: 3 реальных бага Понимание того, как именно отлаживать приложение, а также знание инструментов, которые есть в вашем распоряжении — это навык, который экономит массу времени и помогает быстрее переходить к следующей задаче. В этой статье разобраны несколько примеров реальных ошибок, которые можно встретить в приложениях, и показан пошаговый процесс отладки в каждом случае. #ios @mobi_dev (теперь и в Max)
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку. Для этого нам понадобятся: — старый планшет или смартфон на android; — Raspberry Pi Pico; — 8 кнопок; — прямые руки; — и, наконец, немного кода. Подробная инструкция в статье: https://habr.com/ru/companies/timeweb/articles/736438/ #android #diy @mobi_dev (теперь и в Max)
Топ-5 простых приложений, которые сделали создателей миллионерами — разбираем реальные кейсы Не обязательно делать Гугл, чтобы заработать миллион долларов. Рассказываем о максимально простых аппах, которые принесли своим разработчикам семизначную прибыль: https://tproger.ru/articles/top-5-prostyh-prilozhenij--kotorye-sdelali-sozdatelej-millionerami---razbiraem-realnye-kejsy @mobi_dev (теперь и в Max)
Что такое Compose Multiplatform? На сегодняшний день есть два основных UI-фреймворка, которые позволяют запускать один и тот же UI на разных платформах и широко представлены на рынке: React Native и Flutter. Но статья не о них, а об удобном и мощном инструменте мобильной и десктопной разработки — Compose Multiplatform, приложения на котором можно запускать почти где угодно и на чем угодно — Android, iOS, Windows, Linux, MacOS и в браузере: https://habr.com/ru/companies/timeweb/articles/734818/ #compose #kotlin @mobi_dev (теперь и в Max)