Обновить
256K+

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

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

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

Мессенджер HalChat теперь в Google Play: 3 года разработки, ИИ в браузере и квест с модерацией

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

Всем привет!

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

Далее: итоги разработки, локальный ИИ в браузере без сторонних серверов и история о том, как я проходил квест с новыми жесткими правилами тестирования в Google Play.

Читать далее

AGENTS.md создавали, чтобы помогать агентам. Я использую его, чтобы их вычислять

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

Вместе с растущей AI-индустрией приходят и её побочки. Я мейнтейнер библиотеки react-native-tdlib и довольно быстро заметил: все больше PR выглядят как чистый вывод агента. Сначала я честно реагировал — писал в каждый такой PR вопросы: тестировали ли вы это, что именно меняет ваш код, зачем вот эта строчка. В какой-то момент понял, что трачу время на переписку с людьми, которые сами не знают, что написали.

Первая мысль была — написать большой README или CONTRIBUTING и прямым текстом сказать: «сгенерированный код не принимаю». Но тут же упёрся в вопрос: а как доказать, что код сгенерирован? Аргумент «чую, тут пахнет Claude Code» — так себе позиция для публичного спора в комментариях к PR.

Решение оказалось довольно простым — AGENTS.md. Он конечно не доказывает, что PR сгенерирован, но отлично ловит самые очевидные автоматические PR, где автор, кажется, вообще не участвовал в процессе.

Читать далее

Мобильная разработка за неделю #631 (18 — 24 мая)

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

В новом дайджесте лаги Телеграм на флагманах и анонсы Google I/O 2026, переезд с XML на Jetpack Compose и новый Flutter с Dart-ом, счет на €3167от ошибки в Firebase двухлетней давности, как Apple боролась с мошенничеством в App Store в 2025, ИИ-система code-review от DoorDash, которая действительно работает, и многое другое. Заходите!

Читать далее

Мессенджер Ласточка. Нас не пустили в Rustore

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

Короткий пост про текущий статус по развитию мессенджера.

Последние два месяца мы занимались бумажной работой. Той самой, которую стартапы обычно откладывают до последнего, а потом делают в пожарном режиме. Мы решили пойти иначе: сначала закрыть все юридические вопросы, потом запускать пользователей. В итоге получили официальный ответ Роскомнадзора, подали уведомление об обработке персональных данных, открыли whitelist-доступ для первых тестеров. Обо всём по порядку.

Читать далее

Почему custom URI schemes в Telegram Mini Apps ведут себя по-разному на Android, iOS и Desktop

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

Разбираю проблемы cross-platform onboarding между Telegram Mini Apps и native apps. Почему Android, iOS, Windows и Linux по-разному ведут себя при deeplink handoff внутри Telegram WebView.

Читать далее

ИИ‑спасатель в кармане: как мы сделали агента для помощи при ЧС, который работает без интернета

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

Представьте: вы в офисе, срабатывает пожарная сигнализация. Что вы делаете?

Идёте к эвакуационному плану на стене? Пытаетесь вспомнить, что показывали на последнем инструктаже? Или просто идёте за толпой, надеясь, что все знают, куда бежать?

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

Читать далее

От боли к npm install: TDLib для React-Native, или как я делал проект, а получилась библиотека

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

Пришла мне как-то идея сделать мобильное приложение на базе Telegram. Полез в npm и сразу нашёл react-native-telegram, но это оказалась обёртка над Bot API и тут я понял, что будет весело.

У Telegram с инструментами для разработчиков в целом нормально — Bot API, MTProto, TDLib. Только под RN ничего нет и вряд ли когда-то будет, насколько я знаю уже есть популярные Telegram-клиенты на React-Native, но видимо они не стали упаковывать это в библиотеку и делиться опытом с народом.

Кто пробовал запилить свой клиент Telegram на RN, тот знает, что без хороших навыков нативной разработки особо ничего не получится. В какой-то момент я устал мучиться с patch-package и кучей натива внутри RN проекта, поэтому решил, что пора это упаковать в либу. Через два года и одиннадцать релизов она оказалась в официальной документации TDLib.

Читать далее

Как я делал ping и traceroute на iOS без entitlements — и почему это оказалось проще, чем UMP-консент для AdMob

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

Я выпустил небольшое iOS-приложение — NetDiag+. Это набор сетевых утилит: ping, traceroute, DNS lookup, whois, LAN-сканер, port scanner, проверка SSL-сертификатов, BGP/ASN lookup, Wi-Fi info и фоновый мониторинг хостов с пушами при падении. Я начинал его как пет-проект для собственных нужд, потому что на iOS приходилось переключаться между четырьмя разными приложениями для базовой диагностики, и в трёх из четырёх была реклама.

Хочу поделиться тем, что мне самому хотелось бы прочитать в начале — почему некоторые вещи на iOS работают не так, как ожидаешь от Unix-фона, и где грабли лежат не там, где кажется.

Сразу спойлер по выводам: самым болезненным оказалось не сетевое программирование, а интеграция UMP-консента для AdMob.

Читать далее

4 MVP за 4 месяца, 30 холодных DM, 1 регистрация: building in public по‑русски

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

Меня зовут Никита, я бэкендер из Краснодара. Плотно сижу на NestJS/TypeScript в продуктовой команде. Параллельно с основной работой веду формат Proof of Work — 30-дневные публичные спринты по своим инди-проектам: каждый день рассказываю, что сделал, и не бросаю свои идеи в заметки Obsidian/Notion на годы (по крайней мере, теперь).

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

По итогам четырёх сезонов я мог бы написать «10 советов как сделать стартап», но таких текстов и без меня хватает. Здесь — конкретный разбор того, что у меня сработало, что не сработало и какой ценой. С цифрами, с названиями инструментов, с граблями, на которые я наступил лично.

Если вы делаете свой инди-продукт или думаете начать — возможно, часть моего опыта сэкономит вам пару недель и замотивирует наконец начать.

TL;DR. Без одного конкретного человека, который скажет «да, я этим воспользуюсь», лучше не начинать. Учить новый стек и параллельно гнать сроки — не получается, что-то одно. Email-верификация как блокер на регистрации убивает воронку. В РФ холодный аутрич без явного обмена «делаю → получаю» работает плохо. И выпуск продукта — начало работы, а не конец. Ниже подробно по каждому пункту, плюс отдельный раздел про юридическую часть и Telegram-релей в обход блокировок российского хостинга (которые как раз недавно начались в 2026).

Читать далее

Технический гайд по сторис – часть 4: как мы добавили видео формат

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

Привет! Меня зовут Владислав Фальзан, я работаю android-разработчиком в М2. Наша команда мобильной разработки развивает приложение – онлайн-платформу для решения вопросов с недвижимостью. Основные пользователи приложения –  физические лица (B2C) и риелторы (B2B2C). Эта статья – технический гайд для android-разработчиков о том, как реализовать видео сторис у себя в приложении или как использовать нашу библиотеку для работы с ними.

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

Для удобства изучения статьи я решил разбить ее на блоки:

Читать далее

А что, если управлять торговой платформой голосом? За 48 часов собрали голосового ассистента и проверили

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

Привет, Хабр! Меня зовут Платон Малюгин, я Android Developer в Garage Eight. Мы в компании разрабатываем экосистему инвестиционных продуктов, и недавно на корпоративном хакатоне у нас появилась идея. Мы решили проверить, получится ли управлять торговой платформой — интерфейсом для инвестиций на финансовом и фондовом рынке — через голосовой диалог с ассистентом. Не просто задавать вопросы, а обсуждать рынок, анализировать инструменты и совершать операции.

Читать далее

Dart 3.12 — что нового в Dart?

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

В этом году на конференции Google I/O 2026 команды Flutter и Dart отмечают важную тему: «Везде, каждый день, создано всеми, для всех».

Dart 3.12 воплощает эту идею в жизнь. Мы делаем язык более доступным и продуктивным. Лаконичные новые примитивы, такие как приватные именованные параметры, наряду с экспериментальной поддержкой основных конструкторов, делают повседневное программирование более чистым. Но мы не остановились на синтаксическом уровне. Новые функции, такие как Agentic Hot Reload и добавление Genkit в экосистему Dart, гарантируют, что вы сможете создавать высокопроизводительные, готовые к использованию ИИ и агентные приложения, которые будут доступны пользователям в любой точке мира. Это справедливо как для индивидуального программирования, так и для парного программирования с ИИ-агентом.

Так что вперед flutter upgrade, следуйте инструкциям, чтобы изучить новые возможности Dart 3.12. Но помните, что более мощный Dart — это только половина дела. Когда вы будете готовы увидеть, как эти функции преобразуются в красивый пользовательский интерфейс, ознакомьтесь с публикацией в блоге «Что нового во Flutter» или на Хабре.

Читать далее

Flutter 3.44 — Что нового во Flutter?

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

Google I/O 2026.

Flutter 3.44 уже здесь, и это грандиозное событие! Этот релиз знаменует собой важную веху в истории Flutter: Hybrid Composition++ для Android, Swift Package Manager в качестве нового менеджера пакетов по умолчанию для iOS/macOS и улучшенную поддержку Vulkan для Impeller. Мы представляем предварительную версию поддержки многооконного режима для настольных компьютеров, и Canonical станет нашим новым ведущим разработчиком, а также начинаем масштабную архитектурную эволюцию, отделяя Material и Cupertino от основного фреймворка. Мы переосмысливаем UX для агентного взаимодействия с пользователями с помощью GenUl и переосмысливаем опыт разработчиков с помощью Agentic Hot Reload и Dart & Flutter Agent Skills. Flutter расширяет возможности приложений следующего поколения — повсюду, от мультимедийной системы Toyota RAV4 2026 года до грядущего SDK для webOS от LG. Мы очень рады поделиться с вами всеми новостями и обновлениями; добро пожаловать в Flutter 3.44!

Читать далее

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

От идеи до работающего Android-приложения: мой опыт vibe-кодинга для реального pet-проекта

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

По профессии я руководитель в ИТ. Когда-то давно кодил на Basic, Pascal и Delphi (диплом писал на нём же). Но с тех пор много воды утекло, и за современными технологиями я следил скорее как управленец.

У одной закрытой группы возникла потребность в мобильном приложении с доступом к статьям. Нанимать разработчика не хотелось — проект некоммерческий. К этому моменту я уже активно использовал ИИ для написания скриптов и даже более сложных программ: создал API-интерфейс, совместимый с OpenAI, который через браузер общался с бесплатным Perplexity и возвращал ответ. На его основе сделал плагин для VS Code — практически бесплатный аналог коммерческих AI-агентов. Поэтому для новой задачи я решил попробовать vibe-кодинг.

Проект требовал клиент-серверной архитектуры: авторизация, разграничение доступа к статьям, мобильное приложение для Android. Обсудив со мной варианты, ИИ помог определиться со стеком: Docker, Nginx, PostgreSQL, Node.js, React, Kotlin. Nginx я знал неплохо, базы данных были знакомы. Node.js и React «умник» пообещал закрыть все потребности — так и вышло. Для Android выбор был невелик, и я решил, что современный Kotlin будет интереснее.

Docker Compose стал обязательным для изоляции: VPS был арендован для других нужд, и не хотелось ничего ломать.

Читать далее

Про BDUI грабли на примере простого опросника, который не так прост, как кажется

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

Однажды у нас появилась задача, которая (на первый взгляд) выглядела очень простой: сделать опросник в приложении. На макетах всего лишь пара экранов, несколько вопросов, кнопка «Далее». Всё красиво, не сухо, с картинками у вариантов ответа и нормальной подачей, а не в формате «Заполните обязательные поля»

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

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

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

По некоторым косвенным признакам мы понимали, что с этой анкетой всё будет именно так, поэтому в качестве альтернативы мы выбрали путь backend-driven UI, когда клиент показывает поддерживаемые типы экранов, а backend управляет сценарием: текстами, изображениями, порядком шагов, переходами и состоянием прохождения.

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

Читать далее

Как Flutter поймал MITM

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

Итак, погрузимся в прошлое, помянем конец октября 2023 года.

При обновлении Flutter до версии 3.13.8 после запуска flutter doctor я получил неожиданное предупреждение:

Читать далее

Переезд с XML на Jetpack Compose на проде: базовые классы, архитектура, сложности и готовые решения

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

Меня зовут Родион, и я уже около 2,5 лет работаю в VK Android-разработчиком в крупном многомодульном проекте с сотнями экранов и довольно большой аудиторией. Когда я попал на проект, стек был классическим и проверенным: XML-вёрстка, навигация через Cicerone, Dagger 2 для DI, Coroutines и Flow для асинхронщины, а в качестве архитектурного паттерна — MVVM. 

Рано или поздно любая растущая кодовая база упирается в потолок своих архитектурных решений. У нас этот момент настал, когда количество экранов выросло до нескольких сотен и команда начала тратить больше времени на борьбу с неконсистентным состоянием UI. Классическая связка XML + ViewBinding + MVVM работала, но с каждым новым экраном мы всё острее чувствовали её ограничения: разрозненные StateFlow, дублирование кода во фрагментах, сложность переиспользования компонентов. 

Нужно было что-то менять — пересмотреть сам подход к построению UI. Так мы начали миграцию на Jetpack Compose (который на момент начала перехода уже был стабильным и самодостаточным). Полтора года спустя, пройдя через рефакторинг базовых классов, переход с MVVM на MVI и постепенную замену содержимого всех фрагментов, мы получили стек, на котором разработка ускорилась, а баги, связанные с состоянием экрана, практически исчезли. 

Полный переход на Jetpack Compose мы разделили на три больших этапа:

- переписываем содержимое всех фрагментов на ComposeView;

- переходим с Dagger2 на Koin;

- меняем навигацию с Cicerone на Compose-навигацию.

О втором и третьем этапах кратко расскажу ниже —  в главе стратегии перехода, а на первом этапе остановлюсь подробнее.

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

Читать далее

Flutter 3.44 Конец эпохи CocoaPods и начало расцвета Swift Package Manager

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

Экосистема Flutter совершила один из самых значительных скачков вперед. С выходом Flutter 3.44 команда официально сделала Swift Package Manager (SwiftPM) менеджером зависимостей по умолчанию для iOS и macOS, ознаменовав начало конца эпохи CocoaPods.

Но это еще не все. Этот релиз также знаменует собой серьезный архитектурный сдвиг в том, как поставляются виджеты Material и Cupertino. Давайте углубимся в детали.

Читать далее

Пользовательское соглашение на сайт: когда нужно и что учесть, чтобы защитить владельца сайта?

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

Если вы из тех владельцев сайтов / интернет-сервисов, которые:
• взяли образец пользовательского соглашения из интернета 
• разработали пользовательское соглашение самостоятельно без привлечения юриста
• считаете, что публикация пользовательского соглашения на сайте – это формальность
то этот материал точно для вас!

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

Читать далее

Рейтинг технологий для мобильной разработки для банков в 2026 году

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

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

В этой статье я расскажу про:

·       Наш топ технологий

·       Как улучшить кибербезопасность в приложении

·       Последние функциональные тренды

Наш топ технологий

Swift – 5 звезд

Keychain и биометрия Face ID/Touch ID работают на уровне аппаратного шифрования, и разработчикам не нужно придумывать велосипед для защиты платежей. Swift дает производительность, идеальную работу с камерой для сканирования карт и чеков, и дает полный доступ ко всем API устройства.

Для банков важна не столько скорость разработки, сколько то, чтобы под каждую платформу были свои решения. Потому что Google или Apple могут что-то менять, и, допустим, в App Store потребуется внести обходы, дополнительные функции или модификации. Технически это можно сделать и на кроссплатформе, но если банк хочет поддерживать имидж и безупречную работу, ему нужно идеальное соответствие каждой платформе. Поэтому до сих пор во многих банках основная часть приложений пишется на нативе: для Apple — Swift, для Android — Kotlin.

Поэтому при использовании Swift компании нужно также иметь отдельную команду для разработки на Android. Поэтому стоимость разработки повышает и сразу две команды делают одно и тоже.

Читать далее