Αρχικά ας ξεκινήσουμε με τη “θεωρία”…
Τι είναι το Multitasking;
Το multitasking δεν είναι τίποτα άλλο από τη δυνατότητα εκτέλεσης πολλών εφαρμογών ταυτόχρονα. Πριν το iOS 4.0 αυτή η δυνατότητα περιοριζόταν σε κάποιες native εφαρμογές του iPhone όπως για παράδειγμα το iPod.app το οποίο μπορούσε να παίζει μουσική και από το παρασκήνιο ενώ εσείς κάνατε κάτι άλλο. Στο iOS 4.0 αυτή η δυνατότητα είναι πλέον διαθέσιμη για όλες τις εφαρμογές με κάποιους όμως περιορισμούς (θα εξηγηθεί παρακάτω).
Διαφορά multitasking στο iPhone και σε άλλες πλατφόρμες
Το multitasking στο iPhone λειτουργεί με πολύ διαφορετικό τρόπο απ’ ότι λειτουργεί σε έναν υπολογιστή, ένα smartphone Windows Mobile, ένα Android Phone ή ένα Maemo Phone. Στον υπολογιστή όταν μια εφαρμογή πάει στο παρασκήνιο συνεχίζει να λειτουργεί όπως και πριν κρατώντας δεσμευμένη μια ποσότητα μνήμης και επεξεργαστικής ισχύος. Με τον ίδιο τρόπο περίπου λειτουργεί και στα Windows Mobile. Στα Android υπάρχει ένα πρωτόκολλο server/client μεταξύ εφαρμογών και λειτουργικού συστήματος ενώ στο Maemo το multitasking γίνεται σχεδόν με τον ίδιο τρόπο όπως στον υπολογιστή.
Στο iPhone τα πράγματα είναι κάπως διαφορετικά. Προκειμένου η Apple να μη ρισκάρει τη μείωση στην απόδοση της μπαταρίας και της συσκευής λόγω μειωμένης RAM και επεξεργαστικής ισχύος κατά τη διάρκεια της πολυεργασίας δημιούργησε ένα δικό της μοντέλο για multitasking. Σύμφωνα με αυτό έδωσε στους developers των εφαρμογών 7 APIs που μπορούν να χρησιμοποιήσουν ώστε να τρέχουν οι εφαρμογές τους στο παρασκήνιο.
Το πρώτο κρατούμενο εδώ είναι ότι για να λειτουργήσουν οι εφαρμογές στο παρασκήνιο πρέπει να αναβαθμιστούν από τους developers ώστε να ενσωματώσουν τα σχετικά APIs.
Όσο οι εφαρμογές δεν έχουν ενσωματωμένο κάποιο από τα σχετικά APIs όταν βγαίνετε από αυτές πατώντας το Home Button όπως κάνατε μέχρι σήμερα αυτές επί της ουσίας κλείνουν αλλά θα το δούμε και παρακάτω αυτό.
Εν τω μεταξύ ας δούμε τα 7 σχετικά APIs για να καταλάβετε πώς λειτουργεί το multitasking. Κάθε API ή συνδυασμός αυτών μπορεί να καλύψει όλες τις ανάγκες που μπορούν να έχουν οι εφαρμογές όταν βρίσκονται στο παρασκήνιο.
1. Fast App Switching
Πρόκειται για το πιο απλό API από τα 7. Οι εφαρμογές που χρησιμοποιούν αυτό το API όταν στέλνονται στο παρασκήνιο παγώνουν ακριβώς στο σημείο που ήσασταν και μένουν αδρανείς χωρίς να απασχολούν τον επεξεργαστή ή να χρησιμοποιούν μπαταρία και όταν επανέρχεστε σε αυτές θα τις βρείτε στο σημείο που τις αφήσατε. Στα παιχνίδια μάλιστα που θα ενσωματώσουν το Fast App Switching όταν θα επανέρχεστε σε αυτή θα υπάρχει μια αντίστροφη μέτρηση 3 δευτερολέπτων ώστε να προετοιμαστείτε πριν ξεκινήσετε να παίζετε πάλι.
Το συγκεκριμένο API είναι αυτό που θα χρησιμοποιηθεί περισσότερο από οποιοδήποτε άλλο μιας και οι περισσότερες εφαρμογές δε χρειάζεται να λειτουργούν στο παρασκήνιο και απλά πρέπει να μένουν παγωμένες στο σημείο που τις αφήνουμε.
2. Task Completion
Ας υποθέσουμε ότι έχετε μια εφαρμογή όπως το Flickr για να ανεβάζετε φωτογραφίες στο λογαριασμό σας εκεί από το iPhone. Πριν το iOS 4.0 όταν ανεβάζατε κάτι, αν πατούσατε το Home Button και βγαίνατε από την εφαρμογή το uploading (ή downloading) κοβόταν. Πλέον, χρησιμοποιώντας το Task Completion API οι developers μπορούν να δώσουν στις εφαρμογές τους τη δυνατότητα να συνεχίσουν το downloading/uploading ακόμα και αν βγείτε από την εφαρμογή. Όταν η εργασία αυτή ολοκληρωθεί η εφαρμογή θα παγώσει στο σημείο που την αφήσατε. Αυτό σημαίνει ότι και εδώ, όταν η εφαρμογή πάει στο παρασκήνιο λειτουργεί μέχρι να ολοκληρώσει το task και μετά παγώνει όπως γίνεται στην παραπάνω περίπτωση.
3. VOIP
Το VOIP API κάνει το προφανές. Δίνει τη δυνατότητα σε εφαρμογές όπως είναι το Skype να δουλεύουν στο παρασκήνιο έτσι ώστε αν δεχτείτε μια κλήση μέσω VOIP να ειδοποιηθείτε. Tο Skype θα αναβαθμιστεί μέσα στις επόμενες εβδομάδες σύμφωνα με τους developers του. Τότε το μόνο που θα έχετε να κάνετε θα είναι να το ανοίξετε και να το στείλετε στο παρασκήνιο πατώντας το Home Button. Όσο βρίσκεται εκεί θα μπορείτε να δέχεστε κλήσεις κανονικά.
4. Push Notifications
Αυτό είναι το μόνο API που υπήρχε και πριν. Το γνωρίζετε τι είναι. Εφαρμογές που είναι κλειστές μπορούν να σας στέλνουν ειδοποιήσεις. Πώς γίνεται αυτό; Η ειδοποίηση φεύγει από server που έχει στήσει ο developer της εφαρμογής, πάει στους servers της Apple και από κει προωθείτε στη συσκευή σας. Με αυτό τον τρόπο λειτουργούν εφαρμογές όπως το IM+, Beejive IM, εφαρμογές που σας ειδοποιούν για τα σκορ ποδοσφαιρικών παιχνιδιών κλπ. Μέχρι σήμερα έτσι λειτουργούσαν και εφαρμογές για υπενθυμίσεις για Tasks όπως το 2Do, το Tasks κ.α. αν και αυτά πλέον θα αρχίσουν να χρησιμοποιούν πλέον τα Local Notifications που θα δούμε αμέσως παρακάτω.
5. Local Notifications
Όπως καταλαβαίνετε, τα Push Notifications για να σας έρθουν χρειάζεται η συσκευή να είναι συνδεδεμένη στο internet για να μπορούν οι servers της Apple να σας προωθήσουν τις ειδοποιήσεις. Προφανώς και αυτό μέχρι σήμερα ήταν πρόβλημα για εφαρμογές όπως αυτές για ToDo γιατί αν δεν είχατε internet ή ήσασταν κάπου με κακό σήμα δε μπορούσατε να ειδοποιηθείτε για μια εργασία που είχατε να κάνετε.
Αυτό το πρόβλημα έρχεται να λύσει αυτό το API. Πλέον κάποιες εφαρμογές μπορούν να θέσουν ένα εσωτερικό alarm μέσα στο λειτουργικό το οποίο θα αναλαμβάνει να “ξυπνήσει” την εφαρμογή σε προκαθορισμένο χρόνο ώστε να σας παρουσιάσει την ειδοποίηση που έχετε ορίσει. Ας πάρουμε για παράδειγμα μια εφαρμογή που μπορεί να σας ειδοποιεί πότε ξεκινάει μια ταινία που θέλετε να παρακολουθήσετε στην τηλεόραση. Πλέον αυτή η εφαρμογή δε χρειάζεται να στείλει την ειδοποίηση στην Apple και από εκεί να έρθει σε εσάς μέσω ίντερνετ. Το ίδιο το λειτουργικό θα αναλάβει να “ξυπνήσει” την εφαρμογή και να σας έρθει η ειδοποίηση.
6. Background Audio
Το iPod.app λειτουργούσε στο παρασκήνιο και μπορούσατε να ακούτε μουσική όσο πραγματοποιούσατε και άλλες εργασίες στο iPhone. Αυτή η δυνατότητα πριν το iOS 4.0 δεν ήταν διαθέσιμη για καμία άλλη εφαρμογή αναπαραγωγής μουσικής από το AppStore όπως το Pandora, το StremToMe ή εφαρμογές για Radio Streaming.
Με το iOS 4.0 όταν οι εφαρμογές αυτές ενσωματώσουν αυτό το API μπορούν να παίζουν μουσική όντας στο παρασκήνιο. Αυτό σημαίνει ότι ανοίγετε την εφαρμογή, βάζετε να ακούσετε μουσική και μπορείτε να απομακρυνθείτε από αυτή με το Home Button χωρίς να σταματήσει η αναπαραγωγή ήχου.
7. Location Services και GPS
Εδώ υπάρχουν δύο περιπτώσεις. Η πρώτη αφορά εφαρμογές πλοήγησης όπως το Navigon, το TomTom κλπ. Μέχρι σήμερα αν κάνατε πλοήγηση και δεχόσασταν μια κλήση ή για κάποιο λόγο έπρεπε να βγείτε από την εφαρμογή για να δείτε κάτι, η πλοήγηση σταματούσε και έπρεπε μετά να επανέλθετε στην εφαρμογή χειροκίνητα για να συνεχιστεί η πλοήγηση.
Με το iOS 4.0 αυτό αλλάζει. Οι εφαρμογές αυτές ενσωματώνοντας το κατάλληλο API μπορούν να τρέχουν στο παρασκήνιο. Αν λοιπόν έχετε ανοιχτή μια εφαρμογή για πλοήγηση και λάβετε μια κλήση ή χρειαστεί να βγείτε από αυτή για να κοιτάξετε κάτι, η εφαρμογή θα συνεχίσει να παρακολουθεί τη θέση σας και να σας δίνει φωνητικές οδηγίες.
Η δεύτερη κατηγορία εφαρμογών είναι κάποιες κυρίως από την κατηγορία Κοινωνικής Δικτύωσης που θέλουν να παρακολουθούν τη θέση σας για να ενημερώνουν το προφίλ σας κλπ. Επειδή αν σε αυτή την περίπτωση χρησιμοποιούν συνεχώς το GPS όσο είναι στο background η μπαταρία θα αδειάσει σε χρόνους ρεκόρ, αυτές οι εφαρμογές χρησιμοποιούν τις κεραίες κινητής τηλεφωνίας για να σας εντοπίσουν και να κάνουν τις απαιτούμενες ενημερώσεις. Όταν βρίσκονται στο παρασκήνιο και εσείς κινείστε λαμβάνουν ενημέρωση από το λειτουργικό ότι η συσκευή έχει συνδεθεί με άλλη κεραία, ξυπνούν, ενημερώνουν και επιστρέφουν σε παγωμένη κατάσταση.
Ας δούμε μερικά παραδείγματα…
Πώς το χρησιμοποιούμε;
Εδώ τώρα είναι το μεγάλο θέμα για τους περισσότερους. Πώς χρησιμοποιούμε το multitasking στο iPhone; Πώς κλείνουμε τις εφαρμογές; και άλλα..
Ανοίγουμε λοιπόν μια εφαρμογή, κάνουμε ότι έχουμε να κάνουμε και μετά την “κλείνουμε” πατώντας το Home Button. Η εφαρμογή όμως δεν κλείνει τελείως γιατί αν πατήσουμε δύο φορές το Home Button θα δούμε το App Switcher Bar και θα τη δούμε εκεί.
Το πώς συμπεριφέρεται μια εφαρμογή στο παρασκήνιο εξαρτάται από το τι APIs έχει ενσωματωμένα:
1. Fast App Switching
Αν η εφαρμογή χρησιμοποιεί αυτό το API τότε όταν τη στείλουμε στο παρασκήνιο απλά παγώνει εκεί που την αφήσαμε και όταν επιστρέψουμε σε αυτή αργότερα θα βρίσκεται σε εκείνο το σημείο
2. Task Completion
Ανοίγουμε μια εφαρμογή που χρησιμοποιεί αυτό το API, δίνουμε κάτι να ανεβάσει και πατάμε το Home Button και βγαίνουμε από αυτή. Πάει λοιπόν στο παρασκήνιο χωρίς να έχει παγώσει ακόμα. Ολοκληρώνει το uploading και μετά παγώνει.
3. VOIP
Ας υποθέσουμε ότι έχουμε το αναβαθμισμένο Skype που θα κυκλοφορήσει στις προσεχείς εβδομάδες. Το ανοίγουμε, κάνουμε login και μετά πατάμε το Home Button και βγαίνουμε από αυτό. Η εφαρμογή πάει στο παρασκήνιο αλλά φροντίζει να μας κρατάει logged in έτσι ώστε αν δεχτούμε κλήση VOIP ή μήνυμα, να ξυπνήσει και να μας ειδοποιήσει για να απαντήσουμε.
4. Push Notifications
Εφαρμογές που χρησιμοποιούν PN όταν είναι στο παρασκήνιο μένουν επί της ουσίας παγωμένες μέχρι να δεχτούν ειδοποίηση από τους servers της Apple. Τα Push Notifications λειτουργούν και έρχονται ακόμα και αν η εφαρμογή είναι εντελώς κλειστή και δεν είναι στο παρασκήνιο.
5. Local Notifications
Ισχύει ότι και πάνω. Η εφαρμογή στο παρασκήνιο μένει παγωμένη. Τα Local Notifications έρχονται ακόμα και όταν η εφαρμογή είναι εντελώς κλειστή. Δε χρειάζεται δηλαδή να είναι ντε και καλά στο παρασκήνιο για να μας ειδοποιήσει.
6. Background Audio
Ας υποθέσουμε ότι έχουμε μια εφαρμογή για radio streaming που προφανώς έχει αναβαθμιστεί και υποστηρίζει multitasking. Την ανοίγουμε και ξεκινάμε να ακούμε μουσική. Την κλείνουμε πατώντας το Home Button και συνεχίζουμε να εκτελούμε άλλες εργασίες στη συσκευή ενώ η μουσική συνεχίζει να παίζει. Στο παρασκήνιο λοιπόν η εφαρμογή λειτουργεί κάνοντας audio streaming. Αν επιστρέψουμε στην εφαρμογή και σταματήσουμε το streaming και ξαναπατήσουμε το Home Button η εφαρμογή πάει και πάλι στο παρασκήνιο αλλά πλέον είναι παγωμένη αφού δεν αναπαράγει μουσική.
7. Location Services – GPS
Περίπτωση 1η: Ανοίγουμε το TomTom που έχει αναβαθμιστεί και υποστηρίζει multitasking. Δίνουμε διεύθυνση για πλοήγηση και ξεκινάμε. Κατά τη διάρκεια της διαδρομής ο συνοδηγός θέλει να ελέγξει κάτι σε άλλη εφαρμογή. Πατάει το Home Button, η εφαρμογή πάει στο παρασκήνιο αλλά συνεχίζει να εντοπίζει τη θέση μας και να δίνει φωνητικές οδηγίες. Όταν επιστρέψουμε στην εφαρμογή ο χάρτης θα δείξει πού βρισκόμαστε εκείνη τη στιγμή χωρίς να έχει διακοπή η φωνητική πλοήγηση όσο η εφαρμογή ήταν στο παρασκήνιο. Προφανώς όταν γίνεται πλοήγηση ακόμα και με την εφαρμογή στο παρασκήνιο ακριβώς επειδή πρόκειται για λειτουργία GPS η κατανάλωση μπαταρίας είναι μεγάλη γι’ αυτό εδώ δεν αλλάζει το γεγονός ότι πρέπει να έχουμε τη συσκευή να φορτίζει από τον αναπτήρα του αυτοκινήτου. Φτάνουμε όμως στον προορισμό μας, τελειώνει η πλοήγηση και κλείνουμε την εφαρμογή με το Home Button. Η εφαρμογή τώρα είναι πάλι στο παρασκήνιο αλλά πλέον είναι παγωμένη αφού δεν κάνει πλοήγηση και άρα δεν παρακολουθεί τη θέση μας, οπότε δεν απασχολεί τον επεξεργαστή ούτε καταναλώνει μπαταρία.
Περίπτωση 2η: Εφαρμογές Κοινωνικής Δικτύωσης που θέλουν να ενημερώνουν το προφίλ μας για τη θέση μας. Εδώ ανοίγουμε την εφαρμογή, τη στέλνουμε στο παρασκήνιο και το λειτουργικό φροντίζει να την ξυπνάει στο παρασκήνιο όταν αλλάζουμε κεραία για να ανανεώσει τη θέση μας.
Και για το τέλος, το ζουμί της ιστορίας
Τα παραπάνω είναι πολύ πιθανόν να αφορούν ελάχιστους ή να φαίνονται άχρηστες πληροφορίες σε πολλούς. Κατανοώντας τα όμως θα καταλάβετε καλύτερα το ζουμί που ακολουθεί:
Όπως είπαμε παραπάνω, όταν πατάμε το Home Button όταν βρισκόμαστε σε μια εφαρμογή, αυτή πλέον δεν κλείνει όπως συνήθιζε μέχρι τώρα αλλά ανάλογα με τα APIs που έχει ενσωματωμένα καθορίζεται η συμπεριφορά της στο παρασκήνιο.
Για να δούμε τι εφαρμογές υπάρχουν στο παρασκήνιο πατάμε δύο φορές το Home Button ώστε να εμφανιστεί το App Switcher Bar:
Εκεί βλέπουμε αρχικά τις τέσσερις τελευταίες εφαρμογές που ανοίξαμε και οι οποίες βρίσκονται στο παρασκήνιο. Κάνοντας swiper από δεξιά προς τα αριστερά θα δούμε όλες τις υπόλοιπες.
Εδώ λοιπόν εμφανίστηκαν οι πρώτες απορίες…
Γιατί δεν υπάρχει κουμπί να τις κλείνω όλες μαζί;
Γιατί δεν χρειάζεται είναι η απάντηση. Είναι λάθος να βλέπουμε το App Switcher Bar ως Task Manager γιατί δεν είναι τέτοιος ο σκοπός του. Ναι, αν κρατήσετε πατημένη μια εφαρμογή θα αρχίσει να τρέμει και θα σας δώσει τη δυνατότητα να κλείσετε μια μια τις εφαρμογές που θέλετε αλλά ο σκοπός δεν είναι αυτός.
Το multitasking στο iPhone φτιάχτηκε με τέτοιο τρόπο ώστε να μη σας απασχολούν οι εφαρμογές που είναι στο παρασκήνιο γιατί δε σας τρώνε μπαταρία και δεν απασχολούν τον επεξεργαστή. Το λειτουργικό είναι αρκετά έξυπνο ώστε αν χρειαστεί πόρους να κλείσει αυτές που είναι ανενεργές πολύ καιρό. Πιστέψτε με, δε θα δείτε το 3GS σας ή το iPhone 4 να κολλάνε λόγω του multitasking.
Ωραία όλα αυτά, αλλά οι εφαρμογές που θέλω να χρησιμοποιήσω είναι πολύ πίσω και βλέπω μόνο τις τέσσερις πρώτες στην αρχή και πρέπει να κάνω scroll μέχρι να πάω εκεί που θέλω…
Και πάλι θεωρώ αυτό τον τρόπο λειτουργίας μη ενδεδειγμένο. Βλέπετε τις 4 τελευταίες εφαρμογές γιατί όταν πραγματικά κάνετε multitasking είναι λίγο δύσκολο να χρησιμοποιείτε ταυτόχρονα πάνω από 4 εφαρμογές. Όταν θέλετε να ανοίξετε μια εφαρμογή που τελευταία φορά εκτελέσατε πριν 24 ώρες είναι κουτό να ψάξετε να τη βρείτε στο App Switcher. Θα την ανοίξετε κανονικά από την επιφάνεια εργασίας και το εικονίδιό της και θα επανέλθει στο ίδο σημείο που θα έκανε ακόμα και για αν την επαναφέρατε από το App Switcher.
Και αφού δε χρειάζεται να κλείνω εφαρμογές, γιατί μου δίνει τη δυνατότητα αυτή αν κρατήσω πατημένη κάποια από αυτές;
Ας πούμε ότι δουλεύετε το Safari διαβάζοντας νέα, το IM+ μιλώντας με ένα φίλο, ακούτε μουσική από μια εφαρμογή για radio streaming και εν τω μεταξύ αποθηκεύεται φωτογραφίες που βρίσκετε στο Safari στη συσκευή. Εκείνη τη στιγμή στο App Switcher θα βλέπετε προφανώς αυτές τις 4 εφαρμογές: Το Radio, το IM+, το Safari και το Photos. Αν εκείνη τη στιγμή έρθει ένα email θα ανοίξετε το email και μετά θα προστεθεί στο App Switcher και αυτό στέλνοντας μια από τις 4 παραπάνω εφαρμογές στην επόμενη σελίδα. Η δυνατότητα του delete δίνεται ώστε να κλείσετε το Email στο συγκεκριμένο παράδειγμα για να επανέλθουν μπροστά σας οι 4 εφαρμογές που θέλετε.
Συμπέρασμα
Το multitasking φτιάχτηκε με τέτοιο τρόπο ώστε ακόμα και οι χρήστες που δεν έχουν χρησιμοποιήσει ποτέ στο παρελθόν smartphone να μη μπλέξουν με Task Managers και άλλα τέτοια. Μην αλλάζετε τον τρόπο που δουλεύατε. Δείτε το App Switcher καθαρά ως ένα τρόπο μετάβασης στις πρόσφατα χρησιμοποιημένες εφαρμογές όταν κάνετε κάποια δουλειά ταυτόχρονα σε πάνω από μια από αυτές.
Υ.Γ. Επειδή πλέον με το διπλό πάτημα του Home Button ανοίγει το App Switcher, όταν ακούτε μουσική το διπλό πάτημα δεν φέρνει μπροστά τα iPod Controls. Επαναφέρει πάλι το App Switcher. Αν κάνετε swipe από τα αριστερά στα δεξιά θα δείτε ένα widget για τον έλεγχο του iPod το οποίο παρεμπιπτόντως μεταμορφώνεται ανάλογα με την εφαρμογή που χρησιμοποιείτε για αναπαραγωγή ήχου.
[via] www.carpenoctum.gr
Τελευταία επεξεργασία από: DINFUN, 29/09/2010 - 23:53