Конструктор бизнес приложений для Andoid и Web
SimpleUI – это полностью бесплатный фреймворк для создания бизнес-приложений для Android с мгновенным развертыванием на устройствах. Это могут быть онлайн или полностью самостоятельные (офлайн) мобильные рабочие места для учетных систем (1С: Предприятие, SAP и других) для устройств на Android – мобильных телефонов, ТСД, планшетах, электронных киосках. Платформа исполняет пользовательские конфигурации с интерпретацией кода как локально (python или javascript) так и онлайн (на языке бек-систем) и ориентирована на максимальную производительность для высоконагруженных решений. С помощью этого же конструктора, семантики и набора команд можно создавать рабочие места для ПК на базе веб-клиентов, делать собственные облачные решения на открытом фреймворке SimpleWEB (на котором в свою очередь написан облачный конструктор для платформы).
Главная миссия Simple – максимально упростить процессы разработки и поддержки за счет специальной архитектуры решений, за счет структурирования визуальных форм, событий и их обработчиков. Это не No-code, так как я считаю No-Code недостаточно гибким и универсальным – это Low-code, который позволяет создавать решения, с производительностью native-приложений и даже выше (см. примеры). Это намеренно не кросс-платформенный фреймворк. Вместо этого, он максимально ориентирован на глубокое использование возможностей базовой платформы, стиля и рекомендаций Google, чего не достичь на кроссплатформенных фреймворках, которые вынуждены предлагать равные возможности на всех платформах.
Одновременно, SimpleUI – это исследовательский проект, который непрерывно идет уже более 5 лет, цель которого – изыскивать методы и архитектуру для непрерывного упрощения процесса разработки. Это поиск философского камня – бесконечный процесс, какие-то технологии выстреливают, какие-то нет, но в целом эффективность инструмента непрерывно растет с каждым релизом. У этого процесса есть еще одна цель – получить архитектуру приложений, наиболее из всех фреймворков подходящую для LLM-моделей. В скором будущем ui-файлы будут генерироваться, а конструктор будет нужен только для просмотра и мелких правок.
SimpleUI старается заставить AI-возможности реально работать, а не быть модной игрушкой для презентаций. Так, OCR(распознавание текста) с помощью специальной методики дает 100% точность и скорость, сопоставимую с штрихкодом и спустя уже много лет применения можно с уверенностью сказать что отсутствие возможности штрихкодирования или RFID это не приговор – артикулы, VIN-ы, инвентарные номера и другие число-буквенные метки читаются отлично. Уникальная методология ActiveCV, придуманная специально для SimpleUI позволяет визуализировать видеопоток и дополнить экраны совершенно новым способом взаимодействия, основанном на CV (компьютерном зрении) что позволяет ускорить выполнение складских и других учетных операций в разы. Голосовой помощник в сочетании с нечетким поиском по пользовательским датасетам дает ускорение поиска товара (на случай если нет ни штрихкодов ни текстовой маркировки).
Для того чтобы написать решение понадобится только браузер и мобильный телефон на Android в любой точке мира без регистрации и облачного хранения (конфигурации скачиваются в виде ui-файлов или через GitHub)
Вы можете разрабатывать свои решения на https://seditor.ru:1555/ либо скачать этот конструктор локально и запустить у себя (для отладки и связи с бек-системой, если это требуется также можно скачать шину). Можно ничего специально не ставить на компьютер, но можно код обработчиков писать в своей IDE, связав с конфигурацией через GitHub
Просто зайдите в конструктор Конфигурация-Новая конфигурация, установите SimpleUI (из GooglePlay или apk) и отсканируйте QR- код. Всё, конфигурация готова к работе! Можно сделать простые примеры из https://uitxt.readthedocs.io/ru/latest/gettingstarted.html
С каких обработчиков лучше начать?
Раньше я рекомендовал онлайн, но сейчас pythonscript сравнялся по простоте, поэтому если вы знаете Python (но не охота на начальном этапе заморачиваться с подключаемыми файлами) – то pythonscript. Если вы умеете разрабатывать только на языке своей бек-системы, то начать конечно лучше с онлайн, а потом потихоньку переводить обработчики на python.
Также, даже если у вас полностью онлайн-решение, с целью снижения нагрузки на бек можно несложные операции выносить на локальные обработчики, например set. Например если вам нужно всего лишь переключить экран, не стоит гонять запрос туда-сюда, сделайте set ShowScreen
Также для полностью онлайн решений иногда нелишним вынести работу со своей справочной информацией в датасеты – преимущество по скорости и другие фичи.
Если некогда/не хочется разбираться в стеке технологий то можно заказать готовое индивидуальное мобильное решение по Вашему ТЗ. Это может быть макетное решение или решение под ключ. Вы получите решение, которое сможете легко поддерживать и развивать сами. Пишите на почту ниже или форму обратной связи.
Стоимость разработки ~ 1 з/п джуна
Элементы форм, внешнее оборудование (например сканеры штрихкодов) и другие механизмы (например таймеры) порождают события. События обрабатываются в обработчиках либо онлайн (на стороне бек-системы) либо локально в приложении и в результате обработки в стек переменных помещаются переменные, которые отображаются на экранах, команды, управляющие приложением (переключение экранов, вывод списков, звуки и озвучка голосом и т.д.)
Т.е. стек переменных связывает интерфейс, события и обработчики через данные и команды.
И также стек переменных связывает локальные обработчики (иногда на разных языках) с онлайн-обработчиками – стек един и там, и там.
SimpleUI выполняет код онлайн на стороне вашей учетной системы либо через HTTP-запрос либо через шину. Команды и переменные курсируют между устройством и бек-системой в запросах в виде стека переменных (HashMap). Синтаксис и принципы в обоих случаях для разработчика – идентичны.
Вариант через HTTP-сервис
В этом варианте потребуется со стороны учетной системы публикация http-сервиса. Тип обработчика в SimpleUI – онлайн.
Для 1С это есть расширение SimpleUISplit (скачать тут) нужно установить его, опубликовать http-сервис и прописать настройки как указано на картинке (настройки также можно передавать например через QR-код)
Вариант через шину, через WebSocket
Также, если нет желания или возможности публиковать веб-сервис наружу в Интернет и ваша система умеет работать с веб-сокетами, то можно работать через шину (тип обработчиков onlinews) Подробно описано тут https://infostart.ru/1c/articles/2305445/
Конфигурация – это по сути JSON-файл (но с расширением .ui) в котром хранятся экраны, обработчики и прочая структура. Конфигурация может хоститься где то в интернете (как в случае с seditor.ru), ее можно разместить на своем сетевом ресурсе либо можно ее передать локально. Раз скачавшись она хранится и открывается локально, но если в настройках прописан адрес источника то обновляется из него при запуске или специальном обновлении
Конфигурации можно поставить локально в репозиторий. Это локальное хранилище, откуда между конфигурациями можно переключаться, также они локально обновляются и также они могут работать в фоне, например получать сообщения из шины SimpleBus обрабатывать их в фоне и как то взаимодействовать с пользователем
И также есть возможность выделить любой процесс в самостоятельный SUIP-файл, объединяющий конфигурацию и данные, что то наподобие Excel-файла с макросами, только исполняемый не на Excel, а на SimpleUI
Для локально хранения можно использовать как SQL(SQLite) так и специально разработанные NoSQL- СУБД и специальный механизм резидентных в памяти датасетов с возможностью сохранения/загрузки
Актуальная и рекомендуемая конфигурация хранения предполагает использовать следующие инструменты для локального хранения в зависимости от характера данных и предполагаемого сценария использования (можно комбинировать эти инструменты):
В качестве дополнительной альтернативы можно использовать SQLite , в т.ч. совместно с ORM Pony
Обмен с внешними системами:
Для больших файлов:
WebSocket-клиент (помимо шины SimpleBus, которая тоже работает через WebSocket но со своими особенностями)
Bluetooth
NFC
p2p передача данных в отсутствии связи
GPS
Поддерживается почти весь набор стандартных виджетов Android SDK
В конструкторе визуальные элементы задаются с помощью вложенных друг в друга контейнеров (LinearLayout в AndroidSDK). Положение в контейнере может быть «На весь контейнер», «По размеру» и пропорционально весам (например если нужно горизонтально расположить 3 надписи с пропорциями ширины 1, 3 и 2 то нужно Ширину задать =0(Вручную), а веса поставить 1, 3 и 2).
Разметкой контейнерами задается вид экранов, окон диалога, элементов списков
У элементов можно настроить рамки и радиусы закругления, в т.ч. полный круг.
Если не хватает возможностей конструктора и контейнеров, то есть вариант произвольной XML-разметки: https://infostart.ru/1c/articles/1983895/
Также есть особые визуальные элементы, которые хотелось бы выделить отдельно:
Работа с любыми сканерами/ТСД из экрана (элемент экрана Штрихкод) с подключением через:
Работа с событиями сканера из сервиса событий (вне экранов):
Работа с внешними принтерами через Bluetooth/USB/TCP-IP
Имеется возможность отправлять этикетки на принтер как в виде HTML так и на языках разметки (ZPL, TSP, PCL, ESC/POS)
Отправка данных на порт USB(в режиме аксессуара)
Отправка на TCP/IP порты
Отдельные расширенные функции для некоторых ТСД (Urovo, Meferi)

Форум разработчиков в телеграмм: https://t.me/simpledevchat
Он-лайн документация : https://uitxt.readthedocs.io/
Статья в Habr которая все объясняет (на момент начала 2023 года): https://habr.com/ru/articles/720610/
Статья в Habr по ActiveCV 2: https://habr.com/ru/articles/874560/
Статья на Инфостарт по мобильной платформе: https://infostart.ru/public/1153616/
Статья по Web-платформе: https://infostart.ru/1c/articles/1777420/
Облачная WMS pureWMS: wms.simpleui.ru
Видео о программе тут
Репозиторий библиотеки веб-клиента на семантике Simple: https://github.com/dvdocumentation/simpleweb
Редактор конфигураций, написанный на SImpleWEB: https://github.com/dvdocumentation/web_simple_editor
Собственная СУБД NoSQL экосистемы Simple: https://github.com/dvdocumentation/pelican_dbms
Шина данных: https://github.com/dvdocumentation/simplebus
Упрощенный скрипт, которого хватит для онлайн-обработчиков (onlinews) и отладки: https://github.com/dvdocumentation/simplebuslite
Очень упрощенный (и уже устаревший скрипт) для слабых клиентов (писался для RaspberryPI): https://github.com/dvdocumentation/simpleui_desktop
Платформа полностью бесплатная, но если интересует поддержка - саппорт, разработка прототипов конфигураций (с которыми вы можете дальше продолжить свой проект) и прочее, то пишите мне через форму обратной связи на этом сайте.

Меня зовут Дмитрий Воронцов. Я занимаюсь внедрением систем 1С:Предприятие с 2002 года. Разработать и поддерживать собственный продукт на отличной от 1С платформе меня побудили потребности моих проектов которые не могла закрыть платформа 1С. Нативное приложение дает то, что не может мобильная платформа - легкий и производительный клиент, распознавание текста, работа с речью, встроенный веб-сервер и многое, многое другое. Я развиваю этот проект с 2018 года. Изначально он появился как клиент для УПП/ERP для участков производства, потом как клиент WMS-систем, а сейчас он используется в широком спектре назначений - логистики, управлении бизнес процессами и т.д. Теперь это полноценная самостоятельная платформа которая может работать без 1С и может интегрироваться с любыми системами учета. Ну и во главе угла стоит принцип простоты разработки, чему обязывает название Simple.