Comments 20
Заинтересовался разработкой с помощью PhoneGap. Я правильно понимаю, что приложение пишется на js+html с использование библиотечных функций phoneGap, которые предоставляют доступ к нативным функциям платформ? Т.е. после написания нужно лишь откомпилировать приложение под определенную платформу, и оно будет работать? Или нужно сделать что-то ещё?
+2
Может я чего-то еще недопонял, но от Phonegap смешанные чувства. С одной стороны, js/html позволяют ускорить разработку, а открытость исходников еще и греет душу, но: 1) как же нативный интерфейс? хотя бы меню… 2) как ускорить компиляцию — уж больно долго phonegap.jar конвертируется в classes.dx, нативное приложение компилится на глаз быстрее 3) с жизненным циклом activity все в порядке будет если использовать phonegap? когда сохранять данные?
Да, видимо разбираться и разбираться мне еще…
Да, видимо разбираться и разбираться мне еще…
0
1. можно реализовать нативные вещи в виде плагина на яве с апи в яваскрипт. Посмотри исходники плагинов, там все достаточно просто.
2. работаю на 5 летнем ноутбуке, особых тормозов не заметил. Проблема была с отладкой в эмуляторе. Приложение сделанное под старый апи там не работало. Поэтому отлаживался на телефоне. Последнюю версию еще не смотрел. Может она работает в эмуляторе.
3. о разных сменах состояния приложение уведомляется ивентами, так что проблем не должно быть. Список событий можно расширить, как это проделал я.
2. работаю на 5 летнем ноутбуке, особых тормозов не заметил. Проблема была с отладкой в эмуляторе. Приложение сделанное под старый апи там не работало. Поэтому отлаживался на телефоне. Последнюю версию еще не смотрел. Может она работает в эмуляторе.
3. о разных сменах состояния приложение уведомляется ивентами, так что проблем не должно быть. Список событий можно расширить, как это проделал я.
0
Забудте про активити. Phonegap — скомпиленая нейтив заглушка, которая в себе просто открывает встроенный браузер смартфона, с html+css+js файлами. Вот и весь Phonegap.
+3
Никакой встроенный браузер не открывается, по крайней мере на iPhone и Android (с другими дел не имел). Если говорить про Android, то все PhoneGap приложение крутиться внутри одной активности с единственным виджетом — WebView. Последний предоставляет рендеринг html и исполнение JS.
Если говорить про написание нативных плагинов — на это WebView можно накидать много чего дочернего, т.к. оно наследует AbsoluteLayout (осторожно, depricated!).
Если говорить про написание нативных плагинов — на это WebView можно накидать много чего дочернего, т.к. оно наследует AbsoluteLayout (осторожно, depricated!).
0
1) Нативный интерфейс не может быть кроссплатформенным (того же меню на iOS к примеру нет).
2) PhoneGap.jar — это набор классов для организации моста JavaScript — Java с доступом к телефону, чем больше классов, тем дольше компиляция, это нормально. Любое другое приложение с большим кол-во классов или библиотек будет долго компилироваться.
3) PhoneGap — это одно Activity c WebView внутри (за исключением работы некоторый плагинов), а данные сохраняются в LocalStorage.
PhoneGap — это оболочка для запуска html5-application на различных платформах. В идеале написанное html5-application должно работать точно так же и при простом заходе через браузер, не даром в документации можно увидить, что методы точно такие же, как и в обычном js (взять к примеру работу с LocalStorage или sqlite)
2) PhoneGap.jar — это набор классов для организации моста JavaScript — Java с доступом к телефону, чем больше классов, тем дольше компиляция, это нормально. Любое другое приложение с большим кол-во классов или библиотек будет долго компилироваться.
3) PhoneGap — это одно Activity c WebView внутри (за исключением работы некоторый плагинов), а данные сохраняются в LocalStorage.
PhoneGap — это оболочка для запуска html5-application на различных платформах. В идеале написанное html5-application должно работать точно так же и при простом заходе через браузер, не даром в документации можно увидить, что методы точно такие же, как и в обычном js (взять к примеру работу с LocalStorage или sqlite)
+1
1) Да, хотя это несколько сужает круг использования PhoneGap. Почему-то в библиотеки имитирующие нативный интерфейс мне не верится. А делать меню/настройки/диалоги через плагины — теряется вкус легкой жизни с Phonegap.
2) Я понимаю, что добавление новых классов замедляет сборку, но от сборки к сборке я изменяю только «assets/www», ни один *.java не изменяю — кажется достаточно только перепаковать архив .apk? Ведь classes.dx остается неизменным.
3) Да, после работы с Андроидом чё-то даже не подумал что данные можно сохранить тогда когда это нужно приложению, а не системе :)
2) Я понимаю, что добавление новых классов замедляет сборку, но от сборки к сборке я изменяю только «assets/www», ни один *.java не изменяю — кажется достаточно только перепаковать архив .apk? Ведь classes.dx остается неизменным.
3) Да, после работы с Андроидом чё-то даже не подумал что данные можно сохранить тогда когда это нужно приложению, а не системе :)
0
Не кроссплатформенно у вас кое-где получилось, наверное вам это не сильно нужно, но раз уж выбрали средства для кроссплатформенной разработки, то мне кажется их нужно придерживаться.
localstorage в ie9 с локального домена не будет работать. Там для хранение сетингов наверное должно быть что-то поверх isolated storage(изолирование хранилище или БД), которое предоставляет ос для приложения.
localstorage в ie9 с локального домена не будет работать. Там для хранение сетингов наверное должно быть что-то поверх isolated storage(изолирование хранилище или БД), которое предоставляет ос для приложения.
+1
Так как это приложение чисто для персонального использования, то кроссплатформенностью я не замарачивался. Приложение нельзя выставить для раздачи, т.к. оно использует данные «с душком».
Для хранения можно воспользоваться апи, который предоставляет платформа — storage.
Но, как говорится, «вам шашечки или ехать?» мне — ехать, поэтому я воспользовался более удобным интерфейсом.
Для хранения можно воспользоваться апи, который предоставляет платформа — storage.
Но, как говорится, «вам шашечки или ехать?» мне — ехать, поэтому я воспользовался более удобным интерфейсом.
0
UFO just landed and posted this here
Если в приложение надо встроить сканер штрих-кодов, то ка поставляются плагины?
1) Для каждой из платформ свой плагин. Тогда как будет работать приложение запущенное на WP7 и BlackBerry, если для этих платформ плагинов нет?
2) Или же один «универсальный» палагин сразу на все платформы? Как компилируется исходник плагина?
1) Для каждой из платформ свой плагин. Тогда как будет работать приложение запущенное на WP7 и BlackBerry, если для этих платформ плагинов нет?
2) Или же один «универсальный» палагин сразу на все платформы? Как компилируется исходник плагина?
0
Вы ж под каждую платформу будете делать отдельное приложение. Каждая платформа имеет свой цикл разработки и поддерживаются разные языки. iPhone — objective C, Android — java, WP7 — silverlight и т.д. Поэтому да — разные платформы, разные плагины. Но плагины могут обеспечивать одинаковый апи для яваскрипта. Так что в приложении будет универсальный код.
Если плагина нет, то надо будет писать самому или искать код, который переделать в плагин.
Если плагина нет, то надо будет писать самому или искать код, который переделать в плагин.
0
Погодите, а как html+js приложение взаимодействует с базой данных словаря? Из js можно к sqlite обращаться? Или у вас он в офлайне не работает?
0
Да, у phonegap есть интерфейс для работы с базой данных. Но это не мой случай. У меня нет базы слов. Если бы была, то и огород не стоило городить. У меня словарь состоит из сканированных со словаря страниц. Он показывает картинки. Картинки могут лежать в папке на телефоне или в онлайне на сервере.
0
Sign up to leave a comment.
PhoneGap — решение проблем в первом приложении