Главное Свежее Вакансии Образование
649 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

​HTML5/JS в нативных приложениях для iOS/Android

Мы почти четыре года занимаемся разработкой нативных мобильных приложений на Objective-C и Java. И Нам часто предлагают партнерские отношения, отдавать на субподряд разработку мобильных приложений.

Но на самом деле у студий разработчиков мобильных приложений нет проблем с объемом заказов. Существует огромный дефицит программистов на Objective-C и Java. А если прибавить к этому работу проект-менеджера и тестировщика в двойном объеме, получается печальная картина. Впрочем Мы долгое время противились истории гибридных приложений, так как они были откровенно не потребные. Но время шло... технологии менялись и учитывая отсекание древних устройств со столь же древними операционными системами, осталась iOS 8+ и Android 4+ у которых с отображением HTML/JS все на очень высоком уровне.

Что же это за «зверь» гибридное приложение? Это нативное мобильное приложение с набором определенных функций и использованиям в качестве верстки окно браузера, который отображает сверстанную страницу. Нативное приложение обеспечивает доставку web-страниц, написанных на HTML5/JS, а также их хранение. В случае, если данные на сервере не изменялись, приложение отобразит сохраненную версию, та же логика и при отображении при отсутствии интернета. Можно называть это гибридным приложением, можно нативным, но главное это ощущение от пользования приложением. По большому счету это нативное приложение с версткой на HTML/JS. Прибавьте к этому знания гайдов верстки Apple и Google и опыт нативной разработки мобильных приложений и результат будет отличный.

Первым проектом на базе полуфабриката нативных приложений был интернет-магазин «Артлавка», старт был легким, но Нам пришлось голопом доделывать все фишки 1С-Битрикс редакции бизнес в нативном виде и в офф-лайн. О трудностях переписывания php/js на Objective-C/Java рассказывать не буду, это очень тернистый путь, но Нам казалось в этом будет изюминка. Отрезвев от гордости за написанное, осознали что появились две очень существенные проблемы: дальнейшее развитие и офф-лайн.

Развитие проекта по всем канонам необходимо было организовать двумя программистами на Objective-C и Java, но с партнерами-студиями разработчиков мобильных приложений все оказалось не так радужно и откровенно говоря почти невозможно.

Оффлайн работа приложения с локальной базой данных с товаром свыше 20 тысяч тоже проявила себя на старте приложения не так как Мы планировали. Все дело в том что при выгрузке остатков товаров из 1С в 1С-Битрикс база данных фактически стирается и загружается заново, что мешало Нашим механизмам определить на самом деле измененные данные и отправить в приложение только изменения. Таким образом сейчас при старте приложения обновляется вся база целиком, что отражается на длительной загрузке.

Так же стоит вспомнить что были трудности с реализацией расчета доставки, так как были использованы модифицированные методики расчета стоимости доставки.

Анализируя все трудности реализации проекта, Мы приняли решение что крайне необходимо подключить к процессу модернизации и совершенствованию Нашего полуфабриката именно 1С-Битрикс программистов, которых очень много.

Естественно Мы рассматривали новомодные технологии React Native и Xamarin, но с ними та же проблема, малое количество специалистов. Да и при реализации на подобных инструментах, опять же нет совместимости с наработками 1С-Битрикс специалистов.

Главное преимущество на котором Мы сконцентрировались, это возможность одним специалистом развивать сайт и мобильное приложение на 1С-Битрикс. Естественно стоимость такой работы сконцентрированной на одном типе специалистов положительно сказывается на стоимости.

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

В большинстве случаев работа в оффлайн Нам мешала, т.к. данные очень быстро менялись, а заставлять ждать пользователя пока все загрузиться нелепо, т.к. он может пользоваться например одной категорией товаров и никогда не смотреть 90% товаров.

Какие же проблемы на сегодняшний день с гибридными приложениями?

Первая и ключевая. Создатели гибридных приложений относятся к таким приложениям как к чему-то очень дешевому, соответственно и результат какой-то тяп-ляпный. Отсутсвие понимания что на смену страницам и ссылкам пришли окна и кнопки, а также отстраненность от гайдов Apple и Google по дизайну приложений, получаются какие-то мобильные сайты запущенные внутри приложения. Про Push-уведомления отдельная история, т.к. для web-разработчиков, это всего лишь СМС в телефон, а не инструмент для нотификации обновления конкретных данных например. Вебщик проще сделает оттягивалку или кнопку обновить и перезагрузит всю страницу, как он это привык делать с сайтом на компьютере.

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

Третья - отсутствие доступа к нативным функциям устройств, которые Мы реализовали в Нашем приложении и готовы их развивать.

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

Добавлено 28.12.2017г.: Посмотрите на примере коробочного решения сервиса поиска исполнителей гибридные приложения.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.