Używanie Phonegap do tworzenia aplikacji natywnych [zamknięte]

97

Niedawno trafiłem na Phonegap . Czy ktoś z was tego próbował. Jest to niesamowite narzędzie, które twierdzi, że programiści mogą używać frameworka opartego na HTML 5, takiego jak Sencha touch i Jquery, jednocześnie mając dostęp do natywnych funkcji na telefonie. Ponadto kod można przenieść z Androida na iPhone'a przy pewnym wysiłku. Zanim zagłębię się w to, chcę wiedzieć, jakie jest doświadczenie forum z Phonegap. Jakie są problemy i czy jest naprawdę skalowalny do tworzenia aplikacji na poziomie przedsiębiorstwa.

SaKet
źródło

Odpowiedzi:

95

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 PhoneGapJeś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.

TNC
źródło
2
Wygląda na to, że deweloperzy są podzieleni w sprawie Phonegap.
SaKet
8
Jeśli w końcu masz czas i pieniądze na naukę różnych języków, aby tworzyć natywne aplikacje na Androida i iOS - zrób to za wszelką cenę :) Ale dla większości z nas, używając tego, co wiemy, tworzy aplikacje, które działają naprawdę dobrze na wielu urządzeniach, to oczywiste.
TNC
easyapns jest tylko dla iPhone powiadomienia (nie Android) i robi sieć powiadamiania użycie Apple, nie wiem, gdzie masz pomysł, że łamie umowę deweloperską ..
Traveling_Monk
ładne wyjaśnienie .. Dzięki :)
Mrunal
Dobry debugger to twój najlepszy przyjaciel. Sprawdź to, aby zdalnie debugować iOS: stackoverflow.com/questions/7242997/…
JoshuaDavid
52

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

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

ATSiem
źródło
1
Świetny zbiór dokumentacji .. Bardzo pomocne dzięki :)
Mrunal
29

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 .

Matt Wilding
źródło
5
+1 Świetna uwaga dotycząca wielkości społeczności.
David Tang
5
+1 Świetny punkt widzenia użytkownika. To naprawdę ma znaczenie w iOS.
1
możesz stworzyć takie same wrażenia użytkownika również w phonegap. Nie sądzę, że jest to tylko kwestia uczenia się, cel c. gdy inne mobilne systemy operacyjne stają się popularne: Androi teraz, zobaczmy, co stanie się z Windows Mobile i Firefox OS ... rozwiązanie wieloplatformowe będzie najlepszym rozwiązaniem, jeśli nie chcesz ograniczać się do x% udziału w rynku, jaki będzie miał wtedy iOS.
memical
1
@memical, na przykład zespół programistów Facebooka nie zgodziłby się z tobą. Nie mówię, że nie ma to sensu z punktu widzenia pokrycia rynku, mówię, że nie jest tak wydajne jak natywne. Pomimo tego, co mówisz, to fakt.
Matt Wilding,
4

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.

ghenne
źródło
PhoneGap Build jest nadal w fazie beta rok później, ponad sześć miesięcy po tym, jak Adobe kupiło pierwotnego programistę, Nitobi.
DOK
2

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/

Muayyad Alsadi
źródło
w rzeczywistości możesz teraz również tworzyć gry
memical
1

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).

hotpaw2
źródło
0

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!

Steve
źródło