iPad. Magic.

Toată lumea știe că iPadul este magic. Nu? Well… Nu prea. iPad pare a fi un fel de IE6. În plus, zilele astea am lucrat la un soi de webapp pentru ipad. Câteva din problemele întâlnite:

  • Tag-ul video nu suportă toate atributele standard. loop și autoplay sunt ignorate cu grație, punându-te în imposibilitatea de a face autoplay la un film. Da, știu că e o măsură a Apple de a preveni traficul exagerat, dar ar trebui să-și dea seama că totul se întâmplă nu doar pe Wifi ci și în aceeași clasă de ip-uri (C) !
  • Pentru a preveni zoom-ul paginilor (ori cu dublu click ori , poți adăuga următoarea secvență de cod în head:
    <meta name="viewport" content="width=device-width, user-scalable=no" />
    

    Pentru a preveni „tragerea” paginii (utilizatorii de iPad știu despre ce vorbesc), adaugi linia asta în js:

    document.addEventListener('touchmove', function(e){ e.preventDefault(); }, false);

    Totul merge minunat, doar că, dacă ai vreun film (embeduit cu video, desigur), setările de mai sus au efect… zero. Dublu click pe film face zoom la pagină, dacă tragi de film, se mișcă toată pagina șamd.

  • Ultima versiune de iOS a adus un motor JS nou. Nitro, pe numele lui. Mai rapid, mai curat, mai plăcut uscat. Doar că, un simplu shortcut în springboard (add to home screen) dezactivează acest motor de câteva ori mai rapid decât cel vechi și folosește… vechiul engine. Măsuri de… securitate.

Astea sunt doar problemele mai.. grave. Ar mai fi chestiuțe rezolvate, dar despre ele cu altă ocazie.

5 Comentarii to “iPad. Magic.”

  1. Eu când compar browserul din iOS cu browserul din Android consider că iOS-ul este un fel de Firefox iar cel din Android este un fel de IE6.

    Îți spun sincer că nu stau prea mult să caut ce și cum, de la ce se trage fiecare problemă, dar…

    Browserul din ipad știe ce este ăla meniu. Faci un click (touch) îți deschide meniul. Mai faci un click (touch) îți lansează linkul de pe acel meniu.
    Browserul din android habar nu are de meniu. Dai click pe un meniu, atunci îți deschide linkul imediat și la revedere.

    Bannerele de pe okazii (un jcarousell banal) se văd pe iOS dar de multe ori nu se încarcă pe Android.

    Un site de genul dolcetv.ro eșuează mizerabil în Android în ciuda suportului Flash. Totuși pe iOS ai o variantă “mobile” unde ai streamuri video care merg perfect.

    Iar exemplele pot continua la infinit.

    Dacă e ceva ce nu suport la Android este browsingul execrabil.

  2. Staicu Ionuț-Bogdan

    Well… IE 6 este un browser excelent pentru utilizatorii finali. Pentru dezvoltatori însă… Not so much. Eu am vorbit strict din punctul de vedere al dezvoltatorului. :)

  3. Referitor la tag-ul video si atributele loop / autoplay: crezi ca e logica o implementare care sa permita loop / autoplay cand conexiunea e WiFi si sa nu permita cand conexiunea e 3G ?

    Nu prea imi dau seama la ce te referi cu WiFi si clasa C de IP-uri. Corecteaza-ma daca gresesc, dar banuiesc ca te referi la retea privata (adrese de tip 192.168.x.x)

  4. Staicu Ionuț-Bogdan

    @wideblog: da, e logic. Pentru că pe 3g ai limite de trafic, ai limite de viteză, overall ar însemna o experiență dubioasă.

    Pe de altă parte, wifi înseamnă viteză mai mare decât 3g. iar dacă serverul este în rețeaua locală (192.x.x.x), ar însemna o viteză mai mare decât 3g sau internet wifi.

    Iar o aplicație web locală ar trebui să-ți permită mai multe… ghidușii.

  5. @ionut: nu e SciFi ce vrei, dar implementarea e prea laborioasa.

    Practic, tu vrei ca unele optiuni sa se activeze inteligent, in functie de tipul de conexiune. Daca esti pe 3G, atunci regimul de lucru este cel economic. Daca esti pe WiFi atunci mergi cu pedala la maxim. Daca atat 3G cat si WiFi sunt active, atunci browserul trebuie sa stie conexiunea activa pentru continutul redat pentru a decide modul de lucru. Intr-un produs integrat, e posibil de realizat dar cred ca e foarte jos in lista de prioritati.

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>