Мобильная разработка
13.3K subscribers
897 photos
237 videos
2.99K links
Актуальное по мобильной разработке — Android, iOS, кроссплатформа

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

Регистрация в перечне РКН: https://tprg.ru/oVBP
Download Telegram
Топ-5 простых приложений, которые сделали создателей миллионерами — разбираем реальные кейсы

Не обязательно делать Гугл, чтобы заработать миллион долларов. Рассказываем о максимально простых аппах, которые принесли своим разработчикам семизначную прибыль: https://tproger.ru/articles/top-5-prostyh-prilozhenij--kotorye-sdelali-sozdatelej-millionerami---razbiraem-realnye-kejsy

@mobi_dev (теперь и в Max)
🔥21💯1
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.

Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.

Подробная инструкция в статье:

https://habr.com/ru/companies/timeweb/articles/736438/

#android #diy

@mobi_dev (теперь и в Max)
🔥3👎2
Отладка iOS-приложений на практике: 3 реальных бага

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

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

#ios

@mobi_dev (теперь и в Max)
🔥1
Что скрывает приложение Белого дома? Трекинг, обход пейволлов и 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
🔥6🌚1
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)
👍4🤔1
Три ИТ-события, которые вы могли пропустить (а зря)

Пока все гонятся за хайповыми новостями, мы вместе с коллегой Андреем Дмитриевым из JUG.ru собрали события, которые уже повлияли на мир разработки.

В пилотном выпуске нового подкаста:
— Хакеры стерли десятки тысяч ПК через Microsoft Intune
— Дефицит оперативной памяти до 2030 года
— Оптимизация glibc под x86_64

О других событиях вы можете узнать, послушав подкаст.

Особое внимание предлагаем уделить рефлексии. В выпуске мы подсветили, почему те или иные истории важны для ИТ-сообщества. А теперь призываем вас в комменты под видео: что уже вошло в вашу жизнь из этих кейсов? И как думаете, что из этого не производит резонанса?

Смотрите подкаст и присоединяйтесь к дискуссии: https://tprg.ru/S7jD

@mobi_dev (теперь и в Max)
2🤔1
Локальный ИИ на 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)
👏72
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.
👎6❤‍🔥1👍1
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)
👍41
Пять багов, которые видно только на живом железе

Подборка кейсов из практики мобильного 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)
👍3👎3
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)
🔥4🍌31👌1
Если вы устали от бесконечных тасок и созвонов, то мы приготовили для вас игру, которая поможет отдохнуть

А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях!

Играть тут: https://tprg.ru/Yldr

@mobi_dev (теперь и в Max)
👍3
Forwarded from Чашечка Java
Локализация через Enum: избавляемся от рантайм-парсинга

В статье на Tproger разобрали три подхода к локализации: классическое наследование требует дублировать поля вручную, стандартные ARB/JSON парсятся в рантайме и съедают память, а табличные генераторы требуют ручного запуска после каждой строки.

Выход — Enum в одном файле без внешних ресурсов. Это убирает рантайм-парсинг и ручное дублирование. Если ваши сервисы сопрягаются с клиентами, где локализация до сих пор требует JSON или генераторов, стоит переложить её на compile-time решение.
Бывают баги, которые видно только на живом железе, поэтому для надёжного тестирования мобильных приложений компании либо собирали парки из «живых» устройств в офисах, либо покупали сотрудникам минимально необходимый набор, не покрывая все кейсы.

Теперь делать это совсем не обязательно, потому что можно собрать себе набор устройств через мобильную ферму Selectel.

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

Кстати, новые клиенты при регистрации до 31го июля получат 100 минут на тест.

Это #партнёрский пост
💯21🫡1
Forwarded from IT Юмор
💯10😁6🗿2
Аутсорс, инхаус или выделенная команда — что реально дешевле?

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

Разбираемся, как считать настоящий TCO (полную стоимость владения) по трём моделям:
🔘Инхаус — почему свой разработчик дороже оффера;
🔘Аутсорс — за что вы платите маржу подрядчику;
🔘Выделенные команды — почему «возьмём человека и ускоримся» работает не всегда.

Внутри — формулы для каждой модели и чек-лист из 3 пунктов, чтобы выбрать формат под свой проект.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
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 тоже на борту. Подробности в обзоре.
👍21
Forwarded from Типичный программист
Android 17 даёт приложениям функции, которые ИИ-агенты могут вызывать сами

Привыкли, что приложение ждёт, пока вы сами нажмёте кнопку? В Android 17 Google меняет правила: разработчик аннотирует функции приложения, и ИИ-агент может дергать их через Jetpack, получая доступ к локальному состоянию.

Приложение перестаёт быть островом и становится частью инфраструктуры для агентов. 16 июня вышел Android 17 с API 37, а 9 июня появился Android CLI 1.0. Теперь проект можно собирать из командной строки.

Вдобавок с 30 сентября разработчиков ждёт обязательная верификация в четырёх странах, а в Play сервисный сбор отделяется от платёжного. Разобрали дайджест июня — кто платит, кто мигрирует и что ломается.
👎4
Почему ваш пет-проект ещё не бизнес, а вы — не предприниматель

У каждого второго разработчика в столе лежит проект, который «вот-вот станет бизнесом». Осталось дописать пару фич — и дальше всё поедет само. Спойлер: не поедет. Разбираемся, где заканчивается код и начинается бизнес: почему всё стартует не с технологии, а с чужой проблемы, чем фаундер отличается от тимлида и почему рабочий сервис с первыми пользователями и MRR — это не бизнес, а промежуточный результат.

Простой тест: уйдите в отпуск на две недели, и если без вас всё встало — поздравляем, у вас пока не бизнес, а вы сами и есть главный «производственный ресурс».

Внутри ещё и про AR-очки на трамвайном заводе, которые зарубили сами рабочие: история о том, как ценность решения определяете не вы.
👎32
Ваша память ещё работает или нейронки уже и помнят всё за вас?

Чтобы это проверить мы приготовили для вас «Меморину» — игру, которая поможет проверить вашу память.

Всё просто: нужно запомнить и выбрать одинаковые карточки. Если память плохая, то рано или поздно вы всё равно справитесь. А если хорошая, то сможете увидеть ваш потолок скорости.

Ну что, готовы проверить? Тогда переходите по ссылке: https://tprg.ru/fw4Z