Обновить
256K+

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

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

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

Как я заставил HTML из ChatGPT будить телефон: песочница, точные будильники и мост из пяти методов

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

Попросил Claude написать таймер одним HTML-файлом — а телефон его не будит: вкладка спит, будильник не звонит. Сделал Kapsula: приложение для Android и iOS, которое запускает такой файл как проект с настоящими будильниками ОС через мост из пяти методов. Внутри — iframe без same-origin, postMessage-RPC, три грабли Android-уведомлений, звук на iOS, правило состояния для ИИ-кода и промпт вместо SDK. Без сервера, без аккаунта, без аналитики.

Читать далее

Новости

Разработка на Авроре под Аврору: разворачиваем Coder в облаке и пишем плагин для VS Code

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

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

Я мог бы закончить историю на этом, но идея мобильной разработки не давала мне покоя: получается, имея под рукой планшет с большим экраном, вы можете организовать полноценный рабочий процесс. Правда, инструменты для сборки, тестирования и работы с SDK обычно выпускают только для ПК. А можно ли скомпилировать код прямо на смартфоне? Можно — например, в ALT Mobile или «Авроре ОС», если установить дополнительные пакеты.

В статье я подробно расскажу, как развернуть облачную среду разработки, привязать ее к планшету и написать собственный плагин для автоматизации сборки под «Аврору ОС».

Как это сделать?

Снапшот-тесты доступности: как сэкономить ресурс QA-отдела и спасти ревьюеров от гадания на кофейной гуще

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

Почта — массовый продукт, которым пользуются самые разные люди, и поэтому он должен быть максимально доступен. Нам важно, чтобы приложение Яндекс Почты было удобно каждому, в том числе людям с особенностями зрения. 

На телефонах с Android за доступность для людей с особенностями зрения отвечает TalkBack — функция озвучивания экрана, которая зачитывает текст, роль и состояние всех размеченных элементов на экране и позволяет с ними взаимодействовать. Если разметка сломается, приложением будет пользоваться сильно сложнее или вообще невозможно.

Читать далее

«У меня ничего не грузится». Как я пришёл к приложению для диагностики сети

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

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

Читать далее

Из Java во Flutter: я написала мобильное MVP и вот что поняла

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

Всем привет! Меня зовут Милена, я бэкенд‑инженер на Java в Банки.ру. Полтора года назад я вызвалась написать мобильное приложение для команды, в которой не было ни одного мобильного разработчика. За три месяца мы его выпустили, оно работало на обеих платформах, и я закрыла для себя вопрос, ради которого во все это ввязалась «понравится ли мне мобильная разработка» — спойлер: ответ оказался «нет».

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

Читать далее

Jabbit — фоновые задачи в KMP с API как у WorkManager (почти)

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

Привет!

Представьте, что вы с удовольствием пишите один код на все платформы на Kotlin Multiplatform, и вдруг приходит задача «синкать данные раз в час, только по вайфаю и когда телефон на зарядке».

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

В итоге в проекте появляется expect fun scheduleSync() с разными реализациями, которые ведут себя по-разному, и никто в команде через год не сможет сказать, что именно произойдёт на iOS, если приложение свернули посреди загрузки.

Так как я андроидер с альтернативным мышлением, мне нравится API WorkManager'а. Я захотел его скопировать под KMP, породив так называемый Kotlin Multiplatform Work Manager или же Jabbit (job + rabbit, да, я знаю) — планировщик фоновых задач для KMP.

Таргеты: Android, iOS, js и wasmJs. Как будет время и желание, появится ещё и декстоп.

Читать далее

Android CameraX: детекция лица в реалтайме для биометрии

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

Привет, Хабр! Я Евгений Шувагин, последний год работаю над компонентом Face-Shot в Т-Банке.

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

Читать далее

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

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

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

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

Читать далее

Мобильная разработка за неделю #644 (17 — 23 августа)

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

В новом выпуске 136 уровней вложенности XCUITest и Android Runtime под капотом, как Tinder сократил холодные старты на 47% и новые условия распространения приложений в Евросоюзе, от Event-Driven UI к State-Driven UI, что нового в Dart, как сделать MCP удобными и действительно полезными, уменьшение трения в приложениях и многое другое. Заходите!

Читать далее

Как случайно создать облачный кроссплатформенный сервис для Excel

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

Я работаю в офисе (вспоминается песня "Ленинграда") и моим основным рабочим инструментом уже очень долгое время является Excel. Рискую показаться предвзятым, но на мой взгляд Excel - это лучший продукт Microsoft. И вообще электронные таблицы, как класс приложений, - это абсолютно гениальное изобретение человечества. Наверное многие считают из злом, но давайте пройдемся по фактам:

Читать далее

Один «+», восемь дверей и борщ: уменьшаем трение в приложениях

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

Человек уже решил записать еду. Но вместо ввода приложение предлагает поиск, штрихкод, фото, AI, рецепт, избранное — и ещё несколько дверей. Я сравнил девять трекеров и проверил на моём обеде, где появляется лишнее состояние.

Читать далее

Как подружить мастера с менеджером по логистике и 1С8 с 1С7 на сервере с закрытыми портами

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

Наверное, у каждого такое было: приходишь на работу, а под дверями твоего кабинета уже стоит хмурый работяга — начальник участка и взволнованная девушка менеджер. «Он должен был сдать отчёт и не сдал, у меня сырья не хватает — детали в базе не собираются» — говорит она. «Я что, мальчик какой‑то — по десять раз бумажки переписывать, я все вчера ей на стол положил» — ворчит он. «Да он постоянно забывает и ошибается ещё»... «Да она всегда все теряет, и переписать с бумажки не может». Полчаса взаимных упрёков и испорченное на весь день настроение. Я хочу рассказать, как помирить производство и офис внедрением простого микросервиса.

Читать далее

Свой продукт для управления корпоративами: от MVP за 2 месяца до успешной версии 4.0

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

Привет, Хабр! Меня зовут Женя, я занимаюсь развитием цифровых продуктов в Sminex. В статье поделюсь опытом разработки и запуска Sminex Event — собственного продукта для управления корпоративами.

Читать далее

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

Как мы переводили страницу объявления на Beduin в мобильной версии Авито

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

Всем привет! Меня зовут Егор Савинцев, я Frontend Platform Engineer в Авито. Сейчас я работаю в команде архитектуры, а до этого в команде Phobos в рамках Платформизации переводил страницу объявления на Beduin — разрабатывал клиентскую архитектуру и переписывал блоки. 

Сразу важное отступление. 

Beduin — это Backend‑Driven UI. Если в нативе в коде клиентского приложения есть компоненты, бэкенд присылает им данные, и всё работает. В Beduin бэкенд присылает и данные, и сами компоненты в специальном виде. На клиенте у нас только рендерер — специальный компонент, который принимает JSON и рендерит то, что мы прислали. 

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

Статья будет полезна frontend‑ и mobile‑разработчикам, инженерам платформенных команд, архитекторам клиентских приложений и backend‑разработчикам, которые внедряют Backend‑Driven UI. В общем, всем, кто планирует переводить крупные экраны на BDUI и хочет заранее узнать, что может пойти не так. Спойлер: всё.

Читать далее

«Эй, детка, ты случайно не TikTok? А то я на тебя залип»: дикая история приложения для пикап‑фразочек RIZZ

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

На экране идет диалог: 

— Она мне уже неделю не отвечает

— Это редфлаг. Не пиши ей больше

— Но я не хочу ее потерять!

А на фоне кто-то играет в Minecraft, GTA или другую игру. 

Не спрашивайте, в чем тут юмор. Просто так уж повелось.

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

Читать далее

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

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

Чтобы открыть Twitter, не нужно нажимать «Начать читать твиты». А чтобы выучить несколько слов, почему‑то нужно начинать целую тренировку. Я решил сломать систему и полностью выпилить этот этап, где нужно принимать решение о начале занятия.

Читать далее

Эх, невизуальная доступность, как же тебя наладить

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

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

Меня зовут Шуст Иван, за мной закреплено более 15 продуктовых команд, что делают фичи ежедневного входа, профиля, истории операций и связанные с безопасностью. Поэтому я, как лид, имею прямое отношение к процессам внедрения accessibility в Альфе, проживший последний год, пытаясь наладить и внедрить процессы accessibility, расскажу о всех граблях, которые мы собрали. Вы узнаете о рабочих подходах при работе с доступностью и как делать вот точно-точно не надо

Технических подробностей будет мало. Но будет очень много про процессы/политику/конфликты, — всё то, что так сильно любят лиды будет интересно всем. В общем, добро пожаловать под кат.

Читать далее

React Native в 2026 году: New Architecture, нативный код и AI в реальном проекте

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

React Native по-прежнему часто описывают формулой «один код для iOS и Android». В 2026 году она звучит слишком просто. Современное приложение на React Native — это общий продуктовый слой на TypeScript, нативный интерфейс, Hermes, Fabric, JSI, фоновые процессы, platform-specific код и довольно много решений о том, где именно должна выполняться каждая задача.

Мы столкнулись с этим в Synchra.24 — мобильном приложении для линейных и распределённых команд. В проекте больше тысячи TS/TSX-файлов и свыше ста экранов, но рядом с ними живут Kotlin и Swift: геопозиция, push-уведомления, биометрия, системные виджеты и работа с медиа. Это не история о функциях нашего продукта и не попытка его рекламировать. Это разбор того, чем на практике стала разработка на React Native к 2026 году — и какую часть этой работы действительно можно поручить нейросетям.

Читать далее

История создания звонилки без номера: месяц, миллионы токенов и грабли, которые легли в основу этого цикла статей

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

В октябре прошлого года на Хабре вышла статья «Как я писал свою звонилку для видеозвонков» — автор под ником CEOCTO за несколько вечеров написал P2P-видеозвонилку на WebRTC, потому что его достали обрывающиеся созвоны в мессенджерах. Я прочитал, улыбнулся, полез смотреть исходники на GitHub — и на этом всё. Как обычно бывает с чужими pet-проектами: оценил, закрыл вкладку, забыл

Читать далее

Как мы научили XCUITest тапать в контролы на глубине 136 уровней вложенности

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

Привет! Меня зовут Даниил, я iOS-инженер в Циане. В этой статье расскажу, как мы заставили XCUITest работать с экраном, к которому он в принципе не мог подойти.

У нас есть server-driven UI экран, наш BDUI, про движок которого была отдельная статья. Дерево вьюх у него настолько глубокое, что любое обращение теста к элементам падало. Причём двумя разными способами, и оба — не из-за кода, а из-за жёстких лимитов внутри самого фреймворка автоматизации.

В итоге мы научились читать дерево произвольной глубины и тапать/вводить текст в поля, которые лежат глубже ~60 уровней AX-дерева, где публичный XCUITest бессилен. Далее я буду фокусироваться на общей технике для XCUITest, а не на внутреннем устройстве нашего движка. Так что статья пригодится, даже если у вас никакого BDUI нет, а просто есть очень глубокий экран.

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