Обновить

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

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

NodaLogic платформа бизнес-логики, построенная специально под AI-генерацию

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

Всем привет! Меня зовут Дмитрий Воронцов и я хочу кратко рассказать о своей новой low-code платформе NodaLogic, построении решений с помощью узлов(нодов) и свое видение будущего. Я автор мобильного фреймворка SimpleUI которому скоро исполняется 7 лет и в этой статье будут некоторые пересечения с ним – я хочу рассказать, зачем я сделал отдельную архитектуру, а не стал продолжать SimpleUI.

7 лет назад, когда я начинал Simple я хотел сделать LowCode фреймворк на котором разработчик может быстро разработать мобильное решение, как дополнение к своей учетной системе. Тогда еще не было LLM.  Но ориентиры во все времена одинаковые – чтобы решение было легко поддерживать и развивать, масштабировать – оно должно быть простым, компактным, читаемым. Объем кода может быть и не точный показатель, но когда на один и тот же функционал требуется в 10 (а то и в 100) раз больше/меньше строчек это сигнал. Этот ориентир у меня остался и для новой системы, как важнейший. Ведь не важно, что теперь разработчику не нужно писать, но ему нужно «читать решение», анализировать что ему нагенерила  нейросеть, чтобы направлять ее. И понятно, что можно взять любой стек и язык программирования и сгенерировать решение на нем, но будет ли при этом достигнут тот уровень простоты и читаемости как в LowCode фреймворке?

Платформа позволяет делать клиент-серверные решения с мобильными самостоятельными оффлайн/онлайн фронтами-приложениями (Android) веб-клиентами и серверами. Естественно, единая семантика на веб и на мобильную платформу. Также можно делать и чисто мобильные фронты, мобильные приложения без сервера.  

Читать далее

От костылей к биекции: как я писал генератор судоку на JS

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

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

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

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

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

Читать далее

Строим перспективу по изображению

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

Преобразование Хафа, оператор Собеля и немного линейной алгебры: как я добавил в приложение автоматическое построение перспективы по изображению.

Читать далее

Стадии принятия ИИ в разработке: почему команда саботирует его внедрение и что с этим делать

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

Сейчас в IT забавная ситуация. Одни компании отчитываются о кратном ускорении с ИИ и экономии миллионов рублей. Другие потратили бюджет на лицензии, обучение и евангелизм — и получили команду, которая тихо ненавидит Copilot и пишет код руками, как в 2019-м. Разница между первыми и вторыми не в технологии. Технология одна и та же. Разница — в людях и в том, как с их сопротивлением работают. Или не работают.

Привет, Хабр. Мы — Сергей Калинов и Андрей Макар-Уваров, руководители бизнес-анализа и фронтенд-разработки в Surf. Несколько лет внедряем ИИ на реальных проектах и видим, что сопротивление ему проходит по вполне узнаваемым стадиям Кюблер–Росса. Разберём, почему разработчики так реагируют.

Читать далее

Flutter Widget Previewer: разработка UI без запуска приложения

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

Я разрабатываю приложения на Flutter уже много лет, и то, как он развивается, не перестает меня удивлять. Сегодня Flutter Widget Previewer — это уже не эксперимент, а нормальный инструмент для проектирования UI: он позволяет видеть, как виджеты отрисовываются в реальном времени, без запуска приложения целиком.

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

Читать далее

Модернизация и развитие зрелых продуктов на Kotlin Multiplatform: опыт компаний и эффект для бизнеса

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

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

Поддержка двух нативных приложений в таких условиях может быть дорогой в финансовом плане и сложной в скорости вывода новых функциональностей. Один из способов модернизировать продукт и снизить расходы – постепенно перейти на Kotlin Multiplatform.

В этой статье технический директор Александр Кияйкин и iOS-разработчик Мария Нестерова из CleverPumpkin вместе с экспертами X5 Tech, AvitoTech и MAGNIT OMNI разбирают, как компании со зрелыми цифровыми продуктами использует KMP, какие риски учитывают и какой видят от этого эффект.

Читать далее

iOS network frameworks и HTTP TCP Server внутри приложения

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

Привет. В iOS разработке работа с сетью является одной из ключевых задач. Для этого существует целый арсенал инструментов: от высокоуровневого URLSession до работы с низкоуровневыми BSD сокетами.

В этой статье мы разберем список доступных инструментов, напишем и запустим сервер внутри iOS приложения, используя самый низкоуровневых инструмент (BSD sockets). И закрепим это небольшим проектом, который будет использовать наш сервер. Им будет небольшая админка, с помощью которой можно будет загружать файлы из файловой директории приложения через веб браузер (с других устройств в локальной сети).

Читать далее

SMS в MikroTik: Читай меня полностью

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

Наверно, все владельцы роутеров MikroTik знают, что они декодируют все SMS по стандарту 7-bit вне зависимости от того, как изначально было закодировано сообщение. Как оказалось, даже при декодировании 7-bit MikroTik использует не все 128 символов из стандартного алфавита (GSM 7-bit Default Alphabet).

А ещё вместо одного длинного SMS роутер покажет вам его части по отдельности, иногда с неполными дубликатами. Как же тогда нормально прочитать любое сообщение, отправленное на роутер? Надо стать протоссом и построить MotherSMS.

Построить

Мобильная разработка за неделю #624 (16 — 22 марта)

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

В новом выпуске отладка iOS-приложений на практике и решение для установки сторонних приложений на Android от Google, Remote Compose и Copy-On-Write, эффекты рисования и градиентного рендеринга, неверная реализация MVVM, рынок труда для джунов в 2026 году и многое другое. Заходите!

Читать далее

BP Tracker: считываем давление с тонометра камерой iPhone. Часть 1 — выбор стека и первый экран

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

Многие приложения для здоровья в России перестали нормально работать. Omron — одно из них. А давление мерить надо каждый день. Поэтому я решил сделать своё iOS-приложение, которое через камеру считывает показания с любого тонометра, сохраняет их и строит графики динамики.

Я Senior CV-инженер — компьютерное зрение моя основная работа. Так что OCR с дисплея тонометра технически не должен был стать проблемой. Но как iOS-разработчик я — полный ноль. Xcode открыл впервые. Swift видел мельком. Это честный рассказ о том, как это выглядит изнутри.

И да, я делаю open source приложение за свободу здоровья от политики — и при этом только под iOS. Ирония не ускользнула. Но это open source — найдётся кто-нибудь с Android-девайсом и свободным вечером 🙂

Читать далее

ИИ-агенты и Flutter: как сделать интеграционные тесты частью процесса разработки

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

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

Читать далее

Автоматическая генерация UI-настроек: от типа данных к готовому интерфейсу

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

Меня зовут Илья, я мобильный разработчик в Naumen. Моя основная специализация — iOS-разработка. Я занимаюсь развитием мобильного клиента платформы Naumen Service Management Platform, а также Chat SDK в рамках Naumen Contact Center.

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

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

Читать далее

Как безопасно хранить и открывать пользовательские файлы локально в Android

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

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

Узнать подробности

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

Я перестал пользоваться Anki и сделал VibeLing – своё приложение для изучения языков

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

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

В итоге я сделал своё приложение, где попытался закрыть все эти боли. За 5 месяцев его скачали 1000+ человек.

Читать далее

Отладка iOS-приложений на практике: 3 реальных бага

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

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

Читать далее

Интеграция автоматической установки eSIM на Android

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

Я люблю свою работу, потому что на удивление для меня с годами она становится все более нетривиальной и увлекательной. Моя история внедрения автоматической установки eSim была интересна тем, что разрабатывалась вслепую без возможности протестировать функционал на момент разработки. О eSIM и о своей истории и пойдет речь в данной статье.

Узнать подробности

В поиске секретов. iOS Пентест. Часть третья

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

Вас приветствует Ян - старший пентестер из компании Xilant!

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

Для этого нам понадобятся знания из прошлой статьи. Напомню, что мы научились получать root-доступ к более-менее свежим iOS устройствам, а также пользовались аналогом adb через ssh и iproxy. Это дало нам полный доступ к системным ресурсам iOS и позволило не только устанавливать geek-твики, но и воздействовать на память и процессы.

Чтобы не выходить за рамки закона, мы будем использовать тестовое приложение DVIA-v2 для обучения себя этим навыкам. 

Ведь тот кто знает как нападать, сможет себя защитить.

Читать далее

Как заставить Android Studio ругаться на код по вашим правилам: создаем пользовательские Lint и Detekt

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

Привет, Хабр! На связи Алина, старший Android-разработчик в команде Инвестиций «Совкомбанк Технологии». Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.

В этой статье мы создадим практические правила для инструментов статического анализа кода и разберем, как внедрить их в проект. На примере lint рассмотрим контроль архитектуры пакетов и обязательную документацию с QuickFix, а на примере detekt – проверку неизменяемого состояния представления без Android-зависимостей и миграцию с RxJava на Coroutines.

Читать далее

Ферма коммуникаций: система принятия решений для UI-промо в мобильном приложении

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

В большом мобильном продукте коммуникации запускаются разными командами. Подписки, апселлы, промоакции и A/B-эксперименты развиваются параллельно и часто независимо друг от друга.

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

Меня зовут Михаил Христокьян. Я работаю над мобильными продуктами Почты и Облака Mail и занимаюсь архитектурой и развитием системы продуктовых коммуникаций внутри приложения. Сегодня я расскажу о том, как мы решили эту проблему и при чём тут «Разборки».

Экскурсия на ферму

Почему многие неверно реализуют MVVM или способы создания абстракций

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

Привет, Хабр! Меня зовут Кирилл Маканков, я iOS-разработчик в ПСБ.  

Сегодня хочу поговорить про особенности реализации MVVM. Не с практической, а с теоретической стороны. С практической стороны этот архитектурный шаблон давно уже изучен вдоль и поперёк. А вот теоретических исследований, особенно применимых к Swift (и в общем, и к SwiftUI в частности), не так уж и много. Давайте вместе попробуем закрыть этот пробел и обосновать с теоретической точки зрения те или иные вариации реализаций в нашей ежедневной работе. Мобильным разработчикам на ObjC, Java и Kotlin данное исследование и обсуждение тоже будет полезно. Присоединяйтесь!

Если вы уже хорошо знакомы с MVVM, то в конце приведен опрос об используемой лично вами реализации. Давайте вместе определим, какая из реализаций самая популярная.

Читать далее