Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Apache Cordova czy natywne aplikacje mobilne?
Forum PHP.pl > Inne > Hydepark
WebCM
Zaczynam przygodę z tworzeniem aplikacji mobilnych. Czy warto uczyć się bibliotek typu Apache Cordova czy obrać jedną platformę (np. Android lub WP) i pisać w natywnych technologiach dla tej platformy? Widzę, że z Cordovą jest więcej zachodu. Potrzeba SDK do wszystkich platform, na jakie chcemy wypuścić aplikacje. Poza użeraniem się z npm muszę przejść na nowszy system z Win 7. Czy warto? API JavaScript jest mocno ograniczone w stosunku do natywnego API Androida i WP.

A może HTML 5? Kiedyś wiązałem z tą technologią duże nadzieje. Szybka analiza:

- akcelerometr - DeviceOrientationEvent, DeviceMotionEvent (FF 6+)
- akumulator - BatteryStatusAPI (Opera 26+, FF 43+)
- aparat - getUserMedia(), CameraAPI (Firefox OS)
- sieć - nie da się otwierać gniazd, więc zostaje AJAX i File API
- kontakty - jest Contacts API, ale przeglądarki go nie obsługują
- pliki - File API, AJAX, z dostępem do plików w urządzeniu może być problem
- geolokalizacja - obiekt navigator.geolocation
- globalizacja - natywnych funkcji raczej nie ma
- media - <audio>, <video>, Web Audio API, MIDI API
- powiadomienia - Notification
- magazyn - localStorage, sessionStorage, lokalne bazy danych
- wibracje - navigator.vibrate()

Można? Tak, ale producentom na tym nie zależy.
aniolekx
zalezy jaka aplikacje chesz napisac, nie kazda aplikacja potrzebuje tych funkcjonalnosci
WebCM
Ściągnąłem Visual Studio 2015 Community. Instalował mi pełno śmieci, jakich nie potrzebuję, w tym ASP.NET, IIS, SQL Server. Przerwałem i usuwam. Dezinstalacja komponentów trwa jeszcze dłużej niż instalacja. Nie dziwię się, że większość deweloperów omija technologie MS szerokim łukiem. Żeby SDK Windows 10 zajmowało kilka, a nawet kilkanaście GB?
O$iek
Taaa. Większość omija szerokim łukiem <lol>
Comandeer
Cytat
globalizacja - natywnych funkcji raczej nie ma

Jeśli globalizacja = lokalizacja, to jest osobny standard od tego, ECMA-402 → http://tutorials.comandeer.pl/js-intl.html Obsługuje go wszystko (łącznie z node.js, gdzie trzeba sobie to jednak wkompilować) oprócz… Safari.

A co z React native? Wygląda obiecująco.
marcio
Cytat
Widzę, że z Cordovą jest więcej zachodu.

Watpie zanim poznasz jedna platforme natywnie to wiele wody w wisle uplynie.

Fakt musisz miec praktycznie 3 rozne srodowiska windows/linux/mac ale nie jest zle raz jak skonfigurujesz to potem jest juz zgorki.

Wiec polecam ionic aplikacje hybrydowe to przyszlosc, teraz juz nawet plynnosc/szybkosc nie jest zbytnio problemen

Jedna apka ktora zrobilem w firmie ma ponad 100k pobran i jakos sie trzyma ios/android/wp druga ma o wiele mniej ale jest ok.

Chcesz to sprawdz: https://play.google.com/store/apps/details?id=it.eone.neendo

Z react native nie mam pojecia, sam wziolem sie za angular-a 2 i na dniach wezme sie tez za reactjs z ciekawosci

Pozdro
WebCM
Chcę od czegoś zacząć. HTML 5 to wiadomo - pójdzie wszędzie na aktualnych systemach. Rozwiązania pośrednie to PhoneGap, Ionic, Cordova, React, Xamarin. To strony WWW opakowane w kontener. Umożliwiają dostęp do podzespołów telefonu. Na końcu aplikacje natywne - Android, iOS, WP.

Zainstalowałem Visual Studio 2015 bez dodatków. Władował mniej śmieci niż poprzednio. Zacząłem czytać o tworzeniu aplikacji uniwersalnych dla Windows 10. Wcale nie jest tak różowo. Wydzielono grupy urządzeń (telefony, konsole, komputery) i każda ma swoje API. Oczywiście istnieje część wspólna API, ale w przypadku użycia API konkretnej grupy trzeba sprawdzać, czy API jest dostępne. Zawsze uczono, aby sprawdzać funkcjonalność, a nie sprzęt / wersję / przeglądarkę / system. Tutaj jest inaczej.

Pisząc pod Windows 10 przypomnę sobie C# i nauczę się czegoś nowego (XAML). Pisząc w HTML5 będę dalej rozwijał się w tej dziedzinie. Opiszę, co chcę wykonać na początek. Coś w stylu listy TODO. Użytkownik ma 2 opcje. Pierwsza to "Dodaj do zapamiętania". Wyszukuje już kiedyś dodany element lub wpisuje nowy. Druga to "Podsumuj". Na ekranie widać elementy od poprzedniego podsumowania. Następnie kreator prowadzi przez kilka kroków, gdzie będą pytania TAK/NIE, pola wyboru, statystyki... Najlepiej, aby dane były przechowywane w bazie danych, bo łatwiej je przetwarzać. API Windows 10 ma obsługę SQLite, ale czy da się synchronizować bazę między urządzeniami? O to samo mogę zapytać w przypadku nakładek na HTML 5.
Lion
Ja wybrałem aplikacje hybrydowe, a w szczególności Ionic Framework. Próg startu jest naprawdę niski. Jak znasz JS to kilka chwili możesz się pochwalić czymś co działa. Jak nie znasz JS to po przerobieniu kilku tutoriali też można już działać. Ma to także takie zalety że przy okazji uczysz się JS i całego jego ekosystemu, więc gdy później przyjdzie Ci pracować nad "zwykłą" aplikacją webową lub nawet backendem w node.js, to już coś będziesz na wstępie wiedział.

Możesz sobie zobaczyć np. jak zabierają się do tego inni, przeglądając listę uczestników pewnego konkursu: http://dotnetblogs.pl/dajsiepoznac/lista/ wpisując tam hasła cordova, ionic, android, ios, itp.

W ostatnim numerze magazynu Programista rozpoczął się cykl artykułów nt. aplikacji mobilnych przenośnych pomiędzy android <-> ios. Na razie opisywane są jakieś wynalazki w C++ ale ma w przyszłości być także właśnie o Ionic.

Jeśli chcesz zacząć z Ionic to możesz np. skorzystać z generatora szkieletu aplikacji Yeoman. Dokumentacja frameworka jest także na prawdę spoko. Udało mi się to nawet uruchomić aplikację napisaną w Ionic na androidzie 2.3

Wadami aplikacji hybrydowych jest to że są dość powolne, zajmują sporo miejsca (już na starcie apka napisana w Ionic ma kilka MB), czasami trudno się je debuguje zwłaszcza na starszych urządzeniach.
marcio
Cytat
Wadami aplikacji hybrydowych jest to że są dość powolne, zajmują sporo miejsca (już na starcie apka napisana w Ionic ma kilka MB), czasami trudno się je debuguje zwłaszcza na starszych urządzeniach.

Ja tak szczerze nie widze duzej roznicy pomiedzy appkami natywnymi a tymi hybrydowymi tym bardziej jesli chodzi o aplikacje do wizualizacji informacji/CRUD/wyszukiwarki i takie tam bzdety, wiadomo obraniania grafiki w tym raczej nie ma co robic.

Lekarstwem na lepsze dzialania tym bardziej na starszych android-ach + zwiekszenie kompatybilnosci jest Crosswalk pozwala on nam razem z aplikacja skompilowac pakiet z ostatnio wersja WebView z chroma-a fakt paczka wtedy na start ma 40/50mb no ale coz cos za cos
batman
Ostatnio znalazłem IDE do Reacta - https://www.decosoftware.com. Nie miałem jeszcze okazji się tym pobawić, ale wygląda obiecująco. W skrócie - przy pomocy React Native (javascript + xml) budujesz apki mobilne przy pomocy drag and drop i wizardów.
WebCM
Zacznę od aplikacji hybrydowych, a potem pouczę się natywnych. Jest tyle bibliotek, że w tym wszystkim się gubię. Z tego, co dotychczas wyczytałem:

1. Cordova - nakładka na HTML5 - udostępnia API do podzespołów urządzeń mobilnych
2. Ionic - nakładka na Cordovę - zestaw klas CSS i dyrektyw angularowych do tworzenia interfejsu użytkownika
3. ngCordova - nakładka na Cordovę - zestaw serwisów ułatwiających korzystanie z API z użyciem AngularJS

Czyli wynika z tego, że te wszystkie 3 komponenty są niezależne, ale (1) i (2) oferują własne narzędzia konsolowe. Jak poprawnie stworzyć aplikację wykorzystującą te wszystkie 3 komponenty? NetBeans wspiera tylko Cordovę. Przy korzystaniu z Ionica przyda się IDE, które podpowiada klasy i dyrektywy angularowe wraz z parametrami. Co polecacie? Ponadto Ionic 1 nie wspiera Windowsa. Wersja 2 to totalny odlot - AngularJS 2 i TypeScript.
Lion
Ja używam dla Ionic w Netbeans szablonu projektu "HTML5/JS Application with Node.js".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.