Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (10)

Лучшие ответы пользователя

Все ответы (13)
  • Гибридные мобильные приложения. За ними будущее?

    @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), то разница будет еще менее заметна.

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

    @Shannon
    Самый простой и быстрой способ, не требуется разбираться что такое android, как под него писать, куда что добавлять, где взять эмуляторы, что такое webview, папки assets и т.д.:

    1. Ставите Intel XDK и создаете новый проект
    2. Тут же просто перетягиваете нужные файлы в папку www
    3. В эмуляторе (который кстати тут быстрый и ничего дополнительно ставить не требуется) тут же смотрим на результат

    Если всё устраивает то нажимаете build и выбираете android (лучше всего crosswalk, работает намного быстрее, но весит больше). В итоге получаете apk файл

    072a750601254d1d93a22b7c6445ccb9.jpg

    Так же, можете глянуть - habrahabr.ru/post/257889 если вдруг захотите попробовать реализовать сайт как HTML5-приложение
    Ответ написан
    3 комментария
  • Простейший способ создать кросс платформенное мобильное приложение?

    @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 и все остальные фичи
    Ответ написан
    Комментировать
  • Каков алгоритм создания мобильного приложения на 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
    Ответ написан
    Комментировать
  • В чем хранить данные для поиска в swift?

    @Shannon
    Как распарсили json в dictionary, так его и храните - это и есть самый оптимальный способ
    2000 это очень мало, можно даже и не беспокоится
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)