Обновить
256K+

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

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

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

Особенности SRE в мобильном банкинге: подходы, вызовы и специфика

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

Привет, Хабр! Я Степан Аксенов, SRE-инженер в Т-Банке. Эта статья — часть проекта «20 в 20», приуроченного к 20-летию компании: в рамках проекта специалисты из разных городов рассказывают о своей работе, инженерной культуре и о том, как устроены распределенные команды внутри большого бигтеха.

Однажды мы отключили проблемные функции на Android с помощью конфигурационной заглушки. Через 15 минут система зафиксировала резкий рост крашей — но уже на iOS. Оказалось, что решение, безопасное для одной платформы, сломало приложение на другой. 

Этот случай еще раз подтвердил, что mobile SRE не классический SRE и в нем нельзя полагаться на привычные практики. Нет ни отката, ни новых логов задним числом, ни полного контроля над средой. В статье — как мы адаптируем SRE-подходы под мобильный банкинг, где фронт работает на миллионах устройств, которые мы не контролируем.

Читать далее

Новости

Как запустить двусторонний маркетплейс для подработок, когда на нём ещё никого нет

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

Привет всем. Меня зовут Максим Талалаев и, как уже можно было, догадаться по тематике профиля, мы с очень маленькой, но гордой командой замахнулись на великое и делаем платформу временной (гибкой) занятости. Это модель уберизации, переложенная в подработки. Таксисты по таким работают, курьеры, складские работники и т.д. Даже президент сказал не так давно, что безработица низкая и платформенная занятость - это вам ого-го какая штука!

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

Читать далее

Измеряя незримое: что и как измерять в мобильной разработке

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

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

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

Читать далее

Как мы показываем клиентам документацию по проекту из приватного репозитория, не пуская их в репозиторий

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

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

За последний год мы переписали почти всю проектную документацию в markdown и положили в тот же git, где лежит код. Причина простая: после перехода на Cursor и Claude Code так было удобнее работать. Модели нормально обрабатывают markdown и не лопатят десятистраничный google-док, диффы видно в PR, доки лежат рядом с кодом, который описывают. Всегда можно обратиться к инфе по проекту, внести обновления - короче пользоваться документом, а не хранить его для красоты.

И тут вылезла проблема, о которой лично мы заранее не подумали: документацию читает не только тот, кто её пишет. Её читают клиенты, менеджеры, дизайнеры, эйчары. А они в репозиторий не полезут никогда.

Дать клиенту доступ в GitHub/GitLab — так себе затея сразу по нескольким причинам: там лежит то, что ему видеть не надо, это лишний разговор про безопасность, да и сам интерфейс гитхаба человека не из айтишки отпугивает. Плюс требуется регистрация. В итоге мы делали то же, что, по-моему, делают все: копировали markdown в google docs, чтобы клиент мог прочитать и покомментировать, а потом при каждом изменении заново выгружали и сводили комментарии руками. Год так жили.

Что смотрели, прежде чем пилить своё:

GitBook и Mintlify хотят, чтобы ты писал в их редакторе. Ради шеринга пришлось бы бросить тот самый workflow, ради которого мы в git и переехали. Плюс ценник.

Читать далее

Ошибки не должны быть безмолвными: Sentry, Firebase Crashlytics и Datadog в одном Flutter‑приложении

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

Мобильное приложение может стабильно проходить тесты и всё равно падать у пользователей в сценариях, которые команда не успела предусмотреть.

В статье разберём, как связать Firebase Crashlytics, Sentry и Datadog во Flutter‑приложении, чтобы собирать ошибки с контекстом, быстрее находить причины сбоев и видеть проблемы с производительностью до того, как они станут массовыми.

Читать далее

Основы Knowledge Management в разработке

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

основные идеи по организации, структурированию и системному управлению знаниями и потоками знаний внутри компании / проекта / стартапа с учетом активного взаимодействия AI и людей в ежедневной рутине.

Читать далее

Как мы делаем 2D-симулятор грузоперевозок: что уже готово и куда движемся к MVP

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

Делаем Truck Sim 2D — 2D-симулятор грузоперевозок на Godot 4.6 для Android и ПК. Физический груз на RigidBody2D, который реально может выпасть из кузова, производственная цепочка от шахты до завода и первая сетевая версия на ENet — уже играбельная сборка 0.2.8. Рассказываем, как это устроено внутри и что планируем до MVP: превращаем LAN-конвой в настоящий кооператив

Читать далее

История корутин: появление, развитие, спад и возрождение

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

Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

Занимаюсь разработкой своей игры на 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 мин
Охват и читатели7.1K

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

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

Читать далее

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

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

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

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

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

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

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

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