Обновить
256K+

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

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

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

ИИ в мобильном банке для бизнеса: где заканчивается чат и начинается польза

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

Цифровые сервисы уже несколько лет пытаются добавлять нейросети везде, куда только могут дотянуться, и это уже стало новой реальностью. При этом, чаще всего, когда говорят про ИИ в цифровых сервисах подразумевают сервисы для пользователей – поиск, чат-боты и тд. Но бизнес-сервисы тоже активно используют языковые модели. Я в этой статье хочу поделиться наблюдениями, как в бизнес-банкинге сегодня работает ИИ. Мы с коллегами нашли несколько примеров и оценили их в рамках исследования Markswebb Business Mobile Banking Rank 2026.

Читать далее

Новости

DarkGram: как мы делаем power‑user Telegram‑клиент для iOS — и почему его нет в App Store

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

Мы сделали клиент Telegram для iOS, у которого не будет ни страницы в App Store, ни кнопки Get. И дело не в деньгах. Рассказываем, что мы построили и почему пошли своим путём.

Читать далее

Релизный процесс QA: от рутины к автоматизации — как мы это сделали

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

Привет, Хабр! Меня зовут Богдан Бурков, я старший инженер по тестированию в мобильном приложении для продавцов Ozon Seller. В этой статье я хочу поделиться историей, как мы с коллегой, ведущим инженером по тестированию Владиславом Поповым (привет, Влад!), улучшали наш релизный процесс и что у нас из этого получилось.

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

В статье расскажу, что именно мы автоматизировали, что получилось не сразу и как в итоге сократили релизное тестирование примерно с семи до четырёх часов.

Читать далее

Посмотрел, как современные дейтинг приложение обращаются с данными и нежелательным контентом

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

У сервиса знакомств есть не только кнопка жалобы. Фотографии очищаются от EXIF перед хранением, публичные изображения проверяются до отправки, основной API и база находятся в России, а для звонка не требуется передавать номер. В статье разобраны семь решений, которые выглядят удачно, и два вопроса, которые стоит объяснить лучше: сроки хранения данных и апелляция после блокировки.

Читать разбор

Мобильная разработка за неделю #639 (13 — 19 июля)

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

В этом дайджесте вопросы о System Design и аннотации в Kotlin, Gradle под капотом и как мигрировать Flutter-приложение на SPM, как отправить 1 миллион уведомлений, открытый веб в виде социальной ленты, архитектура независимого умного дома и многое другое. Заходите!

Читать далее

Ваше «приложение» могло быть просто сайтом (и я ему в этом помог)

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

Этим летом наша детская школа искусств выступает с песнями и танцами на шоу в Диснейленде. Мы все предвкушаем поездку, но мою радость слегка омрачил тот факт, что для доступа к расписанию, графику поездки и информации о проживании придётся установить приложение Travelbound.

Да на кой оно мне надо? Это должна была быть простая веб-страница. С чего ради я должен устанавливать очередное хреново приложение только ради того, чтобы увидеть информацию, которую можно было уместить в гораздо более компактном, быстром и доступном документе?

И я нисколько не преувеличиваю. По своей сути, это приложение представляет текст, картинки и ссылки на PDF-файлы, загружаемые из интернета.

Читать далее

Между инди и AAA: как небольшие команды конкурируют в геймдеве

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

В игровой индустрии сложилось устойчивое представление, что успех = масштаб. И часто это действительно так — монументальные хиты вроде The Witcher 3 или Red Dead Redemption 2 создаются усилиями тысяч людей и огромных бюджетов.

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

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

Чтобы понять, как это работает на практике, мы поговорили с Иваном Дворяновым, руководителем игрового направления Magnus Tech. В этой статье делимся его экспертизой и выясняем: почему для коммерческого успеха порой достаточно команды из 7–10 человек и как не сломаться под грузом мультизадачности, выбрав этот путь.

Читать далее

LLM против APK: сколько стоит автономно перепаковать Android-приложение

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

Большие языковые модели давно вышли за пределы «помоги дописать функцию». Они доступны всем — и злоумышленник тут не исключение. Отсюда практический вопрос, который нас и интересовал: может ли LLM самостоятельно, без человека, атаковать мобильное приложение, и если да — во сколько это обойдётся.

Из всего списка рисков мы взяли один конкретный сценарий: внедрить в приложение вредоносный код так, чтобы после пересборки оно осталось рабочим и его можно было раздавать живым пользователям. Проверяли на Android.

Читать далее

Аннотации в Kotlin: от @Deprecated до своего KSP-процессора

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

Аннотации в Kotlin — это не только @Deprecated и @Suppress. Разбираемся, где живут SOURCE, BINARY и RUNTIME, чем KSP отличается от kapt, как compiler plugins меняют код и какие практические задачи можно закрыть генерацией: debug menu, удаление экспериментов и каталог performance-метрик.

Читать далее

Поставил свою Flutter-игру на iPhone друга без Mac и подписки Apple Developer

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

Занимаюсь разработкой своей игры на Flutter. Дошёл до этапа, когда её пора было показать другу-тестировщику, а у него iPhone. Первая мысль — покупать Mac Mini или подписку Apple Developer за $99 в год. Обе цены платить не хотелось, пока проект не подтвердил, что вообще будет.

На Samsung всё это делается за 15 минут: dev mode, USB, установка. На iPhone пришлось искать схему, которую нигде не находил собранной в одном месте — четыре инструмента, час на реализацию и заметно дольше на то, чтобы вообще понять, что она существует.

Внутри: рабочий пайплайн Tenorshare iCareFone → GitHub Actions → Sideloadly → доверие на устройстве. Полный yml для сборки unsigned .ipa на хостовом macOS-раннере (со всеми нюансами Flutter-версии, precache, packaging и --dart-define для API). Разбор тонких моментов, которые не вылезают в туториалах: bundle ID под бесплатным Apple ID, Firebase-конфиги, миграция macos-latest на macOS 26 в июне 2026.

Отдельно — честная экономика iOS-релиза из России в июле 2026: как теперь оплачивать Apple Developer, когда с 1 апреля отключили мобильную оплату; во сколько по факту обходится 99 долларов через Gift Card, посредников и иностранные карты; и сравнение с Google Play ($25 единоразово), RuStore и AppGallery.

Читать далее

Лучшая архитектура KMP-приложений и когда её не использовать. Часть 2

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

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

Это вторая, практическая, часть из двух. Здесь про то, как организованы слои, какие контракты уходят в Swift, как готовить SKIE, как устроены обработка ошибок и DI, что с модульностью, скоростью сборки и тестами.

Читать далее

Gradle под капотом: как перестать мучиться и заставить свой компьютер работать на полную мощность?

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

Привет, Хабр. На связи Илья Новиков, технический директор команды разработчиков «Исходный код».

Сегодня я хочу разобрать инструмент, который мы все используем десятки раз в день, но часто по-прежнему воспринимаем как «черный ящик».

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

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

Давайте заглянем под капот, чтобы настройка сборки перестала быть проблемой.

Читать далее

Как я в одиночку сделал мобильную игру на iOS — LootShrine

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

Всем привет! Хочу поделиться своим первым опытом в разработке мобильной игры для iOS — в жанре roguelite. Это pet‑проект, который неожиданно для меня самого дорос до релиза в App Store, так что расскажу и про идею, и про технические идеи. Надеюсь, будет интересно почитать:)

Читать далее

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

Один радар на стекле, другой в телефоне, и в каждом чего-то не хватало

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

У меня есть физический радар детектор — коробочка на стекле. И есть купленное приложение-антирадар. Что общего у них двух? В каждом чего-то не хватает. В одном не нравится одно, в другом другое. Годами я ловил себя на мысли, вот бы взять лучшее из обоих, а раздражающее просто не тащить.

В какой-то момент я перестал мечтать и сел писать своё. Наивно думая, что это несложно Ну что там, показывай точку из базы да пикай при подъезде. (Спойлер) Я ошибался почти в каждом своём предположении. Эта статья про то, как «тут же нечего делать» превратилось в фьюжн сенсоров, счисление пути в тоннелях, геодезию проездов и краудбазу с криптозащитой. И про то, чему меня научила каждая набитая шишка.

Читать далее

Как мигрировать Flutter-приложение на SPM — гайд с граблями, костылями и скриптами

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

Flutter активно движется в сторону Swift Package Manager (SPM) и, как и весь Swift‑мир, постепенно отказывается от CocoaPods. Сам Flutter описывает миграцию в два шага: включить флаг flutter config --enable-swift-package-manager и запустить сборку. Если после этого приложение собирается и в консоли появляется предложение deintegrate CocoaPods — вы счастливчик. Если нет, добро пожаловать под кат. 

Привет! Меня зовут Даниил Гиренко, я Flutter‑разработчик в Яндекс Про. Проект по переводу нашего супераппа с CocoaPods на Swift Package Manager оказался одним из самых сложных и долгих в моей карьере программиста. Весь мой пережитый ужас опыт я решил выразить в этой статье, чтобы решившиеся на миграцию разработчики (или агенты) понимали, какие подводные камни их ждут. Буду рад, если ваш проект займёт недели, а не месяцы, как у меня.

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

Читать далее

Я делал свой продукт, пока работал в найме — и вот что получилось

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

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

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

Читать далее

Мобильная разработка за неделю #638 (6 — 12 июля)

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

В новом выпуске UISlider изнутри и топ-10 вопросов по Kotlin в 2026 году, Swift 6.2 против вашего оптимизатора и переписывание Flutter на C#, всего несколько недель на вайб-кодинг, новый формат электронных книг для изучающих язык, многомерные векторы в конкурентном анализе мобильных приложений, обучение LLM 0.5B с нуля на статьях Хабра и многое другое. Подключайтесь!

Читать далее

Мне надоело писать один и тот же код. Поэтому я сделал Featuregen

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

Привет, Хабр. Я уже не тот беззаботный парнишка, что собирал 486-й компьютер. Время бежит, я скуф успел поработать с C++, C#, Java и Kotlin, последние 10 лет занимаюсь мобильной разработкой. Программирование я до сих пор люблю потому что больше ничего не умею. Но чем дольше работаешь, тем чаще ловишь себя на мысли, что от некоторых вещей начинает подгорать. Сегодня я расскажу, как я попытался избавиться хотя бы от части таких вещей.

Читать далее

Веб против мобильных устройств: что в опасности? Сравнение безопасности в двух разных мирах

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

Спойлер: оба находятся в опасности, но по-разному. Эта разница имеет значение.

Я не собирался сравнивать веб и мобилку как две враждующие платформы.

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

На вебе можно спрятать админку за условием в JavaScript и решить, что доступ закрыт. В мобилке можно положить токен в SharedPreferences и надеяться, что до него никто не доберется. Можно оставить открытый бакет, отключить нормальные правила Firebase, забыть про rate limit на логине или принять userId из тела запроса.

Все это выглядит как мелочи, пока приложение работает.

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

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

Читать далее

Как ускорить проверку приложения с помощью Impact-анализа. Часть 3: UI-тесты

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

Когда проект растёт, дольше всего начинают тянуться самые «тяжёлые» проверки – UI-тесты. Один-два модуля поменял, а CI всё равно гоняет сотни тестов на эмуляторах и ждёт их десятки, а то и сотни минут. Знакомо?

Это третья, финальная статья цикла о том, как мы в Циане перешли от полного прогона всех проверок к выборочному с помощью Impact-анализа. В первой части я показывал, как мы ускорили статические анализаторы, во второй — как в два раза сократили unit-тесты, научившись обходить граф Gradle-модулей. В заключительной части я расскажу, как у нас на проде реализован выборочный запуск UI-тестов.

Читать далее
1
23 ...