Oops... your message was not sent

Your message has been successfully sent

тематические истории, основанные на опыте компании JetRuby
Мобильная разработка

Разработка гибридных мобильных приложений — итоговая статья

В последнее время направление создания гибридных мобильных приложений приобрело необычайную активность. И это совсем неудивительно. Высокая скорость разработки одновременно под несколько платформ позволяет без промедлений выходить на рынок с первой версией приложения. Мы уже делились собственным опытом разработки гибридных приложений. Теперь же настало время для подведения итогов. Вашему вниманию предлагаются исчерпывающие выводы о нашей работе с Ionic framework. В этой статье вы узнаете обо всем: об успехах, ошибках, преимуществах и недостатках. И даже получите несколько ценных советов. Поехали.

Преимущества использования Ionic фреймворк

  • Оперативность. Во-первых, AngularJS (именно на нем основан Ionic) позволяет быстро разрабатывать бизнес-логику, которая совершенно не зависит от платформы приложения. Это большой плюс с точки зрения коммерции. Во-вторых, разработка интерфейса с помощью HTML и CSS происходит намного быстрее, чем при использовании стандартных средств.
  • Разработка в браузере с доступом ко всем средствам отладки javascript.
  • Один код под все платформы.
  • AngularJS в качестве фреймворка. Скажем прямо — нам не нравится этот фреймворк. Однако его использование полностью себя оправдало. Оно позволило быстро собрать внушительное коммьюнити, благодаря использованию большого количества готовых решений. Для справки: зачастую вместо поискового запроса “Как в Ionic …”, лучше использовать “Как в Angular …”
  • Документация самого фреймворка также весьма подробна. Она содержит большое количество интересных примеров. Но, что еще важнее — живой форум, на котором вы всегда можете найти реальную помощь.
  • Наличие конструктора приложений для быстрого старта.

Недостатки

Они также имеют место. И мы обязаны предупредить своих читателей обо всех возможных трудностях разработки.

  • Гибридные приложения весьма медленные. Безусловно, скорость фреймворков и JS движка постоянно растет, телефоны прибавляют в мощности едва ли не ежедневно, но все же ненативное приложение заметно невооруженным глазом.
  • Утверждение, что javascript программист берет и пишет мобильное приложение без особых усилий в корне неверно. Очень сложно придумать продукт, которому вообще не придется обращаться к API мобильного устройства. А это значит, что вам придется использовать Cordova плагины, написанные на нативных языках. В результате возникает ситуация, когда вы нашли правильный фикс на stackowerflow, но не понимаете, как и куда вставлять эти куски кода и чем они в итоге окажутся полезны.
  • В дополнение к предыдущему пункту. Возможны ситуации, когда без помощи нативного разработчика вообще не обойтись. Дело в том, что иногда единственной альтернативой такому решению является обучение фронтенд-разработчика основам программирования под каждую платформу. Плюс некоторое время на освоение навыков отладки. Добавим, что и сборка билда — тоже не совсем простая задача. Особенно, когда приходится разбираться со всем в первый раз.
  • Зависимость от разработчиков плагинов. Вам придется сидеть и ждать обновления iOS. Иначе никак.
  • Гибридные технологии продолжают активно развиваться. Это, несомненно, хорошо, однако шанс наткнуться на недокументированный баг все же есть. И его вероятность гораздо выше, чем при работе с нативными приложениями.

Советы, которые могут оказаться полезными

  1. При поиске проблемы используйте в запросе базовые технологии — “Cordova resize images” или “Angular mentions pluign”.
  2. Используйте — http://ngcordova.com/.
  3. Обязательно проверяйте свой код на всех поддерживаемых платформах по окончании разработки в браузере. Javascipt в Chrome (Android) и Safari (iOS) имеют разные API. В результате не все функции работают одинаково.
  4. Приложение, запущенное на устройстве, так же можно дебажить через web console.
  5. Все Cordova плагины устанавливаются из Github. Иногда полезно попробовать установить более старую версию, она может оказаться стабильней.
  6. Не бойтесь пересоздавать платформы или переустанавливать приложение. Иногда это реально помогает.
  7. Используйте Xcode и Android studio. Это очень помогает, когда приложение не компилируется. Найти ошибку таким образом гораздо проще, чем при разборке стены логов из консоли.

Использование хуков сборки Cordova

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

Подробно о хуках можно почитать тут https://cordova.apache.org/docs/en/dev/guide/appdev/hooks/.

Не игнорируйте сообщение об ошибках в web-консоли.

Иногда случается так: все работает нормально, но Angular выбрасывает массу исключений. Если вы будете их игнорировать, это может привести к тому, что в один момент приложение начнет жестко тормозить.

Реальный пример. Если вы неопытный Angular разработчик, консоль практически наверняка будет завалена сообщениями о начале нового рендеринга, когда старый рендеринг еще и не думает завершаться. Это приведет к тому, что приложение станет работать в режиме слайд-шоу. Также медленно и отрывисто. Не повторяйте наших ошибок, держите код в чистоте и стабильности.

Выводы

Гибридные мобильные технологии позволят вам ускорить процесс выхода на рынок с довольно-таки качественным продуктом. Недостатки же можно скрыть с помощью оптимизации и некоторых элементов UI. Например — спиннера. Главное помнить обо всех перечисленных нами подводных камнях. А вы наверняка столкнетесь с ними в процессе знакомства с разработкой гибридных приложений.

Если у вас есть собственные примеры и опыт, которым вы желаете поделиться, добро пожаловать в комментарии.

department
Статью подготовил
Отдел мобильной разработки
Профессиональная разработка нативных приложений под Android и iOS, а также реализация гибридных кроссплатформенных решений и мобильных сайтов.
New Articles