Urządzenia mobilne - android, iphone, palm pre itp. itd

Muszę ze wstydem przyznać, że do tej pory nie zwracałem za bardzo uwagi na optymalizację aplikacji pod kątem urządzeń mobilnych. Chodzi przede wszystkim o androida i iphone’a, ale także inne platformy.

Szukam wszelkich artykułów, pluginów, tutoriali i innych rzeczy, które mogą pomóc w optymalizacji aplikacji pod tym kątem. Jeżeli macie jakieś doświadczenia z tym związane, to też chętnie przeczytam. Sam również będę robił research, więc jeżeli coś znajdę, to rzucę linki. :slight_smile:

Rozumiem, że chodzi o aplikacje webowe? Android radzi sobie z walidującymi się stronami XHTML/CSS, JS też działa (nie testowąłem AJAX’a ale myślę, że nie ma problemów).

Jak zwykle przy takich urządzeniach ważna jest szczególnie lekkość strony. W HTMLu tylko treść, wszelkie widoki w CSS (CSS będzie się cachować w telefonie).

Android ma też możliwość pisania aplikacji natywnych (Java/DalvikVM) - temat godny rozważenia tak samo jak pisanie aplikacji natywnych pod iPhone’a.
SDK jest darmowe. Aby publikować aplikacje na Android Market trzeba uiścić jednorazowo $25.

Oczywiście, że działają i na razie używając androida raczej nie spotkałem się z problemami. Chodzi o to, że android i iphone obsługują sporo ciekawych rzeczy (elementy HTML5, offline cache, zwyczajne ui zaprojektowane “pod myszkę” czasem nie jest najlepsze) i o to głównie mi chodziło.

Tak powinno się pisać zawsze, nie tylko pod urządzenia mobilne :wink:

[quote]Android ma też możliwość pisania aplikacji natywnych (Java/DalvikVM) - temat godny rozważenia tak samo jak pisanie aplikacji natywnych pod iPhone’a.
SDK jest darmowe. Aby publikować aplikacje na Android Market trzeba uiścić jednorazowo $25.[/quote]
To wiem i to nie jest tematem dyskusji - chodzi stricte o railsy i przeglądarkę.

Ok. To może ja wkleję część tego co na razie wydaje mi się ciekawe w temacie.

Tank-engine. Dodaje mime-type iphone, dzięki czemu można pisać np. format.iphone. Są tam też jakieś helpery z javascriptami specyficznymi dla iphone’a.

Dopiszę jeszcze do tego mime-type android i myślę, że będzie można całkiem nieźle pisać uproszczony interfejs dla androida i iphone’a.

Prezentacja z google IO o aplikacjach działających offline:
http://code.google.com/events/io/sessions/GeneralCachingArchitectureOfflineApps.html

Przeglądarka androidowa (iphone’owa najpewniej także) łyka nie tylko html, css i js (ajax? no problemo!), ale nawet flasha. Nie ma co się martwić :slight_smile:
Jedyna optymalizacja to właśnie pod kątem rozmiaru (facebook ma fajną wersję na smartfony, może warto się zainspirować?), zarówno w pikselach jak i kilobajtach :wink:

Z tym Flashem to nie jest tak idealnie jeszcze, tnie się i nie we wszystkich telefonach z Androidem jest.

U mnie flash nie łazi domyślnie, a nie chce mi się instalować :wink:

No właśnie o to mi chodzi. Spróbuj sobie wejść na gmaila pod androidem. Interfejs jest całkowicie inny. Chodzi o to, że jak jest strona o szerokości ok. 1000px i ma normalny interfejs, to mi się czasem odechciewa cokolwiek tam robić. Właściwie to wcześniej tego nie napisałem wyraźnie, ale chodzi mi głównie o usability.

Będę szukał i próbował, jak coś ciekawego zrobię to dam znać :wink:

Jeśli chodzi o iPhone/iPod i Rails to pomocna może być biblioteka iUI

Drogomir, wyszarpałeś się na G1/Dream, Magica czy Hero? :wink:

Niestety “tylko” na G1/Dream. Teraz planuję się wyszarpać na tą bardziej pojemną baterię, bo w tym momencie to jakaś pomyłka :wink:

Jeżeli mówimy o urządzeniach mobilnych to trzeba pamiętać o dwóch podstawowych rzeczach które roznia urzadzenia mobilne od desktopow:

  1. Przepustowość lacza - tak, mozemy sie podlaczyc pod wifi, ale z reguly tego wifi nie ma i korzystamy z 3G lub co gorsza z Edge
  2. Maly wyswietlacz
    oraz ew. 3 punk ktore tyczy sie smartfonow typu iPhone, HTC (touch screen) vs. zwykly tel i opera mini

Wiec jezeli mowimy o laczu to musimy pamietac aby go nie zapchac, dlatego tez w przypadku stron dedykowanych pod urzadzenia mobilne raczej trzeba darowac sobie jQuery, Prototype i inne rzeczy ktore bardziej zaszkodza w tym przypadku niz pomoc.

Nastepnie wyswietlacz - interface dedykowany iPhonowi/HTC powininen byc inny niz ten na zwykle komorki ktore ogladaja przez opere mini. To jest dosc wazna kwestia jezeli chodzi o usability. Dla iphonowcow przydaly by sie duze przyciski, a dla opera mini wrecz przeciwnie, zwykle linki tekstowe.

Poszukaj w sieci materialow od LinkedIn. Ich portal na urzadzenia mobilne jest napisany w railsach. Aplikacja railsowa korzysta z API udostepnianego przez system ktory jest napisany w Javie. Na urzadzenia mobilne mialo byc lekko i szybko wiec uzyto railsow. Gdzies byla w sieci prezentacja i jakis artykul o tym.

PS: Cale madrzenie sie opera sie na wiedzy z kilkunastu artow o doswiadczeniach w tym temacie innych programistow :wink:

Ja jak narazie popelnilem jeden sajt na komórki, ale w PHP + XSLT :). Czytalem sporo z mobiforge, kupa przydatnych artykulów na temat projektowania aplikacji na urzadzenia mobilne http://mobiforge.com/.
Do rozpoznawania modelu urzadzenia polecam baze WURFL, http://wurfl.sourceforge.net/, jest takze, jak widze, biblioteka dla Ruby http://wurfl.rubyforge.org/

[quote=Artur79]Ja jak narazie popelnilem jeden sajt na komórki, ale w PHP + XSLT :). Czytalem sporo z mobiforge, kupa przydatnych artykulów na temat projektowania aplikacji na urzadzenia mobilne http://mobiforge.com/.
Do rozpoznawania modelu urzadzenia polecam baze WURFL, http://wurfl.sourceforge.net/, jest takze, jak widze, biblioteka dla Ruby http://wurfl.rubyforge.org/[/quote]
Dzięki :smiley:

Wreszcie jakieś konkrety.

EDIT:
Tzn. nie to, żeby wypowiedzi innych były pozbawione sensu, ale niestety to takie ogólniki, które raczej są jasne dla osoby, która się w to już trochę bawi.

nie jest idealnie, WURFL lubi sie pomylic :slight_smile: ale regularnie jest updejtowany.
XSLT ma ten plus ze przypilnuje ze wygenerowany kod bedzie w 100% zgodny z wytycznymi (podomykane tagi itd) tak ze kazda komórka musi to łyknac i wyswielic bez bledów, a czy sie layout nie rozwali to inna bajka, ale cos sie zawsze wyswieli a nie “unsupported content”. Nie mialem okazji jeszcze pobawic sie XSLT i Ruby bo na Windowsie sa z tym problemy, to bylo by ciekawe polaczenie. Zerknijcie na http://oddschecker.mobi , moja robota wszystko oprócz dezajnu i css, krytyka mile widziana :slight_smile:

A wcale że nie prawda. XSLT zagwarantuje jedynie że kod wynikowy będzie poprawnym dokumentem XML. Wcale nie musi być poprawnym dokumentem XHTML. Można przytoczyć 1000 przykładów gdzie można coś namieszać.

Poza tym jak dla mnie XSLT tchnie lekko stęchlizną. Raz na jakiś czas muszę z tym pracować i wcale mnie to nie cieszy, i do generowania HTMLa raczej użył bym czegoś innego. Ale jak rozumiem chodzi tu bardziej o przekształcanie już istniejącego kodu, do czego może nadać się wyśmienicie mimo swojego leciweko wieku ;).

Nie zagwarantuje, ale wielu rzeczy pomoze przypilnowac. Nie lobbuje na rzecz XSLT, poprostu strone na komórki jak narazie robilem tylko w tym :slight_smile:

fakt, zwlaszcza wersja 1.0 jedyna, którą obsługuje PHP :confused:
Akurat w projekcie przy którym pracowałem wszystkie potrzebne dane znajduja sie w XMLach, wiec XSLT jest jakby naturalnym wyborem i sprawdza sie znakomicie.

Jeżeli jednak ktoś zechce pójść w tym ‘złym’:wink: kierunku, to ja przypadkiem dzisiaj natrafiłem na takie coś: http://www.jqtouch.com/

Ja raczej nie podzielam zdania o porzuceniu jquery/prototype.

jQuery minified zajmuje 55kB, więc nie jest tak źle. I chciałbym zobaczyć stosunek kodu napisanego w czystym javascripcie vs ten z użyciem helperów z jquery.

Odświeżę wątek bo znalazłem coś ciekawego - PhoneGap - programujesz raz w JS/HTML/CSS a aplikacja działa na wielu platformach (iPhone/Android/Blackberry, Symbian/Win w przygotowaniu).

Podobne narzędzie: http://www.appcelerator.com/