Обновить

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

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

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

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

Используемые устройства - телефон Samsung Galaxy S8+ (SM-G955FD), часы Galaxy Watch 5 Pro (P0ED)

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

Дополнено включение и настройка спортивного режима не только в app, но и в wear, а так же была исследована проблема залипания данных (когда на часы данные о глюкозе приходят не вместе с обновлением на телефоне, а гораздо позже или переодически например всего несколько раз в час, не стабильно). При этом сейчас данные приходят как правило быстрее чем за 7 минут (на часы). Если быть точным - обновление и показ происходит не позже 7 минут.

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

Читать далее

Мобильная разработка за неделю #602 (8 — 14 сентября)

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

В этом выпуске построение современного BLE-сервиса и повышение производительности за счет лучшего сокращения ресурсов, Swift на Android и эволюция презентационных паттернов, MAX без оболочки, эмоциональное решение проблем, трудные уроки инди-хакинга и многое другое. Заходите!

Читать далее

Generic'и и protocol'ы в Swift

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

Привет, Хабр! В прошлых статьях мы говорили про ARC и управление памятью в Swift, но обошли стороной ещё одну сильную сторону языка. Речь идёт о generic'ах и протоколах - именно они делают Swift таким чистым и мощным. В этой статье мы разберёмся, как они работают и почему без них невозможно представить современный Swift.

Читать далее

Станислав Петров: «Ключевые отличия РЕД ОС М от Android – вовсе не в интерфейсе»

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

Мобильную операционную систему РЕД ОС М устанавливают на все большее количество смартфонов и планшетов, а уже в 2026 году ожидается, что на РЕД ОС М будут работать десятки тысяч производимых в Подмосковье мобильных девайсов Passion. И, разумеется, все хотят задать разработчикам самые неудобные и каверзные вопросы. О том, как развивается ОС, чем она отличается от “перекрашенного Android”, а также о перспективах российских смартфонов и сравнении с продуктами Google и других вендоров рассказывает Станислав Петров, руководитель группы разработки мобильной ОС компании РЕД СОФТ.

Узнать, в чем отличия РЕД ОС М

Swift на Android: создаём библиотеку

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

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

Поддержка Android в Swift 6 и swift-android-sdk от finagolfin это настоящий прорыв, который наконец-то позволил мне выпустить JNIKit, который я разрабатывал для проекта SwifDroid ещё со времён Swift 5. Теперь мы можем просто import Android, вместо того чтобы возиться с ручным импортом NDK header'ов, а сборка конечных бинарников теперь обеспечивается не отдельным тулчейном, а минималистичной SDK, которую в скором времени сделают официальной на Swift.org.

Читать далее

Swift Concurrency и CoreBluetooth: как построить современный BLE-сервис

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

На случай проблем с сетью в Ситидрайве есть оффлайн-сценарий — управление дверьми машины через Bluetooth. Недавно мы с командой обновили этот механизм и значительно улучшили интеграцию различных модулей телеметрии.

Я взял на себя часть по iOS и попробовал применить новый Swift Concurrency поверх старого CoreBluetooth. В этой статье расскажу, какие подводные камни вылезли при совмещении structured concurrency и callback-ориентированного API, как их обойти и на что стоит обратить внимание, если вы тоже решите «прикрутить» современные async/await к старому API.

Читать далее

Compose + Koin + Jetpack Navigation: что мы поняли за 2 года

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

Привет, Хабр! Меня зовут Арсений Шпилевой, и я Android-разработчик в core-команде WB Partners, Wildberries & Russ. Сегодня поделюсь нашим опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями мы столкнулись, как укротили навигацию от Google и какими молитвами всё это подружили с Koin. Главным образом речь пойдёт про навигацию на уровне UI, без data- и domain-слоёв.

Читать далее

Release — CherryPick 3.x

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

🚀 CherryPick 3.x уже доступен!
Быстрое, безопасное и удобное управление зависимостями в Dart и Flutter: O(1) разрешение зависимостей, защита от циклов, автоматическая очистка ресурсов и поддержка декларативного DI.
📦 Попробовать на pub.dev

Читать далее

Натив, Flutter или KMP — выбираем мобильный фреймворк для e-commerce

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

В 2025 году уже недостаточно просто выпустить приложение — оно должно быстро адаптироваться к изменениям рынка, удобно и эффективно интегрироваться с новыми технологиями и обеспечивать хороший пользовательский опыт. Но что лучше выбрать: нативную разработку, кроссплатформу, или Kotlin Multiplatform? 

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

Читать далее

Thing — Model — View — Editor

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

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

Содержание этого документа интересно и с исторической точки зрения (а как там “деды” воевали программировали), так и в плане уточнения некоторых современных представлений об этом паттерне и программной архитектуре в целом.

Иллюстрации по максимуму сохранены как в оригинале. По ходу есть сноски с подробностями и ассоциации редактора в конце.

СУЩНОСТЬ-МОДЕЛЬ-ВЬЮ1-РЕДАКТОР

на примере из системы планирования2


Кому: LRG3

От: Тригве Реенскауг4

Файл: [IVY]<Reenskaug>SMALL>TERMINOLOGY2.DOC

Дата: 12 мая 19795

Цель данной заметки - исследовать метафоры thing-model-view-editor через последовательный набор примеров. Все примеры взяты из моей системы планирования и иллюстрируют вышеуказанные четыре понятия. Все примеры были реализованы, хотя и не в рамках чистой структуры классов, описанной здесь. Метафоры соответствуют real world-Model-view-Tool, предложенным в заметке о требованиях DynaBook ([Ivy]<Reenskaug>DynaBook.doc).


THING (СУЩНОСТЬ)

ОПИСАНИЕ ТЕРМИНА

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

ПРИМЕР: КРУПНЫЙ ПРОЕКТ

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

Читать далее

Как упростить разработку: опыт и размышления (компиляция из моей переписки)

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

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

Азазель предложил идею, которая кажется логичной и полезной:

Читать далее

Обзор USB-CAN переходника USB2CANFD_V1

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

В этом тексте я произвел обзор широко распространенного переходника с USB на CAN? который называется USB2CANFD V1.

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

Читать далее

Поддержка PWA в Аврора 5.2

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

В версии ОС «Аврора» 5.2 наш браузер получает долгожданную поддержку Progressive Web Apps (PWA) - технологии, которая позволяет веб-приложениям выглядеть и работать как полноценные нативные приложения.

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

Меня зовут Тимур Валеев, я руковожу командой, которая занимается развитием браузера для ОС «Аврора», и сегодня мы разберем, как это было реализовано.

Читать далее

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

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

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

В новом дайджесте «стеклянный мир» iOS 26 и Flow-контейнеры в Compose, Android Glance Widget и жизненный цикл UIViewController 2025, лучшие практики агентного программирования, как замедлить программу и почему это может быть полезно, приложения, вышедшие в июле, и заработавшие больше $50,000, и многое другое. Заходите!

Читать далее

ARC в Swift

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

Привет, Хабр! Это вторая статья из цикла моих заметок. В прошлый раз мы затронули тему ARC и а также такие понятия, как weak и unowned ссылки. Сегодня разберёмся, что такое ARC на самом деле, посмотрим, как он работает на уровне SIL, и заглянем немного в историю управления памятью в iOS.

Читать далее

Мой путь новичка в разработке: FreeSpace — мобильное приложение для любителей космоса

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

Меня зовут Маша, я выпускница «IT Школы Samsung». Хочу рассказать о своём проекте — мобильном приложении FreeSpace, которое объединяет новости о космосе, интерактивную карту и сообщество энтузиастов. Это не просто рассказ о коде, но и история моего пути в Android-разработке.

Читать далее

Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 2

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

Flutter & GitLab CI/CD. Сборка и подписание мобильных приложений

Привет! Меня зовут Данил Абдрафиков, я мобильный разработчик в компании TAGES. Эта статья является продолжением первой части руководства по настройке GitLab CI/CD для Flutter приложений, в котором мы подробно разобрали настройку физической машины и подготовили GitLab Runner для работы. Теперь, когда инфраструктура готова, перейдем к самому интересному – автоматизации сборки и подписания мобильных приложений.

Готовы превратить сборку мобильных приложений из рутинной задачи в полностью автоматизированный процесс? Тогда начинаем!

Читать далее

Жизненный цикл UIViewController в 2025 году: что изменилось и что устарело

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

В 2022 году я написал статью «Жизненный цикл UIViewController», где подробно разобрал порядок вызова методов и основные сценарии работы с ними.

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

Читать далее

Android. Glance Widget. Часть 2. Конфигурация данных для виджета

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

Рассмотрим, как добавить конфигурационную activity для виджета, как сохранять, доставать и применять настройки.

Читать далее

Как мы добились оценки приложения в 5 звезд за 2 часа

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

Всем салют, на связи мобильный Flutter разработчик из Comrades Dev.

У нас в приложении была вечная проблема - люди пользуются, всё окей, но отзывов почти нет. В сторе висела небольшая цифра в 30 оценок и рейтинг 4.9. Вроде неплохо, но не то, чтобы "вау". Также отзывы которые мы собирали в соц сетях, а также при опросе знакомых кто им пользуется, были только положительные. Решили попробовать маленький эксперимент, чтобы повысить количество оценок и он неожиданно выстрелил.

Читать далее