Обновить

Мобильная разработка

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

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

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

Это рассказ о том, как я в свободное время реализовал свою старую идею, и как мне в этом помог ИИ. Я решил сделать приложение, которое превращает Википедию в говорящий аудиогид и полностью написал его с помощью ИИ, хотя никогда не занимался мобильной разработкой. ИИ использовался для создания аудио рассказов и для написания самого приложения.

Читать далее

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

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

Всем привет! Меня зовут Андрей. По профессии я занимаюсь стратегией и развитием нового бизнеса в российском телекоме. Но мне всегда была близка история создать что-то своё, полезное, красивое и технологичное. И недавно я это сделал, создав GIFTbase.

Ниже, кратко расскажу про путь, который прошли я и моя идея, зародившаяся ещё в 2018 году, в эпоху отсутствия продвинутых языковых моделей, до наших дней и недавнего релиза приложения в Play Store. Возможно, эта история будет полезна или поучительна некоторым читателям с такими же планами, как были у меня.

Читать далее

Мобильная разработка за неделю #609 (3 — 9 ноября)

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

В новом дайджесте самый задаваемый вопрос с собеседования и приватный Android без слежки, новые инструменты в Google Play и App Store, своя мобильная ОС с нуля на Rust, магия ИИ-музыки, концентрированный маркетинг и многое другое. Подключайтесь!

Читать далее

/e/OS 3.2: приватный Android без слежки, который только что стал еще лучше

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

В конце октября 2025-го вышла /e/OS 3.2 — свежая версия мобильной ОС на базе Android 15. Она полностью избавлена от Google-сервисов, телеметрии и скрытых трекеров, но сохраняет полную совместимость с приложениями. Проект основал Гаэль Дюваль, создатель Mandrake Linux. Он решил, что смартфон должен оставаться удобным, но без скрытой передачи личных данных — все хранится у пользователя и никуда не уходит без его ведома. Давайте посмотрим, что это за ОС и что в ней появилось нового.

Читать далее

Собираем и публикуем Flutter-апп в AppStore

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

Автоматизация сборки Flutter-приложения для iOS с использованием macOS

1 часть: Нано-ЦОД на Mac M4 mini

Привет! Наш Mac Mini M4 прошел путь от «нано-ЦОД» до полноценной сборочной фабрики!

В новой статье — без лишней воды — рассказываем, как мы настроили полный цикл: от кода до автоматической публикации в AppStore.

Что внутри:

Готовые конфиги Fastlane
Настройка GitLab CI/CD
Работа с секретами

И главное: почему 9 минут сборки лучше, чем 7 (да, мы ленимся оптимизировать кеш! 😅)

Читать далее

Создать мобильное приложение с zero опыта! Рассказываю, как сделал свой первый проект на Java

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

Помню, как будто это было вчера. На уроке раздается голос учителя: «Чтобы перейти в 11-ый, каждому из вас нужно реализовать свой проект. Творчество приветствуется!». Кажется, вот оно: знак сделать то, о чем уже давно подумывал, — создать собственное приложение! Защищаю идею перед учителем, получаю одобрение. Впереди целый учебный год, казалось бы, у меня гора времени. Вот только я никогда в жизни не разрабатывал мобильные приложения…

Меня зовут Ваня, я Python-разработчик, а в свободное время пишу для блога MWS. Сегодня решил поделиться историей-воспоминанием, как в школьные времена приступил к разработке своего первого в жизни мобильного приложения, а потом дорабатывал его уже в университете. Тут не будет истории успеха в духе «я монетизировал приложение и разбогател» и каких-то уникальных лайфхаков. Зато покажу на своем примере, что для создания приложения в качестве эксперимента не нужно знать все языки программирования и обладать суперскилами в разработке. Главное — не бояться пробовать. А еще те, кто только в начале своего пути, смогут научиться на моих ошибках и учесть детали, которые в свое время не учел я. Приступим!

Читать далее

Snapshot-тесты для дизайн-системы hh.ru

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

Привет! Меня зовут Андрей Максимкин. Я iOS-разработчик в hh.ru. В своих статьях (тут, тут и не только) мы уже не раз говорили о большой любви к тестам и их важной роли в нашем процессе разработки. В этой статье хочу поделиться опытом использования snapshot-тестов, начиная с этапа внедрения. Статья будет полезна для QA и iOS-разработчиков разных уровней. Обсудим не только теорию, но и напишем реальный snapshot-тест — как в нашей практике.

Вместо вступления

Сначала расскажем про snapshot-тесты и для чего они нужны. Snapshot тесты — это метод тестирования, который используется для защиты внешнего вида компонентов и интерфейсов от незапланированных изменений. Они позволяют зафиксировать эталонное состояние компонента и в дальнейшем использовать как образец. Это помогает выявлять изменения в пользовательском интерфейсе, которые могут возникнуть в результате обновлений кода.

В hh.ru мы активно разрабатываем нашу собственную дизайн-систему (ДС). Дело в том, что компоненты ДС могут иметь широкий набор свойств: цвета, размеры, скругления. Проверять корректность, например, цветов обычным ручным тестировщикам на длинной дистанции невозможно, поэтому возникла потребность автоматизировать проверки. Кроме того, при рефакторинге кода некоторые компоненты могут сломаться — хотелось бы находить такие проблемы сразу. Snapshot-тесты показались лучшим решением этих проблем.

Когда-то давно в hh.ru уже были snapshot-тесты. На тот момент они были написаны на экраны приложения. Эти экраны часто меняли свой дизайн, тесты вели себя нестабильно и падали, поэтому их приходилось переписывать. В итоге от snapshot-тестов отказались. Так что в своей новой попытке внедрения snapshot-тестов решили не писать тесты для экранов, а только для ДС. 

Читать далее

ADSM: видеочат на WebRTC через Codex-агента

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

Мои родители и вся моя семья живут в Риге, а большинство наших родственников — в России и Украине. Когда привычные мессенджеры начинают работать с перебоями, хочется иметь простой и независимый способ связи. Самый простой способ из мне известных — WebRTC.

В рамках развития собственного понимания тонкостей парной разработки программ с участием LLM‑агентов я решил создать PWA для видеочата на базе WebRTC при помощи Codex-агента.

Читать далее

SDK для машинного перевода

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

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

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

Читать далее

Давайте писать на Rust для DOS

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

В этой статье я покажу как получить работающую под DOS программу, написанную на Rust.

Начинаем с установки Rust. Даже если он есть системный из пакетов, его недостаточно, так как мы будем (вынужденно) использовать nightly версию. Итак, идём на https://rustup.rs/, копируем предлагаемую строку и запускаем её в терминале. Чтобы команда заработала возможно потребуется доустановить curl. Имеет смысл выбрать в качестве ветки по-умолчанию nightly. Если вы выбрали не nightly, то нужно будет доустановить nightly тулчейн:

Читать далее

Будущее рядом: как искусственный интеллект меняет работу

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

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

Вот один из недавних ярких примеров

В начале октября в сети появились фотографии Тилли Норвуд — первой актрисы, сгенерированной искусственным интеллектом в студии Xicoia (подразделение продюсерской компании Particle6). Реакции были неоднозначными: кто-то восхищался прогрессом, кто-то воспринял это как угрозу рабочим местам и вновь вспомнил про восстание машин.

Читать далее

Mobile System Design

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

Mobile System Design — один из ключевых навыков мобильного инженера.

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

Но вокруг этой темы полно разночтений и разных трактовок — отсюда споры, путаница и хаос.

В этой статье я систематизирую Mobile System Design как дисциплину: покажу, какие навыки действительно важны и как они проверяются. Это не личное мнение, а выжимка из опыта инженеров, требований собеседований, литературы и практики команд.

Читать далее

Два новых линта в Dart 3.9

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

Два новых линта в Dart 3.9:

1. switch_on_type, чтобы сделать switch по типу переменной безопасным.

2. unnecessary_unawaited, чтобы избавиться от unawaited, которые стали ненужными.

Читать далее

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

Кастомная сериализация с помощью kotlinx.serialization

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

Привет, Хабр! Меня зовут Антон Николаев, я senior android-разработчик в Okko, работаю в команде «Молодость» — занимаюсь мультипрофилем и всем, что связано с детским контентом.

Сегодня расскажу о JSON Schema и как мы используем эту спецификацию на проекте, а также о библиотеке kotlinx.serialization и том, как она упростила нам работу со схемами. Статья будет полезна разработчикам, которые интересуются библиотекой kotlinx.serialization и хотят глубже узнать её устройство. В ней обсудим:

Что такое JSON Schema 

Читать далее

Собираем «тот самый» экран блокировки: без лишних виджетов и с защищенным доступом

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

Меня зовут Светлана Палицына, я старший разработчик в мобильной команде «Лаборатории Касперского». Мы занимаемся разработкой EMM-решения для управления корпоративными телефонами и защиты хранящейся на них корпоративной информации. Защита мобильного начинается с экрана блокировки, и в этой статье расскажу про разные способы оформления этого экрана на Android, предоставляемые классом DevicePolicyManager.

Экран блокировки — своего рода визитная карточка всего мобильного интерфейса. Каждый виджет и UI-элемент тут требует особого внимания, чтобы не перегружать пользователя информацией и обеспечивать защиту корпоративных данных (например, скрывать показ содержимого уведомлений от посторонних, которым аппарат случайно может попасться на глаза). Но главное — важно, чтобы разблокировать его можно было исключительно одобренным корпоративными политиками методом. Многие компании, к примеру, запрещают биометрические методы разблокировки как не самые безопасные. В идеале для бизнеса (и самого пользователя) такой экран должен быть лаконичным, понятным и безопасным. И лучший способ достичь этого идеала — подробная кастомизация!

Читать далее

Октябрьский Flutter-дайджест

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

Октябрь был насыщенным и вдохновляющим: новые релизы, статьи, переводы с Medium и целая волна полезных пакетов. Flutter не останавливается, а сообщество растёт с каждой неделей! 🚀

Читать далее

Как ускорить проверку приложения с помощью Impact-анализа. Часть 2: Unit-тесты

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

Когда проект растёт, а вместе с ним — количество проверок, CI превращается в марафон. Мы в Циан через это прошли: кодовая база растёт, тестов становится всё больше, и каждое изменение начинает тормозить весь пайплайн.

В этой статье расскажу, как мы сократили время выполнения unit-тестов с помощью Impact-анализа — метода, который позволяет запускать только те тесты, которые действительно нужны. Это продолжение моего подхода к оптимизации проверок в Android — в первой статье я показывал, как ускорить статические анализаторы. Теперь — про unit-тесты.

Примеры кода будут на JUnit, но подход подходит ко всем проверкам, которые гоняются через Gradle. В конце статьи — рабочий пример на GitHub, который можно адаптировать под себя.

Читать далее

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

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

Я верил, что с приходом ИИ жизнь разработчика превратится в сказку. ИИ будет писать код, а я — придумывать фичи и строить продукт. В реальности я полдня пишу промты, а еще полдня трачу на правки за Copilot. Быстрее написать код самому.

Почему промты занимают так много времени и как компании учат сотрудников использовать ИИ, чтобы он не портил никому жизнь — рассказываю в статье.

Читать, как быть с промтами

Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)

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

Ну как, вы уже обновили свои приложения для поддержки новых требований Google? Если нет, то эта статья будет вам особенно полезна =) Напомню, что с 1 ноября 2025 года приложения, таргетирующиеся Android 15 и выше, должны поддерживать 16-килобайтные страницы памяти.

Как вы помните по предыдущим статьям, я работаю в МойОфис в команде разработки мобильной версии высоконагруженного корпоративного мессенджера Squadus (бэкенд на Node.js, NestJS и Meteor, а веб-интерфейс на React). Мы уже успешно перестроились на новые стандарты Google, и поэтому могу компетентно рассказать, что именно требуется, как адаптировать под это React Native-приложение и что делать, если используемая библиотека ещё не успела обновиться.

Читать далее

Когда .arb не тянет: как я подключаю TMS к Flutter-проекту

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

Привет! Я Роза, Flutter Dev Friflex. Недавно на CrossConf рассказывала о том, что такое система управления переводами и как подключить ее к проекту на Flutter. В этой статье — краткое сравнение популярных сервисов локализации и разбор подключения TMS по шагам.

Читать далее