При разработке мобильных решений на платформе 1С:Предприятие часто возникает вопрос: стоит ли тратить время на сборку полноценного дистрибутива APK (для Android) или IPA (для iOS), если можно просто установить на устройства «1С:Мобильную платформу разработчика» и подключаться к опубликованной на веб-сервере конфигурации? На первый взгляд, работа через «оболочку» кажется удобнее: можно мгновенно вносить изменения в код, и пользователи получат обновление при следующем запуске без переустановки приложения.
Однако при переходе от этапа разработки к промышленной эксплуатации (продакшену) выясняется, что подход с использованием только платформы разработчика имеет критические ограничения. Разберем подробно, почему сборка собственного приложения является обязательным этапом для серьезного проекта.
Проанализируем технические ограничения платформ. В случае с iOS выбор практически отсутствует: политика безопасности Apple не позволяет загружать сторонний исполняемый код или сложные конфигурации в обход App Store или корпоративных методов дистрибуции в универсальные «плееры». Сборка IPA — единственный надежный способ запустить свое решение на устройствах Apple.
Что касается обеих операционных систем, крайне важным моментом является использование внешних компонент (ВК). Если ваше приложение должно работать со специализированным оборудованием (сканеры штрихкодов, принтеры этикеток) или использовать расширенные возможности системы через нативный код, эти компоненты необходимо «зашивать» непосредственно в пакет приложения при сборке. В стандартную платформу разработчика вы не сможете добавить произвольную ВК.
Рассмотрим проблему воспроизведения звуков и использования локальных файлов. Участники обсуждения отмечают, что при работе через платформу разработчика возникают сложности с доступом к медиа-файлам. Например, встроенные функции могут не находить файлы, если они не включены в состав собранного пакета.
Посмотрим на пример кода, который часто используется для воспроизведения аудио:
СредстваМультимедиа.ВоспроизвестиЗвуковоеОповещение(ИмяФайла);
В собранном APK файлы ресурсов являются частью пакета, и система обращается к ним напрямую. При использовании платформы разработчика вам придется либо прописывать полные системные пути к файлам на устройстве, что снижает переносимость решения, либо сталкиваться с ошибками доступа. Пример обращения к системному звуку на Android:
СредстваМультимедиа.ВоспроизвестиАудио("/system/media/audio/notifications/Betelgeuse.ogg");
Сборка приложения позволяет сделать интерфейс и звуковое сопровождение независимыми от настроек конкретного телефона.
Выясним причину, по которой Push-уведомления считаются «камнем преткновения». Для корректной работы уведомлений через сервисы Google (FCM) или Apple (APNs) приложению требуется уникальный идентификатор (Application ID или Bundle ID). При использовании платформы разработчика уведомления идут через промежуточный сервис 1С, что накладывает ограничения на их кликабельность, скорость доставки и возможности кастомизации.
Собранное приложение позволяет:
Проанализируем правовую сторону вопроса. Фирма 1С четко разделяет понятия «Мобильная платформа разработчика» и «Мобильная платформа пользователя». Согласно лицензионному соглашению, платформа разработчика предназначена исключительно для отладки и разработки.
Для промышленной эксплуатации (продакшена) необходимо использовать платформу пользователя, которая и предназначена для сборки тиражных или заказных приложений. Использование «желтого значка» 1С (платформы разработчика) на рабочих местах сотрудников может вызвать вопросы при лицензионном аудите. Сборка собственного APK/IPA позволяет легально закрепить использование мобильных рабочих мест в соответствии с приобретенными лицензиями.
Разберем, как выглядит использование приложения глазами конечного пользователя. В случае с платформой разработчика пользователю нужно:
Это неудобно и повышает риск ошибок. Собранное приложение имеет собственную иконку, название («Моя доставка», «Склад-Про») и не требует от пользователя знаний об адресах серверов при первом запуске.
Кроме того, сборка фиксирует версию платформы. Рассмотрим ситуацию: вы обновили конфигурацию на сервере, используя новые возможности встроенного языка, которые появились в последнем релизе 1С. Если у пользователя стоит старая версия платформы разработчика, приложение просто не запустится или будет работать с ошибками. При использовании APK вы доставляете пользователю обновленный «движок» вместе с кодом, гарантируя их совместимость.
В платформе разработчика все конфигурации хранятся в общей области. Если на одном устройстве запущено несколько баз, теоретически ошибка в одной может повлиять на стабильность всей платформы. Собранный APK создает изолированную «песочницу» для данных вашего предприятия, что критично для корпоративной безопасности. Также это позволяет скрыть от пользователя технические детали (адреса публикации, настройки отладки), которые доступны в списке информационных баз платформы разработчика.
Использование мобильной платформы разработчика без сборки оправдано только на этапе активного прототипирования или для очень узкой группы тестировщиков. Для полноценного внедрения сборка в APK или IPA необходима, так как она обеспечивает правовую чистоту, стабильность системных функций (Push, GPS), корректную работу с внешним оборудованием и качественный пользовательский интерфейс.