Подробнее о компетенции

Приложения и клиенты

Android, клиент для ПК и мини-программа, интегрированные с серверной частью.

01 / Технические решения

Три неизбежных компромисса

У каждого варианта своя цена; ниже — что мы выбрали и почему.

Нативная разработка или кроссплатформа: производительность против охвата

Обычная практикаОтдельная нативная кодовая база под iOS / Android
Другой вариантЕдиная кроссплатформенная кодовая база (Flutter / RN)
Наш подходКроссплатформенность как основа, нативные плагины — для модулей, критичных к производительности
Полностью нативный подход — это две кодовые базы и две команды, затраты на поддержку удваиваются. Производительности кроссплатформенного решения хватает в подавляющем большинстве бизнес-сценариев; по-настоящему нативный код нужен только для высокочастотной анимации, интенсивной обработки изображений и сложного объединения данных сенсоров. Такие части выносятся в нативные плагины, остальное — кроссплатформенно.

Как обеспечить офлайн: частичное кеширование или полный функционал

Обычная практикаБез офлайн-режима, требуется подключение к интернету
Другой вариантКешировать частые данные для просмотра без сети
Наш подходКлючевые процессы полностью работают офлайн, синхронизация при подключении
В выставочных залах, цехах и под землёй сети часто нет. Если ключевые процессы зависят от подключения, при обрыве связи вся система встаёт. Поэтому критичные процессы (ответы на экзамене, обход оборудования) должны работать полностью офлайн: данные пишутся в локальную БД, а после восстановления связи синхронизируются инкрементально по метке времени.

Как доставлять обновления: магазин приложений или самообновление

Обычная практикаПубликация через проверку магазина приложений
Другой вариантПроверка обновлений в приложении и загрузка установочного пакета
Наш подходДва канала: магазины приложений и внутренняя раздача
Сроки проверки в магазинах приложений неподконтрольны, а срочное исправление ждут днями. Для внутренних приложений (обходы, аттестация) практичнее MDM или внутреннее распространение; через магазин — только публичные приложения.
02 / Сравнение вариантов

Одна задача — три подхода

Нет оптимального решения — есть решение, подходящее сценарию.

РешениеСтоимость разработкиПроизводительностьОфлайн-возможностиПодходящие сценарии
Нативная разработка для двух платформНаивысшаяНаилучшаяСильнаяС акцентом на интерактивность и графику
Кроссплатформенная разработка (Flutter/RN)СреднийХорошая (достаточно для большинства сценариев)СильнаяБизнес-приложение
PWA / мини-программаМинимальнаяСреднийСлабая (ограничена браузером)Лёгкие инструменты, промостраницы
При выборе сначала смотрите, есть ли жёсткое требование офлайн-работы, а не на технологический стек.

Что мы делаем

  • Android-приложения (поставлены в ряде проектов)
  • Клиенты для ПК и настольные инструменты
  • Работает офлайн, поддерживает развёртывание во внутренней сети
  • Интеграция с системами обучения и оценки

Обсудить задачи

Формат поставки

Способ развёртыванияЛокально / частное облако / внутренняя сеть
Состав поставкиСистема + документация + обучение
Поддержка эксплуатацииУдалённо + на месте
Поставка исходного кодаОбсуждается
Похожие кейсы

Проверенные системы

Названия клиентов скрыты в соответствии с требованиями конфиденциальности.

Порт / агент + консорциумная сеть + приложение

Крупный контейнерный порт · центр интеллектуального обучения безопасности

Предыстория
Контейнерный порт, входящий в число ведущих в стране по годовому грузообороту. Прежнее обучение строилось в основном на лекциях в классе и не охватывало практическую отработку работ повышенной опасности.
Решение
Комплексный центр практической подготовки + платформа обучения и аттестации + мобильное обучение. 7 систем аттестации, 9 программных модулей, консорциумная сеть из 3 узлов.
Технологии
Консорциумная сеть FISCO BCOS (PBFT) · выписки в сети по SHA-256 · серверная часть на node.js · клиент Android · взаимодействие с 3D-моделями
Результаты
Записи об обучении проверяются в цепи, ведомости оценок защищены от подделки; охвачены 55 категорий оборудования и 66 единиц в журнале оборудования.
Зарубежные проекты / цифровая экспозиция

Музей одной из стран Центральной Азии · цифровая экспозиция

Предыстория
Национальный музей в Центральной Азии: нужны цифровая экспозиция и многоязычная навигация.
Решение
Система цифровой экспозиции + многоязычная навигация + 3D-показ + интерактивные инсталляции.
Технологии
3D-моделирование и показ · многоязычный контент · сенсорная навигация · синхронизация с большим экраном
Результаты
Поставка многоязычной цифровой экспозиции: 3D-контент плавно работает на обычных устройствах.

Все кейсы

03 / Путь внедрения

Сколько шагов от нуля до запуска

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

Определить границы офлайн-работы

Какие функции должны работать без сети? Это первое архитектурное решение, важнее выбора фреймворка.

Определить стратегию синхронизации данных

Как локальная БД сверяется с сервером: инкрементально по метке времени или воспроизведением журнала операций? Как разрешаются конфликты? От этого зависит, появятся ли позже расхождения в данных.

Собрать каркас

Сначала наладить навигацию, вход, права доступа и локальное хранилище, а бизнес-функции добавлять потом.

Реализовать основные процессы

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

Сборка и распространение

Для внутреннего распространения используйте MDM или прямую раздачу установочного пакета; публичная версия — через магазины приложений. Одновременно предусмотрите механизм принудительного обновления, иначе старые версии останутся навсегда.

04 / Ключевые показатели

Проверяемые цифры

Без прилагательных — только конкретные параметры.

Объём офлайн-функцийКлючевые процессы 100% Некритичные процессы могут работать в упрощённом режиме
Стратегия синхронизацииИнкрементально + метка времени Конфликты решаются в пользу сервера или через участие человека
Поддерживаемые платформыAndroid / iOS / мини-программа Сокращение по необходимости
Размер установочного пакета20–60 MB Зависит от наличия встроенной модели и ресурсов
05 / Частые вопросы

О чём чаще всего спрашивают технические руководители

Это вопросы, которые нам действительно задавали; ответы — без маркетинговых клише.

Можно ли обойтись мини-программой без приложения?
Если не нужны офлайн-работа и доступ к оборудованию, мини-программы достаточно и это дешевле. Но как только появляются требования «работа без сети», «сканер штрихкодов / последовательный порт / Bluetooth», нужен нативный App.
Не будет ли кроссплатформенность слишком медленной?
Обычного бизнес-приложения, как правило, достаточно. Ресурсы действительно съедают частая анимация и обработка изображений — это решается нативными плагинами, переписывать всё нативно не нужно.
Не потеряются ли офлайн-данные?
Да, если синхронизация сделана плохо. Наш подход: локальные записи сначала сохраняются в локальную базу с отметкой «не синхронизировано», затем после восстановления связи по одной выгружаются из очереди; неудачные сохраняются, о них сообщается пользователю — молча ничего не отбрасывается.
Потребуется ли новый релиз, если позже понадобится добавить функцию?
Да. Это неизбежная цена нативного приложения. Поэтому в архитектуре нужно предусмотреть пространство для конфигурационного управления: всё, что может меняться, следует держать в конфигурации или на сервере, а не «зашивать» в клиент.
Как решаете проблему фрагментации Android?
Определите минимальную поддерживаемую версию и принудительно обновляйте всё ниже неё; при этом избегайте слишком новых системных API. Это решение принимается на старте проекта — менять его по ходу очень дорого.