Автор Jurij Kovalenko На чтение 3 мин. Просмотров 1.5k. Опубликовано
Думаю, все из нас пользуются телефонами, бывает такое, что нам нужно установить какое-то приложение, но не все мы знаем как это сделать. Конечно, молодежь мне сразу возразит «как это не знаем – знаем сейчас покажем». Но, а что скажут те, кто с телефоном общается не так плотно? В этой статье я расскажу, как установить приложение на свой телефон с операционной системой Андроид из Play Market или Google Play. Если вам не интересна эта тема, то смело переходите к другим статьям.
Для того чтобы установить приложение на Андроиде первое что вам необходимо сделать это определиться с тем какое приложение вы хотите установить. Будет это приложений Вконтакте, ЧекCкан, AppCent или какое то другое приложение, не важно. Инструкция по установке на Android будет примерно одинакова во всех случаях.
Переходите в Play Market или Google Play в самом верху вы видите поисковую строку, в ней вам необходимо ввести название нужного вам приложения.
Далее после ввода названия перед вами появляется список всех приложений, которые подходят по вашему поисковому запросу. Выбираете вариант нужный именно вам и нажимаете на него.
После этих действий вы оказываетесь на главной странице устанавливаемого вами приложения с детальным его описанием, отзывами, фотографиями и видео (если оно конечно загружено создателем). Здесь вам необходимо нажать на кнопку «Установить».
Перед вами появляется всплывающее pop up окно. В котором вам подробно сообщается, какие именно данные могут потребоваться приложению. Для дальнейшей установки просто нажимаете на кнопку «Принять».
Далее происходит сам процесс установки приложения, выглядит он примерно, так как показано на картинке ниже.
После того как приложение будет установлено на главной странице приложения у вас вместо кнопки «Установить» появятся две другие «Удалить» и «Открыть». Соответственно на этом сам процесс установки завершен просто нажимаете на кнопку «Открыть» и успешно пользуетесь приложением.
Допустим, вы хотите установить приложение, но еще не определились какое именно. В этом случае вы можете воспользоваться стандартными вкладками, находящимися на главной странице Google Play (Play Market). Чуть ниже главного меню вы увидите подраздел по «Категории», нажимаете на него.
Сразу же после нажатия перед вами откроется раздел с категориями. Выбираете нужную именно вам категорию и нажимаете на нее.
Далее перед вами появляется новое окно с под категориями этого раздела. Выбираете нужную вам под категорию и нажимаете над ней на кнопку «Еще».
В следующем окне вы увидите список приложений, которые вы можете установить.
Для более подробного ознакомления просто нажимаете на иконку понравившегося вам приложения. Если оно вам подходит, устанавливаете его (как устанавливать я описывал выше), если нет, то возвращаете в прошлое меню.
На этом все, что я хотел описать в данной статье, надеюсь, теперь ни у кого из вас не возникнет проблем с установкой приложений на телефон. Всем как обычно море позитива и добра 🙂
Если вам была полезной и понравилась статья про установку приложений на телефон с операционной системой Андроид, пишите свои комментарии и предложения. С уважением Юрий, до встречи на страницах блога iprodvinem.ru.
Для устройств на базе ОС Android:
Установка мобильного приложения выполняется из магазина приложений Google Play (https://play.google.com/store).
Обновление мобильного приложения выполняется средствами магазина приложений.
Для удаления мобильного приложения необходимо на мобильном устройстве запустить приложение Google Play и в нем удалить мобильное приложение.
Для запуска мобильного приложения необходимо найти нужное приложение в списке и нажать на его картинку. При этом в большинстве случаев будет открыто основное окно мобильного приложения. Однако если с данной программой связано несколько приложений, то будет открыт список этих приложений. В этом случае для запуска приложения следует нажать на нужное приложение в списке.
Для выполнения большинства нижеперечисленных действий необходимо попасть в список приложений. Это можно сделать из запущенного приложения с помощью главного меню, выбрав в нем пункт Список приложений. Также список приложений доступен сразу при запуске мобильного приложения, если зарегистрировано более одного приложения.
Для того чтобы изменить порядок приложений в списке, следует:
Для того чтобы создать приложение для мобильной платформы, следует:
При запуске мобильного приложения в большинстве случаев будет открыто основное окно приложения. Однако если с данной программой связано несколько приложений, то будет открыт их список. В этом случае для запуска приложения следует нажать на нужное приложение в списке.
Свойства приложения изменяются в специальном окне. Для открытия окна свойств приложения следует выполнить длинное нажатие на нужном приложении. В открывшемся контекстном меню выбрать команду Изменить.
В открывшемся окне можно изменить наименование приложения, запустить его (кнопка Открыть) или удалить (кнопка Удалить).
После удаления приложения данные информационной базы восстановить невозможно.
Для удаления приложения следует выбрать команду Удалить и подтвердить свое действие: выполнить длинное нажатие на удаляемом приложении. В открывшемся контекстном меню выбрать команду Удалить.
После удаления приложения данные информационной базы восстановить невозможно.
Мобильное приложение обновляется с помощью используемого магазина приложений. После его успешного обновления мобильного приложения необходимо обновить ранее созданные приложения. Для этого достаточно запустить приложение.
Если в процессе выполнения обновления будет обнаружена необходимость реструктуризации базы данных, то будет запрошено подтверждение выполнения этой операции. В случае отказа обновление будет отложено до следующего запуска приложения.
Также имеет смысл отказаться от обновления, чтобы сделать резервную копию базы данных.
Интерфейс мобильной платформы ориентирован на то, что в один момент времени на экране отображается одна форма. Под нее освобождается максимум свободного места на экране. Первой видимой формой обычно является рабочий стол. Команды, открывающие другие формы, собраны в главное меню приложения. Также это меню содержит команду возврата на рабочий стол, команды отображения информации о программе и перехода к списку приложений. Вызов главного меню приложения осуществляется с помощью системной кнопки вызова меню.
Прокручиваться может как форма, так и элемент формы. При прокрутке таких форм существует следующая особенность:
Полосы прокрутки на мобильных устройствах не отображаются постоянно, поэтому можно не обратить внимания на то, что форма (отчет или таблица) показывает только фрагмент информации.
Практически в каждой форме есть команды, выполняющие определенные действия в форме. Часто используемые команды представлены в виде кнопок или гиперссылок на самой форме. Редко используемые команды доступны через специальное меню Все действия, доступ к которому осуществляется с помощью кнопки ≡.
Команды открытия вспомогательных форм реализованы с помощью специального меню, которое открывается с помощью нажатия на заголовок окна, если заголовок выделен подчеркиванием.
В форме могут располагаться табличные документы и диаграммы. В этих объектах может быть доступна функция расшифровки. Расшифровка — это действие, связанное со значением в ячейке табличного документа или элемент диаграммы. Это может быть открытие другой формы, построение другого отчета или перестроение текущего и т. д. Для выполнения расшифровки нужно нажать на интересующую ячейку или элемент диаграммы. Если расшифровка не поддерживается, ничего не произойдет.
Для ввода различной информации предназначена экранная клавиатура. Для ее активации, как правило, достаточно нажать на поле ввода, куда требуется ввести информацию. Кнопка Готово (Далее, Ввод и т. д.) приводит к переходу между полями ввода без закрытия клавиатуры.
В мобильном приложении может быть предусмотрена работа с мультимедийными возможностями устройства: создание аудиозаписи, использование встроенной камеры (для фото- и видеосъемки).
Запись аудио. Нажать кнопку диктофона в центре нижней части экрана. Чтобы остановить запись, повторно нажать кнопку диктофона. Чтобы отменить запись, нажать клавишу Назад.
Сохраненная аудиозапись будет обработана мобильным приложением.
Запись видео. Нажать кнопку записи видео в центре нижней части экрана. Чтобы остановить запись, повторно нажать кнопку записи. Чтобы отменить запись, нажать клавишу Назад.
Сохраненная видеозапись будет обработана мобильным приложением.
Съемка фотографии. Нажать кнопку фотокамеры. Для отмены съемки нажать клавишу Назад.
Сохраненный фотоснимок будет обработан мобильным приложением.
В мобильном приложении может быть предусмотрена возможность работы с картографическим сервисом Google Maps (отображение адреса). В настройках телефона должна быть включена служба геопозиционирования.
Установка Google Maps в виде отдельного приложения не требуется.
Сообщения пользователю отображаются в специальной панели. Эта панель отображается на экране только в тот момент, когда в ней есть сообщения. Если панель закрывается, то список сообщений очищается. Нажатие на сообщение приводит к активации элемента формы, если сообщение связано с таковым. Для повторного открытия списка сообщений следует повторно вызвать действие, приводящее к открытию списка.
Резервное копирование данных выполняется в зависимости от используемого мобильного приложения.
Если используется мобильное приложение, не связанное с удаленной системой, то для резервного копирования можно воспользоваться штатными средствами используемой операционной системы мобильного устройства.
Если используемое приложение выполняет синхронизацию данных с удаленной системой, то рекомендуется выполнить сеанс синхронизации данных. Необходимость использования штатных средств резервного копирования после выполнения синхронизации зависит от наличия в мобильном приложении данных, которые не синхронизируются с удаленной системой. Если таких данных нет, то в случае возникновения проблем приложение можно пересоздать и провести начальную инициализацию данных из удаленной системы.
На устройствах под управлением iOS при создании приложения папка с данными приложения помечается как нерезервируемая. После того как изменяются данные приложения (в процессе работы с приложением), папка с данными приложения помечается как резервируемая и начинается ее резервное копирование с помощью системных средств.
Установка мобильного приложения и первый вход
Мобильное приложение Creatio доступно для загрузки из магазинов приложений:
App Store — для устройств с операционной системой iOS.
Google Play — для устройств с операционной системой Android.
После загрузки приложения необходимо выполнить первый вход, после которого осуществится синхронизация c основным приложением Creatio.
Важно
Для подключения к Creatio, развернутому on-site, по защищенному протоколу https, необходимо, чтобы сайт Creatio имел сертификат, подписанный центром сертификации. Политики безопасности мобильных приложений не поддерживают подключение к сайтам, использующим самоподписанные сертификаты.
Для входа в мобильное приложение введите адрес сервера Creatio, укажите рабочее место и нажмите на кнопку [Далее] (Рис. 1). Если в системе настроен SSO, далее откроется страница провайдера с формой ввода логина и пароля. Если SSO не настроен, на открывшейся странице входа в мобильное приложение введите свой логин и пароль и нажмите на кнопку [Войти].
Рис. 1 — Вход в мобильное приложение
На заметку
Протоколы соединения (http://, https://) мобильного приложения с сервером Creatio определяются автоматически. Вручную протокол соединения прописывается в случае, если при соединении протокол не определился.
После этого мобильное приложение начнет процесс синхронизации с основным приложением Creatio. По завершении процесса синхронизации вы можете приступить к работе в мобильном приложении.
Для просмотра демонстрационной версии продукта нажмите на кнопку [Демо-вход]. После этого мобильное приложение синхронизируется с демоверсией.
На заметку
Для демо-входа логин и пароль не вводятся. Переход к приложению осуществляется автоматически после синхронизации.
На заметку
Кнопка [Демо-вход] отображается в случае, если не проводилась первичная синхронизация с сервером Creatio. Если синхронизация выполнялась, то для просмотра демоверсии необходимо очистить кеш.
Смотрите также
•Специфика работы в online и offline режимах
•Настройки мобильного приложения
Обучающее видео
•Настройка мобильного приложения
В нашей работе мы проходим все стадии жизненного цикла создания мобильного приложения, и я бы хотел поделиться нашим опытом в этой сфере. Под катом — рассказ об основах мобильной разработки: от выбора платформы до создания, размещения в магазине и последующего мониторинга.
Чем пользуются владельцы мобильных телефонов?
Что покупают
За 2012 год в РФ продано порядка 12,6 миллионов смартфонов: Россия считается одной из быстроразвивающихся в этом плане стран.
Если мы посмотрим на статистику продаж смартфонов по операционным системам, мы увидим следующее:
Если взглянуть на такой же график по всему миру, то увидим, что и тут Android в авангарде с ¾ рынка.
За второй квартал 2012 года по всему миру было продано 104 миллиона телефонов Android — как население довольно крупной страны. Но нас как мобильных разработчиков интересует не только наличие смартфона, но и то, как с ним работают. Существенная доля обладателей устройств на Android пользуется ими как обычными телефонами: SMS, звонки — и все. Они не активируют устройство в Google Play, не скачивают приложения.
Чем пользуются
Не все люди обзавелись телефонами в 2012 году, поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика. В эту статистику входят Россия и страны СНГ: Украина, Белоруссия, Казахстан, Узбекистан.
При выборе платформы, под которую будет разрабатываться приложение, важно знать статистику по уже существующим приложениям. Графики исследовательской компании App Annie от сентября 2012 года показывают, как растут два конкурирующих магазина Apple и Google.
По количеству скачиваний на первом месте Google Play: больше устройств, больше скачиваний, больше трафика и рост при этом +66% по сравнению с январем 2012 года. Рост iOS оказался в два раза меньше, порядка 30%. Но главный график – какую выручку приносят пользователи. И здесь ситуация в корне иная. Проще зарабатывать на iOS, но деньги есть и в Google Play, если уметь их забирать.
На практике можно разделить приложения для мобильных устройств на три типа.
Мобильные сайты, веб-приложения
Это самый распространенный тип приложений для мобильных устройств. Современные смартфоны в состоянии отобразить обычный сайт. Им доступно все то, что мы привыкли видеть в десктопных приложениях — поддержка HTML5 делает свое дело. Помните, что веб-приложения отлично подходят для стартапа: именно они позволяют получить большой результат за маленькие деньги и за небольшой срок. Еще один плюс мобильного сайта по сравнению с другими мобильными приложениями – это кроссплатформенность. Однако есть и минус, притом весомый: с ними достаточно сложно заработать.
Гибридные приложения
При таком подходе вы получаете доступ ко всем плюсам API операционной системы: приложение обрастает push-уведомлениями и другими приятными плюшками, кроме того, теперь ваш продукт можно размещать в сторах. При этом основной контент все еще представляет собой платформонезависимую страничку с версткой, размещенную на сервере. Это позволяет вносить косметические изменения в продукт без выпуска новой версии: достаточно залить изменения на сервер. Гибридные приложения – отличное решение для тех, кто начинает бизнес или хочет проверить свою идею, показать ее инвестору, друзьям.
Нативные приложения
Этот вид приложений самый ресурсоемкий, но вместе с этим он позволяет по максимуму использовать возможности, предлагаемые каждой конкретной операционной системой. Как следствие, нативные приложения выигрывают как по функционалу, так и по скорости работы у других типов мобильных приложений. Именно к такому подходу сейчас приходят те компании, которые делали комбинированные приложения. Например, Facebook начинала с комбинированного приложения: нативные контролы (переключатели, вкладки и так далее) и веб-страница в качестве контента. Несмотря на то, что это неплохое решение, проблемы с производительностью приводят к тому, что разработчики отходят от комбинации с вебом.
Приведу статистику скачиваний на примере наших мессенджеров.
Во-первых, у нас есть приложение ICQ, которое постоянно развивается: среди последних изменений стоит отметить аудиозвонки. Второй мессенджер Mail.Ru Group – Агент. В Агенте реализован примерно тот же функционал, и, хотя у него была немного другая история развития, мы выпускаем версии практически под все платформы и его можно найти в любом сторе.
Основная разница между двумя этими приложениями – это их аудитория. ICQ – это международный продукт. Программа скачивается не только в России, им активно пользуются жители Европы, Латинской Америки. Агент же изначально делался в России и для русскоязычных пользователей.
Тем интереснее сравнить статистику скачиваний из магазинов.
Большая часть 62% иностранной аудитории идет в Google Play. Примерно 1/5 идет в AppStore, 14% — в Ovi Store. И уже оставшиеся 5% делят магазины для платформ Windows Phone (4%) и Samsung Bada (1%). С Агентом ситуация в корне другая: доли Google Play и Ovi примерно одинаковые. Ну а 10% AppStore наглядно демонстрируют любовь к «яблочной» продукции в нашей стране.
Итак, перейдем к самому вкусному: процессу разработки мобильного приложения.
User Story
Прежде всего, необходимо определить, что и для кого мы пишем. Ответы на эти вопросы оформляются в User Story. На картинке вы можете посмотреть на реальный тикет в нашем трекере. Он описывает, как существующий пользователь ICQ может войти в приложение, и какие проблемы он может встретить. На этом этапе важно проработать все возможные сценарии, чтобы не было неприятных сюрпризов на более поздних этапах разработки.
Важно понимать, что за каждым пунктом в вашем to-do листе скрывается огромный айсберг функционала. Старайтесь фрагментировать и конкретизировать задачи. Крупные хотелки лучше всего разделить на несколько этапов (релизов в стор). Однако это тема отдельной дискусии, вернемся к этапам создания приложения.
Проектирование и дизайн
После составления User Story начинается проектирование и разработка дизайна.
На этом этапе мы используем прототипы, которые мы вешаем на доску и стрелочками показываем, как будет происходит навигация.
При разработке дизайна обязательно используются гайдлайны.
Гайдлайн в общем понимании – это документ, который выпускает компания, и по которому дизайнеры и разработчики понимают принцип построения взаимодействия приложения с пользователем. Условно говоря, для iOS кнопки надо делать круглыми, а для Windows Phone – квадратными. Однако мы используем и внутренние гайдлайны для разработчиков. Таким образом результат работы дизайнера чаще всего состоит из макетов, гайдлайнов и нарезки графики.
Макеты лучше всего подавать «перелинкованными», например с помощью ProtoTypr, чтобы была понятна логика переходов. Гайдлайны содержат в себе информацию об отступах, размерах, визуальных эффектах, механике анимации и пр. Этот этап можно пропустить, если в вашем проекте один дизайнер и один разработчик, сидящие рядом друг с другом. Третья часть результата — нарезка графики — должна содержать минимум необходимых графических ресурсов (заботимся о весе приложения), иметь версии для разных разрешений экранов. Чаще всего мы рисуем для ретины и xhdpi-экранов. Далее идет подготовка для неретины и mdpi автоматизированными средствами (если допустимо их использование). Чаще всего руками приходится готовить hdpi-ресурсы.
Передача в разработку. Обсуждение и необходимые правки описания
После получения макетов, гайдлайна и нарезки, начинается работа разработчика. Мы передаем в разработку все то, что придумали, и ожидаем ранний результат. Это не значит, что работа над архитектурой и пользовательским интерфейсом закончена. Иногда у разработчиков появляются интересные идеи, которые вносят коррективы в изначальный план. Когда разработка завершена, наступает стадия тестирования.
Тестирование
Существует немалое количество способов протестировать приложение.
В мобильной разработке тестировщик – это человек, вокруг которого одни телефоны. У нас есть огромный шкаф, в котором лежат как старые телефоны, так и самые свежие новинки. Внутри мы стараемся тестировать по тест-кейсам. Если внедряется новая фича, по ее описанию составляется тест-план.
Существуют сервисы, помогающие в тестировании. Мы используем HockeyApp – приложение, позволяющее раздавать наш продукт бета-тестерам. Мы пишем в социальных сетях: «Ребята, у нас новое крутое приложение. Кто хочет попробовать?» Желающие получают билд, пользуются приложением, а сервис собирает статистику, составляет креш-репорт и отправляет все это нам.
Также есть сервисы, позволяющие протестировать приложение на разных операционных системах — например, все Android-прошивки версии 2.1 или 2.3. Вы отдаете приложение, сервис скриншотит весь путь, который вы задали, присылает картинки вам на почту, и вы проверяете, все ли в порядке.
Мониторинг
Итак, вы разработали, протестировали приложение, залили его в стор. Для отслеживания статистики скачиваний можно использовать сервис Distimo. Он показывает статистику по пользователям, которые приходят в стор, чтобы скачать приложения, и агрегирует комментарии.
Важно понимать, что люди более склонны оставлять негативные комментарии. Если у человека все хорошо, он чаще всего просто пользуется приложением, не комментируя. При стабильной работе наших приложений мы получаем 40-50 комментариев ежедневно. В день ошибки количество записей может доходить до 400 на одной платформе. Поэтому имейте в виду, что комментарии – это не полная оценка вашей работы, скорее еще один баг-трекер.
Изменить ситуацию может довольно распространенных «хак» — окно Rate Us. С предложением оставить положительный комментарий в сторе, а в случае проблем написать разработчику. Эффект достаточно сильный, главное — правильно продумать алгоритм показывания диалога юзеру.
Помимо комментариев Distimo показывает количество скачиваний, заработанные деньги, а также откуда скачивают ваши приложения.
Еще один интересный мониторинговый сервис – Flurry. Он помогает собирать клиентскую статистику. Flurry предоставляет отчет о том, что делает пользователь в вашем приложении: сколько раз он нажал на кнопку, сколько раз возвращался в приложение и более общие параметры — аудитория, география, пол, возраст и пр.
В некоторых мобильных продуктах мы также используем подсчет клиентской статистики с помощью Google Analytics. Разницы при сравнении с Flurry нет практически никакой. Минусы в скорости работы и обработки логов есть в обоих случаях, однако, если вы привыкли работать с гугловским интерфейсом, можете использовать этот инструмент.
Несмотря на большое количество сторонних сервисов, у нас есть собственная статистика. Какими бы хорошими не были внешние источники, их нужно проверять. Мы способны сами оценивать статистику, но для этого необходимо строить инфраструктуру для генерации отчетов, еженедельной отправки отчетов по email и других вещей, упрощающих жизнь. Поэтому нам проще использовать такие сервисы, как Flurry и Distimo, а к внутренним логам обращаться при возникновении вопросов. Наша практика показывает, что такой подход оправдан: периодически наши данные и данные сервисов несколько разнятся. Если вы склонны проверять статистику, используйте разные источники.
Что нужно помнить?
Я постарался рассказать вам о базовых особенностях и подводных камнях мобильной разработки, которые встречались нам на нашем пути. Надеюсь, пост оказалась вам полезным. Если у вас остались вопросы по теме, или вы знаете что-то, что может быть полезно нам, давайте обсудим это в комментариях.
Для установки мобильного клиента СЭД «Корпоративный документооборот» скачайте apk-файл приложения Android
со страницы документооборот.net/mobile-download
Скачать файл можно напрямую на мобильное устройство пользователя или записать его на него через подключение к персональному компьютеру.
Установка приложения не производится через Google Play (приложение будет размещено там только после официального выхода), поэтому на мобильном устройстве Android должен быть включен режим загрузки приложений из неизвестных источников (включить такой режим можно разделе «Настройка Безопасность» мобильного устройства). На многих устройствах такой режим уже включен по умолчанию.
В процессе установки apk-файла произойдет установка мобильного клиента СЭД «Корпоративный документооборот» и мобильной платформы «1С:Предприятие 8.3» (если она еще не была установлена на мобильном устройстве).
Установку мобильного клиента рекомендуется проводить в основную память устройства, а не на SD-карту. При установке на SD-карту на некоторых устройствах возможно зависание платформы , в таком случае приложение можно будет перенести в основную память штатными средствами операционной системы Android.
После окончания установки нажмите на иконку
Корпоративный документооборот. Мобильный клиент»
для запуска приложения.
Мобильный клиент может работать в полностью автономном режиме и без программы СЭД «Корпоративный документооборот», в таком режиме пользователю доступны только личные заметки. Для подключения к базе данных СЭД «Корпоративный документооборот» необходимо будет выполнить настройку корпоративной базы и настройку мобильного клиента.
Мобильный клиент и центральная база данных производят обмен данными с помощью механизма веб-сервисов, предоставляемого платформой «1С:Предприятие 8.3».
Для того, что бы веб-сервисы стали доступны для мобильных клиентов предприятия их необходимо опубликовать на корпоративном веб-сервере. При работе с «1С:Предприятие 8.3» поддерживается два варианта корпоративных веб-серверов – Apache и Microsoft IIS.
Веб-сервер Apache является бесплатным и его установка обычно достаточно проста. Подробнее об установке Apache для работы с базами данных «1С:Предприятие 8.3» можно прочитать на этой странице: документооборот.net/apache
После установки веб-сервера произведите публикацию веб-сервисов СЭД «Корпоративный документооборот» в режиме «Конфигуратор». Для этого в меню «Администрирование» выберите пункт «Публикация на веб-сервере». Далее выберите файловый каталог, где будут размещаться публикуемые файлы и название приложения на веб-сервере.
Убедитесь, что все флажки в разделе «Web-сервисы» включены и нажмите кнопку «Опубликовать».
Обратите внимание, на то, что доступ мобильных клиентов будет осуществлять по адресу работы вашего веб-сервера, соответственно этот веб-сервер должен быть доступен для мобильных клиентов.
Если мобильные клиенты работают не через внутреннюю корпоративную сеть, а через сеть Интернет, то веб-сервер предприятия должен быть доступен и из вне, через сеть Интернет.
Альтернативным вариантом организации доступа мобильных клиентов в корпоративную базу данных является обмен данными через специальный почтовый шлюз, когда и мобильный клиент, и корпоративная база данных обмениваются сообщениями через специально выделенный почтовый ящик.
Недостатком такого способа, по сравнению с использованием веб-сервисов, является более низкая скорость обмена данными, веб-сервисы позволяют мобильным клиентам работать с корпоративной базой почти в онлайн режиме, а обмен через почтовый шлюз вносит некоторую задержку. На данный день режим работы через почтовый шлюз пока не доступен в мобильном клиенте.
Для организации возможности подключения мобильных клиентов к центральной базе данных СЭД «Корпоративный документооборот» необходимо включить возможность работы с мобильными клиентами в базе данных.
Для этого в подсистеме «Администрирование системы» (доступна пользователям с полными правами) перейдите в раздел «Настройки программы Параметры программы», на закладке «Основное» отметьте флажок «Использовать мобильные клиенты».
Включение возможности работы с мобильными клиентами позволяет выполнять обмен данными центральной базы данных с мобильными клиентами. Без включения такого режима обмен данными не производится. Режим работы с мобильными клиентами можно включить и через панель обмена данными.
Превращение веб-сайта в мобильное приложение
Что, если я скажу вам, что для того, чтобы воспользоваться этим подходом, не нужно переделывать сайт, пользуясь неким фреймворком, приближающим внешний вид ресурса к виду мобильного приложения? Более того, что если весь процесс разработки заключается в подключении сайта к мобильному приложению, подобному показанному выше, с помощью обычного URL?
Кроме того, вот ещё один вопрос: «Можно ли, просто редактируя JSON, работать с нативными API, с компонентами пользовательского интерфейса, пользоваться системными переходами между страницами?».
Пока вы размышляете над ответами на эти вопросы, предлагаю взглянуть на то, как выглядит и работает минимальное приложение, созданное с использованием инструментов, о которых я хочу здесь рассказать.
Обратите внимание на то, как я встроил в это приложение страницу с github.com, однако всё остальное — это нативные компоненты, вроде верхней навигационной панели и нижней панели управления. При этом переходы между страницами приложения используют системные возможности. Делается это автоматически и не требует вмешательства в код сайта.
Прежде чем я расскажу о том, как это сделано, у вас может возникнуть вполне резонный вопрос: «Всё это хорошо, но можно ли, пользуясь методом, о котором идёт речь, создать что-то действительно полезное, а не нечто вроде простого «просмотрщика» веб-страниц в контейнере нативного приложения?».
Отличный вопрос. Собственно говоря, ответу на него и посвящена данная статья. Если в двух словах, то суть рассматриваемой здесь методики заключается в создании двустороннего канала связи между контейнером для вывода веб-содержимого и приложением. Приложению это даст возможность вызывать JavaScript-функции, находящиеся в контейнере, а контейнеру позволит обращаться к нативным API, расположенным за его пределами.
Взглянем на пример, иллюстрирующий вышесказанное.
Вот основные составные части этого приложения:
И, наконец, обратите внимание на то, что тут показано и взаимодействие компонентов приложения. А именно, QR-код меняется после ввода новых данных. Делается это благодаря возможности вызова JavaScript-функции, расположенной внутри веб-приложения, которая отвечает за создание QR-кодов на основе переданных ей данных.
Надо отметить, что ни один из фреймворков для разработки мобильных приложений не пытался фундаментально решить проблему «прозрачной интеграции веб-контейнеров в нативные приложения», так как все они либо полностью ориентированы на системные возможности мобильных платформ, либо целиком полагаются на HTML5.
Когда говорят о будущем мобильных приложений, обычно всё крутится вокруг вопроса о том, какой из подходов победит: основанный на HTML5 или на нативных API. Что характерно, в подобных рассуждениях не поднимается тема сосуществования этих двух подходов, и, более того, не рассматривается эффект синергии, который, благодаря совместному использованию различных технологий, позволит достигать результатов, которые нелегко достигнуть, полагаясь лишь на что-то одно.
В этом материале я собираюсь рассказать о следующих вещах:
WKWebView
для iOS и WebView
для Android) вместо установки сторонней библиотеки, которая попросту «эмулирует» WebSocket.При таком подходе не нужно использовать дополнительные библиотеки, достаточно, применяя стандартные технологии, делать то, что нужно. Это ведёт нас к следующей ситуации.
Например, для того, чтобы встроить в мобильное приложение генератор QR-кодов, понадобится сторонняя библиотека, которая увеличит размер пакета приложения. Однако если применить для этого стандартное средство для просмотра веб-страниц и JS-библиотеку, подключённую к странице с помощью простой конструкции <script>
, можно получить всё необходимое без установки сторонних библиотек.
Например, одна из страниц некоего сайта может оказаться слишком сложной для того, чтобы быстро конвертировать её в формат мобильного приложения, в то время как всё остальное наполнение сайта без проблем портируется в мобильное приложение.
В подобном случае было бы очень кстати, если бы большую часть приложения можно было бы создавать средствами мобильной платформы, но какую-то особенно сложную страницу можно было бы прозрачно интегрировать в приложение в её исходном виде.
Фреймворк Jasonette похож на веб-браузер, но, вместо того, чтобы превращать HTML-код в веб-страницы, он преобразует JSON-разметку в нативные приложения для iOS и Android. Сходство с браузером заключается и в том, что любое приложение, основанное на Jasonette, имеет одинаковый базовый код, который занимается интерпретацией различных наборов JSON-данных в процессе формирования итогового приложения. Разработчику не нужно работать с кодом библиотеки. Процесс создания приложения заключается в подготовке его JSON-описания, которое позволяет Jasonette, в реальном времени, преобразовывать веб-страницы в нативные приложения.
Подробности о Jasonette можно почитать здесь. В целом, можно сказать, что проект Jasonette направлен на разработку нативных приложений, а здесь мы поговорим о том, как интегрировать HTML-страницы в эти нативные приложения.
Эта штука оказалась полезной, но ей не хватало возможностей по взаимодействию родительского приложения с веб-контейнером. А именно, родительское приложение не могло контролировать веб-контейнер, а контейнер не мог обращаться к родительскому приложению. Как результат, контейнер оказывался полностью изолированным от своего окружения в виде приложения.
"html"
в атрибут $jason.body.background.type
, а затем, в атрибут $jason.body.background.text
, ввести HTML-код.{
"$jason": {
"head": {
...
},
"body": {
"background": {
"type": "html",
"text": "<html><body><h2>Hello World</h2></body></html>"
}
}
}
}
url
. Он поддерживает, в частности, локальные файлы. Благодаря использованию конструкции file://...
в контейнере можно вывести файл, который поставляется вместе с приложением.{
"$jason": {
"head": {
...
},
"body": {
"background": {
"type": "html",
"url": "file://index.html"
}
}
}
}
http[s]://…
).{
"$jason": {
"head": {
...
},
"body": {
"background": {
"type": "html",
"url": "https://news.ycombinator.com"
}
}
}
}
iframe
, когда страница не может получить доступ к тому, что находится внутри этих элементов.Для того чтобы этого достичь, я воспользовался технологией JSON-RPC, которая позволила наладить взаимодействие приложения и веб-контейнера. Так как всё в Jasonette выражается в виде JSON-объектов, совершенно естественным было использовать стандартный формат JSON-RPC в качестве коммуникационного протокола.
Для того чтобы получить возможность вызывать JS-функции, находящиеся в веб-контейнере, мы объявляем действие $agent.request
.
{
"type": "$agent.request",
"options": {
"id": "$webcontainer",
"method": "login",
"params": ["username", "password"]
}
}
options
в качестве параметра.Объект options
— это и есть JSON-RPC-запрос, который будет отправлен веб-контейнеру.
Рассмотрим его атрибуты.
id
: веб-контейнер построен поверх низкоуровневой архитектуры агентов (agent). Обычно с одним элементом view
может быть ассоциировано несколько агентов, у каждого из них может быть уникальный идентификатор (ID). Однако веб-контейнер представляет собой особый тип агента, у которого может быть лишь идентификатор $webcontainer
, именно поэтому мы используем в запросе данный идентификатор.method
: имя JavaScript-функции, которую нужно вызвать.params
: массив параметров, которые нужно передать вызываемой JS-функции.{
"$jason": {
"head": {
"actions": {
"$load": {
"type": "$agent.request",
"options": {
"id": "$webcontainer",
"method": "login",
"params": ["alice", "1234"]
}
}
}
},
"body": {
"header": {
"title": "Web Container 2.0"
},
"background": {
"type": "html",
"url": "file://index.html"
}
}
}
}
При загрузке элемента ($jason.head.actions.$load) нужно выполнить JSON-RPC-запрос, описанный в options
, к агенту веб-контейнера ($agent.request).
Параметры веб-контейнера заданы в $jason.body.background, в данном случае здесь осуществляется загрузка локального файла file://index.html
.
В ходе обращения к контейнеру будет осуществлён поиск функции login
, которой, при вызове, благодаря params
, будет передано два аргумента — "alice"
и "1234"
. Выглядеть это будет так:
login("alice", "1234")
Generate
, осуществляется вызов действия $agent.request
агента веб-контейнера, что приводит к вызову JS-функции qr
.Представьте, что вы хотите создать собственный веб-браузер. Для этого вам может понадобиться внедрять свои JS-скрипты в каждый веб-контейнер для того, чтобы иметь возможность влиять на его поведение. Собственно говоря, примерно так работают расширения для веб-браузеров.
Даже если вы не занимаетесь разработкой веб-браузера, вам может понадобиться использовать внедрение скриптов в том случае, если вам нужно обеспечить необходимое поведение страниц, которыми вы не можете управлять напрямую. Единственный способ взаимодействия мобильного приложения и веб-контейнера заключается в использовании API $agent
. Но если вы не можете изменить HTML-содержимое, единственный способ добавления интерфейса $agent
в веб-контейнер заключается в динамическом внедрении скриптов.
$jason.body.background
— это всего лишь агент. Это означает, что при работе с ним можно использовать тот же метод $agent.inject
, что и при работе с обычными агентами.action
значение "type": "$default"
.При работе в режиме «только чтение» контейнер игнорирует все воздействия пользователя.
При работе в режиме «обычный браузер» веб-контейнер работает, в буквальном смысле, как браузер. Когда пользователь касается ссылки, страница, на которую ведёт эта ссылка, загружается. При этом у разработчика нет возможности перехватить это событие и вызвать, например, какое-то нативное API.
$jason.body.background
атрибут action
, который содержит описание механизма обработки щелчков по ссылкам.Рассмотрим пример.
{
"$jason": {
"head": {
"actions": {
"displayBanner": {
"type": "$util.banner",
"options": {
"title": "Clicked",
"description": "Link {{$jason.url}} clicked!"
}
}
}
},
"body": {
"background": {
"type": "html",
"url": "file://index.html",
"action": {
"trigger": "displayBanner"
}
}
}
}
}
"trigger": "displayBanner"
. Это означает, что когда пользователь щёлкает по любой ссылке, выводимой на странице, отображаемой в веб-контейнере, будет вызвано действие displayBanner
. При этом сам веб-контейнер не будет обрабатывать щелчок по ссылке.Кроме того, если проанализировать событие displayBanner
, можно заметить переменную $jason
. В данном случае ссылка, по которой был сделан щелчок, будет передана действию через эту переменную. Например, если щёлкнуть по ссылке, в которой содержится адрес "https://google.com"
, в $jason
попадёт следующее:
{
"url": "https://google.com"
}
$jason.url
можно вызывать различные действия.Рассмотрим ещё один пример, представляющий собой реализацию веб-браузера.
{
"$jason": {
"head": {
"actions": {
"handleLink": [{
"{{#if $jason.url.indexOf('signin') !== -1 }}": {
"type": "$href",
"options": {
"url": "file://key.html"
}
}
}, {
"{{#else}}": {
"type": "$default"
}
}]
}
},
"body": {
"background": {
"type": "html",
"url": "file://index.html",
"action": {
"trigger": "handleLink"
}
}
}
}
}
signin
, и, в зависимости от результатов проверки, выполняем различные действия.signin
, открывается нативное окно для входа в систему."type": "$default"
, в результате наша программа ведёт себя как обычный браузер.$jason.url
и выполнять действия, соответствующие различным URL.Рассмотрим пример.
Здесь веб-контейнер ведёт себя как обычный браузер ("type": "$default"
).
Здесь при щелчке по ссылке применяется нативный переход между страницами.
Этого можно достичь, обрабатывая различные действия, основываясь на значении $jason.url
.
Первым шагом создания подобного приложения служит присоединение к веб-контейнеру действия visit
.
{
...
"body": {
"background": {
"type": "html",
"url": "https://news.ycombinator.com",
"action": {
"trigger": "visit"
}
}
}
}
visit
соответствующей операции, основанной на анализе $jason.url
.Ниже показано, как мы проверяем, содержатся ли в $jason.url
строки newest
, show
, ask
, и так далее (они представляют собой ссылки в верхнем меню). Если нечто подобное удаётся найти — мы позволяем веб-контейнеру вести себя как обычный браузер, задавая значение "type": "$default"
.
Если соответствия вышеописанному шаблону найти не удалось, мы производим нативный переход $href
к новому окну, передавая URL, по которому щёлкнул пользователь, в виде параметра.
...
"actions": {
"visit": [
{
"{{#if /\\/(newest|show|ask)$/.test($jason.url) }}": {
"type": "$default"
}
},
{
"{{#else}}": {
"type": "$href",
"options": {
"url": "https://jasonette.github.io/Jasonpedia/webcontainer/agent/hijack.json",
"preload": {
"background": "#ffffff"
},
"options": {
"url": "{{$jason.url}}"
}
}
}
}
]
},
Однако тут мы имеем в виду кое-что другое. В нашем случае речь идёт о настоящих гибридных приложениях, когда у одного и того же приложения может одновременно быть несколько нативных представлений и несколько веб-представлений. Кроме того, одно представление такого приложения может иметь несколько нативных компонентов пользовательского интерфейса и веб-контейнер, причём, всё это выводится в одном нативном макете.
Переход между элементом управления, выводящим веб-содержимое и стандартными элементами управления должен быть настолько незаметным, чтобы сложно было бы обнаружить границу между ними.
В этом примере я создал приложение, которое выводит сайт jasonbase.com в веб-контейнере, выступающем в роли основного элемента для визуализации данных.
Jasonbase — это бесплатный хостинг, который я создал специально для размещения JSON-разметки приложений, основанных на Jasonette.
На самом деле, это — обычный сайт, но я встроил его в Jasonette-приложение, в результате, при щелчках по ссылкам, вместо обычной процедуры открытия веб-страницы, вызывается нативный переход $href
в нативном же элементе JASON.
Мне не пришлось дорабатывать код Jasonbase.com для того, чтобы создать это приложение. Я просто встроил веб-сайт в Jasonette-приложение в виде веб-контейнера и перехватил щелчки по ссылкам для обработки их нативными средствами, что, в частности, позволило воспользоваться переходами, и, при необходимости, позволит пользоваться и другими возможностями платформы, на котором работает приложение.
Код этого примера можно найти здесь.
При обычном подходе разработчику, для того, чтобы достичь похожего результата, пришлось бы взять на себя решение следующих задач:
Я пытался создать приложение, использующее новейшую технологию, у которой не было стабильной и надёжной мобильной реализации (и неясно было, появится ли нечто подобное в обозримом будущем из-за особенностей того, о чём я говорю). Однако, к моему счастью, имелась JS-реализация этой технологии, что позволило мне без проблем интегрировать её в приложение.
В целом, говоря о новых возможностях Jasonette, могу сказать, что то, что получилось, мне очень нравится. Вот, кстати, документация по проекту, отражающая нововведения.
Теперь мне хотелось бы сделать одно важное, на мой взгляд, замечание: «Большая сила — это большая ответственность». Возможности, которые обрёл проект Jasonette, огромны, поэтому, полагаю, разработчикам, пользующимся этим фреймворком, нужно помнить о балансе возможностей мобильных платформ и HTML, позволяющем создавать приложения, с которыми будет удобно и приятно работать.
Кто-то может взять Jasonette и создать приложение, основанное исключительно на веб-контейнерах. Такое «приложение» правильнее будет называть «веб-сайтом». Подобный подход ставит под вопрос необходимость создания выделенного приложения.
Я хочу обратить ваше внимание на то, что я не призываю к тому, чтобы всегда создавать приложения, в которых обязательно используются и возможности мобильных платформ, и HTML-страницы. Я лишь пытаюсь сказать, что подобный подход может оказаться полезным во множестве ситуаций. Однако тут важно не перестараться, не перейти границы разумного использования технологий.
В итоге хочу сказать, что существует множество ситуаций, в которых возможности обмена данными между базовым приложением Jasonette и веб-контейнером позволяют креативно и красиво решать самые разные задачи. Надо отметить, что здесь мы обсудили лишь основы. Самое интересное — впереди.
Уважаемые читатели! Планируете ли вы использовать Jasonette для разработки кросс-платформенных мобильных приложений?
Testing
SAP
Обязательно учите!
Big Data
Мобильный интерфейс — это визуальная и интерактивная часть приложения, с которой сталкивается пользователь. Обычно он находится на устройстве или, по крайней мере, есть значок, представляющий приложение, которое отображается на главном экране или закреплено в каталоге приложений устройства. Приложение может быть загружено из магазина приложений платформы, загружено непосредственно на устройство или доступно через браузер устройства, как в случае с PWA.
Как выглядит рабочий процесс фронтенд-разработки?
Когда разработчик говорит, что он программист мобильного приложения, он чаще всего имеет в виду эту интерфейсную часть приложения и владеет языками и технологиями, которые используются для создания этого интерфейсного приложения.
В зависимости от размера команды, создающей приложение, в проектировании и разработке интерфейсного мобильного приложения может быть много разных людей.Размер команды может варьироваться от одного разработчика, который делает все, что связано с созданием приложения, до десятков, сотен и более человек со специальными навыками.
Например, могут быть выделенные креативные / графические дизайнеры, которые отвечают за создание визуальных элементов приложений, таких как значки, фоны, цвета, темы и другие части приложения. Команда также может иметь пользовательский интерфейс и дизайн пользовательского интерфейса, которые работают над компоновкой компонентов, как они взаимодействуют друг с другом и с пользователем.В случае определенных типов игр в команду могут входить разработчики анимированной графики и даже инженеры, которые разрабатывают движки, которые управляют физикой движения компонентов в приложении, как автомобиль в гоночной игре.
Как Mobile Aps интегрируется с серверной частью?
Независимо от размера команды, критически важным элементом разработки является построение логики приложения, которая отвечает за выполнение сетевых вызовов к серверным службам, извлечение данных и обновление данных в серверных системах с добавлением новой информации. создается из приложения.
Доступ к этим внутренним службам обычно осуществляется через различные интерфейсы прикладного программирования, наиболее известные как API. Существуют различные типы API-интерфейсов, такие как REST и GraphQL, а также существует множество способов и стилей доступа к ним. Хотя некоторые API-интерфейсы серверных сервисов доступны непосредственно приложению через вызовы на самой платформе, многие специализированные сервисы необходимо интегрировать в приложение с помощью комплекта для разработки программного обеспечения, обычно известного как SDK.После добавления SDK в приложение через среду разработки приложение может использовать API, определенные в SDK.
Как взаимодействовать с внутренними данными?
Примером серверной службы для мобильного интерфейса может быть база данных, содержащая информацию, используемую в приложении. Чтобы получить прямой доступ к базе данных, мобильный разработчик должен знать сетевое расположение базы данных, протокол доступа к базе данных, учетные данные для аутентификации и авторизации доступа к данным, а также конкретные команды базы данных, необходимые для извлечения необходимых данных.
В качестве альтернативы разработчик может использовать специализированный API при взаимодействии с базой данных; разработчику может потребоваться только знать параметры, необходимые для вызова метода, чтобы получить или обновить необходимую информацию. В некоторых случаях разработчик мобильных устройств может разработать эти API самостоятельно или использовать определение API, предоставленное им владельцем / оператором внутреннего ресурса.
Обычно REST API используется для взаимодействия с источниками данных в облаке, такими как облачная база данных.GraphQL API также является еще одним вариантом для разработчиков, поскольку он упрощает работу с серверными данными в мобильном приложении. GraphQL обеспечивает поддержку запросов через единую конечную точку API и схему данных, которую можно использовать для построения и простого расширения моделей данных, используемых в приложении.
WPMobile.App создает собственное мобильное приложение для Android и iPhone-iPad для вашего сайта WordPress и позволяет публиковать его в Google Play и Apple Store.
Android 79 € // iOS 79 € // Android + iOS 149 €
🎉 БЕСПЛАТНЫЙ ТЕСТ — Вы можете протестировать свое мобильное приложение с помощью демонстрационного приложения для Android и iOS.Единственное, что вам нужно сделать, это установить этот плагин, а затем вы сможете просматривать свое мобильное приложение в его окончательной версии.
🖌 НАСТРОЙКА — Мобильное приложение вашего сайта будет выглядеть как ваш сайт, вы сможете выбрать название, логотип и тему своего мобильного приложения. Никакого упоминания нашего бренда или рекламы, мобильное приложение имеет белый ярлык.
📲 ОТЛИЧНАЯ СОВМЕСТИМОСТЬ — Наши мобильные приложения совместимы со смартфонами и планшетами, требуется только Android 4.1 и iOS 8 — это подавляющая часть рынка смартфонов.
👌 ОЧЕНЬ ЛЕГКАЯ ПУБЛИКАЦИЯ — Мы берем на себя всю техническую работу, без загрузки программного обеспечения или сложных манипуляций. Мы автоматизировали весь процесс компиляции и можем отправить вам заявку за 20 минут!
💬 ПОДДЕРЖКА — Мы здесь, чтобы помочь вам и ответить на все ваши запросы как можно быстрее. Мы постараемся ответить на все ваши вопросы как можно скорее.
⚙ НАТИВНОЕ МОБИЛЬНОЕ ПРИЛОЖЕНИЕ — Быстро и на 100% адаптировано для всех смартфонов, размеров экрана, программного обеспечения и сетевых приложений.
👍 АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ ПРИЛОЖЕНИЯ — Когда на вашем сайте размещается новый контент, приложение автоматически обновляется, вам абсолютно нечего делать.Мобильное приложение может отображать все содержимое вашего сайта в любое время.
🛫 ОФФЛАЙН-КОНТЕНТ — Все содержимое приложения кэшируется на мобильном телефоне пользователя, чтобы его можно было прочитать, если нет сетевого подключения или если мобильный телефон находится в режиме полета.
📢 УВЕДОМЛЕНИЯ — Благодаря неограниченному количеству push-уведомлений вы можете общаться со своими пользователями с удивительной скоростью открытия. Вручную или при публикации страницы или статьи пользователи вашего мобильного приложения получают уведомление, которое напрямую открывает нужную страницу в мобильном приложении.
📈 СТАТИСТИКА В РЕАЛЬНОМ ВРЕМЕНИ — С панели WordPress вы можете получить доступ к 12 статистическим данным об использовании мобильного приложения. Количество установок, графическая эволюция трафика, действия в мобильном приложении, геолокация, просмотр контента, язык, история просмотров,… Вся статистика ведется в реальном времени и размещается на вашем сайте.
🔎 ПОИСКОВОЙ ДВИГАТЕЛЬ — Пользователи могут искать ваш контент прямо из мобильного приложения. Непосредственно из приложения пользователи смогут получить доступ ко всему вашему контенту всего за несколько кликов, используя возможности поисковой системы wordpress.
👋 СОЦИАЛЬНЫЙ РАЗДЕЛ — Пользователи вашего мобильного приложения смогут делиться вашими страницами и статьями в один клик, используя все приложения, установленные на их смартфоне (Twitter, Facebook, Linkedin, обмен сообщениями, SMS,…).
✍ КОММЕНТАРИИ — Если на читаемой странице разрешены комментарии, пользователь может прочитать все комментарии и получить доступ к форме, чтобы оставить комментарий. Мы используем родную систему WordPress, и мобильное приложение проходит большинство систем защиты от спама.
Плагины> Добавить
WPMobile.App
(используйте форму поиска) Настройки> WPMobile.App
wpappninja
в каталог / wp-content / plugins /
WPMobile.Меню приложения
на панели инструментовОчень хорошо работает и отличная поддержка.
Я тестировал приложение, но оно оказалось пустым. Видимо может быть несовместимо с моей темой?
Вначале перед покупкой у меня было много проблем, но с помощью разработчика мне удалось их решить. С самого начала Амаури всегда помогал, и теперь, даже после покупки плагина, он продолжает оказывать такую же поддержку.Он открыт для предложений и даже обновляет плагин, когда сообщается о проблеме. Одноразовый платеж намного лучше, чем другие плагины, которые требуют ежемесячной или годовой оплаты. За эту цену он превосходит мои ожидания.
Je ne regrette absolument pas mon achat, отличная поддержка, reactif et fonctionne très bien! J’aurais juste aimé pouvoir consulter mes statistiques directement dans l’appli utilisée pour les test
Приложение отличное по цене.У меня были проблемы между приложением и моей темой. Но мне очень помог разработчик приложения! Намного больше, чем хотелось бы большинству, и мы заставили его работать почти идеально. Спасибо! Я хотел приложение уже несколько лет. Очень счастлив.
Не предлагаю. Он сильно отстает от других существующих приложений. Он также имеет много ошибок, когда вы используете его с темой своего сайта. В частности, это вызывает перебои в работе главной страницы сайта
Посмотреть все 78 отзывов«WPMobile.Приложение — мобильное приложение для Android и iOS »- программное обеспечение с открытым исходным кодом. Следующие люди внесли свой вклад в этот плагин.
авторов .
Об авторе