Alternatywa dla języków natywnych (aplikacje mobilne)

0

Hej.
Nurtuje mnie od kilku dni pewne pytanie, a że moja wiedza na ten temat jest za bardzo początkująca postanowiłem zapytać i zaczerpnąć nieco wiedzy ;)
Przypuśćmy, że chcemy napisać aplikację mobilną na 3 platformy - iOS, WP, Android. Teoretycznie i praktycznie musimy tworzyć trzy różne aplikacje. Co jednak gdyby zastąpić to wszystko html5 + js?
Jak z wydajnością takiego rozwiązania? Czy będzie ono porównywalne z tym gdyby dla każdej platformy pisać osobno? Jakiś czas temu facebook wypuścił swoją appkę bodajże na iOS ale szybko zastąpiono ją pisaną w objective c. Tak samo Linkedin...
Czy istnieje coś oprócz PhoneGap do zabawy takimi rzeczami? Czy można to robić bez używania frameworków?

*PS. Jeśli pomyliłem działy, przepraszam i proszę o przeniesienie. *

0

Tra-ge-dia.
Chyba, że docelowe urządzenia mają staty podobne do nexusa 7.
Z Xamarin studio możesz pisać w C# pod wszystkie te platformy;

0

Z Xamarina korzysta firma w której pracuję i nie narzekają za bardzo. Niestety nic więcej bo jestem w innym projekcie ;)

0

Wszystko zależy od tego jaka to ma być aplikacja i jakim kosztem utworzona. Jak wiadomo tworzenie 3 lub więcej natywnych aplikacji jest z reguły bardzo drogie i czasochłonne. Ostatnio na grupie 'JS News' była takowa dyskusja. Słowem jeśli ma to być aplikacja, która będzie robiła coś więcej niż wyświetlanie treści na podstawie danych z czujników telefonu (wliczając żyroskop, kompas, GPS) to PhoneGap powoli zaczyna niedomagać. W przypadku aplikacji FB i Lin była to synchronizacja z kontaktami telefonu. To powodowało mi się zdaje największe problemy związane z wydajnością. Jednak jeśli był by to prosty serwis aukcyjny, czy sklep to nie widzę problemu z zastosowaniem PG.

0

Miałoby to być coś na wzór sklepu właśnie. Kawałek treści, obrazków i jakaś integracja z płatnościami (zapewne zewnętrzna). Nie będzie zabawy w zaawansowane animacje czy złożone algorytmy. Dosyć prosta rzecz do kupowania :)
Dzięki za link. Jeśli ktoś chciałby się wypowiedzieć na temat Xamarina - śmiało. Chętnie posłucham :D

2

Qt5.1 ma już początkowe wsparcie dla Androida i iOS.

** Available as technology Previews in Qt 5.1

0

Z rzeczy H5+JS jest Sencha, ale bodajże to komercyjne. Moim zdaniem warto poczytać ich white papers, wprowadzają w temat. Choćby ten: http://pages.sencha.com/white-paper-strategies-for-a-multi-device-world.html Jest tam gdzieś opisany przykład FB. Ich zdaniem FB po prostu spieprzył temat i twierdzą, że sami napisali i udostępniają wydajną wersję.

2

Przypuśćmy, że chcemy napisać aplikację mobilną na 3 platformy - iOS, WP, Android. Teoretycznie i praktycznie musimy tworzyć trzy różne aplikacje. Co jednak gdyby zastąpić to wszystko html5 + js?

Przeczytaj najpierw to.
http://www.codinghorror.com/blog/2007/02/non-native-ui-sucks.html

0

Ja akurat nie zamierzam tracić czasu na czytanie czegoś sprzed ponad 6 lat... Nie w tej dziedzinie.

2
kradam napisał(a):

Ja akurat nie zamierzam tracić czasu na czytanie czegoś sprzed ponad 6 lat... Nie w tej dziedzinie.

m
Tak się tylko składa, że jest to bardzo trafne spostrzeżenie również w dniu dzisiejszym. Jeżeli ktoś chce napisać aplikację, która ładnie wygląda i dobrze działa musi skorzystać ze środowiska standardowego dla danej platformy. Jak słusznie zauważyłeś, wszystko zmienia się bardzo szybko. W przypadku urządzeń mobilnych za tym postępem ciężko nadążyć, a co się z tym wiąże, ciężko również stworzyć dobre (AKTUALNE!!!) narzędzie, które będzie wspólne dla wszystkich platform.

0

Czy Twoje wnioski wynikają z tego, że znasz na wylot Sencha Touch lub PhoneGap i uznałeś, że używanie ich się nie opłaca jako alternatywa dla aplikacji natywnych? Czy też są to tylko Twoje przypuszczenia nie poparte konkretnymi doświadczeniami?

2

Rozwiązania Cross-platformowe są obecnie bardzo niedojrzałe. Nie polecam używania tego w poważnych projektach. Znam osoby, które robiły podejście do Titanium, gdzie pisze się w JS i HTML5. Aplikacje, które powstają w ten sposób są toporne, zajmują strasznie dużo miejsca w porównaniu z aplikacjami natywnymi, są niewydajne, trudne w utrzymaniu, a debugowanie ich, to dramat. Jak ostatnio przyglądałem się Sencha Touch, to był to po prostu framework do pisania UI dla aplikacji webowych dostosowanych do urządzeń mobilnych. Nie wiem, czy coś się w tym temacie zmieniło, ale jeśli twórcy tej biblioteki chcą wrzucać to JavaScriptowe UI do do WebView w Androidzie i analogicznych kontrolek w innych platformach, to niestety nie tędy droga. Aplikacje napisane w ten sposób będą chodziły, jak krew z nosa. Obawiam się, że właśnie PhoneGap działa na takiej zasadzie, ale głowy nie dam, bo nie wczytywałem się w dokumentację i nie widziałem źródeł tej biblioteki. W każdym razie, musi być jakiś powód używania technologii webowych w wymienionych bibliotekach i jakoś ciężko mi sobie wyobrazić, żeby to narzędzie było w stanie przekonwertować kod JS i HTML na czystą Javę i Obj-C.
Aplikacje cross-platformowe mają rację bytu jedynie w sytuacji, gdy piszemy gry. Możemy wtedy wykorzystać środowisko Unity i język C#. Jest to dobra droga, gdyż development takich aplikacji wygląda inaczej, niż w przypadku "tradycyjnych" projektów. Natomiast w przypadku klasycznych aplikacji użytkowych lub biznesowych, nie ma to na chwilę obecną sensu.

Podsumowując:
Jeśli chcemy, aby nasze aplikacje były napisane porządnie, działały porządnie i były łatwe w utrzymaniu, to musimy je napisać osobno na Androida w Javie, osobno na iOS w Obj-C i ewentualnie na inne, mniej popularne platformy.
Jeśli piszemy grę, to możemy wykorzystać środowisko Unity i język C#. Wtedy możemy wprowadzić aplikację na wiele platform za jednym zamachem.

0

Myślę o aplikacji na IOS, Android i WindowsPhone.
Aplikacja będzie musiała działać na zasadzie keyloggera. Będzie analizowała słowa wpisane np. w przeglądarce, w SMS'ach itp.
Myślicie że warto dla czegoś takiego bawić się w Xamarin'a?

0

@wiciu: Skupiłeś się na zabawkach HTMLowych, a nie zwróciłeś uwagi na chyba najpopularniejsze rozwiązanie: Xamarin (który działa inaczej). Interfejs użytkownika oraz interakcję piszesz w C#, ale w użyciem natywnych API. To bardziej binding API i kompletnie niezależna maszyna wirtualna obok Dalvika na Androidzie i kompilator AOT na iOS.

0

Nie jestem ekspertem od tych HTML'owym zabawek ale wydaje mi się że chyba nie da się przy ich pomocy napisać na daną platformę aplikacji która działałaby gdzieś w "trayu" i np. analizowała wpisane przez użytkownika teksty z poziomu klawiatury telefonu.
Zgadza się?

0

Dzięki za komentarze w moim wątku.
Ale w między czasie wpadło mi coś w ręce ...

Zastanawia mnie jeszcze jedna rzecz.
Płatności w Biedronce realizowane z pomocą telefonu wykorzystują soft który
nieźle sobie radzi z zasobami poniekąd niedostępnymi.
Zobaczcie tutaj:
http://samcik.blox.pl/2013/12/PeoPay-czy-PeoSpy-Sprawdz-co-wie-o-tobie.html

Czyli jednak się da? :)
Działa to na WP, IOS, Android.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.