Zbudowałem kilka aplikacji przy użyciu PhoneGap i pod względem tego, co zapewnia, jest świetny. Chciałbym zwrócić uwagę na kilka krótkich uwag, które mogą ci pomóc.
Disable device-based features you're not using
Akcelerometr i funkcje geolokalizacji są domyślnie włączone. Jeśli ich nie używasz, wyłączyłbym je, ponieważ Twoja aplikacja ładuje się szybciej (inicjalizuje) i działa płynniej.
onDeviceReady
- Jest to metoda wywoływana po załadowaniu i przygotowaniu phonegap. $ (document) .ready lub cokolwiek, do czego byłeś przyzwyczajony, tak naprawdę nie ma tutaj zastosowania - chyba że robisz tylko interfejs / zakodowany na stałe kod HTML. Jeśli korzystasz z funkcji iPhone'a, takich jak GeoLocation, będziesz musiał zrobić wszystko po wywołaniu onDeviceReady.
Pick a UI/library
Dostępnych jest mnóstwo opcji dla interfejsu / bibliotek, jquery-mobile, sencha touch, jqtouch itp. Każdy z nich oferuje unikalne podejście i zestaw funkcji. Zbadaj i użyj jednego, ale unikaj łączenia. Możesz przeczytać o kilku innych opcjach, narzędziach tutaj: http://www.phonegap.com/tool (zaktualizowany link)
Also, more on just mobile development in general, with PhoneGap
Jeśli chcesz tworzyć aplikacje, które są dystrybuowane za pośrednictwem Android Market i iPhone App Store, przeczytałbym ich wyczerpujące listy, aby uzyskać wskazówki dotyczące tworzenia aplikacji. Na przykład w powyższym linku do narzędzi znajduje się „narzędzie / wtyczka” o nazwie Easy APNS - chociaż jest to przydatne dla Androida - i technicznie wykonalne na iPhonie, narusza umowę deweloperską, ponieważ stwierdza, że musisz użyć powiadomienia Apple sieć itp. To tylko przykład, ale czytanie tych rzeczy pozwoli Ci zaoszczędzić wielu bólów głowy, jeśli to jest twój ostateczny cel.
Podsumowując, świetnie nadaje się do lekkich aplikacji, zwłaszcza jeśli pochodzisz z zaplecza tworzenia stron internetowych. LocalStorage, GeoLocation itp. Działa naprawdę dobrze. Mam nadzieję, że to trochę pomoże ... i zachęcam do zadawania pytań.
Dodatkowa edycja:
Naprawdę myślę, że sprowadza się to do tego, co chcesz robić i co umiesz. Matt zwrócił uwagę, że tworzenie aplikacji natywnych na iOS jest lepsze itd. Tak, jeśli masz czas i wiedzę, aby się tego nauczyć - oczywiście natywne będą lepsze. Ale PhoneGap jest stworzony dla twórców stron internetowych, którzy mogą wykorzystać swoje umiejętności i tworzyć aplikacje. Ponadto PhoneGap umożliwia szybkie tworzenie aplikacji na iOS, Androida, Symbian, Palm, Blackberry. Z niewielkimi zmianami w bazie kodu dla każdego.
Oto wszystkie najlepsze przewodniki po wydajności, które przeczytałem dla PhoneGap ... jest wiele rzeczy, na które należy uważać, aby zapewnić solidną, stabilną wydajność ... ale możesz to wszystko odebrać w ciągu jednego wieczoru czytania.
Oto najlepsze bryłki:
Wskazówki dotyczące działania PhoneGap / Mobile Web
http://forum.jquery.com/topic/ontouch-instead-of-onclick-event
http://wiki.phonegap.com/w/page/16494809/Performance-tips-for-device/
Wskazówki dotyczące wydajności VIDEO dla Sencha Touch: http://vimeo.com/17882927
Delegowanie wydarzenia w Sencha Touch: Jak projektować listy z jednym słuchaczem, a nie jednym w każdym wierszu. http://www.sencha.com/blog/event-delegation-in-sencha-touch/
Włączanie nowych funkcji
Architektura
Tworzenie architektury aplikacji w Ext JS 4: http://www.sencha.com/learn/architecting-your-app-in-ext-js-4-part-2
źródło
Zanim wyrażę swoją opinię o Phonegap, muszę wydać małe zastrzeżenie, mówiąc, że w żadnym wypadku nie jestem programistą internetowym. Dla mnie pisanie JavaScript i CSS jest jak wyrywanie zębów. To powiedziawszy, nie lubię Phonegap.
Jest kilka bardzo atrakcyjnych aspektów frameworka, głównie odwołanie „Napisz raz uruchomione” i „Cel C-Nie-Muszę-Się Uczyć”? apel. Struktura może nawet zapewnić dostęp do niektórych funkcji sprzętowych, takich jak akcelerometr. Wszystko to do pewnego stopnia jest ważne.
To powiedziawszy, żadna ze wspaniałych aplikacji na iOS nie jest tworzona przy użyciu jakiejkolwiek struktury międzyplatformowej. Istnieje tak wiele subtelnych i eleganckich interakcji w interfejsie użytkownika, które są obsługiwane przez natywne kontrolki UIKit, że wielu użytkowników i programistów przyjmuje za pewnik, dopóki ich nie brakuje, na przykład mnóstwo niewiarygodnie szczegółowych krzywych animacji widoku i przewijanych odbić, których nie ma w interfejsie użytkownika opartym na widoku sieci Web. Mógłbyś się trudzić, aby odtworzyć je doskonale, ale na ten czas inwestycja, dlaczego nie stać się rodzimą?
Drugą kwestią, na którą należy zwrócić uwagę, jest to, że społeczność wsparcia dla aplikacji iOS zbudowanych przez Phonegap jest drastycznie mniejsza niż aplikacje opracowane natywnie. Jeśli polegasz na społeczności podczas projektów, powinno to również spowodować przerwę.
Ostatecznie wszystko sprowadza się do jakości doświadczenia, które chcesz zapewnić. Górna granica jest niższa w przypadku Phonegap. Jeśli jesteś gotowy zaakceptować mniej niż doskonałe wrażenia użytkownika w zamian za skrócenie czasu programowania i zwiększoną przenośność, to jest to bardzo opłacalna struktura.
Jako podtekst dla wszystkich zainteresowanych Marco Arment i Dan Benjamin omówili ostatnio ten temat. Możesz go posłuchać tutaj .
źródło
Procedura instalacji obejmuje szereg pakietów (Java, Apache Ant, Ruby, iOS SDK, Android SDK i sam PhoneGap), które muszą być poprawnie zainstalowane i skonfigurowane. Może to być duży wysiłek. Aby być uczciwym, mają coś, co nazywa się PhoneGap Build w wersji beta, co powinno to znacznie ułatwić.
Używamy go z NS Basic / App Studio do tworzenia aplikacji, które kwalifikują się do sklepów z aplikacjami.
źródło
Jeśli nie tworzysz gry ani widżetu, po prostu ładnie wyglądająca aplikacja, wybierz phonegap.
Ale powinieneś uważać na swój JS, unikać robienia czegokolwiek w JS, na przykład jeśli chcesz zrobić jakąkolwiek animację, unikaj ustawiania timera z małymi interwałami (np. 100 ms), unikaj jquery i podobnych animacji. Na przykład zamiast animować zanikanie przez ustawienie krótkiego czasu zmniejszającego krycie w każdym punkcie krok po kroku (tak działa zanikanie jQuery), należy użyć przejść css3 od krycia 1 do krycia 0.
Radzę wybrać coś takiego jak zeptojs.com, w końcu phonegap nie będzie działał ie6 :-)
Zapoznaj się z samouczkiem, jak uczynić swój JS bardziej lekkim
http://bcksp.blogspot.com/
źródło
Jeśli nie potrzebujesz żadnych funkcji sprzętowych ani wydajności poza tym, co zapewniają HTML5 i Phonegap, zamknięta aplikacja internetowa (plus ograniczony dostęp do innych funkcji) jest świetnym rozwiązaniem.
Wiele przedsiębiorstw wdraża aplikacje internetowe na dużą skalę. Phonegap (lub po prostu zwykła kontrolka widoku internetowego z osadzoną zawartością) pozwoli Ci uruchamiać te aplikacje internetowe w trybie offline (z wyjątkiem, oczywiście, wszelkich wymaganych danych online).
źródło
Jeden „problem”, o którym nie wspomina się podczas wdrażania na kilku różnych urządzeniach: im więcej urządzeń, tym większa krzywa uczenia się. Aby wdrożyć na urządzeniach iOS z PhoneGap, musisz nauczyć się podstaw Xcode na Macu. Aby wdrożyć na Androida, musisz zainstalować i nauczyć się Eclipse, Android SDK itp. Inne platformy wymagają użycia własnych SDK. Poznanie podstawowych elementów Xcode, Javascript i Java pomaga mi zrozumieć błędy i ogólną składnię.
„Utwórz raz, wdróż wszędzie” pomija DUŻO kroków!
źródło