Κλείσιμο διαφήμισης

Η Apple την περασμένη εβδομάδα παρουσίασε μεταξύ άλλων το νέο Apple TV με το λειτουργικό σύστημα tvOS. Το γεγονός ότι οι εφαρμογές από το App Store μπορούν να εγκατασταθούν στο νέο μαύρο κουτί σίγουρα έκανε τους προγραμματιστές πολύ χαρούμενους.

Οι προγραμματιστές έχουν δύο επιλογές. Μπορούν να γράψουν μια εγγενή εφαρμογή που έχει πλήρη πρόσβαση στο υλικό της Apple TV. Το διαθέσιμο SDK (σύνολο βιβλιοθηκών για προγραμματιστές) είναι πολύ παρόμοιο με αυτό που γνωρίζουν ήδη οι προγραμματιστές από το iPhone, το iPad και οι γλώσσες προγραμματισμού είναι οι ίδιες - Objective-C και η νεότερη Swift.

Αλλά για απλούστερες εφαρμογές, η Apple πρόσφερε στους προγραμματιστές μια δεύτερη επιλογή με τη μορφή TVML - Television Markup Language. Αν πιστεύετε ότι το όνομα TVML μοιάζει ύποπτα με HTML, έχετε δίκιο. Είναι πραγματικά μια γλώσσα σήμανσης που βασίζεται σε XML και μοιάζει πολύ με την HTML, μόνο που είναι πολύ πιο απλή και έχει πιο αυστηρή σύνταξη. Αλλά είναι απολύτως τέλειο για εφαρμογές όπως το Netflix. Και οι χρήστες θα επωφεληθούν επίσης, επειδή η αυστηρότητα του TVML θα κάνει τις εφαρμογές πολυμέσων να φαίνονται και να λειτουργούν σχεδόν το ίδιο.

Διαδρομή προς την πρώτη εφαρμογή

Έτσι το πρώτο πράγμα που έπρεπε να κάνω ήταν να κατεβάσω τη νέα έκδοση beta του περιβάλλοντος ανάπτυξης Xcode (η έκδοση 7.1 είναι διαθέσιμη εδώ). Αυτό μου έδωσε πρόσβαση στο tvOS SDK και μπόρεσα να ξεκινήσω ένα νέο έργο που στοχεύει ειδικά την τέταρτη γενιά Apple TV. Η εφαρμογή μπορεί να είναι μόνο tvOS ή ο κώδικας μπορεί να προστεθεί σε μια υπάρχουσα εφαρμογή iOS για να δημιουργήσει μια «καθολική» εφαρμογή – ένα μοντέλο παρόμοιο με τις εφαρμογές iPhone και iPad σήμερα.

Πρόβλημα πρώτο: Το Xcode προσφέρει μόνο τη δυνατότητα δημιουργίας εγγενούς εφαρμογής. Αλλά πολύ γρήγορα βρήκα μια ενότητα στην τεκμηρίωση που θα βοηθήσει τους προγραμματιστές να αλλάξουν αυτόν τον σκελετό και να τον προετοιμάσουν για το TVML. Βασικά, είναι μερικές γραμμές κώδικα στο Swift που, μόνο στο Apple TV, δημιουργούν ένα αντικείμενο πλήρους οθόνης και φορτώνουν το κύριο μέρος της εφαρμογής, το οποίο είναι ήδη γραμμένο σε JavaScript.

Πρόβλημα δεύτερο: Οι εφαρμογές TVML μοιάζουν πραγματικά πολύ με μια ιστοσελίδα, και επομένως όλος ο κώδικας φορτώνεται από το Διαδίκτυο. Η ίδια η εφαρμογή είναι στην πραγματικότητα απλώς ένας "bootloader", περιέχει μόνο έναν ελάχιστο κώδικα και τα πιο βασικά γραφικά στοιχεία (εικονίδιο εφαρμογής και παρόμοια). Στο τέλος, έβαλα με επιτυχία τον κύριο κώδικα JavaScript απευθείας στην εφαρμογή και είχα τη δυνατότητα να εμφανίσω τουλάχιστον ένα προσαρμοσμένο μήνυμα σφάλματος όταν το Apple TV δεν είναι συνδεδεμένο στο Διαδίκτυο.

Το τρίτο μικρό πρόβλημα: το iOS 9 και μαζί του το tvOS απαιτούν αυστηρά όλη η επικοινωνία προς το Διαδίκτυο να πραγματοποιείται κρυπτογραφημένη μέσω HTTPS. Αυτή είναι μια δυνατότητα που εισήχθη στο iOS 9 για όλες τις εφαρμογές και ο λόγος είναι η πίεση στο απόρρητο των χρηστών και την ασφάλεια των δεδομένων. Επομένως, θα είναι απαραίτητο να αναπτύξετε ένα πιστοποιητικό SSL στον διακομιστή ιστού. Μπορεί να αγοραστεί για μόλις 5 $ (120 κορώνες) ετησίως ή μπορείτε να χρησιμοποιήσετε, για παράδειγμα, την υπηρεσία CloudFlare, η οποία θα φροντίζει μόνο του το HTTPS, αυτόματα και χωρίς επένδυση. Η δεύτερη επιλογή είναι να απενεργοποιήσετε αυτόν τον περιορισμό για την εφαρμογή, κάτι που είναι εφικτό προς το παρόν, αλλά σίγουρα δεν θα το συνιστούσα.

Μετά από μερικές ώρες ανάγνωσης της τεκμηρίωσης, όπου εξακολουθούν να υπάρχουν περιστασιακά μικρά λάθη, έφτιαξα μια πολύ βασική αλλά λειτουργική εφαρμογή. Εμφάνιζε το δημοφιλές κείμενο "Hello World" και δύο κουμπιά. Πέρασα περίπου δύο ώρες προσπαθώντας να κάνω το κουμπί να είναι ενεργό και να κάνω κάτι πραγματικά. Αλλά λαμβάνοντας υπόψη τις πρώτες πρωινές ώρες, προτίμησα να πάω για ύπνο… και αυτό ήταν καλό.

Τις προάλλες, είχα τη φαεινή ιδέα να κατεβάσω ένα έτοιμο δείγμα εφαρμογής TVML απευθείας από την Apple. Βρήκα αυτό που έψαχνα πολύ γρήγορα στον κώδικα και το κουμπί ήταν ζωντανό και λειτουργούσε. Μεταξύ άλλων, ανακάλυψα και τα δύο πρώτα μέρη του tutorial του tvOS στο Διαδίκτυο. Και οι δύο πόροι βοήθησαν πολύ, έτσι ξεκίνησα ένα νέο έργο και ξεκίνησα την πρώτη μου πραγματική εφαρμογή.

Πρώτη πραγματική εφαρμογή

Ξεκίνησα εντελώς από την αρχή, την πρώτη σελίδα TVML. Το πλεονέκτημα είναι ότι η Apple έχει ετοιμάσει 18 έτοιμα πρότυπα TVML για προγραμματιστές που πρέπει απλώς να αντιγραφούν από την τεκμηρίωση. Η επεξεργασία ενός προτύπου χρειάστηκε περίπου μία ώρα, κυρίως επειδή ετοίμαζα το API μας για να στείλω το έτοιμο TVML με όλα τα απαραίτητα δεδομένα στο Apple TV.

Το δεύτερο πρότυπο κράτησε μόνο περίπου 10 λεπτά. Έχω προσθέσει δύο JavaScript - ο περισσότερος κώδικας σε αυτά προέρχεται απευθείας από την Apple, οπότε γιατί να ανακαλύψουμε ξανά τον τροχό. Η Apple έχει ετοιμάσει σενάρια που φροντίζουν για τη φόρτωση και την εμφάνιση προτύπων TVML, συμπεριλαμβανομένης της προτεινόμενης ένδειξης φόρτωσης περιεχομένου και της εμφάνισης πιθανών σφαλμάτων.

Σε λιγότερο από δύο ώρες, κατάφερα να δημιουργήσω μια πολύ γυμνή, αλλά λειτουργική εφαρμογή PLAY.CZ. Μπορεί να εμφανίσει μια λίστα ραδιοφωνικών σταθμών, μπορεί να τη φιλτράρει ανά είδος και μπορεί να ξεκινήσει το ραδιόφωνο. Ναι, πολλά πράγματα δεν υπάρχουν στην εφαρμογή, αλλά τα βασικά λειτουργούν.

[youtube id=”kLKvWC-rj7Q” width=”620″ ύψος=”360″]

Το πλεονέκτημα είναι ότι η εφαρμογή ουσιαστικά δεν είναι τίποτα άλλο από μια ειδική έκδοση του ιστότοπου, η οποία υποστηρίζεται από JavaScript και μπορείτε επίσης να χρησιμοποιήσετε CSS για να τροποποιήσετε την εμφάνιση.

Η Apple χρειάζεται ακόμα μερικά πράγματα για να προετοιμαστεί. Το εικονίδιο της εφαρμογής δεν είναι ένα, αλλά δύο - μικρότερο και μεγαλύτερο. Η καινοτομία είναι ότι το εικονίδιο δεν είναι μια απλή εικόνα, αλλά περιέχει ένα εφέ παράλλαξης και αποτελείται από 2 έως 5 επίπεδα (φόντο, αντικείμενα στη μέση και πρώτο πλάνο). Όλες οι ενεργές εικόνες σε όλη την εφαρμογή μπορούν να περιέχουν το ίδιο εφέ.

Κάθε στρώμα είναι στην πραγματικότητα απλώς μια εικόνα σε διαφανές φόντο. Η Apple έχει ετοιμάσει τη δική της εφαρμογή για τη μεταγλώττιση αυτών των πολυεπίπεδων εικόνων και υπόσχεται να κυκλοφορήσει σύντομα μια προσθήκη εξαγωγής για το Adobe Photoshop.

Μια άλλη απαίτηση είναι μια εικόνα "Top Shelf". Εάν ο χρήστης τοποθετεί την εφαρμογή σε εμφανή θέση στην επάνω σειρά (στο επάνω ράφι), η εφαρμογή πρέπει επίσης να παρέχει περιεχόμενο για την επιφάνεια εργασίας πάνω από τη λίστα εφαρμογών. Μπορεί να υπάρχει είτε απλώς μια απλή εικόνα είτε μπορεί να είναι μια ενεργή περιοχή, για παράδειγμα με μια λίστα αγαπημένων ταινιών ή, στην περίπτωσή μας, ραδιοφωνικούς σταθμούς.

Πολλοί προγραμματιστές μόλις αρχίζουν να εξερευνούν τις δυνατότητες του νέου tvOS. Τα καλά νέα είναι ότι η σύνταξη μιας εφαρμογής περιεχομένου είναι πολύ εύκολη και η Apple έχει κάνει πολύ δρόμο για τους προγραμματιστές με το TVML. Η δημιουργία μιας εφαρμογής (για παράδειγμα PLAY.CZ ή iVyszílő) θα πρέπει να είναι εύκολη και γρήγορη. Υπάρχει μεγάλη πιθανότητα ένας μεγάλος αριθμός εφαρμογών να είναι έτοιμες την ίδια στιγμή που θα κυκλοφορήσει το νέο Apple TV.

Η σύνταξη μιας εγγενούς εφαρμογής ή η μεταφορά ενός παιχνιδιού από το iOS στο tvOS θα είναι πιο δύσκολη, αλλά όχι πολύ. Το μεγαλύτερο εμπόδιο θα είναι τα διαφορετικά χειριστήρια και το όριο 200 MB ανά εφαρμογή. Μια εγγενής εφαρμογή μπορεί να κατεβάσει μόνο ένα περιορισμένο μέρος των δεδομένων από το κατάστημα και όλα τα άλλα πρέπει να ληφθούν επιπλέον και δεν υπάρχει καμία εγγύηση ότι το σύστημα δεν θα διαγράψει αυτά τα δεδομένα. Ωστόσο, οι προγραμματιστές σίγουρα θα αντιμετωπίσουν αυτόν τον περιορισμό γρήγορα, επίσης χάρη στη διαθεσιμότητα ενός συνόλου εργαλείων που ονομάζεται "App Thinning", τα οποία αποτελούν επίσης μέρος του iOS 9.

Θέματα: , ,
.