Обновить
256K+

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

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

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

Как мы мигрируем навигацию на Compose в Android-приложениях с 400+ экранами

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

Привет, Хабр! Меня зовут Константин Дубинко, я — Android-техлид в  hh.ru. Сейчас мы заканчиваем большой переезд навигации в двух Android-приложениях — для соискателей и работодателей. В этой статье я покажу, как у нас там устроена навигация, почему мы решили отказаться от Fragment-навигации и как превратили хаотичную миграцию с «островками» новой архитектуры в управляемый процесс с метриками и понятным планом работ. Заодно расскажу, какие решения сработали, какие — нет, и что я сделал бы иначе, если бы начинал заново.

Читать далее

RecyclerView. Оптимизация Adapter

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

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

Казалось бы, RecyclerView — давно знакомый инструмент. Но когда данные становятся разнородными, а списки — большими, простой вызов notifyDataSetChanged() превращается в узкое место, вызывающее фризы и дергающуюся анимацию. Как перейти от лобового обновления к точечным изменениям? Как объединить несколько типов элементов в одном адаптере?

В этой статье я пройду путь эволюции работы с RecyclerView.Adapter:
- Разберу, как работает система уведомлений под капотом.
- Вспомню, как DiffUtil и ListAdapter спасли нас от ручных вычислений.
- Расскажу про AsyncListDiffer, ConcatAdapter и нюансы восстановления позиции.
- И наконец, покажу, как спроектировать универсальный адаптер с поддержкой разных ViewHolder, частичным обновлением (Payloads) и ViewBinding — с полным примером кода.

Поехали!

Читать далее

«Сельский магнат»: как мы в РСХБ сделали мобильную игру

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

Привет, Хабр! Меня зовут Виталий, я занимаюсь развитием Венчурной студии РСХБ и проектами для молодых ИТ-специалистов в команде РСХБ.Цифра. В этой статье расскажу о том, как мы в банке придумали сделать полноценную мобильную игру и зачем вообще финансовой организации понадобился такой, на первый взгляд, нетипичный продукт.

Читать про игру

Я устал от бесконечных списков чатов и написал свой приватный мессенджер на гексагональных сотах (Kotlin + Go)

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

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

Меня, честно говоря, просто утомили современные интерфейсы общения и навигации. Куда ни посмотри — в Telegram, Slack, WhatsApp, на почте — нас везде встречает один и тот же шаблон: бесконечный, давящий вертикальный список чатов. Это превращает общение в какую-то рутину, конвейер, где новые сообщения постоянно вытесняют старые, заставляя нас бесконечно скроллить экран вверх и вниз.

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

Так родился проект ПОРЯДОК или ORDO. Идея навигации в нем реализована фрактально-пространственным способом — в виде гексагональных сот (ячеек).

ОРДО — это полностью некоммерческий, бесплатный концепт приватного мессенджера со сквозным шифрованием (E2EE), написанный в одиночку. Я хочу поделиться с вами историей его разработки, показать устройство под капотом и, конечно, получить вашу конструктивную критику.

Читать далее

Перенёс антиспам из Telegram в Макс — через месяц бота удалили. Что я понял про платформу

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

В декабре 2024 я запустил антиспам-бот для Макс — по той же схеме, что уже годами работает в Telegram. Через месяц платформа удалила бота без объяснений. Поддержка отвечала: «работаем над вашим вопросом, ждите». Досудебная претензия заказным письмом — разблокировка и ответ в духе «вы согласились с правилами при регистрации».

Если вы разработчик ботов и думаете зайти в Макс — ниже не обзор «какие у меня продукты», а разбор того, что реально ломается на платформе и какие архитектурные решения пришлось собрать на ходу. Два кейса: антиспам (перенос TG-логики) и «Почтальон» (мост Макс ↔ Telegram), который родился уже после блокировки.

Читать далее

Я не программист, но меня так достали современные читалки на Android, что я написал свою. Встречайте — MRead

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

Всем привет! Я хочу поделиться историей о том, как обычная пользовательская боль заставила меня открыть Android Studio и сделать свой первый серьезный проект.

Я очень люблю читать с телефона (особенно ранобэ, новеллы и книги в оригинале). Но в последнее время индустрия мобильных читалок свернула куда-то не туда. Открывая популярные приложения, я чувствовал себя пилотом Боинга: десятки перегруженных меню, всплывающие баннеры, просьбы купить Premium-подписку и интерфейсы прямиком из 2012 года.

Но моей главной болью был перевод. Когда ты читаешь книгу на английском и встречаешь незнакомое слово, тебе приходится выделять его, копировать, открывать Google Переводчик, вставлять, читать, возвращаться в книгу… Погружение в историю рушится моментально.
Есть, конечно, Circle to Search или читалки с функцией перевода, но мне они показались максимально неудобными

Я искал минималистичную читалку со встроенным удобным переводчиком. Не нашел. И решил написать её сам.

Читать далее

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

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

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

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

Читать далее

Мобильная разработка за неделю #633 (1 — 7 июня)

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

В новом дайджесте победители Apple Design Awards 2026 и эффективность использования памяти в Android 17, обертки свойств в Swift и корутины на низком уровне, PWA после блокировки в App Store, игровая реклама 2026, дообучение LLM, метрики, практики, компромиссы и многое другое. Заходите!

Читать далее

Представляем AdaEngine 0.1.0 — игровой движок на Swift

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

Представляем AdaEngine 0.1.0

После долгого пути я рад представить AdaEngine 0.1.0: бесплатный игровой движок и фреймворк для приложений с открытым исходным кодом, написанный на Swift.

Узнать подробнее

Как я сделал сканер под iOS и Android для диагностики Wi-Fi-сети

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

Привет, я Павел Семенищев, сетевой инженер в Yandex Infrastructure. В команде Network Operations Center (NOC) мы отвечаем не только за магистральные и дата‑центровые сети, но и за офисные, а также сети складов и дарксторов Яндекс Лавки. А это ОЧЕНЬ много удалённых точек присутствия, и при проблемах с Wi‑Fi на каждую сетевика не отправишь.

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

Читать далее

Как открывать шлагбаумы и ворота силой мысли

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

Как открывать шлагбаумы и ворота силой мысли. Описание мобильного приложения и конечного устройства.

Читать далее

Я перестал доверять стримингам. Поэтому написал свой iOS-плеер — с CarPlay и без вранья про звук

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

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

Для своей коллекции я написал плеер. Для себя. Через полгода это превратилось в нишевое приложение для iOS на 11 языках: с собственным DSP, распознаванием музыки, онлайн радио и CarPlay.

Что в итоге внутри и где было не очевидно. Места, в которых документация молчит, а ты сидишь и гадаешь, почему оно вообще так себя ведет.

Читать далее

Как я избавился от тысяч строк валидации в Swift

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

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

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

В этой статье рассказываю про собственные наработки, про то, как удалось существенно сократить бойлерплейт и улучшить читаемость кода.

Читать далее

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

MTR, Path MTU и детект блокировок по SNI на iOS без entitlements

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

За полтора месяца после релиза я добавил в свой iOS-апп 9 сетевых инструментов — и почти каждый оказался отдельной задачей: параллельный MTR, Path MTU на ICMP Echo, детект блокировок по SNI. Делюсь самыми интересными граблями и кодом.

Читать далее

Голосовой КПТ-дневник с распознаванием речи на устройстве: Flutter и on-device Whisper

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

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

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

Читать далее

Как перестать жечь токены впустую: переходим от вайбкодинга к агентной разработке с Claude Code

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

AI-инструменты уже давно перестали быть просто «умными чатами». Сегодня Claude Code, Codex и другие агенты постепенно превращаются в полноценную инженерную инфраструĸтуру: с памятью, workflow, sub-agentʼами, orchestration и reusable праĸтиĸами.

В этой статье команда разработки СВОЙ Тех собрала праĸтиĸи, ĸоторые реально помогают использовать Claude Code эффеĸтивно. Дисклеймер: будет много списков — не обессудьте и, надеемся, вам так же, как и автору, легче усваивать информацию.

Открыть туториал

Как я создал аккаунт Apple Developer (Apple разработчика) на юридическое лицо после 1 апреля 2026 года

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

Друзья, всем привет. Это моя проба пера на Хабре. Меня зовут Максим Талалаев, я достаточно давно управляю людьми. Вот теперь занимаюсь этим в сфере IT. Делаю с командой проект по созданию и развитию платформы временной (гибкой) занятости.

Пишем на PHP. Используем Laravel и Lifewire с Filament. Базы на PostgreSQL. Приложения писали на Flutter, хотя в первое время нас здорово выручал самописный mini‑App в телеграм. В общем все, как у всех.

И вот недавно встал вопрос в загрузке приложений на известные всем площадки: GooglePlay, RuStore. На «десерт» мы оставили AppStore, так как мифов о нем ходило гораздо больше, чем о двух вышеупомянутых источниках. Я не буду подробно останавливаться на самой процедуре, по которой написано немыслимое количество статей и материалов,а сразу перейду к моментам, на которые лично у меня ушло больше всего душевных и временных терзаний, а также управленчески неэффективно потраченного времени (ну, это уже по завершении всех этапов так можно сказать. Конечно, когда я был в процессе, мне так не казалось.). Естественно, я прошел все стадии, начиная от «Создать аккаунт разработчика на организацию в России сейчас невозможно» до «А ты попробуй найти специализированное бюро, которое тебе для Apple корректно сделает перевод на иностранный язык».

Читать далее

Миссия выполнима: Как подружить Max и E2E

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

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

Идея зародилась, когда весь этот цирк только начинался. Прогревали новый ГОСТ-мессенджер, поливали его чем только можно. В какой-то момент проскочила новость: В Max нет сквозного шифрования...

И тут зародилась глупая идея: почему бы самому не прикрутить к нему разные функции анонимности и шифрования? Уровень конечно совсем не тот, что у Telegram и Signal, но сама возможность скрыть содержание переписки завораживает, разве нет?!

Спойлер: APK весит 11 МБ против 120 МБ у официального, не греет телефон и показывает каждый запрос к серверам ok[.]ru и vk[.]ru

Читать далее

10 лет в индустрии: как Авроре удалось сделать лучшую поддержку разработчиков в России

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

В апреле этого года «Открытой мобильной платформе» исполнилось 10 лет. За это время мы прошли путь от запуска первой версии ОС до зрелой экосистемы, в которой партнёры-разработчики играют важную роль, ведь они являются соавторами продукта. И как подтверждение успеха данного подхода, в мае в Омске мы получили награду «За лучшую поддержку разработчика среди российских ОС» на «ДевФест 26».

Я руковожу департаментом развития мобильной среды, и за эти десять лет мы несколько раз ломали и заново выстраивали процессы взаимодействия с разработчиками приложений. Поэтому эта награда столь важна – она показывает, что выбранный подход работает. В этой статье я расскажу, как техническая поддержка разработчиков превратилась в инженерную функцию, как запросы партнёров напрямую меняют ОС, и почему мы готовы перестраивать внутренние процессы ради комфортной работы команд.

Читать далее

Как мы выбирали стек для PWA после блокировки в App Store: от Swift к React за считанные месяцы

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

Привет, Хабр! Меня зовут Константин Шкурко, я ведущий разработчик мобильных приложений в РСХБ. Сегодня хочу рассказать историю о том, как всем известные обстоятельства заставили нас в сжатые сроки искать альтернат­ивные пути доставки нашего инвестиционного приложения «Свои инвестиции» пользователям iOS - и как это изменило наш технологический стек.

Когда Apple заблокировала российские банковские приложения в App Store, перед нами встала непростая задача. У нас были десятки тысяч активных пользователей на iOS, которые пользовались брокерским приложением для управления своими инвестициями. Торговля акциями, облигациями, аналитика портфеля, выставление заявок - всё это внезапно стало недоступно для значительной части клиентской базы.

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

Читать далее