Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.
Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.
Подробная инструкция в статье:
https://habr.com/ru/companies/timeweb/articles/736438/
#android #diy
@mobi_dev (теперь и в Max)
Ну не только же нам приложения делать, правда? Давайте реанимируем ваш старый гаджет на Android и превратим его в игровую приставку.
Для этого нам понадобятся:
— старый планшет или смартфон на android;
— Raspberry Pi Pico;
— 8 кнопок;
— прямые руки;
— и, наконец, немного кода.
Подробная инструкция в статье:
https://habr.com/ru/companies/timeweb/articles/736438/
#android #diy
@mobi_dev (теперь и в Max)
👎2🔥2
Отладка iOS-приложений на практике: 3 реальных бага
Понимание того, как именно отлаживать приложение, а также знание инструментов, которые есть в вашем распоряжении — это навык, который экономит массу времени и помогает быстрее переходить к следующей задаче.
В этой статье разобраны несколько примеров реальных ошибок, которые можно встретить в приложениях, и показан пошаговый процесс отладки в каждом случае.
#ios
@mobi_dev (теперь и в Max)
Понимание того, как именно отлаживать приложение, а также знание инструментов, которые есть в вашем распоряжении — это навык, который экономит массу времени и помогает быстрее переходить к следующей задаче.
В этой статье разобраны несколько примеров реальных ошибок, которые можно встретить в приложениях, и показан пошаговый процесс отладки в каждом случае.
#ios
@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
Декомпиляция официального 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)
В топ 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)
Пока все гонятся за хайповыми новостями, мы вместе с коллегой Андреем Дмитриевым из JUG.ru собрали события, которые уже повлияли на мир разработки.
В пилотном выпуске нового подкаста:
— Хакеры стерли десятки тысяч ПК через Microsoft Intune
— Дефицит оперативной памяти до 2030 года
— Оптимизация glibc под x86_64
О других событиях вы можете узнать, послушав подкаст.
Особое внимание предлагаем уделить рефлексии. В выпуске мы подсветили, почему те или иные истории важны для ИТ-сообщества. А теперь призываем вас в комменты под видео: что уже вошло в вашу жизнь из этих кейсов? И как думаете, что из этого не производит резонанса?
Смотрите подкаст и присоединяйтесь к дискуссии: https://tprg.ru/S7jD
@mobi_dev (теперь и в Max)
❤1🤔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)
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)
👏7❤2
7 июня Яндекс проводит Mobile Runtime (офлайн в Москве и онлайн)
В этот раз программа делится на два трека — AI и Not so AI. Эксперты расскажут про влияние нейросеток на пайплайн и архитектуру.
Что в программе:
• Проблема контекста в AI: Александр Иванов (Яндекс Go) на воркшопе покажет, как структурный индекс кода (ast-index) заменяет медленный grep и позволяет AI-агентам адекватно ориентироваться в гигантских монорепозиториях, не сливая токены впустую.
• Performance-инженерия: Лев Бондаренко (Яндекс Еда) разберет кейс медиаленты. Расскажет про управление памятью, дебаг и архитектурные решения, которые позволили сохранить плавность интерфейса при тяжелом контенте.
• Процессы и Seniority: на круглых столах лиды из Яндекса, Сбера, Райффайзенбанка и Одноклассников обсудят «обратную сторону AI» — почему сложность задач растёт вместе с внедрением агентов и как качать T-Shape скиллы, когда стек меняется слишком быстро.
Если вы работаете с нативной или кроссплатформенной разработкой, думаете про BDUI и перформанс — присоединяйтесь 7 июня.
Регистрация уже открыта.
В этот раз программа делится на два трека — AI и Not so AI. Эксперты расскажут про влияние нейросеток на пайплайн и архитектуру.
Что в программе:
• Проблема контекста в AI: Александр Иванов (Яндекс Go) на воркшопе покажет, как структурный индекс кода (ast-index) заменяет медленный grep и позволяет AI-агентам адекватно ориентироваться в гигантских монорепозиториях, не сливая токены впустую.
• Performance-инженерия: Лев Бондаренко (Яндекс Еда) разберет кейс медиаленты. Расскажет про управление памятью, дебаг и архитектурные решения, которые позволили сохранить плавность интерфейса при тяжелом контенте.
• Процессы и Seniority: на круглых столах лиды из Яндекса, Сбера, Райффайзенбанка и Одноклассников обсудят «обратную сторону AI» — почему сложность задач растёт вместе с внедрением агентов и как качать T-Shape скиллы, когда стек меняется слишком быстро.
Если вы работаете с нативной или кроссплатформенной разработкой, думаете про BDUI и перформанс — присоединяйтесь 7 июня.
Регистрация уже открыта.
❤3👎1
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.
На 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.
Android Developers Blog
Adaptive development for the expanding Android ecosystem
News and insights on the Android platform, developer tools, and events.
👎5❤🔥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)
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)
👍2
Пять багов, которые видно только на живом железе
Подборка кейсов из практики мобильного 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)
Подборка кейсов из практики мобильного 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 поверх
Можно изучить релиз и выбрать, что тестировать в своём KMP-приложении. В деталях особенно полезны ограничения новых text input API и изменения в тестах.
@mobi_dev (теперь и в Max)
Кроссплатформенный 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)
🔥3🍌3❤1👌1
Если вы устали от бесконечных тасок и созвонов, то мы приготовили для вас игру, которая поможет отдохнуть
А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях!
Играть тут: https://tprg.ru/Yldr
@mobi_dev (теперь и в Max)
А заодно проверить вашу способность быстро запоминать новую инфу. Переходите по ссылке и играйте в нашу «Меморину». И делитесь результатами в комментариях!
Играть тут: https://tprg.ru/Yldr
@mobi_dev (теперь и в Max)
👍2