Ответы пользователя по тегу Мобильная разработка
  • На чем разрабатывать кроссплатформенное приложение?

    @Shannon
    Низкий порог вхождения Framework7 (при этом довольно хороший результат), проще, наверное, уже не куда.
    Не требуется знания, например, angular, достаточно html+js, за пол часа можно разобраться и сделать первый протопит
    framework7.io

    Есть нативный интерфейс под ios7-9 и под material design. Шаблоны всех стандартных элементов есть (списки, кнопки, меню итд), вам только остается вручную их расставить (для каждого элемента есть пример на сайте) (полос прокрутки на мобильном устройстве не будет)
    7df783332db749a9bcfb453493ca1c7b.png

    Тут подробнее (немного устарело, сейчас уже больше возможностей и стилей):
    https://habrahabr.ru/post/257889/
    Ответ написан
    Комментировать
  • Каков алгоритм создания мобильного приложения на html, css и js?

    @Shannon
    habrahabr.ru/post/257889 - по сути Framework7 самый простой, и один из самых быстрых фреймворков для html5 приложений
    Вначале набрасываете дизайн в html, потом к дизайне привязываете нужный код в js-файле. Ничего дополнительно изучать не требуется, чистый html + js

    Есть набор компонентов (кнопки, списки, диалоговые окна, выпадающие меню и т.д.) которые просто размещаете в html-файле, для каждого компонента есть инструкция как его вставить в html файл и как их привязать к js-коду. Всё это делается 1-2 строчками и выглядит как нативные элементы

    В статье немного устарела информация, в последней версии фреймворка много улучшений, а так же появилась полноценная поддержка android material design и ios 9 style, включая инструкцию как их переключать офф сайт framework7
    Ответ написан
    Комментировать
  • Гибридные мобильные приложения. За ними будущее?

    @Shannon
    Это не серебряная пуля, но в принципе решает часть задач, иногда можно полностью отказаться от нативной разработки. Хоть тема и не нова, но обсуждать имеет смысл только решения, которые появились относительно недавно (crosswalk, intel xdk, framework7). До этого всё было тормознуто и html5-приложения в итоге заработали дурную славу.

    Краткий ответ: Да, html5 приложение на данный момент уже может заменить нативное в ряде случаев, так как при использовании правильных технологий оно получится достаточно близким к нативному.

    Есть тонкости. Многие думают, что Cordova/PhoneGap это и есть тот самый фрейморк в котором и кроется секрет производительности или тормозов итогового приложения. На самом деле есть 2 разные по сути вещи:
    Cordova/PhoneGap - это фрейворк, который соберет html5 приложение в apk и т.д. По сути это просто конструктор, никак не влияющий на производительность итогового приложения. Он позволяет взять html5 приложение, добавить плагины, для работы с камерой/gps/рекламой, и в итоге получить аналог нативного. Но так сложилось, что почти все публичные примеры из коллекции phonegap тормознутые, и поэтому многие так и думают, что html5 тормознутые.

    Дело в том, что есть фреймворки вроде cordova, а есть html5 фреймворки и это разные вещи, и их нельзя ставить в один ряд. Сама по себе cordova не тормозная и не быстрая, она работает так и только так, как работает html5-приложение (которое запросто можно запустить просто в браузере, и нажав в браузере "добавить на рабочий стол", оно будет работать как автономное приложение). Соотвественно, если html5 фреймворк быстр и отзывчив, то разница с нативным приложением будет незначительна.

    Второй момент. Так как html5 приложение, это лишь html+js, и запускается он внутри webview, то скорость приложения так же зависит от скорости движка webview. Допустим, на ios с этим все хорошо, а вот на андроид с этим хорошо только начиная с 5.х версий. На старых версиях андроида очень тормозной webview.
    Эту проблему с тормозным webview вполне успешно решила Intel представив проект crosswalk. При использовании crosswalk стандартный webview заменяется на последнюю версию chromium, что означает поддержку новым фич, больше плавности, скорости и т.д.
    Само собой, чем свежее crosswalk, тем быстрее и стабильнее работает итоговое html5 приложение.

    Таким образом, решив проблему с производительностью движка html5, всё еще можно наткнулся на проблему тормознутой реализации самого фреймворка html5.
    По сути, проблема в том, что большую часть html5 приложений на phonegap делают на jquery mobile, очень тормознутом фрейморке, но очень распространенном, из-за этого все видят в представленных html5 приложениях очень тормознутых монстров.

    Есть 2 очень быстрых html5 фреймворка (по субъективным тестам, framework7 выигрывает в скорости и плавности), это framework7 и ionic - они решают многие проблемы тормозов, задержек, залипаний присущих стандартному использованию js.
    Соотвественно, например, используя framework7, время отклика нажатий, реакции на свайпы и т.д. будет аналогично тому, что и в нативном приложении. Оба вреймворка содержут набор фич, реакций на типичные для приложений событий, а так же набор всех стандартных и расширенных компонентов, которые потребуются при разработке, и которые подключаются парой строчек в html файле в нужном месте. Они уже имеют встроенные стили, в итоге все компоненты и приложение в целом выглядит как нативное (один в один) ios8 или material design, никакой инородности. При этом их легко настроить через css.

    Чуть подробнее можно посмотреть в статье "Быстрое кроссплатформенное HTML5 приложение на Framework7" - habrahabr.ru/post/257889 или аналогичных (про ionic например) там же
    В итоге, на момент написания статьи, на гаджетах 5 летней давности всё работает примерно на 10-15% хуже чем аналогичное нативное решение. Если сейчас перекомпилировать со свежим crosswalk (в intel xdk, кстати, это делает даже совсем просто, достаточно нажать build и выбрать crosswalk), то разница будет еще менее заметна.

    Так что, сходу отмахиваться от этого направления не обязательно, нужно лишь быть готовым к немного другим проблемам, чем при разработке нативного приложения.
    Ответ написан
    Комментировать
  • Простейший способ создать кросс платформенное мобильное приложение?

    @Shannon
    Вам нужно смотреть в сторону framework7 или ionic, для андроида обязательно использовать crosswalk, чтобы не тупило приложение на старых девайсах. Вот тут подробнее - habrahabr.ru/post/257889 (пример из статьи может немного глючить, потому что там старая версия crosswalk, нужно его пересобрать или еще лучше, сразу протестировать реальный пример от создателя framework7, в котором все собрано вместе - framework7.io/kitchen-sink-ios или framework7.io/kitchen-sink-material - просто зайдите на андроиде через браузер chrome (именно через chrome, не через стандартный, не через firefox итд), это будет аналогично использованию crosswalk в реальном приложении)

    1. В framework7 есть современный интерфейс под ios7-9 и под material design. Шаблоны всех стандартных элементов есть (списки, кнопки, меню итд), но вам придется вручную их скомбинировать, просто добавляя нужный компонент в html файле (для каждого элемента есть пример на сайте www.idangero.us/framework7 )
    2. Чтобы тексты автоматически добавлялись, нужно реализовать API на сервере хоть на чем, а js код приложения должен, обращаясь к этому API, формировать актуальную ленту (примерные примеры на сайте framework7 в общем-то тоже есть)
    3. Поставьте intel XDK, для начинающих там проще всего разрабатывать и компилировать html5 приложения. К тому же там по умолчанию можно сразу собирать с crosswalk, без подключения вручную
    4. Почти никто не добавляет свою рекламу, например intelXDK или phonegap ничего точно не добавляют лишнего
    5. Разрешение потребуется только одно - доступ к интернету, остальные разрешение только те, которые вы сами включите
    6. Чтобы не тупило на старых андроид девайсах и работало почти как нативное (чем свежее crosswalk, тем плавнее и отзывчивее результат), нужно использовать crosswalk
    7. По сути фреймворки framework7 или ionic всё сделают за вас, под все экраны автосмаштабируется интерфейс и все элементы, включая картинки

    Дальше вам нужно просто изучать выбранный фреймворк, для начала сделать статичное приложение, накидав нужные элементы в нужные места и посмотреть как всё это будет выглядеть, пока без доступа в интернет, а уже потом приделать работу с API и все остальные фичи
    Ответ написан
    Комментировать