Odkryłem niedawno bardzo ciekawy projekt o nazwie jQuery Mobile. Jego założeniem jest uproszczenie procesu tworzenia aplikacji na różne platformy mobilne poprzez dostarczenie odpowiednio przenośnego frameworka webowego. Powstałe przy jego pomocy “aplikacje” (a tak naprawdę odpowiednio spreparowane strony) mają wyglądać i działać tak samo na większości przenośnych urządzeń takich jak smartphone‘y i tablety.
Całkiem interesujące, prawda? Jeszcze ciekawsze jest to, że mimo bycia wciąż w stadium alpha (wersję alpha 4 wydano parę dni temu) całość działa już bardzo dobrze i rzeczywiście spełnia większość swoich obietnic. Oczywiście nie każdemu może uśmiechać się “programowanie w HTML” (;D), ale tutaj jest ono dość ładnie zorganizowane w warstwę interfejsu (odpowiednio spreparowane tagi HTML) i logiki (kod JavaScript wykorzystujący jQuery). Ta pierwsza pozwala między innymi na umieszczanie kilku stron w jednym pliku i efektowne przełączanie miedzy nimi:
Przejścia pomiędzy stronami nieźle imitują natywny UI platform mobilnych, gdyż są zrealizowane przy pomocy javascriptowych animacji zaimplementowanych w jQuery. Co więcej, jak widać powyżej odnośniki mogą być zwykłymi linkami (<a>
). Czego zaś nie widać to to, że przy okazji przechodzenia między stronami historia przeglądarki – a więc chociażby przyciski Wstecz i Dalej – działa zgodnie z przewidywaniami i “nie psuje” zachowania aplikacji.
Naturalnie samo przełączanie stron to nie wszystko, bo wypadałoby przecież coś na nich pokazać :) Tutaj jQuery Mobile też prezentuje się dobrze, bo niejako automagicznie dba o odpowiedni wygląd elementów aplikacji poprzez stosowanie wbudowanego zestawu “mobilnych” stylów CSS. Zmieniają one wygląd tekstu, linków oraz pól formularzy na taki, który dobrze udaje kontrolki natywnego interfejsu. No, a przynajmniej może uchodzić za takowy w przypadku urządzeń pracujących pod kontrolą iOS-a, bo właśnie do interfejsu tego systemu aplikacje jQuery Mobile są najbardziej podobne.
Niemniej także na innych platformach (chociażby Androidzie) rezultat zastosowania tego frameworka jest więcej niż zadowalający. Wydaje mi się aczkolwiek, że podobne rozwiązania chwilowo wyprzedzają jeszcze trochę swój czas. Ich podstawowym mankamentem jest brak sensownych dojść z przeglądarki internetowej do większości ciekawych podsystemów urządzeń mobilnych, takich chociażby jak kamera; póki co dostępne są chyba tylko usługi lokalizacyjne. Nie da się więc w ten sposób tworzyć skomplikowanych aplikacji, korzystających ze sprzętu czy bardziej zaawansowanych funkcjonalności systemu.
Jeśli jednak chodzi o proste rozwiązania oparte na tekście, obrazkach i formularzach – a więc jako szeroko pojęte front-endy do zdalnych repozytoriów z danymi – to jQuery Mobile może być dobrą alternatywą dla mozolnego portowania aplikacji między różnymi platformami. Podobnie zresztą rzecz ma się z mobilnymi wersjami zwykłych stron internetowych.
bleh ;p
ciekawy jestem czy lepsze od tego co jest w BlackBerry, który mnie ostatnio straszono – i powiem, że skutecznie.
A jeśli się chce przenośne frameworki do aplikacji/gier to jest np. Airplay, który pozwala wydać grę na iPhona bez wykupywania płatnej licencji, a za wykupienie 100$ można też sprzedać na Androidy – no i po ludzku się w C++ pisze ;-)
Zgodzę się z jednym… nie nastał jeszcze czas na takie rozwiązania. Natomiast chciałbym tutaj Ci uświadomić, ze z poziomu HTML’a np do kamerki możesz się dostać ;)
Jakiś czas temu powstał WAC (Wholesale Applications Community, wcześniej tzw. JIL – Join Innovation Lab). Jest to inicjatywa takich gigantów jak: Vodafone, Verizon, China Mobile, Telenor, Telefonica, AT&T, Samsung, Huawei. Otóż wszyscy oni usiedli razem i postanowili wydać standard dostępu poprzez JavaScript do bardziej sprzętowych funkcji w telefonie.
Obsługę tego typu standardu trzeba było oczywiście zaimplementować na konkretnym systemie komórkowym. WAC postanowił poświęcić to zadanie Operze. Krótko mówiąc dokładnie tym zajmowałem się w pracy jakieś pół roku temu, pracując w projekcie Widget Runtime dla platformy Android (można pobrać stąd: http://goo.gl/awll7 ). A tutaj Opera Tech break poświęcony temu tematowi: http://www.youtube.com/watch?v=qYAeVhPHd90
Pomimo dość zaawansowanych możliwości: dostęp do Kamery, Audio i Video, Książki Adresowej, GPSa, danych stricte telefonicznych, akcelerometra itd, owy Widget Runtime kariery na razie nie robi. A naprawdę mógłby, bo przesłanek jest naprawdę dużo…
Prostota pisania aplikacji (HTML, JS, CSS), przenośność, łatwość utrzymania, brak potrzeby aktualizowania aplikacji, gdyż wszystko może być online.
Czy za wcześnie na takie rozwiązania? Ciężko powiedzieć. Może tak naprawdę to była kwestia promocji? A może właśnie brakowało odpowiedniego frameworka? Urządzenia mobilne to przyszłość… Internet też. Jednak póki jakiś gigant internetowy nie zainwestuje w promocję tej idei kupy kasy, to wszystko zbyt szybko się nie zmieni ;)
Wszystko ładnie, pięknie, co ma to jednak wspólnego z aplikcjami mobilnymi? Na chwilę obecną to, co opisujesz to mobilne strony internetowe podpinane i ustawiane jako aplikacje. Gdzie dostęp i wykorzystanie poszczególnych plusów systemu? Gdzie wszystkie funkcje nieprzenośne ponieważ np. opierają się na architekturze OS/telefonu?
Oj, przepraszam, zapomniałem, że “nowe smartfony” to przeglądarki internetowe. Niemniej jednak – jeśli pojawi się coś takiego, co automatycznie dociąga i instaluje (install-on-first-use) jakiegoś liba obsługującego cały back-end aplikacji, co jeszcze z tym back-endem umie się skomunikować, to może być nawet interesujące.
Ciekawe jak to wygląda na WP7, którego nawiasem mówiąc niedługo nabędę.
@noisy: Opera? Interesujące :) Do spopularyzowania tego rozwiązania trzeba by jednak globalnie akceptowanego standardu takiej komunikacji z podzespołami telefonu (może to być standard de facto, taki jakim od dłuższego czasu jest większość tego co się zbiorczo nazywa HTML5) i jego implementacji w domyślnych przeglądarkach dostępnych na smartfonach.
W ogóle do rozwoju takich internetowych aplikacji mobilnych potrzeba IMHO jeszcze trzech rzeczy:
(1) już właściwie jest (iPhone 4, co lepsze androidowe zabawki, telefony z WP7, tablety). (3) wymaga pokrycia 3G rzędu 90%+ powierzchni (co pewnie w krajach mniej zacofanych niż Polska jest dawno rzeczywistością) i odpowiednich taryf u operatorów (jw.).
Problemem może być (2), bo w gruncie rzeczy takie strony-aplikacje niespecjalnie potrzebują już marketów ani “apek” z nich instalowanych, bo one ograniczałyby się do okienka z WebView czy co-tam-jest-w-iOS-od-tego. Nie bardzo mi się widzi, aby Apple, Google czy MS mieli ochotę na rezygnację z lukratywnego interesu pośrednictwa w handlu aplikacjami.
@Asmodeusz: “Nowe smartfony” raczej nie zachęcają do używania ich przeglądarek internetowych. Cały czas najważniejszą ich częścią są natywne aplikacje, dlatego też uważam rozwiązania w stylu jQuery Mobile właśnie raczej za pieśń przyszłości jeśli chodzi o pełnoprawne aplikacje mobilne. Natomiast do mobilnych wersji zwykłych stron internetowych oczywiście nadaje się to już teraz.
@Janek566: Niedawno wydana wersja alpha 4 ma już oznaczenie A jeśli chodzi o support dla WP7 – takie same jak dla Androida i iOS-a 3.2+.
co się stało z warsztatem bo nie byłem na bieżąco od długiego czasu?
Nic się nie stało, cały czas działa.
Fajny artykuł dzisiaj znalazłem opisujacy WidgetManagera:
http://michalbiniek.blogspot.com/2011/02/aplikacje-javascript-na-androidzie-z.html