Mobile app vs native app

Ο τίτλος θα μπορούσε να είναι και “θέλω να φτιάξω ένα site που να παίζει σε όλους τους browsers, κινητά και tablets που υπάρχουν στην αγορά”. Δυστυχώς όμως μερικά πράγματα δεν γίνονται όσο μαγικά θέλουμε… Αλλά καλύτερα ας πάρουμε τα πράγματα από την αρχή. Το mobile web έχει μπει για τα καλά στην ζωή μας, μιας και μπορούμε πολύ εύκολα είτε με ένα smartphone είτε με ένα tablet να κάνουμε σχεδόν τα πάντα και μάλιστα ενώ είμαστε μακριά από το γραφείο μας. Η πλειοψηφία των παραπάνω συσκευών λειτουργεί με μόλις 2 λειτουργικά, το iOS της Apple που είναι ενσωματωμένο σε όλες τις συσκευές της (iPhone, iPad, κτλ.) και το Androind OS το οποίο είναι η πρώτη σοβαρή και open source επιλογή για τους υπόλοιπους κατασκευαστές.

Το πρόβλημα συνήθως ξεκινάει με το πως θα φαίνεται το site μας σε μια τέτοια συσκευή. Για κάποιο περίεργο λόγο, οι περισσότεροι χρήστες/πελάτες είναι αρκετά μπερδεμένοι, μιας και δεν ξέρουν τι λύσεις υπάρχουν (και υπάρχουν λύσεις για όλα τα budgets), ποια είναι τα πλεονεκτήματα και μειονεκτήματα τους, και γενικότερα επικρατεί μια σύγχυση για το θέμα, με αποτέλεσμα να δημιουργούνται προβλήματα και παρεξηγήσεις. Ελπίζω το παρακάτω άρθρο να ξεδιαλύνει κάπως το τοπίο έτσι ώστε να επωφεληθούμε όλοι. Σε αυτό το σημείο θα ήθελα να τονίσω πως δεν είμαι κανένας φοβερός mobile guru/expert, και ίσως κάπου κάνω λάθος, γι’ αυτόν τον λόγο όποιος έχει να συμπληρώσει/προσθέσει κάτι, απλά ας μου αφήσει ένα σχόλιο. Έχουμε και λέμε λοιπόν, το site μας μπορεί να εμφανιστεί στο smartphone/tablet μας με δύο τρόπους.

Web app

Επιλέγοντας αυτήν την λύση, εννοούμε πως θα χρησιμοποιούμε τον browser της συσκευής μας (smartphone/tablet) για να δούμε το site μας. Μια αρκετά απλή λύση μπορεί να είναι η χρήση κάποιων CSS queries (Responsive Web Design) έτσι ώστε το site μας να φαίνεται λίγο πιο μαζεμένο και optimised στις συσκευές (οθόνες) που έχουμε αποφασίσει να υποστηρίξουμε. Αυτό δεν σημαίνει πως μπορούμε να φτάσουμε μέχρι εκεί. Ανάλογα με τις ανάγκες του project, και φυσικά το budget του, το mobile site μπορεί να γίνει όσο πολύπλοκο θέλουμε, χρησιμοποιώντας όσο καλύτερα γίνεται τις δυνατότητες της συσκευής και του browser που μας παρέχει. Για παράδειγμα η Google (λόγω και του Android), αποφεύγει τις native εφαρμογές, προσφέρει όμως σχεδόν σε όλες της τις υπηρεσίες ειδικά διαμορφωμένες web εφαρμογές για κινητά και tablets (μπείτε στο Gmail από τον browser του κινητού σας και θα καταλάβετε τι εννοώ).

Τα πλεονεκτήματα μιας web app είναι αρκετά. Το πρώτο και σημαντικότερο είναι πως δεν χρειάζεστε κάποιο συγκεκριμένο SDK (όπως πχ. το iOS SDK) για να δημιουργήσετε την web εφαρμογή σας. Μπορείτε να χρησιμοποιήσετε web τεχνολογίες όπως HTML (HTML5 καλύτερα), CSS και Javascript! Σε αυτό το σημείο αξίζει να σημειώσω πως οι browsers των κινητών/tablet (των σοβαρών κατασκευαστών τουλάχιστον) είναι φοβερά εξελιγμένοι και με πολλά χαρακτηριστικά, πράγμα που σημαίνει πως ήδη υποστηρίζουν πολλά HTML5 και CSS3 καλούδια. Το δεύτερο πλεονέκτημα μιας web app είναι πως, αν είναι καλοσχεδιασμένη φυσικά (βλέπε Progressive enhancement, Responsive Web Design, κτλ. κτλ.), μπορεί να καλύψει την πλειοψηφία των συσκευών και των browser που υπάρχουν! Αυτό σημαίνει πως με μόλις μία εφαρμογή μπορεί να καλυφθούν όλα τα κινητά και tablets ανεξαρτήτου κατασκευαστή και λειτουργικού συστήματος. Τέλος ακόμα ένα πλεονέκτημα μπορεί να θεωρηθεί και η ανεξάρτητη διανομή, μιας και στην ουσία η εφαρμογή ζει στο web και όχι σε κάποιο store (o χρήστης απλά συνδέεται με την εφαρμογή χρησιμοποιώντας τον browser του). Χαρακτηριστικό παράδειγμα φοβερής web εφαρμογής που ήθελε να παρακάμψει το γνωστό για την εκκεντρικότητα του Apple App Store, είναι η εφαρμογή της Financial Times. Ρίξτε οπωσδήποτε μια ματιά από το κινητό σας και δείτε τι φανταστική δουλειά έχουν κάνει…

Τα μειονεκτήματα τώρα (ναι υπάρχουν και αυτά) έχουν να κάνουν κυρίως στο ότι δεν είναι εγγενής (native) εφαρμογή (τι έγραψα τώρα!). Οι web εφαρμογές λοιπόν, είναι συνήθως λίγο πιο αργές σε ανταπόκριση, μιας και στέλνουν σε έναν server κάποιο request και περιμένουμε απάντηση, ενώ συνήθως δεν έχουν και την “γυαλάδα” του native user interface. Επίσης οι web εφαρμογές μπορούν να κάνουν μόνο ότι μπορεί να καταλάβει ο browser της εκάστοτε συσκευής, δεν έχουν με άλλα λόγια πρόσβαση σε πιο advanced χαρακτηριστικά της συσκευής (όπως πχ. camera, GPS, πυξίδα, γυροσκόπιο, κτλ.).

Native app

Εγγενείς (native) εφαρμογές ονομάζουμε αυτές που τις κατεβάζουμε και της εγκαθιστούμε στην συσκευή μας από κάποιο store (πχ. App Store), είτε δωρεάν, είτε πληρώνοντας κάποιο χρηματικό ποσό. Η κάθε εφαρμογή έχει φτιαχτεί ειδικά για την συγκεκριμένη συσκευή, πράγμα που σημαίνει πως εκμεταλλεύεται πολύ καλά τα χαρακτηριστικά της εκάστοτε συσκευής, αλλά όπως καταλαβαίνεται πρέπει να γράψετε τουλάχιστον 2 διαφορετικές εφαρμογές (και να δουλέψετε με 2 διαφορετικά SDK) έτσι ώστε να δημιουργήσετε εφαρμογές για τα 2 βασικά λειτουργικά των κινητών/tablet (iOS και Android).

Τα πλεονεκτήματα και εδώ είναι αρκετά, με πρώτο και σημαντικότερο πως δεν χρειάζεται να είσαι συνδεδεμένος στο internet για να χρησιμοποιήσεις την εφαρμογή (εκτός φυσικά και αν αυτό είναι requirement της ίδιας της εφαρμογής). Το user interface και η απόκρισή είναι πολύ πιο γρήγορα και συνήθως πιο εντυπωσιακά από τα αντίστοιχα μιας web εφαρμογής, ενώ μπορούμε να χρησιμοποιήσουμε και όλα τα advanced χαρακτηριστικά της εκάστοτε συσκευής όπως camera, GPS, πυξίδα, γυροσκόπιο, κτλ. (εδώ την έχει πατήσει λίγο το Android μιας και οι κατασκευαστές εκτός από ότι είναι πολλοί, προσφέρουν και διαφορετικά χαρακτηριστικά στις συσκευές τους, πράγμα που δημιουργεί αρκετά προβλήματα στους developers).

Το βασικότερο μειονέκτημα τώρα, το ανέφερα και πιο πάνω, δεν είναι άλλο από το γεγονός πως η εφαρμογή είναι platform-dependent, που σημαίνει πως πρέπει να γράψετε την ίδια εφαρμογή για πολλές πλατφόρμες (τουλάχιστον 2), χωρίς να κάνω λόγο για τις υποπεριπτώσεις τους (όπως πχ. τις αλλαγές που μπορεί να υπάρχουν σε hardware χαρακτηριστικά πχ. retina display, ή εντελώς διαφορετικά hardware setup σε android συσκευές). Τέλος ένα μικρό μειονέκτημα μπορεί να θεωρηθεί και το γεγονός πως για να γίνει update η εφαρμογή, πρέπει να ξανά-ανέβει στο εκάστοτε store (αφού εγκριθεί κτλ .κτλ.), να την ξανά-κατεβάσει και να την ξανά-κάνει install ο εκάστοτε χρήστης (στην περίπτωση της web app το update είναι πολύ πιο άμεσο).

Αυτά τα λίγα περί web και native εφαρμογών για κινητά και tablets. Ελπίζω να ξεκαθάρισα λιγάκι το τοπίο, μιας και για κάποιο ανεξήγητο λόγο τα πράγματα είναι αρκετά μπερδεμένα! Αν κάποιος θέλει να συμπληρώσει κάτι, ας αφήσει απλά ένα σχόλιο…

Προβλέψεις για το 2010 : Ο καζαμίας του web expert…

Όπως κάθε χρονιά, έτσι και φέτος θα προσπαθήσω να κάνω τις web-related προβλέψεις μου. Περιμένω σχόλια για το τι νομίζετε πως ξέχασα ή για σχολιασμό αυτών που δεν ξέχασα ;-).

  • Τα περισσότερα site σταματάνε την υποστήριξη του IE6. Οι ιδιοκτήτες προτιμούν να έχουν ένα πιο μοντέρνο και σημασιολογικά σωστό site από το να προσπαθούν να υποστηρίζουν έναν απαρχαιωμένο browser.
  • H μηχανή αναζήτησης Bing κερδίζει έδαφος χάρις στον IE9 και τις παράπλευρες υπηρεσίες τις Microsoft (messenger κτλ.). Οι SEO experts αρχίζουν να ασχολούνται όλο και πιο σοβαρά με αυτήν…
  • Η Google αποκτά μεγάλο μερίδιο αγοράς με το Chrome OS, σε συσκευές όπως netbooks, tablet pc και e-book readers.
  • To Android γίνεται το no.2 λειτουργικό στα κινητά τηλέφωνα. Πρώτο παραμένει το iPhone, ενώ η Nokia ετοιμάζει/βγάζει την δικιά της linux-based λύση.
  • Τα netbooks πεθαίνουν σιγά-σιγά. Τα e-book readers και τα tablet pcs παίρνουν την θέση τους…
  • Το Google κάνει τα πάντα για να προωθήσει το Wave, ωστόσο ο κόσμος προτιμάει το G-mail…
  • Το iTunes αποκτά web (streaming) υπόσταση χάρις το Lala.
  • Το Tsevdos.com αποκτάει νέο theme HTML5-ready theme 😉

Best of the rest – 39η εβδομάδα 2008

Πολλά τα νέα αυτής της εβδομάδας, οπότε ξεκινάω αμέσως, χωρίς εισαγωγές!

  • Το σημαντικότερο νέο της εβδομάδας είναι η δημιουργία του World Wide Web Foundation, από τον ίδιο τον δημιουργό του web, σερ Tim Berners Lee! Οι λόγοι δημιουργίας του συγκεκριμένου οργανισμού είναι η περαιτέρω εξάπλωση του web σε ολόκληρο τον πλανήτη, σύμφωνα με την πρώτη ανακοίνωση του ιδρύματος. Πολλοί ειδικοί, ανάμεσα τους και ο δημιουργός του web, πιστεύουν πως το W3C έχει μείνει αρκετά πίσω στο θέμα προώθησης του web, και γι αυτόν ακριβώς τον λόγο αποφάσισαν να δημιουργίσουν ένα ιδρύμα το οποίο θα έχει αυτό ως σκοπό. Υπάρχει κάποια λογική στο θέμα (η Molly, γράφει και αυτή την πολύ ενδιαφέρουσα άποψη της στο τελευταίο A List Apart), ωστόσο εάν δεν ξεκαθαρίσουν κάπως τα θολά σχέδια του νέου ιδρύματος (κάπου μέσα στο 2009), δεν ξέρω εάν και κατά πόσο θα το υποστηρίξει η web κοινότητα (και εγώ ως ένα πολύ μικρό κομμάτι της)…
  • Το CSS3.gr είναι έτοιμο! Ρίξτε οπωσδήποτε μια ματιά στα άρθρα και το blog του. Σίγουρα θα βρείτε κάτι ενδιαφέρον να διαβάσετε!
  • Το Google Android είναι έτοιμο, όπως και το πρώτο κινητό που θα το χρησιμοποιήσει (ΤMobile G1)! Το Android δείχνει πραγματικά πολύ δυνατό και ανοιχτό, ενώ με εντυπωσίασε πολύ και ο ενσωματωμένος browser του! Το Read Write Web έγραψε ένα πολύ επεξηγηματικό άρθρο με πάρα πολλά video, τα οποία παρουσιάζουν τις πολλές δυνατότητες του καινούργιου λειτουργικού για κινητά τηλέφωνα. Προσωπικά το περιμένω πως και πως, μιας και απογοητεύτηκα αρκετά με το “ελληνικό” iPhone!
  • Η beta έκδοση του νέου Flash Player είναι έτοιμη και μπορείτε να την κατεβάσετε για διάφορα λειτουργικά συστήματα από τα Adobe Labs. Βλέποντας το νούμερο της έκδοσης (10), αισθάνθηκα και αρκετά γέρος, μιας και χρησιμοποιώ το συγκεκριμένο plug in από την δεύτερη έκδοση του (εάν θυμάμαι καλά)!!!
  • Πολύ δουλειά έχει πέσει στην Adobe η οποία εμφάνισε και την καινούργια Creative Suite της. Όλα τα γνωστά προγράμματα της Adobe αναβαθμίζονται στην έκδοση CS4, ενώ μπορείτε να διαλέξετε και την οικογένεια προγραμμάτων που καλύπτει τις ανάγκες σας και να γλιτώσετε αρκετά χρήματα. Προσωπικά έχω την αίσθηση πως οι αναβαθμίσεις σε Adobe προϊόντα πρέπει να γίνονται κάθε 2 με 3 εκδόσεις, αλλιώς έχω την αίσθηση πως πετάγονται πολλά λεφτά για το τίποτα… Μπορεί βέβαια να κάνω και λάθος…
  • Εμφανίστηκε και το πρώτο site (όχι επίσημο), με τίτλο Chrome Plugins, το οποίο προσπαθεί να κατασκευάσει τα πρώτα plug-ins για τον Chrome. Για να δούμε τι θα καταφέρουν…
  • To A List Apart δημοσίευσε τα νέα του άρθρα! Προσωπικά μου άρεσε περισσότερο το πιο τεχνολογικό “Test-Driven Progressive Enhancement“, ωστόσο και το “Web Standards 2008: Three Circles of Hell” σε προβληματίζει αρκετά για το που βαδίζουν τα web standards!
  • To Fire Vox είναι ένα plug in για τον Firefox, το οποίο μετατρέπει τον browser σε screen reader! Είναι ένα από τα εντυπωσιακότερα plug ins, το οποίο δίνει ένα επιπλέον κίνητρο και εργαλείο στους web designers και developers, έτσι ώστε να δημιουργήσουν ακόμα πιο accessible sites…
  • Κυκλοφόρησε ακόμα μία Javascript library, έτσι για να έχουμε ακόμα μεγαλύτερη ποικιλία, η Minordi. Όσοι δεν έχουν βρει ακόμα μια Javascript library που να τους καλύπτει (πράγμα πολύ δύσκολο), ας της ρίξουν μια ματιά…
  • Ο Webkit είναι η πρώτη μηχανή rendering που περνάει και επίσημα το Acid 3 test.
  • Και εκεί που όλοι λέγαμε πόσο σημαντικά είναι τα friendly URLs στο SEO, έρχεται η Google και ανακοινώνει από το επίσημο Google Web Master Central blog πως δεν χρειάζεται να ξαναγράφουμε με φιλικό τρόπο τα URLs μας!!! Τώρα γιατί το κάνει αυτό, ειδικά αυτήν την στιγμή όπου πλέον αρχίζουν να καταλαβαίνουν και οι λιγότερο ειδικοί την σημασία των friendly URLs, πραγματικά δεν έχω ιδέα… Περιμένω μόνο τις πρώτες αντιδράσεις από τους web masters και τους SEO experts…
  • Τέλος μου άρεσε ιδιαίτερα η ιδέα του site Yotify. Στο εν λόγω site λοιπόν, φτιάχνεις scouts (ανιχνευτές), οι οποίοι δρουν σαν bots και σε ενημερώνουν για πράγματα που ενδιαφέρεσαι αυτόματα, χωρίς να κουνάς ούτε το δαχτυλάκι σου!!! Πάρα πολύ έξυπνη και βολική ιδέα!