Обновить
128K+

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

145,91
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как мы вдвоем писали кроссплатформенный мессенджер: Compose Multiplatform, SFU на Go и сжатие трафика

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.1K

Как силами двух разработчиков создать мессенджер под шесть платформ на Compose Multiplatform и Go. Рассказываем об оптимизации бандла до 10 МБ, разработке собственного SFU на pion/webrtc и синхронизации сообщений на слабых сетях.

Читать далее

Новости

Почему спидтест говорит «всё хорошо», а игра лагает: как я построил Latency Dashboard и научил пинг не врать

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.5K

Спидтест показывает 200 мегабит, а в PUBG Mobile 180 мс — и оба числа правда. Пропускная способность и задержка измеряют разные вещи, и про вторую спидтест не говорит ничего.

Я собирал для своего iOS-приложения панель задержек: пинговать не «интернет вообще», а те серверы, которыми человек реально пользуется в своей стране, и сортировать их от худшего. Семь раундов измерений против лежащего рядом MacBook дали пять дефектов подряд — и вытащили баг, который жил в приложении с версии 1.0: два параллельных пинга забирали ответы друг у друга, потому что ICMP-сокет отдаёт и чужие echo reply тоже.

Читать далее

iPhone Duo для iOS-разработчика: что реально меняется в вашем Swift-коде

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.3K

iPhone Duo сломал часть допущений, зашитых в iOS-приложения с 2007 года: экранов теперь два, safe area асимметрична, «только портрет» больше не значит что думаете. Разбираю по докладам Apple, что реально меняется в вашем Swift-коде — size classes, reserved regions, arrangements, hinge и камера.

Читать далее

Код быстрее, проверок больше: как ИИ меняет DevSecOps

Время на прочтение6 мин
Охват и читатели8.8K

Всем привет!

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

Итак, начинаем разбираться, как ИИ меняет безопасную разработку вместе с Антоном Прокофьевым, директором центра разработки решений по контролю безопасности ПО ГК «Солар»; Дмитрием Евдокимовым, основателем и генеральным директором Luntry; Дмитрием Частухиным, основателем и техническим директором Hexway.

Где ИИ уже снимает рутинную нагрузку с AppSec? Почему сгенерированный код все равно требует проверки и зачем контролировать ИИ-приложения уже во время исполнения?

Читать далее

Как сделать 2D-игру на LibGDX живее: 5 простых приёмов

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели12K

В предыдущей статье я писал про [5 вещей, которые не следует делать в LibGDX].

Поэтому логично продолжить тему и поговорить о вещах, которые, наоборот, стоит использовать при разработке 2D-игры на LibGDX.

Сразу оговорюсь: это не статья про архитектуру, паттерны проектирования, ECS, оптимизацию кода или правильную организацию проекта.

Здесь всё гораздо проще.

Я хочу поговорить о нескольких технических инструментах, которые способны относительно небольшими усилиями заметно улучшить визуальное восприятие игры:

Читать далее

Вайбкодинг. iOS приложение от идеи до стора

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

На разработку ушло 16 выходных дней и примерно 250$

Решил я значит разработать свое приложение, начитавшись материалов про ИИ и вайбкодинг, захотелось попробовать самому. Так как я являюсь UX/UI дизайнером, который занимается разработкой дизайна для приложений, я поставил себе несколько целей, которые должны были закрыться в процессе разработки аппы...

Читать далее

Мобильная разработка за неделю #646 (14 — 20 сентября)

Время на прочтение5 мин
Охват и читатели9.1K

Возвращаюсь со своим еженедельным дайджестом для мобильных разработчиков. В этом выпуске адаптация приложений под iPhone Duo и Shared Transition как требования дизайнеров, прозрачный Яндекс.Навигатор и нативная разработка в Shopify, фронтенд без готового бэкенда, путь к Chaos As A Service, ошибка после оформления подписки, которая приводит к оттоку и многое другое. Заходите!

Читать далее

Навигация во Flutter: выносим переходы из экранов

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8.1K

Гайдлайны Apple, Android и Flutter по-разному, но одинаково настойчиво подталкивают задавать переход прямо в коде экрана — в документации go_router это штатный пример. В результате экран отвечает и за интерфейс, и за навигацию: его трудно переиспользовать, он знает про следующие экраны, а модульный тест превращается в интеграционный.

В статье — приём, который выносит переход из кода виджета туда, где для решения есть вся информация: экран сообщает о запросе пользователя, а решение принимает роутер вкладки или приложения. Одна и та же задача (две вкладки со своими стеками и общий экран, который в каждой вкладке ведёт себя по-своему) решена трижды: на штатном Navigator, на go_router и на auto_route.

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

Читать далее

100 и одна ночь с SDK VK и RuStore: Flutter 3.47, AGP 9 и переезд на Nexus

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.8K

Если у вас в зависимостях есть SDK RuStore или VK — проверьте адрес Maven-репозитория: 30 сентября и 1 октября старые отключаются, а часть библиотек всё ещё ведёт на них. Ниже — таблица с конкретными файлами и строками, которые ещё не обновлены, и несколько историй о том, как я чинил SDK VK и RuStore под Flutter 3.47 и AGP 9 и присылал вендорам патчи.

Читать далее

Я писал ИИ‑агента с помощью ИИ‑агента: полгода, 1600 коммитов и ноль рейтинга

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели6.2K

В IT я больше двадцати пяти лет, в Android — почти пятнадцать. Оказалось, что этого мало.

Опыт никуда не делся. Я по‑прежнему знаю, чем интерфейс отличается от абстрактного класса и в чём разница между val и var. Но работать по‑старому стало тяжело. В требованиях всё чаще стояло не знание Kotlin и Compose, а умение вести разработку с ИИ. Не «пробовал Copilot», а именно вести: ставить задачу, разбирать результат, замечать, где инструмент уверенно врёт.

Вместо привычных TDD, BDD, DDD и FDD вокруг всё чаще звучали AIDD и SDD. Дошло до того, что на работе в карточках JIRA появилось обязательное поле «уровень использования ИИ» со значениями «полностью выполнено агентом» и «частично выполнено агентом». Варианта «выполнено самостоятельно» там нет. Намёк понятен.

Назад пути не было, пришло время меняться.

Учиться по статьям смысла нет — там всё получается. Нужен был настоящий проект, достаточно большой, чтобы в нём было где ошибиться.

Тему выбрал не случайно. Хотел разобраться не только в том, как пользоваться ИИ‑агентами, но и в том, как их делать. Так и вышло: агента я писал с помощью агента.

Получилось приложение. Через полгода оно лежит в Google Play, я пользуюсь им каждый день, и это уже давно не учебная работа. Дальше — как оно из неё выросло: через три смены курса (учебный проект стал продуктом, Gemini CLI сменился на Claude Code, маршрутизатор на два выхода стал графом), одну стену, в которую я въехал на полном ходу, и запуск, который не сработал.

Читать далее

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

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.6K

Чтобы человек навёл камеру на пачку гречки и получил название, вес и калории, нужна база штрихкодов российских продуктов. Я был уверен, что она где-то есть. Её нет. Что проверял живыми запросами, почему каталоги сетей не взять, как чек ОФД заменяет каталог и как в итоге устроен справочник на 258 тысяч позиций, который растёт ровно на то, что люди сканируют.

Читать далее

Как разрабатывать фронтенд без готового бэкенда: инструменты перехвата трафика, мокирования и принцип их работы

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.9K

Всем привет, на связи Дима Котиков! Я все еще люблю разрабатывать под Android/KMP, разбираться с инструментами для упрощения работы и латте на фундучном молоке. За пять лет мобильной разработки я неоднократно сталкивался с ситуацией, когда бэкенд запаздывает, а дедлайн горит. 

Зимой 2026 мы получили задачу: новый финансовый инструмент, дедлайн через три месяца, готовность бэкенда — через полтора. Команда начала работу на моках и успела. В статье я расскажу, какие инструменты перехвата и мокирования трафика помогли нам выпустить фичу в срок без готового бэкенда, как настроить их за один вечер и почему понимание принципов работы TLS и MITM-атаки экономит часы отладки.

Читать далее

Мы платили 39 000 токенов за то, чтобы поправить кнопку

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.6K

Год мы обкладывали мобильный проект правилами для ИИ-агентов: CLAUDE.md, AGENTS.md, правила Cursor, доменные документы хрупких зон, hooks. Каждый файл решал реальную проблему. Все они грузились всегда.

Потом я померил. Чтобы поправить отступ у кнопки, агент стартовал с 39 000 токенов фиксированного слоя — до того, как я задавал вопрос. Один CLAUDE.md весил 70 килобайт и давал 69% always-on пакета. Контекст заканчивался посреди обычных задач, крупные уходили в суммаризацию.

Четыре фазы: CLAUDE.md превратился в индекс на 114 строк вместо учебника на 409; главный кодекс на 417 строк разрезан по globs, чтобы правила про оффлайн не грузились при правке профиля; ревизия alwaysApply и прополка вендорных skills; привычки чата и защита от отката.

Стало: −64% на лёгкой задаче, −60% always-on, CLAUDE.md −77%. Задача в самой сложной зоне проекта теперь легче по контексту, чем раньше была любая правка одной строки.

Внутри: все замеры с методом, который можно повторить в своём репозитории за минуту, что мы сознательно не резали и почему, и три вопроса к каждому файлу в always-on.

Читать далее

Ближайшие события

Эволюция рендеринга в Zenith Engine: многопоточная загрузка GPU-ресурсов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.2K

В данной статье будем рассматривать технические детали графических API Metal, API Vulkan и многопоточное программирование, от читателя требуется знание перечисленных технологий.

Всем привет! Я Андрей, разработчик 3D-графики в 2ГИС.

Если вы пишете рендер на C++ и у вас есть отдельный RenderThread, то, скорее всего, вы уже сталкивались с подобным: данные грузятся в фоне, а вот создание GPU‑ресурсов всё равно происходит в потоке отрисовки через прямое обращение к графическим API Vulkan, Metal, Direct3D 12. И пока RenderThread в длинном цикле создает буферы и текстуры, он не рисует — он стоит, пока не обработает список загруженных ресурсов.

У нас это выглядело так на типичной средней сцене: до появления первого кадра на поток отрисовки приходило 532 текстуры и 2713 буферов, которые удерживали 45 МБ и 20 МБ временной памяти в RAM соответственно. Всё это нужно было доставить до GPU, создать наборы буферов и текстур, далее всё освободить и только потом начинать собирать батчи и рисовать.

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

Читать далее

Адаптация iOS-приложений под iPhone Duo

Уровень сложностиСредний
Время на прочтение27 мин
Охват и читатели9.4K

Привет! Я Валерия Кудрявцева, iOS-разработчик в KTS. Пора поговорить о новинке.

9 сентября 2026 года Apple представила iPhone Duo, свой первый складной смартфон. Пока пользователи обсуждали новый форм-фактор, у нас, iOS-разработчиков, вопрос был другой: как поддерживать приложение на устройстве с двумя экранами и сгибом. Для нас Apple подготовила раздел HIG о проектировании под Duo, шесть Tech Talks и хаб Get Ready for iPhone Duo.

Статья основана на опубликованных Tech Talks Apple. Xcode 27.1 beta на момент подготовки ещё не вышел, поэтому возможности 27.1 описаны по презентациям. Проверить их на практике нужно после выхода SDK.

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

Отдельный интерфейс под каждую pose Duo делать не нужно. А вот допущения в текущей вёрстке проверить придётся. Если код берёт доступное пространство из модели устройства или ориентации и считает отступы симметричными, на Duo такие расчёты дадут неверный результат. Основа остаётся одна: адаптивный UI, который смотрит на размер текущего окна и на size class.

Дальше разберу изменения iOS 27, что система сделает сама и что нужно править в коде, новые API 27.1 и типичные ошибки при аудите. В конце сравню подходы с Android foldable и расскажу, что из этого уже есть в Compose Multiplatform.

Читать далее

Я всегда не любил Duolingo всей душой. Но когда в VibeLing оказалось 70% новичков, то кое‑что сделал так же

Время на прочтение8 мин
Охват и читатели27K

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

Читать далее

Своя телефония на своём железе: SMS через GSM‑шлюз и звонки из FreePBX в Telegram

Время на прочтение12 мин
Охват и читатели11K

Покупал GoIP, чтобы разобраться с телефонией на своём железе, а в итоге написал три проекта: сервер для GSM-шлюзов, клиент к нему из одной кодовой базы на Android, iOS, десктоп и браузер, и шлюз, через который внутренние номера FreePBX звонят обычными звонками Telegram

Читать далее

Цифровая слежка в кармане: аудит 11 популярных российских Android-приложений

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели15K

Привет, Хабр!

Продолжаю серию аудитов. В прошлый раз я разобрал семь яндексовских приложений — и там было на что посмотреть: буфер обмена, WebRTC-утечки, распознавание ключевых слов в аудиопотоке. На этот раз расширяю выборку и меняю фокус.

Одиннадцать приложений. Банки, госсервисы, маркетплейсы, навигация, магазин приложений. Все — из топа российского Android-рынк. Методология — статический анализ (SAST) плюс пассивный перехват logcat. Трафик не вскрывался, SSL Pinning не обходился, в Secure Folder не залезал.

237 уязвимостей суммарно (включая расширенную проверку). Шесть приложений с ключами подписи образца прошлого века. ВК с 11 трекерами и рейтингом риска 98/100. И Госключ, который неожиданно оказался единственным, кто делает всё правильно.

Читать далее

Как учить разговорный английский по книгам: метод обратного перевода

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.7K

Изучать язык читая книги в оригинале полезно и увлекательно. Можно загрузить очень интересную книгу, запретить себе читать ее на русском и получится отличная мотивация для чтения и запоминания слов. Это может дать хорошее понимание языка в текстовом виде, но не поможет, когда в отпуске вам захочется что‑либо выяснить или просто поговорить в баре с англоговорящими. Для того требуется тренировать навык построения предложений и разговорной речи. И тут к нашим услугам либо живой репетитор, либо duolingo‑содержащий продукт с бесконечными синтетическими заданиями вроде составления the cat is on the mat перетаскиванием слов. Кому это вообще может быть интересно? Впрочем, выход есть.

Читать далее

SPAC — биржевая фирма‑обертка. Выводит на биржу того кто не может. Почему в App Store и Google Play такого почти нет?

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели10K

Что такое SPAC на бирже. Это фирма которая уже внутри и уже может собирать деньги. А новые фирмы которые хотят добраться до биржевых денег побыстрее могут использовать такие вот фирмы контейнеры. Это не кооператив. Есть владелец SPAC который оказывает такие услуги. Некий сервис за процент.

Некоторое время назад я вознамерился выпустить несколько приложений. Коли уж ИИ начал нормально генерить код то почему не воплотить несколько своих идей и не довести их до магазинов приложений. Кстати что-то бесплатное а что-то и нет.

Ну казалось поначалу что это ну не велика проблема. Оказалось что велика да еще и для российского разработчика. Она не велика. Она практически непреодолима.
Теперь то каждый может стать разработчиком. И тому уже есть примеры когда люди с идеями пишут софт без знания ничего из программирования. Грешным делом я и сам уже балуюсь вовсю.

Но в магазины не попасть никак. А хотелось бы.

Потому что есть жесткий список того что должно быть.

Читать далее как попасть в App Store
1
23 ...