Обновить
137.48

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

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

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

Отладка iOS-приложений на практике: 3 реальных бага

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

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

Читать далее

Новости

Интеграция автоматической установки eSIM на Android

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

Я люблю свою работу, потому что на удивление для меня с годами она становится все более нетривиальной и увлекательной. Моя история внедрения автоматической установки eSim была интересна тем, что разрабатывалась вслепую без возможности протестировать функционал на момент разработки. О eSIM и о своей истории и пойдет речь в данной статье.

Узнать подробности

Как заставить Android Studio ругаться на код по вашим правилам: создаем пользовательские Lint и Detekt

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели5.8K

Привет, Хабр! На связи Алина, старший Android-разработчик в команде Инвестиций «Совкомбанк Технологии». Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.

В этой статье мы создадим практические правила для инструментов статического анализа кода и разберем, как внедрить их в проект. На примере lint рассмотрим контроль архитектуры пакетов и обязательную документацию с QuickFix, а на примере detekt – проверку неизменяемого состояния представления без Android-зависимостей и миграцию с RxJava на Coroutines.

Читать далее

Ой, всё упало: 4+ способа достать креш-отчет с iOS-приложения

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

Привет, Хабр! На связи снова Максим из ATI.SU. В прошлой статье мы научились собирать логи на iOS устройствах разными способами и теперь для нас не вопрос разобраться, почему кнопка не нажимается, а данные не грузятся.

Но бывают ситуации куда страшнее. Вы запускаете приложение, а оно... тут же исчезает. Или вы работали в приложении, раз... и вы видите домашний экран. А еще приложение может так зависнуть, что помогает только полная перезагрузка самого устройства. Все это — его величество креш (a.k.a. краш, крэш, crash, вылет, сбой, падение, аварийное завершение).

Если привести аналогии, то логи — это жалобная книга, а креш‑отчет — это заключение судмедэксперта. В нём написано точное время смерти, причина и состояние памяти устройства в последний момент жизни приложения.

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

Начать вскрытие

Почему многие неверно реализуют MVVM или способы создания абстракций

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

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ.  

Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической стороны этот архитектурный шаблон давно уже изучен вдоль и поперёк. А вот теоретических исследований, особенно применимых к Swift (и в общем, и к SwiftUI в частности), не так уж и много. Давайте вместе попробуем закрыть этот пробел и обосновать с теоретической точки зрения те или иные вариации реализаций в нашей ежедневной работе. Мобильным разработчикам на ObjC, Java и Kotlin данное исследование и обсуждение тоже будет полезно. Присоединяйтесь!

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

Читать далее

Мобильное приложение Ватерпас: DewDrop. Реальная история…

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

Если вы ранее работали с мобильным приложением DogPlanner, то вы, наверное, уже знакомы с робопёсом Роби. Но в любом случае, позвольте рассказать вам его историю. Роби живёт на Марсе... ходит молва, что он был собран кем-то из деталей первого в истории марсохода Sojourner. Он изучает красную планету, да и, по возможности, всю вселенную через сигналы, приходящие из космоса.

Читать далее

Вы считаете ИИ-ускорение неправильно, сливая бюджет в трубу, пока 7 из 10 проектов умирают ещё на этапе пилотов

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

Компании спускают миллиарды на хайповые инструменты разработки, надеясь купить «волшебную таблетку», но вместо неё получают лишь неконтролируемый хаос в процессах. 

Мы взяли секундомер и устроили жёсткий тест четырём нашим производственным направлениям: мобилке на Native и Flutter, аналитике и QA. Дали командам доступ в Cursor и Claude Code, чтобы вытащить на свет реальные цифры. По итогу — разрыв между цифрами и действительностью оказался шокирующим. 

Читать далее

Пишем декларативный Package.swift: DSL для модульной архитектуры iOS проекта

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

Swift Package Manager отлично подходит для модульной архитектуры, но по мере роста проекта Package.swift быстро превращается в длинный список строковых зависимостей.

В статье показываю, как превратить Package.swift в типобезопасный DSL на Swift:

убрать строковые зависимости
автоматически генерировать feature-модули
зафиксировать архитектурные правила на уровне компиляции

Читать далее

Как мы сделали автогенерацию контента для риелторов в мобильном приложении

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

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

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

Читать далее

Искусство просить отзывы: как легально поднять рейтинг до 4.9 и не взбесить пользователя

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

Вы открываете приложение, чтобы быстро проверить баланс или забронировать стол, и тут же получаете в лицо: «Вам нравится наше приложение? Оцените нас!». Ваша реакция? В лучшем случае - машинальное нажатие на крестик, в худшем - удаление. Моя личная боль - открываешь банковское приложение для оплаты на кассе по СБП и получаешь аж три баннера один за другим на экран. Я не хочу прямо сейчас оформить кредит, не хочу оценивать ваши продукты. Я только открыл приложение, я покупки оплатить хочу. И такое поведение если уж не каждый запуск, то каждый второй точно.

В 2026 году Apple и Google стали еще жестче фильтровать накрутки, а пользователи - еще чувствительнее к прерыванию их «флоу». Тем не менее, рейтинг 4.9 - это не магия, а математика, психология и вовремя вызванный системный метод.

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

Продолжим

Google убивает независимый Android. Обращение и 19 аргументов против насильной регистрации разработчиков

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

https://keepandroidopen.org/ru/
https://keepandroidopen.org/open-letter/
https://www.change.org/p/stop-google-from-limiting-apk-file-usage?recruiter=1370041382&recruited_by_id=fddec6e0-0e30-11f0-a55d-cd0eb0fd0ac4

upd: добавил аудио-версию.

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

С сентября 2026 года вы вводите обязательную централизованную регистрацию разработчиков для всего распространения приложений на Android — даже вне Google Play. Чтобы установить приложение через сайт, APK-файл, альтернативный магазин или просто передать его другу, разработчик должен:

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

Иначе приложение просто не установится на сертифицированных устройствах. Это не «улучшение безопасности». Это радикальная смена модели Android с открытой на закрытую.

Читать далее

Прямая трансляция во Flutter через WebCodecs: как пришлось написать свой декодер

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

Когда live-видео приходит как сырой H.264 поток через WebSocket, стандартные Flutter-плееры перестают работать.

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

Читать далее

Мобильная разработка за неделю #623 (10 — 15 марта)

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

В этом дайджесте приложение без MVC или MVVM, починка анимации в LazyColumn и эффект размытия движения для вращающегося колеса, 20 приложений за 20 дней, отчет о приложения с подпиской 2026 от RevenueCat, Code Review для проверки ИИ-кода и многое другое. Заходите!

Читать далее

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

Как я пишу прибыльные приложения в одиночку (Идея + Build + Marketing Guide)

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

Научился программировать в 30 лет — и создал приложение для правительства Великобритании. Рассказываю всё: как найти идею, выбрать стек, использовать ИИ и продвинуть продукт без команды и бюджета.

Читать далее

Когда фронтенд перестаёт быть игрушкой: пишем собственный реактивный движок на JavaScript

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

Почти каждый фронтенд-разработчик однажды задаётся вопросом: что на самом деле происходит внутри современных фреймворков. Почему изменение переменной автоматически обновляет интерфейс? Как библиотека понимает, что именно нужно перерисовать?

Читать далее

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

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

Помните времена, когда пуш-уведомление реально что-то значило? Телефон вибрировал, и ты точно знал: случилось что-то важное. Такси подъехало. Деньги списались. Начальник написал что-то срочное (ладно, обычно не срочное, но хотя бы по делу).

Это был 2016 год.

На дворе 2026-й. Шторка уведомлений среднего пользователя превратилась в мусорный бак, куда маркетологи сбрасывают свои KPI с маниакальным упорством.

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

Продолжим

Когда код начинают писать машины: что реально изменится в программировании

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

Кажется, мы приближаемся к моменту, когда генерация кода перестанет быть игрушкой и станет обычным инструментом разработки. Уже сейчас можно попросить модель написать API, SQL-запрос или даже кусок архитектуры сервиса. Но что будет дальше, когда такой подход станет стандартом? Изменится ли профессия разработчика или просто появится ещё один инструмент вроде IDE?

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

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

Честно говоря, в какой-то момент стало немного странно. Ты вроде разработчик, но код пишет не совсем ты.

Возникает ощущение, будто ты больше архитектор или редактор кода.

И тут появляется вопрос.

Если генерация станет стандартом, кем вообще будет программист?

Тем, кто пишет код?
Тем, кто проверяет код?
Или тем, кто придумывает системы, которые этот код потом генерируют?

Попробую поделиться наблюдениями.

Читать далее

Приложение падало на старте. Мы теряли 5% пользователей. Разбор кейса FanBattle

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

После одного из релизов у FanBattle приложение перестало открываться у части пользователей. Проблема затронула около 5% аудитории. Баг исправили быстро, но пользователи не могли даже узнать, что вышла новая версия — приложение падало раньше, чем успевал появиться интерфейс.

Разбираем, как команда решила проблему через раннюю инициализацию SDK и force update.

Читать далее

Как реализовать WebSocket на Android и не сойти с ума

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

Как часто вы слышите что-то о протоколе WebSocket? А как часто видели его в проектах? Продакшн? Андроид? Что? Его кто-то использует?

А теперь представьте, что перед вами стоит задача внедрить WS в крупный продакшн проект с нуля. С чего начать? Как подступиться?

Читать далее

Пользователь уходит из приложения: рынок забирают API, данные и ИИ-агенты

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

Худшая новость для многих SaaS‑команд в ближайшие годы (думаю, уже в этом году заметим) пользователь может перестать пользоваться вашим приложением, но продолжить пользоваться вашим сервисом.

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

То есть сама модель была такой:
«Вот наш интерфейс. Вот наш сценарий. Пользуйтесь так, как мы задумали».

Эта модель не исчезнет завтра. Да и на текущий момент она устраивает болшинство пользователей, благодаря сформировавшейся десятилетиями потребительской привычке «используй что дают». Но именно сейчас она начинает терять монополию, потому что между пользователем и сервисом появился новый слой – агенты. Не просто чат-боты, которые подсказывают, а инструменты, которые уже умеют искать данные, ходить по сайтам, нажимать кнопки, связывать сервисы между собой и выполнять цепочки действий. OpenAI вывела Operator как браузерного агента, Anthropic продвигает Computer use и MCP, Microsoft на Build 2025 прямо говорит об open agentic web, а OpenAI отдельно документирует работу с remote MCP servers и коннекторами для доступа к внешним сервисам. 

И вот здесь начинается главное изменение – раньше продуктом был интерфейс, теперь продукт всё чаще смещается в три других слоя:

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