ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ



Σχετικά έγγραφα
Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Οδηγός Χρήσης Microsoft Office365 & OneDrive for Business Πανεπιστημίου Κύπρου

Οδηγός Χρήσης Microsoft Office365 & OneDrive for Business Πανεπιστημίου Κύπρου

Samsung PC Studio 3.0 Οδηγός χρήστη

Επιμέλεια: Μαργαρίτα Ρουγγέρη Επιβλέπων: Γεώργιος Στυλιαράς Πληροφορική Πολυμέσα ΓΤΠ61 4 η Εργασία 2011

ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΩΝ ΓΙΑ TABLET Η SMART PHONES (ANDROID, IOS)

Χρήση της αναπαραγωγής ipod

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ

Smartphones και πολυμέσα

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R209-Z

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

Ξεκινώντας NSZ-GS7. Network Media Player. Οι εικόνες επί της οθόνης, οι λειτουργίες και οι προδιαγραφές μπορεί να αλλάξουν χωρίς προειδοποίηση.

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας

Εισαγωγή Επαφών από την κάρτα SIM

Κοιτάζοντας Πιο Λεπτομερώς. Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R207

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

ANDROID Προγραμματισμός Εφαρμογών

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Ανάπτυξη εφαρμογής ηλεκτρονικού πίνακα ανακοινώσεων για φορητή συσκευή

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Εγχειρίδιο Χρήστη. AirPrint

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

Στερεοφωνικό μικρόφωνο STM10

Οδηγός χρήσης Connection Manager

CHEVROLET MYLINK. Συνοπτικός οδηγός

Υποστήριξη. Σας ευχαριστούμε που επιλέξατε τα προϊόντα NETGEAR.

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Υπηρεσία διαμοιρασμού αρχείων

Εφαρμογές & Υπηρεσίες Του Κινητού Τηλεφώνου Και Οι Χρήσεις Του Από τους Νέους

ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ

Οδηγός γρήγορης εγκατάστασης. (Για Windows και MAC) Ασύρματη κάμερα IP HD περιστροφής / κλισης για εσωτερικούς χώρους v3.14

Internet 1. Ρυθµίσεις ικτύου Η MID διαθέτει ενσωµατωµένο Wi-Fi module. Κάντε κλικ στο, στο µενού ρυθµίσεων θα εµφανιστεί στο MID.

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 INTERNET PHONE

Οδηγός Σύνδεσης (για Φωτογραφικές Μηχανές D-SLR)

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ COSMOTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

Μάθημα 4ο. Προγράμματα

Κεφάλαιο 4: Λογισμικό Συστήματος

Χρήση του Office 365 σε τηλέφωνο Android

Ενημέρωση σε Windows 8.1 από τα Windows 8

Οδηγός γρήγορης εκκίνησης

LASERJET ENTERPRISE FLOW MFP. Συνοπτικές οδηγίες χρήσης M525

Εφαρμογή GN Hearing - εγχειρίδιο χρήστη

Δομή. 1 Πλήκτρα αυξομείωσης έντασης ήχου 7 Ηχεία 2 Θύρα Φόρτιση. 8 Πλήκτρο Home 3 Θύρα MicroUSB. 9 Είσοδος Κάρτας SD. 6 Μπροστινή κάμερα

«DIGITAL STORY TELLING» PROJECT

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ COSMOTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

MASTER-MID GPS. Εγχειρίδιο. Mobility, Versatility, Flexibility MT7000

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

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

Συσκευές δείκτη και πληκτρολόγιο Οδηγός χρήσης

Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤ ΚΟ 1/53

Οδηγός γρήγορης έναρξης

1. Κατάλογος συσκευασίας

ΕΝΑΡΞΗ ΜΕ DJCONTROL COMPACT ΚΑΙ DJUCED 18

Χρήση του Office 365 σε iphone ή ipad

Οδηγός χρήστη. Xperia SmartTags NT1/NT2

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Ενημερώσεις λογισμικού Οδηγός χρήσης

Εγχειρίδιο Ζωντανών Μεταδόσεων Υπηρεσιών Βίντεο. Πανεπιστημίου Κρήτης. Εγχειρίδιο τεχνικού μετάδοσης

BlackBerry Internet Service. Οδηγός χρήστη

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Κινητή Τηλεφωνία

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

Vodafone Business Connect

Εφαρμογές Πληροφορικής Διαχείριση Αρχείων Η έννοια του αρχείου, βασικές έννοιες διαχείρισης αρχείων.

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης

Κεφάλαιο 2.3: Ρυθμίσεις των Windows


Προβολέας DLP. Εγχειρίδιο Πολυμέσων

Εγχειρίδιο Χρήσης V3.0

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση

Οδηγίες Χρήσης Εφαρμογής

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

ΕΠΛ : Εισαγωγή στην Επιστήμη της Πληροφορικής Σημειώσεις Εργαστηρίων (2009)

Οδηγίες Χρήσεως Ψηφιακού Αποθετηρίου Ιστοριών στην Ελληνική Νοηματική Γλώσσα (ΕΝΓ)

MΠΑΤΑΡΙΑ ΚΑΛΩΔΙΟ USB

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

Δουλεύοντας με τον Ήχο Πώς να ηχογραφήσετε με διαφορετικές συσκευές

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΩΤΑΠΑΝΤΗΣΕΙΣ

LASERJET ENTERPRISE MFP. Συνοπτικές οδηγίες χρήσης

1. Κατάλογος συσκευασίας

Επίλεξε το Πρόγραμμα που θες. 2play. 2play. 2play. 2play. 2play. 2play. 2play. 2play. 3play

Να αποθηκεύουμε και να ξανανοίγουμε αρχεία σε περιβάλλον Windows. Να ξεχωρίζουμε τα συστατικά (αρχεία, φακέλους κλπ.) ενός δίσκου

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Google Apps για το Office 365 για επιχειρήσεις

ΜΑΘΗΜΑ1 ΥΛΙΚΟ (HARDWARE)

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Λίστες Μουσικής (Playlists) σε φορητές συσκευές» Φράγκης Γεώργιος ΑΕΜ:1023 Επιβλέπων Καθηγητής: Πολίτης Διονύσιος Θεσσαλονίκη, Ιούνιος 2012

Ευχαριστίες Η εργασία αυτή αποτελεί την πτυχιακή εργασία του Φράγκη Γεώργιου και εκπονήθηκε στα πλαίσια του προπτυχιακού προγράμματος σπουδών του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Η εκπόνησή της πραγματοποιήθηκε το ακαδημαϊκό έτος 2011-2012. Θα ήθελα να ευχαριστήσω θερμά τον επιβλέποντα την πτυχιακή μου εργασία, επίκουρο καθηγητή του Τμήματος Πληροφορικής ΑΠΘ, κ. Διονύσιο Πολίτη, για την πολύτιμη καθοδήγησή του και την άριστη συνεργασία κατά την πραγματοποίηση της εργασίας αυτής Θεσσαλονίκη, 2012. [1]

Περιεχόμενα Πρόλογος 4 1) Τι είναι τα smartphones 6 2) IPhone 2G - ios version 1.0 8 3) iphone 3GS - ios version 3.0 13 4) iphone 3GS - ios version 3.0 15 5) iphone 4 - ios version 4..17 6) Το σύστημα αρχείων του ios.21 6.1) Το HFS (Hierarchical File System).21 6.2) Το HFS Plus.24 7) Android 27 8) Η εφραμογή My Playlist Maker..28 9) Αναπαραγωγή των playlist με χρήση του POWERAP 38 10) Η γλώσσα σήμανσης XML 57 11) Δημιουργία των XML λιστών.58 12) Ανάκτηση δεδομένων από τις xml λίστες με χρήση του XPath.60 13) Τα HTML αρχεία..62 14) Ανάλυση του αρχείου playlist1.html.63 15) Ανάλυση του αρχείου playlist2.html.70 16) Ανάλυση του αρχείου result.html..70 17) Ανάλυση του αρχείου index.html 73 18) Ανάλυση του αρχείου style.css.74 [2]

19) Παράρτημα 77 20) Βιβλιογραφία.123 [3]

Πρόλογος Στην πτυχιακή εργασία αυτή γίνεται μία εκτενής έρευνα πάνω στις μουσικές λίστες αναπαραγωγής σε φορητές συσκευές. Στις μέρες μας, χρησιμοποιούμε όλο ένα και περισσότερο διαφόρων ειδών φορητές συσκευές για αναπαραγωγή μουσικής. Πιο συγκεκριμένα, λαμβάνοντας υπόψη μας τα ευρέως διαδομένα σε όλες τις αναπτυγμένες αγορές smartphones και το γεγονός ότι αποτελούν φορητές συσκευές με αρκετά μεγάλο χώρο αποθήκευσης, θα προσπαθήσουμε να αποδείξουμε ότι ευσταθεί η προηγούμενη δήλωσή μας. Η εργασία χωρίζεται σε τρία μέρη: Α) Στο πρώτο μέρος της εργασίας γίνεται μια ανάλυση της συσκευής iphone της Apple Inc. και των δυνατοτήτων της. Ξεκινώντας από την πρώτη συσκευή που κυκλοφόρησε η εταιρία με την επωνυμία iphone, αναλύουμε την εξέλιξη της συσκευής και του λειτουργικού συστήματος που αυτή χρησιμοποίει, το ios, επικεντρώνοντας στις δυνατότητες που μας δίνει το λειτουργικό σύστημα. Στη συνέχεια γίνεται μία λεπτομερής περιγραφή του συστήματος αρχείων που χρησιμοποίει το ios (Hierarchical File System). Τέλος, κάνουμε μία αναφορά στον μεγάλο ανταγωνιστή της Apple και του ios στο Android της εταιρίας Google. Β) Στο δεύτερο κομμάτι της εργασίας χρησιμοποιήσαμε ένα smartphone με Android λειτουργικό σύστημα, το Sony Ericsson Xperia mini Pro, με σκοπό να αναδείξουμε τη δυνατότητα δημιουργίας και αναπαραγωγής μουσικών λιστών χρησιμοποιώντας την παραπάνω συσκευή. Για το λόγο αυτό κατεβάσαμε και εγκαταστήσαμε στη συσκευή από το Google Play Store δυο εφαρμογές: την My Playlist Maker για δημιουργία λιστών αναπαραγωγής και τον player POWERAMP για την αναπαραγωγή των λιστών. Αναδείξαμε τις δυνατότητες που έχει ο χρήστης όσον αφορά την δημιουργία, αναπαραγωγή και επεξεργασία των μουσικών λιστών αλλά και την ευελιξία που υπάρχει στο να μεταπηδάει από τη μία λίστα στην άλλη. Γ) Στο τρίτο και τελευταίο μέρος της εργασίας δημιουργήσαμε χρησιμοποιώντας τη γλώσσα σήμανσης XML (Extensive Markup Language), δύο λίστες με πληροφορίες για μουσικά κομμάτια (playlisa.xml, playlistb.xml). Στη συνέχεια κάναμε ανάκτηση [4]

και παρουσίαση των δεδομένων που περιείχαν οι δύο αυτές λίστες και δημιουργήσαμε μία τρίτη χρησιμοποιώντας τα δεδομένα από τις δύο αρχικές. Η ανάκτηση και παρουσίαση των δεδομένων έγινε με χρήση τεσσάρων html αρχείων (index.html, playlist1.html, playlist.2 html, result.html) και ενός αρχείου μορφοποίησης style.css. Το αποτέλεσμα φαίνεται μόλις κάποιος επισκεφτεί τη διεύθυνση www.blueweaver.gr. [5]

Τι είναι τα smartphones Τι είναι τα smartphones; Είναι μια ερώτηση που θα μπορούσε να ισχυριστεί κανείς ότι δεν έχει συγκεκριμένη απάντηση καθώς δεν υπάρχει κάποιος επίσημος επιστημονικός ορισμός για το τι είναι ένα smartphone («έξυπνο τηλέφωνο»). Στις μέρες μας τα κινητά τηλέφωνα χωρίζονται γενικά σε δύο βασικές κατηγορίες: τα smartphones και τα feature-phones τα οποία θεωρούνται οι πρόγονοι των smartphones. Ένα smartphone είναι ένα κινητό τηλέφωνο υψηλής τεχνολογίας, που συνδυάζει τις λειτουργίες ενός PDA (Personal Digital Assistant) και ενός συμβατικού κινητού τηλεφώνου [1]. Επιπλέον οι συσκευές αυτές προφέρουν δυνατότητα αναπαραγωγής πολυμέσων (ήχος, video, εικόνα), διαθέτουν οθόνες αφής υψηλής ανάλυσης, gps και χάρτες για πλοήγηση, QWERTY πληκτρολόγιο(πραγματικό ή εικονικό), δυνατότητα σύνδεσης σε ασύρματα δίκτυα μέσω wi-fi και λογισμικό για περιήγηση στο διαδίκτυο (web browser) που υποστηρίζει τις υπηρεσίες που προσφέρει στις μέρες μας το web 2.0. Όλα τα παραπάνω είναι χαρακτηριστικά που κατά κάποιο τρόπο καθορίζουν το τι είναι ένα smartphone και το διαφοροποιούν σε σχέση με το χαμηλότερης τεχνολογίας, υπολογιστικής ικανότητας και συνδεσιμότητας πρόγονό του το feature phone, παρά το γεγονός ότι δεν υπάρχει κάποιος επίσημος ορισμός για το ποια είναι η διαφορά τους. Το κάθε smartphone έχει εγκατεστημένο στη μνήμη του ένα από τα διάφορα ειδικά διαμορφωμένα λειτουργικά συστήματα για κινητά τηλέφωνα (mobile operating systems) που υπάρχουν στις μέρες μας. Τα πιο δημοφιλή από αυτά είναι: α)το ios της Apple,το οποίο χρησιμοποιείται στο iphone, β) τo Anrdoid της Google που χρησιμοποιούν στις συσκευές τους εταιρίες όπως η HTC, η Samsung, η Sony Ericsson κ.α., γ) το Windows Phone της Microsoft που πρόσφατα έκανε την επανεμφάνιση του σε συσκευή της Nokia και δ) το BlackBerry OS της RIM που χρησιμοποιεί η RIM στις συσκευές της. Κάπου εδώ θα πρέπει να μνημονεύσουμε και το λειτουργικό σύστημα Symbian OS, το οποίο χρησιμοποιούσε η Nokia σε συσκευές της από το 2000 και πρόσφατα αντικατέστησε με το καινούριο Windows Phone 7.5 Mango. Στις εικόνες 1-4 φαίνονται μερικές συσκευές smartphone. [6]

Pro Εικ.1 : Το Samsung Galaxy S2 Eικ.2 : Το Sony Ericsson Xperia Mini Εικ.3 : Το Blackberry Bond Εικ.4 : Το πρώτο iphone Υπάρχουν και άλλα λειτουργικά συστήματα όπως τα Maemo και MeeGo που είναι βασισμένα στα Linux, άλλα και το Bada της Samsung που όμως δεν κατάφεραν ποτέ να αποκτήσουν υποστηρικτές όπως τα προηγούμενα που αναφέραμε. Όλα αυτά τα λειτουργικά συστήματα μπορούν να εγκατασταθούν σε πολλά διαφορετικά μοντέλα και συσκευές διαφόρων εταιριών και κάθε συσκευή με τη σειρά της μπορεί να δεχθεί πολλαπλές ενημερώσεις (updates) που να αφορούν το λειτουργικό σύστημα. Επιπλέον, έχουν τη δυνατότητα να «τρέξουν» εφαρμογές τρίτων (third-party applications) χρησιμοποιώντας προηγμένες διεπαφές εφαρμογών προγραμματισμού (Application Programming Interface, API) γεγονός που άλλαξε [7]

τελείως το τοπίο στο χώρο των τηλεπικοινωνιών και ειδικότερα της κινητής τηλεφωνίας. iphone 2G - ios version 1.0 Στις 29 Ιουνίου 2007 η Apple κυκλοφόρησε το πρώτο iphone, το Apple iphone 2G (εικ.4). Από εκείνη τη μέρα μέχρι και σήμερα η Apple κυκλοφόρησε άλλες 4 εκδόσεις του iphone, με την πιο πρόσφατη να είναι το Apple iphone 4S (εικ.5). Εικ.5 : Το iphone 4S Η αρχή των πραγμάτων για την Apple παρόλα αυτά τοποθετείτε κάπου στο 1988, όταν και άρχισε να αναπτύσσει το Newton, μία συσκευή που θα μπορούσε να χαρακτηριστεί ως πρόγονος των σημερινών PDA. To πρώτο Newton κυκλοφόρησε τον Αύγουστο του 1993 με την επωνυμία MessagePad 100 και το τελευταίο το Νοέμβριο του 1997 με την επωνυμία MessagePad 2100. Μέσα σ αυτά τα 4 χρόνια η Apple κυκλοφόρησε 6 συνολικά μοντέλα της σειράς Newton τα οποία «φορούσαν» ARM Processor, με την ταχύτητα του ρολογιού (clock speed) να πιάνει συχνότητες από 20-162 MHz και δικό τους λειτουργικό σύστημα το NewtonOS. Είχε οθόνη αφής με χρήση γραφίδας (stylus), δυνατότητα αναγνώρισης γραφής, χαρακτηριστικό ιδιαίτερα πρωτοποριακό για την εποχή του, ημερολόγιο, επαφές και σημειώσεις. Παρόλα αυτά το Newton ποτέ δεν κατάφερε να τραβήξει την προσοχή του κοινού και έμεινε στη σκιά των PalmPilots που κυκλοφόρησαν την ίδια περίοδο και οδηγούσαν την κούρσα στις πωλήσεις στον χώρο των PDA [2]. [8]

Με την επιστροφή του Steve Jobs το 1997, η Apple σταματάει την παραγωγή του Newton και επικεντρώνεται στην ανάπτυξη καινούριων τεχνολογιών. Σαν αποτέλεσμα στρέφεται στο ipod (εικ.6), το οποίο αρχικά είχε τις δυνατότητες ενός PDA, αποθήκευση επαφών, ημερολόγιο, σημειώσεις και στη συνέχεια δυνατότητα διαχείρισης, αναπαραγωγής και ανταλλαγής πολυμέσων (εικόνα, ήχος, video), μέσω μιας πλατφόρμας που κάνει την παρθενική της εμφάνιση το itunes. Εικ.6 : Οι «οικογένεια» ipod Στην αρχή το ipod είχε δυνατότητα συγχρονισμού μόνο με Mac μέσω FireWire γεγονός που προκάλεσε την αντίδραση των χρηστών Windows και ανάγκασε την Apple να το αλλάξει με USB. Οι πωλήσεις του ipod εκτινάχτηκαν στα ύψη, πάνω από 300 εκατομ. παγκοσμίως, και η Apple επισήμως είχε αναστηθεί [2]. Το ipod αποτελεί την αφετηρία για τα μεταγενέστερα iphone και ipad. Άλλαξε την αντίληψη του κόσμου όσον αφορά τα πολυμέσα αλλά και την άποψή του για τους υπολογιστές και γενικότερα τα προϊόντα της Apple [2]. Στη συνέχεια η Apple χρησιμοποίησε τα πλεονεκτήματα και τις «εμπειρίες» που κέρδισε από το ipod και στράφηκε στο χώρο της κινητής τηλεφωνίας. Το 2005 σε συνεργασία με την Motorola η Apple κυκλοφόρησε το ROCKR (εικ.7). Ήταν το πρώτο κινητό τηλέφωνο που είχε εγκατεστημένο το itunes. Ένα χρόνο αργότερα όμως, το 2006, σταμάτησε να υποστηρίζει το ROCKR με το itunes. Kάπου εδώ φτάνουμε στην κυκλοφορία του Apple iphone 2G, το οποίο χρησιμοποιούσε δίκτυο κινητής τηλεφωνίας δεύτερης γενιάς ενώ παράλληλα την [9]

802.11 τεχνολογία για ασύρματη επικοινωνία. Διέθετε Bluetooth για αξεσουάρ όπως τα hands-free ακουστικά και για μεταφορά δεδομένων. Η πρώτη έκδοση κυκλοφόρησε με 4GB εσωτερική μνήμη (internal storage) και αργότερα το Σεπτέμβριο του 2007 κυκλοφόρησαν εκδόσεις των 8GB και 16GB. Το λειτουργικό του Apple iphone 2G ήταν το Apple iphone OS version 1.0. Επανάσταση για την Apple άλλα και γενικότερα στο χώρο της κινητής τηλεφωνίας αποτελεί η MultiTouch μέθοδος εισαγωγής δεδομένων μέσω της οθόνης αφής με το οποίο ήταν εξοπλισμένο το iphone. Εικ.7 : Το Motorola ROCKR Οι κύριες λειτουργίες του iphone2g δεν αφορούσαν το δίκτυο κινητής τηλεφωνίας που χρησιμοποιούσε, αλλά την δυνατότητα πρόσβασης στο διαδίκτυο, το e-mail και διάφορες άλλες κλασικές λειτουργίες ενός PDA. Ακόμα, είχε πρόσβαση μέσω εφαρμογών στο YouTube και στο itunes. Ήταν ξεκάθαρα κατασκευασμένο από την Apple ως μία συσκευή πολλαπλών εφαρμογών και όχι απλά ένα κινητό τηλέφωνο[2]. Το Apple iphone 2G χρησιμοποιούσε εφαρμογές αλλά όχι με την μορφή που τις ξέρουμε σήμερα καθώς τότε δεν υπήρχε το γνωστό σε όλους μας AppStore. Την περίοδο του iphone OS 1.0 η Apple δημιούργησε τις web applications (εφαρμογές δικτύου). Δεν ήταν τίποτα παραπάνω από links (συνδέσμους) σε σελίδες στο διαδίκτυο που έτρεχαν κάποια συγκεκριμένη λειτουργία. Ήτανε κατασκευασμένες στα πρότυπα των widgets που υπήρχαν ήδη στα Mac και υπήρχαν οι εξής [10]

κατηγορίες: Calculate (Υπολογισμός), Entertainment (Διασκέδαση), Games (Παιχνίδια), Productivity (Παραγωγικότητα), Search Tools (Εργαλεία Αναζήτησης), Sports (Παιχνίδια), Travel (Ταξίδια), Utilities (Υπηρεσίες), Weather (Καιρός). Ο χρήστης είχε πρόσβαση στις web apps μέσω του Safari και στην αρχική οθόνη του iphone. Δεν ενεργοποιούσαν κανένα δεδομένο αποθηκευμένο στο τηλέφωνο παρά μόνο το εικονίδιο στην οθόνη και το αντίστοιχο hyperlink. Αυτές οι εφαρμογές υπάρχουν ακόμα και κάποιες εξελίσσονται ακόμα. Τα νούμερα βέβαια δεν συγκρίνονται με αυτά που βλέπουμε σήμερα στο AppStore αλλά σίγουρα οι web apps είναι ο πρόγονος των σημερινών εφαρμογών. Το λειτουργικό σύστημα που χρησιμοποιούσε το iphone εξ αρχής είναι το ios, με την πρώτη έκδοση, την οποία είχε το Apple iphone2g, να είναι το ios version 1.0 και η τελευταία, που χρησιμοποιεί στις μέρες μας το iphone4s, να είναι το ios version 5.0. To ios 1.0 προσέφερε στους χρήστες iphone2g τις ακόλουθες εφαρμογές: SMS (Short Message System) Ημερολόγιο (Calendar) Φωτογραφίες (Photos) Βιντεοκάμερα (Camera) YouTube Αποθέματα (Stocks) Χάρτες (Maps) Καιρός (Weather) Σημειώσεις (Notes) Ρολόι (Clock) Αριθμομηχανή (Calculator) Ρυθμίσεις (Settings) itunes Τηλέφωνο (Phone) Αλληλογραφία (Mail) Safari (web browser) ipod [11]

Ας εξετάσουμε τώρα το περιβάλλον εργασίας του χρήστη (User Interface-UI) στο iphone2g. Στην εικόνα που ακολουθεί (εικ.8) φαίνεται η αρχική οθόνη (home screen). Εικ.8 : Η αρχική οθόνη του Apple iphone2g Στο επάνω τμήμα της οθόνης διακρίνουμε ένα status bar στο οποίο εμφανίζονται εικονίδια που υποδεικνύουν ξεκινώντας από τα αριστερά την ισχύ του σήματος του δικτύου, τον τύπο του δικτύου, ένα εικονίδιο που αφόρα το Bluetooth και δείχνει εάν είναι ενεργό ή όχι και ένα εικονίδιο για την κατάσταση της μπαταρίας. Ακριβώς μετά το status bar ξεκινάει το κυρίως μέρος της αρχικής οθόνης που περιλαμβάνει τα εικονίδια των εφαρμογών και έχει δυνατότητα κύλισης δεξιά και αριστερά σε άλλες οθόνες. Στην ουσία υπάρχουν πολλές διαφορετικές οθόνες στη σειρά με το πολύ 16 εφαρμογές η καθεμία. Το κάτω μέρος της οθόνης είναι το «dock», στο οποίο είναι «καρφιτσωμένα» 4 εικονίδια για τις εξής εφαρμογές: α) Τηλέφωνο (Phone) β) Αλληλογραφία (Mail) γ) Safari (web browser) και δ) ipod. Αρχικά δεν υπήρχε δυνατότητα αλλαγής αυτών των εικονιδίων στο «dock», αλλά μεταγενέστερες εκδόσεις του ios επιτρέπουν στο χρήστη να τοποθετήσει οποιαδήποτε εφαρμογή επιθυμεί. Μέσα σε όλα αυτά τα χρόνια, από το 2007 μέχρι και το 2011, ακολούθησαν πολλές επανεκδόσεις του ios οι οποίες συμβάδιζαν με την κυκλοφορία των συσκευών και [12]

όχι μόνο. Οι κύριες εκδόσεις του ios ήταν αυτές που ακολουθούσαν την κυκλοφορία των νέων συσκευών π.χ., το Apple iphone3g χρησιμοποίησε το ios version 2.0, το Apple iphone3g(s) κυκλοφόρησε με το ios version 3.0 κ.ο.κ. Με λίγα λόγια κάθε καινούρια συσκευή κυκλοφορούσε με μία καινούρια έκδοση του ios. Για κάθε έκδοση του ios η Apple έχει βγάλει πολλές ενημερώσεις (updates) κάθε φορά με σκοπό να διορθώσει οποιαδήποτε λάθη, να προσθέσει επιπλέον δυνατότητες αλλά και να εμποδίσει τους hackers στην προσπάθεια τους να χακάρουν το ios. Για παράδειγμα τον Ιανουάριο του 2009 η Apple κυκλοφόρησε το ios version 1.1.3 το οποίο πρόσθετε τις εξής δυνατότητες στο ios 1.0: Επιπλέον εφαρμογές για το ipod Touch Δυνατότητα ταξινόμησης των εικονιδίων των εφαρμογών σε 9 διαφορετικές οθόνες Ενημερώσεις για τους χάρτες της Google (Google Maps) Κάρτες δώρων για το itunes που μπορούν να εξαγοραστούν μέσω του iphone Δυνατότητα αποστολής SMS σε πολλούς παραλήπτες Αύξηση του χώρου αποθήκευσης για SMS iphone 3G - ios version 2.0 Τον Αύγουστο του 2008 η Apple κυκλοφόρησε το δεύτερης γενιάς iphone με την επωνυμία Apple iphone 3G. Ήταν η πρώτη συσκευή που υποστήριζε 3G δίκτυο (3G network). Κυκλοφόρησε αρχικά σε μαύρο χρώμα και με 8GB μνήμη και αργότερα κυκλοφόρησε και η έκδοση των 16GB διαθέσιμη και σε άσπρο. Μαζί με το iphone3g η Apple παρουσίασε και το καινούριο λειτουργικό σύστημα, το οποίο και χρησιμοποιούσε το νέο iphone, το ios version 2.0 εικ.(9). Τα δύο σημαντικότερα χαρακτηριστικά της καινούριας αυτής συσκευής είναι το γεγονός ότι για πρώτη φορά κάνει την εμφάνιση του App Store αλλά και ότι το iphone πλέον διαθέτει Assisted GPS. Το γνωστό σε όλους στις μέρες μας App Store είναι μία αγορά που προσφέρει στους χρήστες iphone μία τεράστια γκάμα εφαρμογών συμβατές με το ios, είτε δωρεάν είτε επί πληρωμή. Την ιδέα αυτή ακολούθησαν και άλλες εταιρίες, ανταγωνιστές της Apple, όπως η Google που έκανε το Android Market. Ταυτόχρονα [13]

η Apple κυκλοφόρησε το SDK (Software Development Kit), περιβάλλον ανάπτυξης εφαρμογών για το ios, με σκοπό να βοηθήσει τους προγραμματιστές που ήθελαν να αναπτύξουν τις δικές τους εφαρμογές και έπειτα να τις προωθήσουν στο ευρύ κοινό μέσω του App Store. Εικ.9 : Το iphone3g Σαν αποτέλεσμα αρκεί να σκεφτούμε πως πλέον στις μέρες μας το App Store διαθέτει πάνω από 500.000 εφαρμογές και μετράει πάνω από 18.000.000 downloads [3]! Τέλος η εφαρμογές που αναπτύσσονται από τους προγραμματιστές ελέγχονται από την ίδια την Apple πριν κυκλοφορήσουν και,μπορούν να έχουν πρόσβαση σε όλες τις λειτουργίες-εξαρτήματα της συσκευής όπως, το GPS, η βιντεοκάμερα, το επιταχυνσιόμετρο (accelerometer) κ.α. Το δεύτερο σημαντικότερο χαρακτηριστικό του iphone3g ήταν το GPS. Στο GPS μπορούσαν να έχουν πρόσβαση διάφορες εφαρμογές για διάφορους λόγους όπως η εφαρμογή Google Maps και η βιντεοκάμερα. Πλέον ο χρήστης μπορούσε να χρησιμοποιεί την εφαρμογή Google Maps σε συνεργασία με το GPS και να έχει στο κινητό του ένα συμβατικό στροφή-προς-στροφή πλοηγό. Αρχικά δεν ήταν ακριβείας ενώ δεν υπήρχε δυνατότητα γεωγραφικού εντοπισμού (geotagging) σε εικόνες που τραβήχτηκαν με την φωτογραφική του κινητού. Με τις κατάλληλες ενημερώσεις που κυκλοφόρησαν από την Apple και την έλευση του iphone3gs η ακρίβεια του GPS βελτιώθηκε αισθητά ενώ πλέον η βιντεοκάμερα είχε πρόσβαση στο GPS για γεωγραφικό εντοπισμό εικόνων. Παρόλα αυτά κάπου εδώ πρέπει να επισημάνουμε [14]

ότι όταν το iphone βρίσκετε εντός κάποιου κτιρίου η ακρίβεια του GPS μειώνεται αισθητά [2]. Όπως και για το ios1 έτσι και για το ios2 η Apple κυκλοφόρησε πολλές ενημερώσεις. Από την έκδοση 2.0 μέχρι και την 2.2.1 υπήρξαν πολλές προσθήκες στο ios οι πιο αξιοσημείωτες από τις οποίες είναι οι εξής: Δυνατότητα ενεργοποίησης του Wi-Fi ακόμα και όταν η συσκευή είναι σε λειτουργία για ταξίδι με αεροπλάνο (airplane mode) Υποστήριξη γραφικών SVG (Scalable Vector Graphics) Ικανότητα αποθήκευσης φωτογραφιών μέσω του Mail Η προσθήκη του App Store Γονικό έλεγχο Εφαρμογές που ζητάνε 3 φορές επιβεβαίωση από το χρήστη για υπηρεσίες τοποθεσίας Υποστήριξη του Microsoft Exchange Υποστήριξη της υπηρεσίας MobilMe της Apple Προώθηση e-mail Πολλαπλή διαγραφή e-mail Ικανότητα ανάγνωσης αρχείων Microsoft Word Ικανότητα προβολής ενός βίντεο σε οριζόντιο ή κατακόρυφο προσανατολισμό (landscape or portrait orientation) Γονικό έλεγχο στην εφαρμογή της βιντεοκάμερας Δημιουργία ΕXIF αρχείων που παραμένουν όταν στέλνονται εικόνες μέσω e-mail [2] iphone 3GS - ios version 3.0 Ένα χρόνο μετά την κυκλοφορία του iphone3g, τον Ιούνιο του 2009 η Apple κυκλοφόρησε τη νέα βελτιωμένη έκδοση με την επωνυμία iphone3gs και την καινούρια έκδοση του λειτουργικού ios version 3.0. Ένα από τα νέα χαρακτηριστικά της καινούριας αυτής συσκευής είναι η βελτιωμένη βιντεοκάμερα στα 3MP (MegaPixel) με δυνατότητα λήψης και επεξεργασίας video. To GPS παρουσιάζεται [15]

και αυτό βελτιωμένο, με υψηλότερη ακρίβεια, και σε συνδυασμό με την πυξίδα που διαθέτει πλέον η συσκευή ο χρήστης μπορεί να συγκεντρώνει της φωτογραφίες βάσει του γεωγραφικού μήκους, πλάτους και ύψους. Μία ακόμα βασική καινοτομία του ios 3.0 είναι το γεγονός ότι επιτρέπει στη συσκευή να έχει πρόσβαση σε hardware «τρίτων» (άλλων συσκευών) μέσω USB ή Bluetooth. Αυτές οι καινούριες τεχνολογίες άλλαξαν το τοπίο στο χώρο των smartphones γενικότερα και έδωσαν ώθηση στην Apple και τους ερευνητές[2]. Ακόμα και μετά την λήψη και πιθανή επεξεργασία ενός βίντεο το πρωτότυπο παραμένει αναλλοίωτο στη μνήμη του κινητού μέχρι ο χρήστης να αποφασίσει να το διαγράψει. Επιπλέον, για πρώτη φόρα το iphone έχει δυνατότητα ηχογράφησης. Στη συνέχεια φαίνονται μερικές από τις πιο σημαντικές προσθήκες που έγιναν στο ios version 3.0: Αποκοπή, αντιγραφή και επικόλληση (cut, copy, paste) Πλοήγηση στροφή ανά στροφή Δυνατότητα σύνδεσης σε προσωπικό λογαριασμό στο YouTube μέσω του τηλεφώνου Ιστορικό κλήσεων με περισσότερες λεπτομέρειες όπως διάρκεια κλήσης Ικανότητα αλλαγής του πεδίου My Number από τις ρυθμίσεις τηλεφώνου Προσθήκη λήψης βίντεο με δυνατότητα επεξεργασίας και αποθήκευσης στο ίδιο το τηλέφωνο (μόνο στο 3GS) Εικόνες που περιλαμβάνουν thumbnails (μικρογραφίες) των πρωτότυπων φωτογραφιών. Αυτό επέτρεπε πλέον τον χρήστη να δει και να χρησιμοποιήσει τις φωτογραφίες μέσα από την εφαρμογή της βιντεοκάμερας Λειτουργία αυτόματης εστίασης στην φωτογραφική (μόνο στο 3GS) Μετονομασία της εφαρμογής SMS σε Messages αφού πλέον περιλαμβάνει και τα MMS Δυνατότητα χρήσης του MobileMe για ενεργοποίηση του χαρακτηριστικού Find My Phone από μια ρύθμιση του τηλεφώνου και μέσα από τον λογαριασμό του χρήστη στο MobileMe Υποστήριξη των CAlDAV και LDAP [16]

Αναζήτηση στο επίκεντρο Φωνητικές σημειώσεις Κρυπτογραφημένα backups (αντίγραφα ασφαλείας) Κρυπτογράφηση του hardware (μόνο στο 3GS) Φωνητικός έλεγχος Δυνατότητα για τους προγραμματιστές να προσθέσουν συσκευές από τη USB θύρα Με τις κατάλληλες ενημερώσεις η Apple πρόσθεσε στο ios 3.0 και τα εξής χαρακτηριστικά: Προστασία για εξαπάτηση στο Safari Δυνατότητα προσαρμογής της αρχικής οθόνης στο Safari Βελτιωμένη υποστήριξη του Exchange [2] iphone 4 - ios version 4.0 Στις 21 Ιουνίου του 2010 ο Steve Jobs παρουσίασε στο Worldwide Developers Conference την καινούρια συσκευή της Apple το iphone4 (εικ.10). H συσκευή αυτή σχεδιάστηκε πλήρως από την αρχή από τον Jonathan Ive. Στον καινούριο αυτό σχεδιασμό η κάσα του κινητού, η οποία ήταν από ανοξείδωτο ατσάλι, ενσωματώθηκε ως μέρος του νέου συστήματος κεραίας που χρησιμοποιούσε για πρώτη φορά το iphone4. Η Apple εξόπλισε το iphone4 με καινούριο και πιο ισχυρό επεξεργαστή τον Apple A4 στο 1GHz, ο οποίος ήταν βασισμένος στην αρχιτεκτονική του ARM processor, και με πιο μεγάλη και ισχυρή μπαταρία. Επιπλέον, η συσκευή διέθετε βιντεοκάμερα στην πρόσοψή της και σε συνδυασμό με την τεχνολογία Face Time της Apple προστέθηκε η δυνατότητα βιντεοκλήσης μέσω κατάλληλων εφαρμογών (π.χ. Skype). Η βιντεοκάμερα στο πίσω μέρος της συσκευής ήταν βελτιωμένη στα 5MP και προστέθηκε ένα LED flash για νυχτερινές λήψεις. Μέχρι και την επίσημη κυκλοφορία του το iphone4 υπήρξε το κέντρο μιας μεγάλης διαμάχης. Οι διαρροές από τη νέα συσκευή γίνονταν όλο και πιο έντονες ώσπου κάποια στιγμή η εταιρία Gawker Media/ Gizmodo αγόρασε μία συσκευή που αργότερα αποκαλύφθηκε ως η τέταρτη γενιά iphone. [17]

Εικ.10 : Το iphone4 Με την κυκλοφορία του iphone4 η Apple κυκλοφόρησε το καινούριο της λειτουργικό σύστημα, το οποίο και χρησιμοποιούσε η νέα συσκευή, το ios4. Το πιο αξιοσημείωτο χαρακτηριστικό του νέου λειτουργικού ήταν ότι επέτρεπε το επιλεκτικό multitasking, δηλαδή πολλές εφαρμογές που τρέχουν ταυτόχρονα ανάλογα με την επιλογή του χρήστη. Μέχρι εκείνο το σημείο η μοναδική εφαρμογή που είχε τη δυνατότητα να τρέχει από πίσω ήταν η ipod app. Ο χρήστης μπορεί να επεξεργαστεί και να αλλάξει το περιβάλλον του κινητού και προστέθηκε η εφαρμογή imovie η οποία δίνει τη δυνατότητα επεξεργασίας video. Η Apple ανακοίνωσε ότι προστέθηκαν 1.500 καινούρια APIs για να αξιοποιηθούν από την «κοινότητα» των προγραμματιστών. Από τα 1.500 τα 7 ήταν αυτά που έδιναν τη δυνατότητα για multitasking και ήταν τα εξής: Ήχος από πίσω (background audio) Φωνή επί διαδικτυακού πρωτοκόλλου (Voice Over IP VoIP) Εντοπισμός θέσης μέσω GPS από πίσω (background location GPS) Προώθηση κοινοποίησης Κοινοποίηση τοποθεσίας Ολοκλήρωση διεργασίας Γρήγορη εναλλαγή εφαρμογών Μερικά από τα πιο αξιοσημείωτα χαρακτηριστικά του ios4 είναι τα εξής: [18]

Πολυλειτουργικότητα (Multitasking) Οι φάκελοι (folders) Εξατομίκευση της αρχικής οθόνης (home screen) και της ταπετσαρίας (wallpaper) Ενισχυμένη αλληλογραφία (mail) που περιείχε τα παρακάτω: Ένα ενιαίο γραμματοκιβώτιο Πολλά διαφορετικά γραμματοκιβώτια συγκεντρωμένα όλα στο ενιαίο (Microsoft Exchange, Gmail, MonileMe κ.α.) Γρήγορη εναλλαγή στα εισερχόμενα Threading Άνοιγμα των συνημμένων αρχείων με πολλές διαφορετικές εφαρμογές ibooks (εφαρμογή προσομοίωσης βιβλιοθήκης) Διάφορα χαρακτηριστικά επιχειρήσεων συμπεριλαμβανομένων των εξής: Κρυπτογράφηση της αλληλογραφίας με χρήση κωδικού PIN Λογισμικό για Mobile Device Management (MDM), το οποίο διασφαλίζει, παρακολουθεί, διαχειρίζεται και υποστηρίζει τις συσκευές που χρησιμοποιούν εταιρίες κινητής τηλεφωνίας, παρόχους υπηρεσιών και επιχειρήσεις Εφαρμογή για διανομή ασύρματου δικτύου Υποστήριξη τεχνολογίας SSL VPN (Secure Sockets Layer Virtual Private Network) Χαρακτηριστικά που αφορούν τα παιχνίδια όπως τα εξής: Παιχνίδια κοινωνικής δικτύωσης Πίνακες με τους κορυφαίους ανά παιχνίδι Επιτεύγματα iad, εφαρμογή για διαφημίσεις 5x ψηφιακό ζουμ για φωτογραφίες και βίντεο Ορθογραφικός έλεγχος Υποστήριξη ασύρματης τεχνολογίας Bluetooth για πληκτρολόγιο [19]

Το ios είναι ένα λειτουργικό σύστημα το οποίο είναι ένα επίπεδο κάτω από το OSx. Οι συσκευές που χρησιμοποιούν το ios θα μπορούσε να πει κάποιος ότι στην ουσία χρησιμοποιούν μία παραλλαγή του πυρήνα του Mac OSx που χρησιμοποίει η Apple στους υπολογιστές και η ανάπτυξη του βασίζεται στα Xcode και Cocoa [2]. Τέσσερα είναι τα βασικά στοιχεία που συνθέτουν το ios, τα οποία η Apple διαθέτει στους προγραμματιστές για την ανάπτυξη εφαρμογών, και είναι τα εξής: Το Cocoa που εμπεριέχει τα παρακάτω: Δυνατότητα πολλαπλής αφής και για τα γεγονότα αλλά και για τον έλεγχο Επιταχυνσιόμετρο Υποστήριξη της βιντεοκάμερας Το κομμάτι των Media: Υποστηρίζει OpenAL Αναπαραγωγή βίντεο Διάφορες μορφές αρχείων εικόνας Το Quartz για ζωγραφική Βασικά κινούμενα σχέδια Υποστηρίζει OpenGL Βασικές υπηρεσίες στις οποίες περιλαμβάνονται οι εξής: Networking (Δικτύωση) Βάσεις δεδομένων SQLite Βασική τοποθεσία Νήματα (Threads) Ο πυρήνας OS X που περιέχει τα ακόλουθα: Υποστηρίζει το πρωτόκολλο TCP/IP Sockets Διαχείριση της ενέργειας Το σύστημα αρχείων Ασφάλεια [20]

Το σύστημα αρχείων του ios Το HFS (Hierarchical File System) To 1996 η Apple ανέπτυξε ένα καινούριο σύστημα αρχείων για το Mac OS, το οποίο σχεδιάστηκε ώστε να είναι ικανό να δεχθεί για αποθήκευση σύνολα με μεγάλο όγκο δεδομένων [2]. Καθώς το φυσικό μέγεθος των σκληρών δίσκων αυξανόταν με ιλιγγιώδη ταχύτητα, έπρεπε να αναπτυχθεί ένα σύστημα αρχείων ικανό να υποστηρίξει την αυξανόμενη ανάγκη για αποθήκευση [2]. Για το λόγο αυτό η Apple ανέπτυξε το HFS (Hierarchical File System) Ιεραρχικό Σύστημα Αρχείων, η δομή του οποίου είναι αρκετά περίπλοκη για να την κατανοήσουμε [2]. Σε φυσικό επίπεδο ένας σκληρός δίσκος ο οποίος έχει μορφοποιηθεί σύμφωνα με το HFS, είναι χωρισμένος σε μπλοκ των 512 bytes το καθένα, τα οποία είναι στην ουσία παρόμοια με τους τομείς που υπάρχουν στα Windows, και ονομάζονται λογικά μπλοκ (logical blocks) [2]. Τα λογικά μπλοκ σε ένα volume1 είναι αριθμημένα από το πρώτο μέχρι και το τελευταίο, είναι στατικά και ομαδοποιούνται μεταξύ τους στα μπλοκ κατανομής (allocation blocks) [2,6]. Τα μπλοκ κατανομής μπορούν να αποτελούνται από ένα ή και περισσότερα λογικά μπλοκ ανάλογα με το συνολικό μέγεθος του volume και χρησιμοποιούνται από το σύστημα HFS για την παρακολούθηση των δεδομένων με πιο αποτελεσματικό τρόπο [6]. Επίσης, το HFS χρησιμοποιεί πεδία των 16-bit για να προσδιορίσει ένα συγκεκριμένο μπλοκ 1 Στο πλαίσιο των λειτουργικών συστημάτων ηλεκτρονικών υπολογιστών, volume είναι ένας όρος που χρησιμοποιείται για να περιγράψει ένα ενιαίο και προσβάσιμο αποθηκευτικό χώρο μορφοποιημένο με ένα σύστημα αρχείων [7], το οποίο περιέχει δεδομένα του χρήστη μαζί με τη δομή που χρησιμοποιείται γιατί ανάκτηση των δεδομένων [6], και συνήθως (αν και όχι πάντα) ανήκει σε ένα μοναδικό partition του σκληρού δίσκου [7]. Ο όρος volume μπορεί να χρησιμοποιηθεί αντί του όρου drive, στις περιπτώσεις όπου είναι επιθυμητό να αναφέρεται ότι η εν λόγω οντότητα δεν είναι φυσική μονάδα δίσκου αλλά τα εταιρικά δεδομένα που είναι αποθηκευμένα λόγω του συστήματος αρχείων που χρησιμοποιείται [7]. Με λίγα λόγια οι όροι logical drive και volume μπορούνε να θεωρηθούν συνώνυμοι, ενώ volume και partition είναι δύο διαφορετικά πράγματα [7]. [21]

κατανομής, έτσι ώστε τα μπλοκ κατανομής να είναι λιγότερα από 2 16 (=65.536) [6]. Επιπλέον, χρησιμοποιεί strings (συμβολοσειρές) των 31-bit για την αποθήκευση των ονομάτων των αρχείων [6]. Τα αρχεία σε ένα HFS volume έχουν δύο forks: το data fork και το resource fork, καθένα από τα οποία μπορεί να είναι κενό (μηδενικό μήκος) [6].Επιπροσθέτως, τα αρχεία και τα directories (κατάλογοι) περιέχουν επίσης ένα μικρό ποσοστό επιπλέον πληροφοριών, γνωστές και ως πληροφορίες καταλόγου (catalog information) ή μετα-δεδομένα (metadata), όπως την ημερομηνία τροποποίησης ή πληροφορίες από το Finder, το οποίο είναι ο προεπιλεγμένος file manager (διαχειριστής αρχείων) που χρησιμοποιείται από το Mac OS και το μεταγενέστερο Mac OS X [6]. Είναι υπεύθυνος για τη συνολική διαχείριση των αρχείων, των δίσκων και των network volumes του χρήστη, καθώς και για την έναρξη άλλων εφαρμογών [6]. Υπάρχουν 5 δομές που συνθέτουν ένα HFS volume: Τα λογικά μπλοκ 0 και 1 του volume είναι τα Boot blocks τα οποία περιέχουν πληροφορίες για την εκκίνηση του συστήματος. Το λογικό μπλοκ 2 περιέχει το Master Directory Block (γνωστό και ως MDB). Αυτό κρατάει πληροφορίες για το ίδιο το volume, όπως την ημερομηνία και την ώρα που δημιουργήθηκε, τη θέση άλλων δομών του volume, όπως το Volume Bitmap ή το μέγεθος λογικών δομών, όπως τα μπλοκ κατανομής. Υπάρχει επίσης ένα αντίγραφο του MDB που ονομάζεται Alternate Master Directory Block (γνωστό ως AMDB). Το λογικό μπλοκ 3 είναι το αρχικό μπλοκ του Volume Bitmap, το οποίο παρακολουθεί και κρατάει πληροφορίες για το ποια μπλοκ κατανομής είναι σε χρήση και ποια είναι διαθέσιμα. Κάθε μπλοκ κατανομής του τμήματος αντιπροσωπεύεται από ένα bit. Εάν το bit αυτό έχει οριστεί τότε το μπλοκ χρησιμοποιείται, αλλιώς είναι ελεύθερο προς χρήση. Δεδομένου ότι το Volume bitmap έχει ένα bit το οποίο αντιπροσωπεύει ένα μπλοκ κατανομής, το μέγεθος του καθορίζεται από το μέγεθος του volume. Το Extend Overflow File είναι ένα Β-δέντρο το οποίο περιέχει επιπλέον extends (συνεχόμενη περιοχή αποθήκευσης σε ένα σύστημα αρχείων δεσμευμένη για ένα αρχείο) που καταγράφουν ποια μπλοκ κατανομής [22]

διατίθενται για ποια αρχεία, εφ όσον τα τρία αρχικά extend στο Catalog File χρησιμοποιούνται. Σε μεταγενέστερες εκδόσεις, στο Extend Overflow File, προστέθηκε η δυνατότητα να αποθηκεύει extends που περιέχουν εγγραφές για κατεστραμμένα μπλοκ (bad blocks), με σκοπό να αποτρέπει το σύστημα αρχείων από το να διαθέτει ένα αρχείο σε ένα κατεστραμμένο μπλοκ. Το Catalog File, είναι και αυτό ένα Β-δέντρο που περιέχει εγγραφές για όλα τα αρχεία και τα directories που είναι αποθηκευμένα σε ένα τμήμα HFS. Αποθηκεύει τέσσερεις τύπους εγγράφων. Κάθε αρχείο αποτελείται από ένα File Thread Record και ένα File Record, και κάθε directory αποτελείται από ένα Directory Thread Record και ένα Directory Record. Τα αρχεία και τα directory στο Catalog File εντοπίζονται εύκολα από το μοναδικό αναγνωριστικό τους το Catalog Node ID (CNID). Στο File Thread Record αποθηκεύονται το όνομα του αρχείου και το CNID του γονικού directory. Στο File Record αποθηκεύονται οι εξής πληροφορίες για το αρχείο: το CNID, το μέγεθος του αρχείου, τρεις χρονοσφραγίδες (όταν δημιουργήθηκε το αρχείο, την τελευταία φορά που τροποποιήθηκε και το τελευταίο αντίγραφο ασφαλείας που δημιουργήθηκε), τα file extends των δεδομένων και τα resource forks, δείκτες στα πρώτα δεδομένα του αρχείου και εγγραφές των πόρων στο Extend Overflow File. Επιπλέον αποθηκεύει δυο πεδία των 16 byte που χρησιμοποιούνται από το Finder για να αποθηκεύσει χαρακτηριστικά σχετικά με τα αρχείο, όπως το δημιουργό και το είδος του κώδικα, το παράθυρο που πρέπει να εμφανιστεί το αρχείο και την ακριβή θέση σε αυτό. Στο Directory Thread Record αποθηκεύονται το όνομα του directory και το CNID του γονικού directory. Στο Directory Record αποθηκεύονται δεδομένα όπως, ο αριθμός των αρχείων που είναι αποθηκευμένα στο συγκεκριμένο directory, το CNID του directory, τρεις χρονοσφραγίδες (όταν δημιουργήθηκε το directory, την τελευταία φορά που τροποποιήθηκε και το τελευταίο αντίγραφο ασφαλείας που δημιουργήθηκε). Όπως και το File Record [23]

έτσι και το Directory Record αποθηκεύει δυο πεδία των 16 byte για χρήση από το Finder με πληροφορίες όπως, το πλάτος, το ύψος και οι x και y συντεταγμένες για το παράθυρο στο οποίο εμφανίζονται τα περιεχόμενα του directory, την κατάσταση απεικόνισης (icon view, list view) του παραθύρου και τη θέση της μπάρας κύλισης (scroll bar) στο παράθυρο. Για να περιοριστεί ο κατακερματισμός σε ένα τμήμα ενός HFS συστήματος τα μπλοκ κατανομής συνδέονται μεταξύ τους σε συστάδες [4]. Όσον αφορά την ημερομηνία και την ώρα, η Apple προσέφυγε στη χρήση του απόλυτου χρόνου, που είναι αλλιώς γνωστός ως τοπική ώρα, ενώ ταυτόχρονα γίνεται χρήση και του UNIX χρόνου [2]. Με λίγα λόγια το λειτουργικό ios αξιοποιεί και τα δύο αυτά συστήματα χρόνου [2]. Δεδομένου ότι ο απόλυτος χρόνος δεν λαμβάνει υπόψη του τις διαφορές ανάμεσα στις ζώνες ώρας (time zones), πρέπει να είμαστε σε θέση να γνωρίσουμε την ακριβή τοποθεσία του συστήματος για να μπορέσουμε να κατανοήσουμε πραγματικά τα δεδομένα και το χρόνο των αντικειμένων [2]. Το HFS Plus To 1998, η Apple ανέπτυξε το HFS Plus ή HFS+, για να αντικαταστήσει το HFS ως το κύριο σύστημα αρχείων στους υπολογιστές της και γενικότερα στα συστήματα που χρησιμοποιούσαν το Mac OS X [12]. Η αρχιτεκτονική του HFS+ είναι παρόμοια με εκείνη του HFS παρά το γεγονός ότι έγιναν αρκετές αλλαγές [12]. Οι βασικοί στόχοι που καθοδήγησαν το σχεδιασμό του HFS Plus ήταν: αποδοτική χρήση του αποθηκευτικού χώρου του δίσκου, διεθνούς αποδοχής ονόματα αρχείων μελλοντική στήριξη για named forks, και εύκολη εκκίνηση σε άλλα λειτουργικά συστήματα. [6] Ένα volume μορφοποιημένο με HFS Plus χωρίζεται σε τομείς (sectors,τα λογικά μπλοκ στο HFS), οι οποίοι συνήθως έχουνε μέγεθος 512 bytes. Οι τομείς αυτοί με τη [24]

σειρά τους ομαδοποιούνται, όπως και στο HFS, στα μπλοκ κατανομής. Ο αριθμός των μπλοκ κατανομής εξαρτάται από το συνολικό μέγεθος του volume. O HFS Plus χρησιμοποιεί πεδία της τάξεως των 32-bit για να προσδιορίσει ένα μπλοκ κατανομής, σε αντίθεση με τα 16-bit του HFS, γεγονός που σημαίνει ότι μπορεί να έχει πρόσβαση σε 2 32 (=4.294.967.296) μπλοκ κατανομής [6]. Υπάρχουν 9 δομές οι οποίες συνθέτουν ένα HFS Plus volume [6]: Οι τομείς 0 και 1 του volume είναι όπως και στο HFS τα boot blocks, που χρησιμεύουν για την εκκίνηση του συστήματος και είναι μέρος του HFS wrapper, και καταλαμβάνουν τα 1024 πρώτα bytes. Ο τομέας 2 περιέχει το Volume Header, το οποίο είναι ισοδύναμο με το Master Directory Block που υπάρχει σε ένα HFS volume, βρίσκετε πάντα στο ίδιο σημείο, στην αρχή του volume, και καταλαμβάνει 1024 bytes στην αρχή του volume [6]. Στο Volume Header αποθηκεύεται μία ποικιλία από δεδομένα που αφορούνε το ίδιο το volume. Τέτοιες πληροφορίες είναι το μέγεθος των μπλοκ κατανομής, μία χρονοσφραγίδα που υποδεικνύει πότε δημιουργήθηκε το συγκεκριμένο volume ή και πληροφορίες για τη θέση άλλων δομών του volume όπως το Catalog File και το Extend Overflow File. To Allocation File (αρχείο κατανομής) το οποίο κρατάει πληροφορίες για το ποια μπλοκ κατανομής είναι δεσμευμένα και ποια είναι ελεύθερα προς χρήση. Είναι παρόμοιο με το Volume Bitmap του HFS το οποίο αντιστοιχεί ένα bit σε κάθε μπλοκ κατανομής, εάν το bit έχει την τιμή 0 τότε το αντίστοιχο μπλοκ είναι ελεύθερο, εάν έχει την τιμή 1 τότε το μπλοκ είναι σε χρήση. Η βασική διαφορά με το Volume Bitmap του HFS είναι ότι το Allocation File αποθηκεύεται σαν κανονικό αρχείο και δεν καταλαμβάνει εδικά δεσμευμένο χώρο κοντά στην αρχή του volume. Τέλος, μπορεί να αλλάξει μέγεθος και δεν είναι ανάγκη αποθηκεύεται σε συνεχόμενο, ενιαίο χώρο μέσα στο volume. To Catalog File είναι ένα Β-δέντρο το οποίο περιέχει εγγραφές για όλα τα αρχεία και τα directories που είναι αποθηκευμένα στο volume και είναι σχεδόν ίδιο με το Catalog File του HFS. Οι κυριότερες διαφορές είναι ότι οι εγγραφές στο HFS Plus είναι μεγαλύτερες έτσι ώστε να επιτρέψουν [25]

περισσότερα πεδία και να επιτραπεί τα πεδία αυτά να είναι με τη σειρά τους μεγαλύτερα(για παράδειγμα, να επιτραπεί η χρήση μέχρι και 255 Unicode χαρακτήρων για το όνομα των αρχείων). Μία εγγραφή στo HFS Catalog File έχει μέγεθος 512 bytes, ενώ μία εγγραφή στο HFS Plus Catalog File έχει μέγεθος 4KB στο Mac OS και 8ΚΒ στο Mac OS X. Επιπλέον, τα πεδία στο HFS έχουν προκαθορισμένο μέγεθος, ενώ στο HFS Plus το μέγεθος ποικίλει και εξαρτάται από το πραγματικό μέγεθος των δεδομένων που αποθηκεύονται. Το Extend Overflow File είναι και αυτό ένα Β-δέντρο που καταγράφει τα μπλοκ κατανομής που διατίθενται σαν extends σε κάθε αρχείο. Κάθε εγγραφή ενός αρχείου στο Catalog File έχει τη δυνατότητα να καταγράφει 8 extends για κάθε fork του αρχείου. Από τη στιγμή που αυτά χρησιμοποιούνται, πρόσθετα extends καταγράφονται στο Extend Overflow File. Τα Bad blocks καταγράφονται και αυτά σαν extends. Το προεπιλεγμένο μέγεθος μίας extend εγγραφής στο Mac OS έχει μέγεθος 1 ΚΒ και 4 ΚΒ στο Mac OS X. To Attributes File είναι ένα καινούριο Β-δέντρο στο HFS Plus που αντίστοιχη δομή δεν υπάρχει στο HFS. Μπορεί να αποθηκεύσει τρία διαφορετικά είδη εγγραφών της τάξεως των 4ΚΒ: Inline Data Attribute records, Fork Data Attribute records και Extension Attribute records. Το Startup File είναι σχεδιασμένο για συστήματα που δεν χρησιμοποιούν Mac OS και δεν υποστηρίζουν τα HFS και HFS Plus. Είναι παρόμοιο με τα boot blocks σε ένα HFS volume. Ο προτελευταίος τομέας περιέχει το Alternate Volume Header ισοδύναμο με το Alternate Master Directory Block στο HFS. Ο τελευταίος τομέας είναι δεσμευμένος και προορίζεται για χρήση από την Apple. Χρησιμοποιείται κατά τη διαδικασία κατασκευής ηλεκτρονικών υπολογιστών. [6] [26]

Εικ.11 : Οργάνωση ενός HFS Plus volume [6]. Android Ο μεγαλύτερος ανταγωνιστής του ios στις μέρες μας είναι το λειτουργικό σύστημα Android. Τον Οκτώβριο του 2003 ο Andy Rubin (συνιδρυτής της εταιρίας Danger), ο Rich Miner (συνιδρυτής της Wildfire Communications.Inc), ο Nick Sears (διετέλεσε αντιπρόεδρος της T-Mobile), ο Chris White (επικεφαλής στο σχεδιασμό και στην ανάπτυξη interface για WebTV) ίδρυσαν στο Palo Alto της California την Android.Inc με σκοπό να σχεδιάσουν και να αναπτύξουν όπως ο ίδιος ο Rubin ανέφερε «..εξυπνότερες κινητές συσκευές, που αντιλαμβάνονται καλύτερα την τοποθεσία και τις προτιμήσεις του ιδιοκτήτη» [8,9,10,11]. Δύο χρόνια αργότερα τον Αύγουστο του 2005 η Google εξαγόρασε την Android Inc. κάνοντας την εξ ολοκλήρου θυγατρική της Google Inc. [11]. Η πρώτη παρουσίαση της πλατφόρμας Android [27]

έγινε τον Νοέμβριο του 2007, παράλληλα με την ίδρυση της Open Handset Alliance, μία κοινοπραξία από 86 πλέον εταιρίες τηλεπικοινωνιών, software και hardware με επικεφαλής την Google Inc. και με σκοπό την ανάπτυξη και προώθηση ανοιχτών προτύπων (open source) για φορητές συσκευές [14,15,16,17]. Το Android προσφέρει στους χρήστες ένα πλήρες πακέτο λογισμικού για φορητές συσκευές (smartphones, tablets), το οποίο αποτελείται από ένα λειτουργικό σύστημα, ενδιάμεσο λογισμικό και τις βασικές εφαρμογές της κινητής τηλεφωνίας [13,18]. Οι κατασκευαστές βασίστηκαν για την ανάπτυξη του στον πυρήνα των Linux version 2.6 και το μεγαλύτερο κομμάτι του κώδικα διατίθεται υπό τους όρους της Apache License, μίας ελεύθερης άδειας ανοιχτού λογισμικού (open source Apache License) [13,19]. Στις μέρες μας πλέον υπάρχουν πολλές εταιρίες που κατασκευάζουν συσκευές (smartphones, tablets) οι οποίες χρησιμοποιούν τις διάφορες εκδόσεις του Android, με την πιο πρόσφατη έκδοση να είναι το Android 4.0 Sandwich. Στο επόμενο κομμάτι της εργασίας, χρησιμοποιώντας την Android συσκευή Sony Ericsson Xperia mini Pro, θα εξετάσουμε κάποιες εφαρμογές οι οποίες διατίθενται στο Google Play Store. Αυτό που μας ενδιαφέρει είναι η δημιουργία μουσικών λιστών αναπαραγωγής (playlists) αλλά και η επεξεργασία και η αναπαραγωγή τους. Για το λόγο αυτό εντοπισαμε και εγκαταστήσαμε στο κινητό δύο εφαρμογές, μια για την δημιουργία των playlist και μία για την αναπαραγωγή τους. Η εφαρμογή My Playlist Maker Το My Playlist Maker είναι μια εφαρμογή για κινητές συσκευές με Android λογισμικό η οποία είναι διαθέσιμη δωρεάν στο Google Play (πρώην Android Market) για τους χρήστες Android συσκευών. Η εφαρμογή δίνει τη δυνατότητα στο χρήστη να δημιουργήσει τις δικές του μουσικές playlist (m3u αρχεία) χρησιμοποιώντας τα μουσικά αρχεία (mp3, ogg, wav, wma κ.α.) που έχει αποθηκευμένα στο κινητό του. Χαρακτηριστικά αναφέρεται στην περιγραφή της εφαρμογής στο Google Play «μπορείτε να δημιουργήσετε ξεχωριστές λίστες για κάθε directory, που περιέχει μουσικά αρχεία απλά με το πάτημα ενός κουμπιού». [28]

Παρόλα αυτά η εφαρμογή δεν μπορεί να αναπαράγει τις λίστες που δημιουργεί. Για το σκοπό αυτό ο χρήστης πρέπει να χρησιμοποιήσει κάποιο από τα διαθέσιμα media player στο market, είτε δωρεάν είτε επί πληρωμή, με δυνατότητα ανάγνωσης και αναπαραγωγής.m3u αρχείων. Εδώ πρέπει να επισημάνουμε ότι ο player των Android καθώς και πολλοί από αυτούς που κυκλοφορούν στο Google Play δεν έχουν τέτοια δυνατότητα. Επομένως, ο χρήστης οφείλει να είναι προσεκτικός στη επιλογή του έτσι ώστε η εφαρμογή που θα κατεβάσει να αναγνωρίζει m3u αρχεία. Στο κομμάτι αυτό της εργασίας γίνεται λεπτομερής περιγραφή της εφαρμογής My Playlist Maker και των δυνατοτήτων της, η οποία έχει εγκατασταθεί στη συσκευή Sony Ericsson mini Xperia pro που τρέχει το λειτουργικό σύστημα Android 2.3.4 (εικ.12). Εικ.12: Sony Ericsson mini Xperia pro Αρχικά, έπειτα από μια έρευνα που διεξήχθη στο Google Play για εφαρμογές που δημιουργούν μουσικές playlist, καταλήξαμε, βάσει του rating που χρησιμοποιεί το market και τις κριτικές των χρηστών, στο My Playlist Maker (εικ.13) το οποίο και εγκαταστήσαμε στη συσκευή. [29]

Εικ.13: Εγκατάσταση του My Playlist Maker από το Google Play. Έπειτα αποθηκεύσαμε στην εξωτερική κάρτα μνήμης του κινητού-sdcard 3,91 GB ελληνικής και ξένης μουσικής και πιο συγκεκριμένα στο εξής directory: Xperia mini pro/sdcard/music/. Στην εικ.14 φαίνεται μέσω του ES File Explorer τα περιεχόμενα του συγκεκριμένου directory. Η μουσική όπως φαίνεται έχει ταξινομηθεί σε δυο βασικά subdirectories, Xperia mini pro/sdcard/music/ellinika και Xperia mini pro/sdcard/music/ksena, ενώ ταυτόχρονα έχει δημιουργηθεί και ένας υποφάκελος με το όνομα Playlists oπού αποθηκεύτηκαν οι διάφορες playlists που δημιουργήσαμε. Εικ.14: Το βασικό directory όπου αποθηκεύσαμε τα μουσικά αρχεία. Όλα τα μουσικά αρχεία που αποθηκεύτηκαν είναι μορφής.mp3, παρόλα αυτά το My Playlist maker έχει δυνατότητα δημιουργίας μίας λίστας αναπαραγωγής και από αρχεία τύπου.ogg,.wav,.wma. Το ζήτημα που γεννιέται αυτή τη στιγμή είναι κατά πόσον οι players που κυκλοφορούν στο market αυτή την στιγμή έχουν δυνατότητα [30]

αναπαραγωγής αρχείων όλων αυτών των τύπων που αναφέρθηκαν. Η απάντηση είναι σαφώς πως όχι, για το λόγο αυτό χρησιμοποιήσαμε το ευρέως διαδεδομένο και δημοφιλές σε όλους μας.mp3 το οποίο μπορούν να αναπαράγουν όλοι οι διαθέσιμοι players στο Google Play καθώς και η εφαρμογή για αναπαραγωγή μουσικής που διαθέτει εξαρχής μια συσκευή με Android λειτουργικό σύστημα. Η αρχική οθόνη της εφαρμογής My Playlist Maker φαίνεται στις εικόνες 15 και 16 και περιγράφεται στο πάνω μέρος της οθόνης με το χαρακτηρισμό «Generate Playlists» (δημιουργία λιστών αναπαραγωγής). Εικ. 15, 16: Αρχική οθόνη της εφαρμογής My Playlist Maker (Generate Playlists) Όπως φαίνεται η εφαρμογή ζητάει κάποιες πληροφορίες από τον χρήστη απαραίτητες για την δημιουργία μίας λίστας αναπαραγωγής. Καλείται λοιπόν ο χρήστης να συμπληρώσει 6 διαφορετικά πεδία ανάλογα με τις επιθυμίες του, τα οποία είναι τα εξής: i. Select music directory ii. Select playlist directory iii. Select types to search iv. Subdirectories v. Playlist mode vi. Existing Playlists [31]

Στο πρώτο πεδίο, Select music directory, ο χρήστης καλείται να δώσει το directory από όπου η εφαρμογή θα πάρει τα μουσικά αρχεία για τη δημιουργία της λίστας. Κάπου εδώ πρέπει να αναφέρουμε πως δεν μπορεί να επιλέξει ένα ένα τα κομμάτια που θέλει να συμπεριλάβει στη λίστα, αλλά η εφαρμογή αυτόματα σαρώνει το directory που της δίνεται και δημιουργεί μία λίστα με τα μουσικά αρχεία που βρίσκει. Η σειρά των κομματιών καθορίζεται από την ταξινόμηση που έχουν αυτά στο directory. Στο πεδίο Select playlist directory, η εφαρμογή ζητάει από τον χρήστη να δώσει το directory στο οποίο θα αποθηκευτεί η προς δημιουργία playlist. Στο τρίτο πεδίο, Select types to search, η εφαρμογή ζητάει τον τύπο των αρχείων που θα αναζητήσει στο δεδομένο directory. Ο προκαθορισμένος τύπος της εφαρμογής είναι το mp3, αλλά ταυτόχρονα έχει και άλλους τύπους αρχείων όπως.ogg,.wav,.wma και δίνει τη δυνατότητα στο χρήστη να προσθέσει και άλλους τύπους ανάλογα με τις ανάγκες του. Ο χρήστης για μία αναζήτηση μπορεί να επιλέξει παραπάνω από έναν τύπο αρχείων έτσι ώστε η εφαρμογή να σαρώσει ένα directory αναζητώντας διαφόρων τύπων μουσικά αρχεία. Στο πεδίο Subdirectories o χρήστης επιλέγει αν θέλει η εφαρμογή να αναζητήσει μουσικά αρχεία στο δεδομένο τα directory μόνο ή και σε όλα τα πιθανά subdirectories. Αμέσως μετά στο πεδίο Playlist mode διαλέγει εάν θέλει η εφαρμογή να δημιουργήσει μία playlist για κάθε subdirectory που βρήκε ή όχι. Εάν επιλέξει «όχι» τότε η εφαρμογή θα δημιουργήσει μία λίστα αναπαραγωγής με όλα τα μουσικά αρχεία που εντόπισε. Τέλος, στο πεδίο Existing Playlists δίνεται η δυνατότητα στον χρήστη να διαλέξει εάν θέλει να διαγραφούν όλες οι ήδη υπάρχουσες λίστες στο directory όπου αποθηκεύονται πριν τη δημιουργία των καινούριων ή όχι. Αφού συμπληρώσουμε όλα τα παραπάνω πεδία σύμφωνα με τις επιθυμίες μας και πατώντας το πλήκτρο Generate το οποίο βρίσκεται στο κάτω μέρος της οθόνης, εμφανίζεται μία νέα οθόνη με τίτλο Playlist Preview, στην οποία όπως φαίνεται στην εικ.17 η εφαρμογή παραθέτει όλες τις λίστες αναπαραγωγής που μπορούν να δημιουργηθούν έπειτα από την αναζήτηση που έκανε. Στα δεξιά βλέπουμε πως [32]

υπάρχει δυνατότητα να επιλέξουμε ποιες από αυτές τελικά θέλουμε να δημιουργηθούν και ποιες όχι. Τέλος, επιλέγοντας Start generation η εφαρμογή δημιουργεί την/τις playlist εμφανίζοντας το αντίστοιχο μήνυμα επιτυχίας ή αποτυχίας. Εικ.17: Η οθόνη Playlist Preview Όπως αναφέρθηκε και νωρίτερα, στο directory Xperia mini pro/sdcard/music/ της συσκευής αποθηκεύτηκαν 3,91 GB ελληνικής και ξένης μουσικής η οποία έχει διαχωριστεί στους φακέλους ELLINIKA και KSENA (εικ.3). Οι δύο φάκελοι αυτοί είναι στην ουσία τα δυο βασικά subdirectories του directory /music/. Στη συνέχεια μέσα στους φακέλους ELLINIKA και KSENA η κατηγοριοποίηση της μουσικής γίνεται αρχικά βάσει του είδους της μουσικής και στη συνέχεια βάσει του καλλιτέχνη. Όλη αυτή η οργάνωση μπορεί να αναπαρασταθεί σχηματικά με μία κλασσική δενδροειδή μορφή όπου η ρίζα του δέντρου είναι το directory Xperia mini pro/sdcard/, όλα τα subdirectories αποτελούν τους κόμβους του δέντρου και τέλος τα μουσικά αρχεία αποτελούν τα φύλλα του. Βέβαια, αν αναλογιστεί κανείς ότι το directory /music/ περιέχει 98 subdirectories τα οποία όπως είπαμε αποτελούν τους κόμβους και 737 μουσικά αρχεία που αποτελούν τα φύλλα, το δέντρο που προκύπτει είναι αδύνατο να απεικονιστεί σε ένα φύλλο χαρτί. Για το λόγο αυτό χωρίσαμε το δέντρο σε 11 επιμέρους δέντρα, το καθένα από αυτά με διαφορετικό directory για ρίζα τα οποία φαίνονται στις επόμενες σελίδες. [33]

[34]

[35]

[36]

Ακολουθώντας τη διαδικασία που περιγράψαμε νωρίτερα δημιουργήσαμε 5 διαφορετικές λίστες αναπαραγωγής χρησιμοποιώντας το My Playlist Maker με σκοπό να τις αναπαράγουμε με κάποιο από τα διαθέσιμα στο market media player. Οι playlists που φτιάξαμε αποθηκεύτηκαν στο directory Xperia mini pro/sdcard/music/playlists και φαίνονται στην εικ.18 μέσω του ES Explorer. Όλες οι λίστες είναι αρχεία τύπου.m3u και υπό αυτή τη μορφή θα τις αναπαράγουμε. Η πρώτη playlist έχει όνομα AC-DC Live.m3u αποτελείται από 14 mp3 αρχεία και δημιουργήθηκε από το directory Xperia mini pro/sdcard/music/ksena/rock/hard [37]

Rock/AC-DC/AC-DC Live. Όπως φαίνεται η προς δημιουργία playlist παίρνει αυτόματα το όνομα του φακέλου του τελευταίου γονικού κόμβου. Εικ.18: Το directory /Playlists/ μαζί με της αποθηκευμένες λίστες. Η δεύτερη με όνομα Agrupnia.m3u έχει 13 αρχεία τύπου mp3 και δημιουργήθηκε από το directory Xperia mini pro/sdcard/music/ellinika/entexna-laika/thanasis Papakonstantinou/Agrupnia. Η τρίτη με 9 mp3 αρχεία δημιουργήθηκε από το φάκελο με όνομα Blah-Blasphemy με directory το Xperia mini pro/sdcard/music/ellinika/hip-hop/low-bap/active Member/Blah-Blasphemy, ενώ για την τέταρτη δώσαμε στην εφαρμογή το directory Xperia mini pro/sdcard/music/ksena/electronic/the Prodigy/Invaders Must Die(2009) και αυτή με τη σειρά της έφτιαξε την λίστα αναπαραγωγής Invaders Must Die(2009).m3u με τα 11 mp3 κομμάτια του φακέλου. Τέλος, η λίστα με το όνομα Pulp Fiction OST.m3u κατασκευάστηκε από το directory Xperia mini pro/sdcard/music/ksena/soundtracks (OST)/Pulp Fiction OST και περιέχει 16 mp3 αρχεία. Αναπαραγωγή των playlist με χρήση του POWERAMP Μετά την δημιουργία των playlist το επόμενο στάδιο και η ουσία του θέματος είναι η αναπαραγωγή τους με κατάλληλη εφαρμογή ικανή να αναγνωρίσει και στην [38]

συνέχεια να αναπαράγει λίστες της μορφής m3u. Για το σκοπό αυτό επιλέξαμε και αγοράσαμε από το Google Play την πλήρη έκδοση της εφαρμογής Poweramp με κόστος 3.78 ευρώ. Η εφαρμογή κυκλοφορεί και σε trial μορφή δωρεάν. Κάπου εδώ πρέπει να επισημάνουμε ότι ο χρήστης για να εγκαταστήσει στη συσκευή του την πλήρη έκδοση του Poweramp είναι υποχρεωμένος να εγκαταστήσει πρώτα δωρεάν την trial έκδοση της εφαρμογής και έπειτα να αγοράσει το Poweramp Full Version Unlocker το οποίο ξεκλειδώνει την εφαρμογή και αναιρεί όλους τους περιορισμούς που είχε trial έκδοση. Στόχος μας είναι να μελετήσουμε και να αναδείξουμε τις δυνατότητες του Poweramp όσον αφορά την αναπαραγωγή μουσικών λιστών, τι επιλογές μας δίνει και πόσο ευέλικτο είναι στο να μετακινούμαστε από τη μια λίστα στην άλλη και να επιλέγουμε κομμάτια της αρεσκείας μας κατά την διάρκεια αναπαραγωγής μιας λίστας. Εικ.19: Η trial έκδοση της εφαρμογής Poweramp [39]

Εικ.20: Poweramp Full Version Unlocker Αφού εγκαταστήσαμε στη συσκευή το Poweramp, κατά την εκκίνηση της, η εφαρμογή σαρώνει τη μνήμη του κινητού και την κάρτα μνήμης (sdcard)και εντοπίζει τα μουσικά αρχεία με σκοπό να εμπλουτίσει την βιβλιοθήκη της. Έχουμε επιλέξει για αρχική οθόνη της εφαρμογής την οθόνη της βιβλιοθήκης του Poweramp. Εικ.21: Library Εικ.22: Playlists Όπως φαίνεται στην εικ.21 η βιβλιοθήκη οργανώνει τα μουσικά αρχεία που βρέθηκαν μετά τη σάρωση στις εξής κατηγορίες: i. All songs: Όλα τα μουσικά αρχεία που βρέθηκαν μετά τη σάρωση. ii. Albums: Κατηγοριοποίηση των μουσικών αρχείων βάσει του μουσικού άλμπουμ στο οποίο ανήκουν. Για την ακρίβεια βάσει της [40]

πληροφορίας που έχει το εκάστοτε mp3 για το μουσικό album στο οποίο ανήκει. Σαν αποτέλεσμα εάν έχουμε σωστά και ομοιόμορφα ενημερωμένα μουσικά αρχεία θα έχουμε κα σωστά ενημερωμένα album. iii. Artists: Η μουσική οργανώνεται με γνώμονα την πληροφορία που έχει το κάθε mp3 για το ποιος είναι ο καλλιτέχνης του κομματιού. iv. Genres: Τα μουσικά κομμάτια κατηγοριοποιούνται ανάλογα με το είδος μουσικής στο οποίο ανήκουν και εφόσον υπάρχει η πληροφορία αυτή σωστά στα δεδομένα του κάθε αρχείου. v. Playlists: Είναι το κομμάτι της βιβλιοθήκης με το οποίο θα ασχοληθούμε εικ.22. Εδώ η εφαρμογή συγκεντρώνει όλες τις μουσικές λίστες που βρέθηκαν μετά τη σάρωση αλλά και αυτές που πιθανόν να δημιουργήσει ο χρήστης με το ίδιο το Poweramp αλλά και με το My Playlist Maker. vi. Queue: Εδώ η εφαρμογή συγκεντρώνει τα μουσικά κομμάτια που ο χρήστης επιλέγει να αναπαραχθούν στη συνέχεια και με τη σειρά που ο ίδιος επιλέγει. Στην ουσία το Poweramp δημιουργεί μια προσωρινή λίστα αναπαραγωγής στην οποία μπορούμε να επέμβουμε δυναμικά. vii. Top Rated: Οργάνωση της μουσικής βάσει της βαθμολόγησης (rating) που δίνει ο χρήστης στα κομμάτια μέσω της εφαρμογής. Τα κομμάτια που δεν έχει βαθμολογήσει καθόλου δεν ανήκουν σε αυτή την κατηγορία. viii. Recently added: Τα μουσικά αρχεία που αποθηκεύτηκαν πρόσφατα. Όλες οι κατηγορίες που αναφέρθηκαν χρησιμεύουν και σαν πλήκτρα όσον αφορά το περιβάλλον διασύνδεσης της εφαρμογής με το χρήστη. Επιλέγοντας ένα από τα παραπάνω, οδηγούμαστε σε διαφορετικές οθόνες, οι οποίες ποικίλουν σε μορφή και δυνατότητες ανάλογα με αυτό που πραγματεύονται. Πιέζοντας το πλήκτρο playlists εμφανίζεται η οθόνη που φαίνεται στην εικ.22 και παρατηρούμε ότι η εφαρμογή παραθέτει σε αλφαβητική σειρά τις λίστες αναπαραγωγής που εντόπισε μετά τη σάρωση. Στη συγκεκριμένη περίπτωση το Poweramp έχει εντοπίσει τις 5 μουσικές λίστες που δημιουργήσαμε νωρίτερα με το My Playlist Maker με τον χαρακτηρισμό not loaded yet ακριβώς από κάτω από το όνομα της λίστας. Ο [41]

χαρακτηρισμός αυτός δίνεται γιατί ακόμα δεν έχουμε επιχειρήσει να αναπαράγουμε τις λίστες. Μόλις αυτό συμβεί για κάθε μία λίστα ξεχωριστά, η ετικέτα not loaded yet αντικαθίσταται με μία άλλη που υποδεικνύει τον αριθμό των κομματιών τις λίστας, π.χ. songs: 14.Κάθε λίστα είναι παράλληλα και πλήκτρο για την εφαρμογή. Όπως είναι προφανές ο χρήστης έχει τη δυνατότητα να επιλέξει μία από τις λίστες προκειμένου να δει αναλυτικά τα κομμάτια από τα οποία αποτελείται. Εμείς διαλέξαμε την δεύτερη κατά σειρά playlist με όνομα Agrupnia.m3u και το αποτέλεσμα φαίνεται στην εικ.23. Η δεύτερη δυνατότητα που έχουμε είναι να πιέσουμε το βελάκι που βρίσκεται στα δεξιά του ονόματος κάθε λίστας. Με αυτό τον τρόπο εμφανίζεται ένα πλαίσιο με όλες τις διαθέσιμες λειτουργίες για τη λίστα (εικ.24) οι οποίες είναι η εξής: Εικ.23: Τα κομμάτια της λίστας Agrunia.m3u Εικ.24 i. Enqueue: Τοποθετεί ολόκληρη τη λίστα στην προσωρινή λίστα αναπαραγωγής (Queue) έτσι ώστε να ξεκινήσει η αναπαραγωγή της αμέσως μετά από το κομμάτι που παίζει εκείνη τη στιγμή. Στην περίπτωση που εκείνη τη στιγμή δεν παίζει κάποιο κομμάτι, η λίστα θα αναπαραχθεί αμέσως μετά από το πρώτο κομμάτι που θα επιλέξουμε για αναπαραγωγή. ii. Play: Αναπαραγωγή της λίστας iii. Shuffle: Αναπαραγωγή της λίστας με τυχαία σειρά. iv. Delete: Διαγραφή της λίστας. v. Add to Playlist: Προσθήκη ολόκληρης της λίστας σε μια καινούρια λίστα ή σε κάποια ήδη υπάρχουσα. [42]

vi. Rename: Μετονομασία της λίστας vii. Sort: Ταξινόμηση της λίστας με διάφορους τρόπους (by track, by title, by filename, by year κ.α). viii. Delete Dups: Διαγραφή των διπλοτύπων από λίστα μόνο και όχι από την sdcard. Στην εικ.23 παρατηρούμε τα κομμάτια της λίστας Agrupnia.m3u. Οι επιλογές Enqueue, Play, Add to Playlist, Delete υπάρχουν και εδώ πιέζοντας το βελάκι στα δεξιά του ονόματος του κομματιού συν τις επιλογές Info/Tags, Ringtone και Send (εικ.25). Επιλέγοντας το Info/tags εμφανίζεται μία νέα οθόνη με πληροφορίες για το κομμάτι όπως το directory του αρχείου, ο τύπος του αρχείου, συχνότητα, ταχύτητα μετάδοσης κ.α. Η λειτουργία Ringtone ενεργοποιεί το συγκεκριμένο Εικ.25 Εικ.26: O Player κομμάτι σαν ήχο κλήσης της συσκευής και η επιλογή Send επιτρέπει την αποστολή του αρχείου μέσω Bluetooth, e-mail, Skype κ.α. Το επόμενο μας βήμα είναι η αναπαραγωγή της λίστας που είναι και η ουσία του θέματος. Η λίστα Agrupnia.m3u αποτελείται από 13 μουσικά κομμάτια. Έστω ότι διαλέγουμε για αναπαραγωγή το πρώτο κομμάτι της λίστας με τίτλο agrupnia και με τις λειτουργίες Shuffle και Repeat απενεργοποιημένες. Αυτόματα εμφανίζεται στην οθόνη της συσκευής o Player όπως φαίνεται χαρακτηριστικά στην εικ.26. Κρατώντας πατημένο το Repeat off το Poweramp μας δίνει της εξής δυνατότητες: i. Repeat List: Αναπαραγωγή των κομματιών τις λίστας από την αρχή και με τη σειρά. [43]

ii. Advance List: Η εφαρμογή μεταπηδάει στην επόμενη κατά σειρά λίστα αφού ολοκληρωθεί η αναπαραγωγή της λίστας που παίζει εκείνη τη στιγμή. Στην περίπτωση μας το Poweramp θα μεταπηδήσει στη λίστα Blah- Blasphemy.m3u με την ολοκλήρωση της λίστας Agrupnia.m3u. Εδώ πρέπει να επισημάνουμε ότι το ίδιο αποτέλεσμα θα έχουμε εάν πολύ απλά πατήσουμε το πλήκτρο next κατά τη διάρκεια αναπαραγωγής του τελευταίου κομματιού της λίστας Agrupnia.m3u. iii. Repeat Song: Επανάληψη του κομματιού που παίζει εκείνη τη στιγμή. Επίσης, κρατώντας πατημένο το Shuffle off έχουμε της εξής λειτουργίες: i. Shuffle all available songs: Αναπαραγωγή όλων το διαθέσιμων κομματιών με τυχαία σειρά. Στην περίπτωση μας είναι τα κομμάτια της λίστας Agrupnia.m3u. ii. Shuffle songs, Lists in order: Αναπαραγωγή όλων των διαθέσιμων λιστών με τη σειρά, παίζοντας όμως τα κομμάτια κάθε λίστας με τυχαία σειρά. Δηλαδή, τα κομμάτια της λίστας Agrupnia.m3u θα ακουστούν με τυχαία σειρά άλλα η επόμενη λίστα που θα αναπαραχθεί, όπως φαίνεται και στην εικ.11, είναι η λίστα Blah-Blasphemy.m3u. iii. Shuffle lists, Songs in order: Η εφαρμογή παίζει όλες τις διαθέσιμες λίστες με τυχαία σειρά αλλά διατηρεί τη σειρά των κομματιών κάθε λίστας. Εάν επιλέξουμε αυτή τη λειτουργία τα κομμάτια της λίστας Agrupnia.m3u θα αναπαραχθούν με τη σειρά, αλλά η επόμενη λίστα που θα ακουστεί, θα επιλεχθεί τυχαία από το Poweramp με την προϋπόθεση να μην έχει ήδη αναπαραχθεί. iv. Shuffle lists, Shuffle songs: Η εφαρμογή παίζει όλες τις διαθέσιμες λίστες και τα κομμάτια αυτών με τυχαία σειρά. Όσον αφορά τη λίστα Agrupnia.m3u, τα κομμάτια της θα ακουστούν με τυχαία σειρά και η επόμενη λίστα θα επιλεχθεί τυχαία από την εφαρμογή. Έστω ότι επιλέγουμε τη λίστα Agrupnia.m3u για αναπαραγωγή ξεκινώντας από το πρώτο κατά σειρά κομμάτι και έχοντας απενεργοποιημένη την λειτουργία για αναπαραγωγή των κομματιών με τυχαία σειρά. Το ερώτημα στο οποίο θέλουμε να [44]

δώσουμε απάντηση είναι πόσο ευέλικτο είναι το Poweramp και τι δυνατότητες μας δίνει, εάν κατά τη διάρκεια αναπαραγωγής μίας λίστας θέλουμε να μεταβούμε σε μία άλλη λίστα για να ακουστεί κάποιο/κάποια κομμάτια από αυτήν και έπειτα η εφαρμογή να συνεχίσει την αναπαραγωγή της αρχικής λίστας από το σημείο στο οποίο την είχε αφήσει. Στην ουσία θέλουμε να παρεμβάλουμε κομμάτια της αρεσκείας μας σε μία λίστα κατά τη διάρκεια αναπαραγωγής της. Εκτός από την λίστα Agrupnia.m3u που αποτελείται από 13 μουσικά κομμάτια, θα χρησιμοποιήσουμε τις λίστες Blah-Blasphemy.m3u και Pulp Fiction.m3u που αποτελούνται από 9 και 16 αντίστοιχα. Από τις τρείς αυτές λίστες επιθυμούμε να ακουστούν: 1. τα 5 πρώτα μουσικά κομμάτια τις λίστας Agrupnia.m3u με τη σωστή σειρά, 2. τα κομμάτια 2,3 και 4 της λίστας Blah-Blasphemy με τη σειρά 3. τα κομμάτια 8,9,10,4 και 1 της λίστας Pulp Fiction.m3u με τη σειρά που να αναγράφονται και 4. το υπόλοιπο της λίστας Agrupnia.m3u (τα κομμάτια 6-13) με τη σωστή σειρά. Για να επιτύχουμε όλα τα παραπάνω με το Poweramp θα χρησιμοποιήσουμε τη λίστα Queue, ένα από τα εργαλεία της βιβλιοθήκης (Library). Πρώτα επιλέγουμε να ξεκινήσει η αναπαραγωγή της λίστας Agrupnia.m3u, είτε δίνοντας εντολή για αναπαραγωγή ολόκληρης τις λίστας με την λειτουργία Shuffle απενεργοποιημένη έτσι ώστε να ξεκινήσει από το πρώτο κομμάτι (εικ.26), είτε επιλέγοντας για αναπαραγωγή το πρώτο κομμάτι της λίστας με την λειτουργία Shuffle και πάλι απενεργοποιημένη (εικ.27). [45]

Εικ.26 Εικ.27 Η λίστα Queue αρχικά είναι άδεια, καθώς ακόμα δεν έχουμε δώσει εντολή στην εφαρμογή να προσθέσει κάποιο κομμάτι. Στη εικόνα 17 φαίνεται η λίστα Queue στην οθόνη Library της εφαρμογής με το χαρακτηρισμό empty (άδεια) στα δεξιά. Στο σημείο αυτό πρέπει να προσέξουμε το εξής: εάν αυτή τη στιγμή, κατά τη διάρκεια αναπαραγωγής του πρώτου τραγουδιού της λίστας Agrupnia.m3u, προσθέσουμε στη λίστα Queue τα κομμάτια των άλλων δύο λιστών, το αποτέλεσμα που θα πάρουμε δεν είναι το επιθυμητό. Αυτό συμβαίνει γιατί η εφαρμογή θα μεταβεί στο πρώτο κομμάτι της λίστας Queue αμέσως μετά την ολοκλήρωση του κομματιού agrupnia, παραλείποντας τα μουσικά αρχεία 2-5 της λίστας Agrupnia.m3u τα οποία επιθυμούμε να ακουστούν. Για να αποφύγουμε αυτό το λάθος έχουμε δύο επιλογές. Μπορούμε είτε να προσθέσουμε στη λίστα Queue τα υπόλοιπα κομμάτια με τη σειρά που περιγράψαμε παραπάνω κατά τη διάρκεια αναπαραγωγής του κομματιού agrypnia, ξεκινώντας από το δεύτερο κομμάτι της λίστας Agrupnia.m3u και συνεχίζοντας με τα μουσικά αρχεία των άλλων δύο λιστών, είτε πολύ απλά να προσθέσουμε στη λίστα Queue τα αρχεία των λιστών Blah-Blasphemy.m3u και Pulp Fiction.m3u κατά τη διάρκεια αναπαραγωγής του πέμπτου κομματιού της λίστας Agrupnia.m3u. [46]

Εικ.28 Εικ.29 Η διαδικασία προσθήκης των μουσικών αρχείων στη λίστα Queue είναι η ίδια, όποιο τρόπο και αν επιλέξουμε από τους δύο και περιγράφεται παρακάτω. Για να προσθέσουμε τα αρχεία στη λίστα απλά επιλέγουμε τη λειτουργία Enqueue για κάθε ένα μουσικό κομμάτι που θέλουμε να ακουστεί με τη σειρά που θέλουμε να αναπαραχθούν (εικ.29). Εμείς προσθέσαμε στη λίστα Queue, κατά τη διάρκεια αναπαραγωγής του κομματιού agrupnia (πρώτο κομμάτι της λίστας Agrupnia.m3u), όλα τα υπόλοιπα αρχεία. Δηλαδή, τα κομμάτια 2-4 της λίστας Agypnia.m3u συν τα κομμάτια που θέλουμε να ακουστούν από τις άλλες δύο λίστες. Το αποτέλεσμα που πήραμε είναι μία λίστα, η λίστα Queue (εικ. 30,31,32), με 12 μουσικά κομμάτια τα οποία θα αναπαραχθούν με στη σειρά αφού ολοκληρωθεί η αναπαραγωγή του κομματιού agrypnia. [47]

Εικ.30 Εικ.31 Εικ.32 Το ερώτημα που θέσαμε σε αυτό το σημείο είναι το τι θα συμβεί αφού η εφαρμογή ολοκληρώσει την αναπαραγωγή της λίστας Queue. Η απάντηση που πήραμε δεν ήτανε ιδιαίτερα ενθαρρυντική. Το Poweramp επέστρεψε στην αρχική λίστα (λίστα Agrupnia.m3u) ακριβώς στο σημείο όπου την άφησε, συνεχίζοντας την αναπαραγωγή της από το δεύτερο κομμάτι και έπειτα, γεγονός που σημαίνει ότι τα κομμάτια 2-5 θα ξανακουστούν, κάτι που δεν ήταν στις επιθυμίες μας. Το πρόβλημα δεν θα λυνότανε εάν προσθέταμε τα μουσικά αρχεία 6-13 της λίστας Agrupnia.m3u στη λίστα Queue, καθώς και πάλι η εφαρμογή μετά την ολοκλήρωση της θα επέστρεφε ξανά στο κομμάτι 2 της αρχικής μας λίστας. Τη λύση στο πρόβλημα που εμφανίστηκε μας έδωσε ο δεύτερος τρόπος από τους δύο που προαναφέρθηκαν, σύμφωνα με τον οποίο ξεκινήσαμε τα προσθέτουμε στη λίστα Queue τα κομμάτια που επιθυμούμε να αναπαραχθούν από τις λίστες Blah- Blasphemy.m3u και Pulp Fiction.m3u κατά τη διάρκεια αναπαραγωγής του πέμπτου τραγουδιού της λίστας Agrupnia,m3u. Η λίστα Queue πλέον αποτελείται από 8 μουσικά κομμάτια και το αποτέλεσμα που πήραμε φαίνεται στις εικόνες 33,34. [48]

Εικ.33 Εικ.34 Τι γίνεται τώρα αφού αναπαραχθούν όλα τα μουσικά κομμάτια της λίστας Queue; Η απάντηση που πήραμε είναι αυτή ακριβώς που επιθυμούσαμε. Το Poweramp επέστρεψε στην αρχική λίστα (λίστα Agrupnia.m3u) στο σημείο ακριβώς που την άφησε και συνέχισε την αναπαραγωγή της παίζοντας τα κομμάτια 6-13. Τέλος, με την ολοκλήρωση της λίστας Agrupnia.m3u και εφόσον όλες οι λειτουργίες που αφορούν την αναπαραγωγή λιστών π.χ. Advance List, Repeat List είναι απενεργοποιημένες, εμφανίζεται στην οθόνη το μήνυμα List Finished και η εφαρμογή περιμένει κάποια εντολή από τον χρήστη για περαιτέρω αναπαραγωγή. Ένα ενδεχόμενο που παρουσιάζει ιδιαίτερο ενδιαφέρον είναι το τι θα γίνει στην περίπτωση που χρήστης πιέσει το πλήκτρο previous κατά τη διάρκεια αναπαραγωγής του πρώτου κομματιού της λίστας Queue. Με ιδιαίτερη ευχαρίστηση παρατηρούμε ότι η εφαρμογή επιστρέφει στο μουσικό κομμάτι που έπαιξε τελευταίο πριν ξεκινήσει η αναπαραγωγή της λίστας Queue, στην περίπτωση μας στο πέμπτο κομμάτι της λίστας Agrupnia.m3u. Εάν τώρα πιέσουμε το πλήκτρο next, το Poweramp μεταβαίνει στο δεύτερο κομμάτι της λίστας Queue, καθώς έχει κρατήσει στη μνήμη το γεγονός ότι το πρώτο κομμάτι έχει ήδη ακουστεί. Εν ολίγοις η εφαρμογή κρατάει στη μνήμη όποιο κομμάτι έχει ακουστεί με σκοπό να μην αναπαραχθεί ξανά σε περίπτωση που ο χρήστης επιστέψει χειροκίνητα στην αρχική [49]

λίστα και έπειτα μεταβεί ξανά στη λίστα Queue. Παρόλα αυτά, όσο βρισκόμαστε στη λίστα Queue μπορούμε να εναλλάσσουμε τα κομμάτια της με χρήση των πλήκτρων next και previous, ασχέτως με το αν κάποια από αυτά έχουν ήδη αναπαραχθεί ή όχι. Ας υποθέσουμε τώρα ότι η εφαρμογή έχει αναπαράγει τα 5 πρώτα κομμάτια της λίστας Agrupnia.m3u καθώς και τα αρχεία της λίστας Queue και μεταβαίνει ξανά στην αρχική λίστα για να ακουστούν τα κομμάτια από το 6 και μετά. Στην περίπτωση που κατά τη διάρκεια αναπαραγωγής της του κομματιού νο.6 πιέσουμε το πλήκτρο previous η εφαρμογή δεν θα επιστρέψει στο τελευταίο τραγούδι της Queue αλλά στο κομμάτι νο.5 της αρχικής μας λίστας, της λίστας Agrupnia.m3u. Αυτό συμβαίνει γιατί στην ουσία η λίστα Queue είναι μια προσωρινή λίστα η οποία χρησιμεύει στο να παρεμβάλουμε μουσικά κομμάτια της αρεσκείας μας σε μία αποθηκευμένη στη συσκευή λίστα και κατά τη διάρκεια αναπαραγωγής της, χωρίς όμως να αποθηκεύει τη λίστα που προκύπτει από το συνδυασμό της αρχικής λίστας και της λίστας Queue. Αυτό σημαίνει πως μόλις ολοκληρωθεί η αναπαραγωγή της Queue και η εφαρμογή επιστρέψει στην αρχική λίστα, η λίστα Queue χάνεται. Παρόλα αυτά, το Poweramp μας δίνει τη δυνατότητα να αποθηκεύσουμε σε μία καινούρια λίστα είτε ολόκληρη την Queue είτε επιλέγοντας κομμάτια από αυτήν. Όπως φάνηκε από την παραπάνω διαδικασία, η εφαρμογή Poweramp είναι ιδιαίτερα ευέλικτη όσον αφορά την αναπαραγωγή μουσικών λιστών και μας δίνει διάφορες επιλογές. Ο χρήστης μπορεί να μεταβαίνει από τη μία λίστα στην άλλη, κατά τη διάρκεια αναπαραγωγής μιας εξ αυτών, και να παρεμβάλει κομμάτια σε αυτήν δια μέσου της λίστας Queue χωρίς να σταματήσει η αναπαραγωγή του κομματιού που παίζει εκείνη τη στιγμή. Ταυτόχρονα, το Poweramp έχει τη δυνατότητα να «θυμάται» σε ποιο σημείο άφησε την αρχική λίστα έτσι ώστε να επιστέψει όταν ολοκληρωθεί η αναπαραγωγή της λίστας Queue. Κάνοντας μία εκτενέστερη έρευνα στο Poweramp για τις δυνατότητες της λίστας Queue, ανακαλύψαμε την ύπαρξη περεταίρω ρυθμίσεων που αφορούν τη λίστα Queue ικανές να αλλάξουν τον τρόπο που αυτή επιδρά με τις υπόλοιπες λίστες. Για να μεταβούμε στις επιλογές της λίστας Queue ακολουθούμε τα εξής βήματα: 1. Πιέζουμε το πλήκτρο menu των Android συσκευών. [50]

2. Από τις επιλογές που εμφανίζονται επιλέγουμε Settings για να εμφανιστεί η οθόνη ρυθμίσεων (εικ.35). 3. Στην οθόνη ρυθμίσεων επιλέγουμε Advanced στην κατηγορία Folders/Library (εικ.36). 4. Στην οθόνη Advanced (εικ.37) πιέζουμε το πλήκτρο Queue options και εμφανίζονται οι ρυθμίσεις της λίστας Queue (εικ.38). Εικ.35 Εικ.36 Εικ.37 Εικ.38 [51]

Όπως φαίνεται στην εικ.38 οι ρυθμίσεις για την Queue είναι οι εξής: 1. Start Playing Queue: Αφόρα τη χρονική στιγμή που θα ξεκινήσει η αναπαραγωγή της Queue και το Poweramp μας δίνει 3 διαφορετικές επιλογές: α) να ξεκινήσει άμεσα (Immediately), β) μετά το τρέχον μουσικό κομμάτι (After current song) και γ) μετά την τρέχουσα λίστα (φάκελος/album/playlist κ.α.) (After current list). 2. Return to Queue: Όταν είναι ενεργοποιημένη η εφαρμογή πάντα επιστρέφει στη λίστα Queue εάν δεν έχουν αναπαραχθεί όλα της τα κομμάτια. 3. Auto-Advance from Queue: Όταν είναι ενεργοποιημένη η εφαρμογή επιστρέφει στην προηγούμενη λίστα όταν ολοκληρωθεί η αναπαραγωγή της λίστας Queue. 4. Ignore Shuffle: Όταν είναι ενεργοποιημένη η Queue αναπαράγεται πάντα με τη σειρά ακόμα και αν έχουμε ενεργοποιήσει την λειτουργία Shuffle. Κάπου εδώ πρέπει να επισημάνουμε κατά τη διαδικασία αναπαραγωγής της λίστας Agrupnia.m3u και Queue εμείς χρησιμοποιήσαμε τις προκαθορισμένες από την εφαρμογή ρυθμίσεις όπως αυτές φαίνονται στην εικ.38. Δηλαδή, επιλέξαμε να ξεκινάει η Queue μετά το τρέχον μουσικό κομμάτι, είχαμε ενεργοποιημένη την Auto-Advance from Queue ρύθμιση και απενεργοποιημένες τις άλλες δύο. Σαν συμπέρασμα μπορούμε να πούμε ότι το Poweramp,εφ όσον διατηρήσουμε τις παραπάνω ρυθμίσεις για τη λίστα Queue, ενδείκνυται για αναπαραγωγή μουσικών λιστών με δυνατότητα να παρεμβάλουμε κομμάτια της αρεσκείας μας στην τρέχουσα λίστα χωρίς να διακόψουμε την αναπαραγωγή της. Όλες οι λίστες που χρησιμοποιήσαμε δημιουργήθηκαν με την εφαρμογή My playlist maker. Το βασικό ελάττωμα της εφαρμογής αυτής, όπως προαναφέραμε, είναι ότι δεν μας επιτρέπει να επιλέξουμε ένα-ένα τα κομμάτια που επιθυμούμε να προσθέσουμε στη λίστα. Δημιουργεί λίστες αναπαραγωγής, χρησιμοποιώντας ένα και μόνο directory με μουσικά αρχεία και διατηρεί τη σειρά που αυτά έχουν στο directory. Εν κατακλείδι, δεν μπορούμε να δημιουργήσουμε με το My Playlist Maker μουσικές λίστες αναπαραγωγής επιλέγοντας κομμάτια από διαφορετικά directory, καθορίζοντας ταυτόχρονα και τη σειρά που θέλουμε αυτά να έχουν στη λίστα. [52]

Κατά την προηγούμενη διαδικασία δημιουργήσαμε 5 playlists χρησιμοποιώντας το My Playlist Maker, αναδείξαμε τα μειονεκτήματα και τα πλεονεκτήματα του και αναπαράγαμε τις λίστες χρησιμοποιώντας την εφαρμογή Poweramp. Η εφαρμογή αυτή προσφέρει έναν αρκετά μεγάλο αριθμό λειτουργιών και υπηρεσιών για το χρηστή. Σε αυτό το σημείο της εργασίας δημιουργήσαμε δυο καινούριες λίστες αναπαραγωγής αυτή τη φορά όμως χρησιμοποιώντας το ίδιο το Poweramp, καθώς διαθέτει δυνατότητα δημιουργίας μουσικών playlist. Για το λόγο αυτό προσθέσαμε σε διαφορετικά directory επιπλέον μουσικά αρχεία, τύπου mp3, με σκοπό να δημιουργήσουμε τις δύο καινούριες λίστες, επιλέγοντας τα κομμάτια τους από διαφορετικά directory και με τη σειρά που εμείς θέλουμε, ή τουλάχιστον να εξετάσουμε το ενδεχόμενο, εάν έχουμε τέτοια δυνατότητα με το Poweramp. Στην εικ.39 φαίνονται με κόκκινο χρώμα τα μουσικά αρχεία που χρησιμοποιήσαμε για να δημιουργήσουμε την List A.m3u και ανήκουν όλα στο υποδέντρο με ρίζα το directory Xperia mini pro/sdcard/music/ksena/rock. Εικ.39: Με κόκκινο χρώμα τα κομμάτια της Λίστας Α [53]

Στην εικ.40 φαίνονται με μπλε χρώμα τα μουσικά αρχεία που χρησιμοποιήσαμε για να δημιουργήσουμε την List B.m3u και ανήκουν όλα στο υποδέντρο με ρίζα το directory Xperia mini pro/sdcard/music/ksena/electronic. Εικ.40: Με μπλε χρώμα τα κομμάτια της Λίστας Β Για να δημιουργήσουμε τις λίστες αυτές επιλέξαμε ένα-ένα τα μουσικά αρχεία που θέλαμε να συμπεριλάβουμε, χρησιμοποιώντας την οθόνη Folders της εφαρμογής (εικ.41). Στην οθόνη αυτή το Poweramp παραθέτει με αλφαβητική σειρά στο χρήστη όλους τους φακέλους directory που περιέχουν έστω και ένα μουσικό αρχείο και εντοπίστηκαν από την εφαρμογή κατά τη διαδικασία σάρωσης της μνήμης της συσκευής. Ποια directory θα σαρώσει το Poweramp μπορεί να καθοριστεί από τον χρήστη. Εμείς επιλέξαμε να σαρωθεί μόνο το directory Xperia mini pro/sdcard/music/, έτσι ώστε να αποτρέψουμε την εφαρμογή από το να εντοπίσει φακέλους με αρχεία ήχου που δεν μας ενδιαφέρουν. Έχοντας μπροστά μας σε αλφαβητική σειρά όλους τους φακέλους με τα μουσικά τους αρχεία που ανήκουν στο directory Xperia mini pro/sdcard/music/, για να δημιουργήσουμε τις δύο λίστες απλά ανατρέξαμε στους φακέλους αυτούς, εντοπίσαμε τα κομμάτια που μας [54]

ενδιαφέρουν και με μία απλή διαδικασία που περιγράφεται παρακάτω προσθέσαμε ένα-ένα τα κομμάτια στις δύο playlist. Εικ.41: Η οθόνη Folders Εικ.42 Για να προσθέσουμε το εκάστοτε κομμάτι σε μια λίστα αναπαραγωγής ακολουθήσαμε την εξής διαδικασία: 1. Αρχικά εντοπίζουμε το κομμάτι στο directory το οποίο βρίσκεται μέσω της οθόνης Folders. 2. Πιέζουμε το βελάκι στα δεξιά του ονόματος του κομματιού και εμφανίζεται η μπάρα με τις επιλογές για το κομμάτι (εικ.42). 3. Επιλέγουμε Add to Playlist και εμφανίζεται μία καινούρια οθόνη με τις ήδη υπάρχουσες λίστες αναπαραγωγής συν την επιλογή Create New Playlist. Εφ όσον το κομμάτι που θέλουμε να προσθέσουμε προορίζεται να είναι το πρώτο κομμάτι μίας καινούριας λίστας, επιλέγουμε Create New Playlist, δίνουμε το όνομα της λίστας και πιέζουμε OK. Σε οποιαδήποτε άλλη περίπτωση απλά επιλέγουμε σε ποια από τις ήδη υπάρχουσες λίστες επιθυμούμε να προστεθεί (εικ.43,44). [55]

Εικ.43 Εικ.44 Στο τελευταίο κομμάτι της εργασίας δημιουργήσαμε δύο μουσικές λίστες αναπαραγωγής χρησιμοποιώντας τη γλώσσα σήμανσης XML (Extensive Markup Language). Αυτές οι λίστες χρησιμοποιήθηκαν για την δημιουργία μια τρίτης λίστας η οποία εμπεριέχει τα μουσικά κομμάτια των δυο αρχικών λιστών. Επιπλέον, συντάξαμε ένα html αρχείο (index.html) το οποίο εμφανίζει τα περιεχόμενα των δυο xml αρχείων χρησιμοποιώντας δύο ακόμα html αρχεία, τα playlist1.html και playlist2.html, και τέλος εμφανίζει σε ένα τρίτο html αρχείο (result.html) την συνδυαστική λίστα. Όλα αυτά αποθηκεύτηκαν στο φάκελο httpdocs του FTP server υπό το domain blueweaver.gr. [56]

Η γλώσσα σήμανσης XML Όπως αναφέρθηκε και παραπάνω, χρησιμοποιήσαμε την XML για να δημιουργήσουμε δύο μουσικές λίστες. Αρχικά, θα εξετάσουμε το τι ακριβώς είναι η XML, ποια η χρησιμότητα της και ποια η διαφορά της με την HTML. H XML είναι μια γλώσσα σήμανσης (Extensive Markup Language), που περιέχει ένα σύνολο κανόνων για την ηλεκτρονική κωδικοποίηση κειμένων. Είναι μία μορφοποίηση δεδομένων κειμένου, με ισχυρή υποστήριξη Unicode για όλες τις γλώσσες του κόσμου. Αν και η σχεδίαση της XML εστιάζει στα κείμενα, χρησιμοποιείται ευρέως για την αναπαράσταση αυθαίρετων δομών δεδομένων, που προκύπτουν για παράδειγμα στις υπηρεσίες ιστού. H XML σχεδιάστηκε για να μεταφέρει δεδομένα και όχι για να παρουσιάζει-εκθέτει δεδομένα και αποτελεί μία πρόταση της W3C. Σε αντίθεση με την HTML όπου οι ετικέτες (tags) μπορεί να είναι και προκαθορισμένες, στην XML δεν είναι και καθορίζονται εξ ολοκλήρου από τον χρήστη, είναι με λίγα λόγια αυτοπεριγραφική. Δεν σχεδιάστηκε με σκοπό να αντικαταστήσει την HTML, καθώς έχουν σχεδιαστεί για να εξυπηρετούν διαφορετικούς σκοπούς γεγονός που αποτελεί την βασική τους διαφορά. Η XML χρησιμοποιείται για μεταφορά και αποθήκευση δεδομένων, και επικεντρώνεται στο ποια είναι τα δεδομένα, ενώ η HTML χρησιμοποιείται για παρουσίαση των δεδομένων και επικεντρώνεται στο πως φαίνονται τα δεδομένα. Με λίγα λόγια η XML δεν εκτελεί κάποια λειτουργία, αλλά δημιουργήθηκε για την διάρθρωση, αποθήκευση και μεταφορά πληροφοριών. Κάθε αρχείο XML σχηματίζει μία δενδρική δομή η οποία ξεκινάει από την ρίζα (root element), η οποία αποτελεί τον γονέα για όλα τα υπόλοιπα στοιχεία (elements) του αρχείου, και καταλήγει στα φύλλα (leaves), π.χ. : <root> </root> <child> </child> <subchild>...</subchild> Το στοιχείο σήμανσης <root> αποτελεί τον γονέα του στοιχείου <child>, και αυτό με τη σειρά του αποτελεί τον γονέα του στοιχείου <subchild>. Τα περιεχόμενα του στοιχείου <subchild> είναι τα φύλλα του δέντρου. [57]

Δημιουργία των XML λιστών Στο project αυτό δημιουργήσαμε χρησιμοποιώντας την XML δυο μουσικές λίστες με 12 κομμάτια η κάθε μία, οι οποίες έχουν την εξής δενδρική δομή: <PLAYLIST> <INTRO> <SONG> <TITLE>..</TITLE> <ARTIST>..</ARTIST> <ALBUM>.</ALBUM> <DIRECTORY>..</DIRECTORY> <TYPE> </TYPE> </SONG>... </INTRO> <MAIN> <SONG> <TITLE>..</TITLE> <ARTIST>..</ARTIST> <ALBUM>.</ALBUM> <DIRECTORY>..</DIRECTORY> <TYPE> </TYPE> </SONG> [58]

... </MAIN> <OUTRO> <SONG> <TITLE>..</TITLE> <ARTIST>..</ARTIST> <ALBUM>.</ALBUM> <DIRECTORY>..</DIRECTORY> <TYPE> </TYPE> </SONG>... </OUTRO> </PLAYLIST> Το στοιχείο <PLAYLIST> αποτελεί τη ρίζα του δέντρου και είναι γονέας των στοιχείων <INTRO>, <MAIN> και <OUTRO>. Όπως αντιλαμβανόμαστε, οι λίστες που δημιουργήσαμε έχουν συγκεκριμένη δομή, σύμφωνα με την οποία κάθε λίστα αναπαραγωγής χωρίζεται σε τρία μέρη : Intro, Main και Outro. Τα στοιχεία <INTRO>, <MAIN> και <OUTRO> έχουν για παιδιά έναν τυχαίο αριθμό στοιχείων <SONG>, ανάλογα με το πόσα κομμάτια επιθυμεί ο χρήστης να έχει το κάθε ένα από τα τρία μέρη της λίστας. Τέλος, το στοιχείο <SONG> αποτελεί τον γονέα για τα στοιχεία <TITLE>, <ARTIST>, <ALBUM>, <DIRECTORY> και <TYPE>, τα οποία εμπεριέχουν για το κάθε μουσικό κομμάτι ξεχωριστά τις εξής πληροφορίες : [59]

1. Τον τίτλο του κομματιού (στοιχείο <TITLE>), 2. Το όνομα του καλλιτέχνη/συγκροτήματος (στοιχείο <ARTIST>), 3. Το όνομα του album στο οποίο ανήκει το κομμάτι (στοιχείο <ALBUM>), 4. Το τοπικό directory στο οποίο είναι αποθηκευμένο το αρχείο (στοιχείο <DIRECTORY>), 5. Τον τύπο του αρχείου (στοιχείο <TYPE>). Ο αριθμός των κομματιών σε κάθε ένα από τρία μέρη της λίστας (Intro, Main και Outro) μπορεί να ποικίλει καθώς δεν είναι προκαθορισμένος. Εμείς στις λίστες που δημιουργήσαμε, όπως φαίνεται και στον κώδικα των αρχείων playlista.xml και playlistb.xml, καταχωρήσαμε 3 μουσικά κομμάτια στο Intro και στο Outro, και 6 μουσικά κομμάτια στο Main. Με λίγα λόγια, δημιουργήσαμε δύο xml αρχεία τα οποία περιέχουν-μεταφέρουν πληροφορίες για τα κομμάτια μίας λίστας αναπαραγωγής. Συμπερασματικά, το βασικό χαρακτηριστικό των xml αρχείων να μεταφέρουν δεδομένα αποδεικνύει από μόνο του το γεγονός ότι μπορούν να χρησιμοποιηθούν για την δημιουργία λιστών αναπαραγωγής. Για παράδειγμα, η βασική πληροφορία που χρειάζεται πρακτικά ένας player για να αναπαράγει ένα μουσικό αρχείο είναι το directory στο οποίο είναι αποθηκευμένο αυτό. Πληροφορία που όπως αποδείξαμε μπορεί να περιέχει και να μεταφέρει ένα xml αρχείο και που μπορούμε να ανακτήσουμε όπως θα δούμε στη συνέχεια. Στο παράρτημα που βρίσκεται στις πίσω σελίδες υπάρχουν ολόκληρες οι playlista.xml και playlistb.xml. Ανάκτηση δεδομένων από τις xml λίστες με χρήση του XPath Αφού δημιουργήσαμε τις xml λίστες το ερώτημα που προέκυψε ήτανε πως θα ανακτήσουμε τα δεδομένα έτσι ώστε αυτά να χρησιμοποιηθούν από κάποιο πρόγραμμα, εφαρμογή ή κάποιο άλλο αρχείο (π.χ. *.html). Τη λύση στο πρόβλημα αυτό μας την έδωσε το XPath, το οποίο αποτελεί και αυτό γλώσσα σήμανσης και χρησιμοποιείται για περιήγηση στα στοιχεία (elements) και στα χαρακτηριστικά (attributes) ενός xml αρχείου. Τo XPath είναι ένα αρκετά απλό εργαλείο καθώς χρησιμοποιεί απλές εκφράσεις μονοπατιού (path expressions) για πλοήγηση σε xml αρχεία και διαθέτει μία βιβλιοθήκη πρότυπων συναρτήσεων. Στη περίπτωση μας, χρησιμοποιήθηκε για την ανάκτηση των πληροφοριών που περιέχουν τα στοιχεία <TITLE>, <ARTIST>, <ALBUM>, <DIRECTORY> και <TYPE> των playlista.xml και playlistb.xml, έτσι ώστε αυτές να παρουσιαστούν στα αρχεία playlist1.html, playlist1.html και result.html. Κάθε γραμμή του κώδικα που φαίνεται παρακάτω αποτελεί μία XPath έκφραση και στην ουσία δείχνει το «δρόμο» για τις πληροφορίες που περιέχουν τα στοιχεία <TITLE>, <ARTIST>, <ALBUM>, [60]

<DIRECTORY> και <TYPE> κάθε στοιχείου <SONG> που έχει για γονέα το στοιχείο <INTRO> με ρίζα το στοιχείο <PLAYLIST>. ipath="playlist/intro/song/title" ipath1="playlist/intro/song/artist" ipath2="playlist/intro/song/album" ipath3="playlist/intro/song/directory" ipath4="playlist/intro/song/type" Αντίστοιχα, για να ανακτήσουμε τις πληροφορίες από τα στοιχεία <MAIN> και <OUTRO> χρησιμοποιήσαμε τις παρακάτω εκφράσεις: mpath="playlist/main/song/title" mpath1="playlist/main/song/artist" mpath2="playlist/main/song/album" mpath3="playlist/main/song/directory" mpath4="playlist/main/song/type" οpath="playlist/outro/song/title" οpath1="playlist/outro/song/artist" οpath2="playlist/outro/song/album" οpath3="playlist/outro/song/directory" οpath4="playlist/outro/song/type" Όλες οι παραπάνω εκφράσεις αποτελούν τμήματα του κώδικα των html αρχείων που δημιουργήσαμε (playlist1.html, playlist1.html και result.html), καθώς εκεί γίνεται η ανάκτηση και η παρουσίαση των πληροφοριών που εμπεριέχουν τα αρχεία playlista.xml και playlistb.xml. [61]

Τα HTML αρχεία Στη συνέχεια της υλοποίησης μας δημιουργήσαμε 4 αρχεία html: το playlist1.html, το playlist2.html, το result.html και το index.html. Και τα τέσσερα αποθηκεύτηκαν στο φάκελο httpdocs του FTP server υπο το domain www.blueweaver.gr. Τα αρχεία αυτά κατασκευάστηκαν για την παρουσίαση των πληροφοριών που ανακτήσαμε από τις xml λίστες. Πιο αναλυτικά, στο αρχείο playlist1.html γίνεται ανάκτηση και παρουσίαση των δεδομένων της playlista.xml, στο αρχείο playlist2.html γίνεται ανάκτηση και παρουσίαση των δεδομένων της playlistb.xml και στο αρχείο result.html γίνεται ανάκτηση όλων των δεδομένων από τις δύο λίστες και στη συνέχεια τυπώνεται σαν αποτέλεσμα μια συνδυαστική λίστα αναπαραγωγής η οποία περιέχει τα κομμάτια των playlista.xml και playlistb.xml. Τέλος, στο αρχείο index.html, το οποίο φιλοξενείται υπό τη διεύθυνση domain www.blueweaver.gr, ενσωματώνεται το τελικό μας Project το οποίο αποτελείται από κώδικα HTML. Ο κώδικας αυτός απεικονίζει μερικά στατικά στοιχεία μορφοποίησης, ενώ άλλα στοιχεία καλούνται δυναμικά μέσω του αρχείου style.css. Ταυτόχρονα, ενσωματώνει συνδέσμους προς τα υπόλοιπα αρχεία HTML που αναφέραμε παραπάνω. Το index.html είναι το προκαθορισμένο αρχείο που καλείται από τον Server αυτόματα, με την επίσκεψή μας στη διεύθυνση Domain www.blueweaver.gr (εικ.45). Στη συνέχεια θα εξετάσουμε πιο αναλυτικά των κώδικα όλων των html αρχείων που δημιουργήσαμε. Εικ.45: Απεικόνιση του index.html [62]

Ανάλυση του αρχείου playlist1.html Όπως προαναφέραμε, στο αρχείο playlist1.html γίνεται ανάκτηση των δεδομένων της playlista.xml λίστας με χρήση κατάλληλων XPath εκφράσεων και στη συνέχεια παρουσίαση των δεδομένων αυτών. Αρχικά, στο στοιχείο <head> του κώδικα γίνεται δήλωση των μετα-δεδομένων και του τίτλου της σελίδας: <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>playlist A</title> Στη συνέχεια δημιουργήσαμε μέσα σε ένα javascript τη συνάρτηση function loadxmldoc(dname) η οποία φαίνεται στην επόμενη σελίδα. <script type="text/javascript"> function loadxmldoc(dname) { if (window.xmlhttprequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xhttp=new XMLHttpRequest(); else {// code for IE6, IE5 xhttp=new ActiveXObject("Microsoft.XMLHTTP"); xhttp.open("get",dname,false); xhttp.send(""); return xhttp.responsexml; [63]

i=1; </script> Η συνάρτηση αυτή παίρνει σαν είσοδο το όνομα του xml αρχείου που επιθυμούμε να επεξεργαστούμε και σαν αποτέλεσμα μας δίνει πρόσβαση σε αυτό. Αυτό γίνεται φορτώνοντας το xml αρχείο σε ένα XML DOM αντικείμενο, το οποίο είναι ένα πρότυπο αντικείμενο που χρησιμεύει για να ανακτήσουμε, να αλλάξουμε, να προσθέσουμε ή ακόμα και να διαγράψουμε στοιχεία (elements) από ένα xml αρχείο. Όπως φαίνεται, η συνάρτηση loadxmldoc() διακρίνει δύο περιπτώσεις: μία για όλους τους browser (Chrome, Mozila,Opera,Safari) και μία για τον Internet Explorer. Εμείς ασχοληθήκαμε και επεξεργαστήκαμε το πρώτο μισό και χρησιμοποιήσαμε τον Chrome για την παρουσίαση των αποτελεσμάτων. Συνεπώς τα αποτελέσματα που θα πάρουμε χρησιμοποιώντας τον Internet Explorer δεν είναι τα επιθυμητά. Στην τελευταία γραμμή του script γίνεται αρχικοποίηση της μεταβλητής i=1;,η οποία θα χρησιμεύσει αργότερα σαν αύξοντος αριθμός στη σειρά των κομματιών. Έπειτα στο στοιχείο <body> του αρχείου συντάξαμε τρία διαφορετικά javascript στα οποία γίνεται στην πράξη η ανάκτηση και η παρουσίαση των δεδομένων της playlista.xml. Κάθε ένα από αυτά ασχολείται με ένα από τα τρία μέρη τις λίστας, <INTRO>, <MAIN> και <OUTRO>, και είναι πανομοιότυπα μεταξύ τους. Το μόνο που αλλάζει στον κώδικα του κάθε script είναι οι XPath εκφράσεις που δώσαμε. Ξεκινώντας την ανάλυση, στην αρχική ετικέτα <body bgcolor="#f1f1f1"> καθορίζουμε το χρώμα που έχει το φόντο της σελίδας playlist1.html. Θα αναλύσουμε το ένα από τα τρία script του <body> καθώς όπως προαναφέραμε είναι πανομοιότυπα μεταξύ τους. Αρχικά, στο javascript καλούμε τη συνάρτηση loadxmldoc() δίνοντας της για είσοδο το αρχείο playlista.xml. xml=loadxmldoc("playlista.xml"); Έτσι το script δημιουργεί ένα XML DOM αντικείμενο με το όνομα xml, στο οποίο φορτώνεται το αρχείο playlista.xml. Έπειτα γίνεται η δήλωση των XPath εκφράσεων, οι οποίες φαίνονται παρακάτω: ipath="playlist/intro/song/title" ipath1="playlist/intro/song/artist" ipath2="playlist/intro/song/album" [64]

ipath3="playlist/intro/song/directory" ipath4="playlist/intro/song/type" Παρατηρώντας τις παραπάνω εκφράσεις, είναι προφανές ότι το συγκεκριμένο script ασχολείται αποκλειστικά και μόνο με τα κομμάτια του Intro της playlista.xml. Στη συνέχεια διακρίνουμε πάλι δύο περιπτώσεις, μία για τον Internet Explorer (με την οποία όπως προαναφέραμε δεν ασχοληθήκαμε περαιτέρω) και μία για τους υπόλοιπους browsers. // code for IE if (window.activexobject) { // code for Chrome, Firefox, Opera, etc. else if (document.implementation && document.implementation.createdocument) { Στη δεύτερη συνθήκη, που αφορά τους υπόλοιπους browsers, ενσωματώσαμε τον κώδικα που διατρέχει τα στοιχεία της playlista.xml που προηγουμένως φορτώσαμε στο XML DOM object με το όνομα xml. Ορίσαμε 5 μεταβλητές, όσες είναι και οι παραπάνω XPath εκφράσεις, τις inodes, inodes1, inodes2, inodes3 και inodes4. Κάθε μία από αυτές, όπως φαίνεται στον παρακάτω κώδικα, παίρνει σαν τιμή το αντικείμενο που επιστρέφει η μέθοδος evaluate() όταν αυτή εφαρμόζεται στο αντικείμενο xml. var inodes=xml.evaluate(ipath, xml, null, XPathResult.ANY_TYPE, null); var inodes1=xml.evaluate(ipath1, xml, null, XPathResult.ANY_TYPE, null); var inodes2=xml.evaluate(ipath2, xml, null, XPathResult.ANY_TYPE, null); var inodes3=xml.evaluate(ipath3, xml, null, XPathResult.ANY_TYPE, null); var inodes4=xml.evaluate(ipath4, xml, null, XPathResult.ANY_TYPE, null); [65]

Η μέθοδος evaluate() αξιολογεί μία XPath έκφραση τύπου String και επιστρέφει ένα αποτέλεσμα προκαθορισμένου τύπου εάν αυτό είναι δυνατό. Παίρνει σαν είσοδο 5 παραμέτρους: 1. Mία XPath έκφραση για επεξεργασία και αξιολόγηση. 2. Ένα XML DOM αντικείμενο και πιο συγκεκριμένα το αρχικό πλαίσιο, στην περίπτωση μας το αρχικό στοιχείο του αντικειμένου xml. 3. Την τιμή του resolver, ο οποίος επιτρέπει την μετάφραση όλων των prefix εντός της δοθείσας XPath έκφρασης σε κατάλληλα namespace URI. Στην περίπτωση μας που η τιμή είναι null οποιοδήποτε namespace prefix εντός της έκφρασης θα οδηγήσει σε εξαίρεση και πιο συγκεκριμένα σε DOMException που οδηγεί σε NAMESPACE_ERR κώδικα. 4. Τον τύπο των αποτελεσμάτων που θέλουμε να επιστραφούν, εμείς επιλέξαμε XPathResult.ANY_TYPE. 5. Η παράμετρος αυτή προσδιορίζει ένα συγκεκριμένο αντικείμενο το οποί ενδεχομένως να επαναχρησιμοποιηθεί ή να επιστραφεί από τη μέθοδο. Εμείς δώσαμε την τιμή null το οποίο σημαίνει ότι ένα καινούριο αντικείμενο θα κατασκευαστεί και θα επιστραφεί σαν αποτέλεσμα. Το ίδιο αποτέλεσμα θα είχαμε εάν πολύ απλά παραλείπαμε την τελευταία παράμετρο. Τελικά, η μέθοδος evaluate() επιστρέφει το αποτέλεσμα της αξιολόγησης της XPath έκφραση. Οι παραπάνω εκφράσεις θα επιστρέψουν 5 διαφορετικά αντικείμενα ένα για το κάθε ένα από τα παρακάτω στοιχεία των κομματιών του τμήματος Intro της playlista.xml: <TITLE>, <ARTIST>, <ALBUM>, <DIRECTORY> και <TYPE> αντίστοιχα. Για παράδειγμα, το αντικείμενο inodes, που δημιουργείται μετά την αξιολόγηση της XPath έκφρασης PLAYLIST/INTRO/SONG/TITLE, περιέχει 3 κόμβους, έναν για κάθε στοιχείο <TITLE> που συνάντησε στο στοιχείο <INTRO>. Αντίστοιχα, τα υπόλοιπα inodes αντικείμενα που δημιουργήσαμε περιέχουν ένα σύνολο από κόμβους με τον αντίστοιχο αριθμό. Όπως είναι προφανές και τα υπόλοιπα αντικείμενα αποτελούνται από 3 κόμβους όσα είναι και τα στοιχεία <SONG> του στοιχείου <INTRO> στην playlista.xml λίστα. Στη συνέχεια ορίζουμε άλλες 5 μεταβλητές τις iresult, iresult1, iresult2, iresult3 και iresult4. Οι μεταβλητές αυτές αρχικοποιούνται με το αποτέλεσμα της iteratenext() μεθόδου, όταν αυτή εφαρμόζεται σε κάθε ένα από τα inodes αντικείμενα που δημιουργήσαμε και αρχικοποιήσαμε προηγουμένως με χρήση της evaluate(). var iresult=inodes.iteratenext(); var iresult1=inodes1.iteratenext(); var iresult2=inodes2.iteratenext(); var iresult3=inodes3.iteratenext(); [66]

var iresult4=inodes4.iteratenext(); Η μέθοδος iteratenext() δεν δέχεται κάποια παράμετρο και σαν αποτέλεσμα επιστρέφει τον επόμενο κόμβο από ένα σύνολο κόμβων και την τιμή null εάν αυτός δεν υπάρχει. Οι παραπάνω εκφράσεις επιστρέφουν στις iresult μεταβλητές τον πρώτο κόμβο του αντίστοιχου inode αντικειμένου. Έπειτα, με την εντολή document.write("<h1>intro</h1>"); ορίζουμε μία επικεφαλίδα η οποία και τυπώνεται στην αρχή της σελίδας που παρουσιάζει την playlista.xml, όπως φαίνεται στην εικ.46. Στη συνέχεια συντάξαμε ένα βρόγχο while, με συνθήκη τερματισμού την τιμή της iresult μεταβλητής: while(iresult){. Όταν η μεταβλητή iresult πάρει την τιμή null, ο browser θα σταματήσει να εκτελεί τις εντολές που βρίσκονται εντός του βρόγχου. Όπως φαίνεται και στον παρακάτω κώδικα, εντός του βρόγχου while αρχικά τυπώνονται τα δεδομένα που περιέχουν οι κόμβοι στους οποίους δείχνουν οι iresult μεταβλητές εκείνη τη στιγμή και στη συνέχεια με νέα χρήση της μεθόδου iteratenext() οι μεταβλητές αυτές υποδεικνύουν τον επόμενο κόμβο του εκάστοτε inode αντικειμένου εάν αυτός υπάρχει. Τέλος, αυξάνουμε την τιμή της μεταβλητής i κατά 1 (είχε αρχικοποιηθεί στο στοιχείο <head> με την τιμή 1), η οποία είναι υπεύθυνη για την αύξουσα αρίθμηση των κομματιών της λίστας. while (iresult) { document.write(i + "." + "Title: " + iresult.childnodes[0].nodevalue); document.write("<br/>"); document.write("artist: " + iresult1.childnodes[0].nodevalue); document.write("album: " + iresult2.childnodes[0].nodevalue); document.write("directory: " + iresult3.childnodes[0].nodevalue); document.write("type: " + iresult4.childnodes[0].nodevalue); [67]

iresult=inodes.iteratenext(); iresult1=inodes1.iteratenext(); iresult2=inodes2.iteratenext(); iresult3=inodes3.iteratenext(); iresult4=inodes4.iteratenext(); i++; Με τον τερματισμό του βρόγχου while ολοκληρώνεται η διαδικασία ανάκτησης και παρουσίασης των δεδομένων και συναντάμε την ετικέτα τερματισμού αυτού του javascript. Τα επόμενα δύο javascript που περιέχει ο κώδικας του αρχείου playlist1.html είναι υπεύθυνα για την ανάκτηση και απεικόνιση των δεδομένων των στοιχείων <MAIN> και <OUTRO> αντίστοιχα της playlista.xml. Περαιτέρω ανάλυση αυτών των script δεν θα γίνει καθώς η δομή τους και η φιλοσοφία τους είναι ακριβώς η ίδια με αυτό που αναλύσαμε. Το μόνο που αλλάζει είναι XPath εκφράσεις, οι οποίες είναι οι εξής: mpath="playlist/main/song/title" mpath1="playlist/main/song/artist" mpath2="playlist/main/song/album" mpath3="playlist/main/song/directory" mpath4="playlist/main/song/type" οpath="playlist/outro/song/title" οpath1="playlist/outro/song/artist" οpath2="playlist/outro/song/album" οpath3="playlist/outro/song/directory" [68]

οpath4="playlist/outro/song/type" Εικ. 46: Απεικόνιση του αρχείου playlist1.html [69]

Ανάλυση του αρχείου playlist2.html Το αρχείο playlist2.html περιέχει τον κώδικα που χρειάζεται για την ανάκτηση και απεικόνιση των δεδομένων του αρχείου playlistb.xml. Η φιλοσοφία και η δομή του κώδικα αυτού είναι ακριβώς η ίδια με αυτήν του αρχείου playlist1.html. Η μοναδική διαφορά είναι ότι σε αυτό το αρχείο φορτώνουμε στην αρχή του κάθε javascript την playlistb.xml λίστα: xml=loadxmldoc("playlistβ.xml"); Ανάλυση του αρχείου result.html Στο αρχείο result.html ο κώδικας που συντάξαμε απεικονίζει τα κομμάτια μίας τρίτης λίστας αναπαραγωγής η οποία προκύπτει από το συνδυασμό των δύο xml λιστών που έχουμε υλοποιήσει. Το τμήμα Intro της λίστας αυτής αποτελείται από τα κομμάτια που ανήκουν στο τμήμα Intro των playlista.xml και plalistb.xml. Αντίστοιχα το ίδιο ισχύει και για τα κομμάτια του τμήματος Main και του τμήματος Outro της καινούριας λίστας. Τελικά, το αρχείο result.html απεικονίζει μία καινούρια λίστα που περιλαμβάνει τα κομμάτια των playlista.xml και plalistb.xml και έχει από 6 κομμάτια στα τμήματα Intro και Outro και 12 στο τμήμα Main. Ο κώδικας του αρχείου είναι πανομοιότυπος σε φιλοσοφία με αυτούς των αρχείων playlist1.html και playlist2.html. Περιλαμβάνει την συνάρτηση loadxmldoc(dname) στο στοιχείο <head> του αρχείου, η οποία καλείται κάθε φόρα στα script που ακολουθούν παίρνοντας σαν παράμετρο πότε την playlista.xml και πότε την playlistb.xml. Δημιουργήσαμε 6 javascript πανομοιότυπα με αυτά του αρχείου playlist1.html. Στα δύο πρώτα script γίνεται ανάκτηση και απεικόνιση των δεδομένων των στοιχείων <INTRO> των δύο λιστών εικ.47. Στα επόμενα δύο γίνεται ανάκτηση και απεικόνιση των δεδομένων των στοιχείων <ΜΑΙΝ> των δύο λιστών (εικ.48,49) και στα δυό τελευταία γίνεται ανάκτηση και απεικόνιση των δεδομένων των στοιχείων <OYTRO> (εικ.50). [70]

Εικ.47: Απεικόνιση του τμήματος Intro του αρχείου result.html Εικ.48: Απεικόνιση του τμήματος Main του αρχείου result.html [71]

Εικ.49: Απεικόνιση του τμήματος Main του αρχείου result.html Εικ.50: Απεικόνιση του τμήματος Outro του αρχείου result.html [72]

Ανάλυση του αρχείου index.html Ξεκινήσαμε ορίζοντας μέσα στο στοιχείο <head> τα μεταδεδομένα που ορίζουν τον τύπο περιεχομένου του αρχείου και την κωδικοποίησή του: <meta http-equiv="content-type" content="text/html; charset=utf-8" /> Στη συνέχεια με την εντολή <title>select Playlist</title> τιτλοφορήσαμε το αρχείο index.html. Τέλος, καλώντας το, ενσωματώσαμε στο κώδικα το αρχείο μορφοποίησης style.css: <link href="style.css" rel="stylesheet" type="text/css" /> και κλείσαμε το στοιχείο της κεφαλίδας με την ετικέτα </head>. Προχωρήσαμε ανοίγοντας το στοιχείο <body> ορίζοντας μέσα στην ετικέτα έναρξης το χρώμα το φόντου: <body bgcolor="#f1f1f1"> Με το division που ακολουθεί καθορίσαμε το πλαίσιο όπου συμπεριλαμβάνονται τα στοιχεία απεικόνισης, όπως αυτά φαίνονται στην εικ.51 όταν ο χρήστης καλέσει το αρχείο index.html. Στην ετικέτα έναρξης του στοχείου <div> ορίσαμε τη θέση του παραπάνω πλαισίου με τη παρακάτω εντολή: <div align="center" style="margin-top:50px"> Έπειτα, δημιουργήσαμε 3 παραγράφους με τη χρήση του στοιχείου <p> απεικονίζοντας γραφικά στοιχεία τα οποία, είτε περιλαμβάνουν λειτουργίες παραπομπής καλώντας συνδέσμους, είτε όχι. Στη πρώτη παράγραφο καλέσαμε το λογότυπό μας (εικόνα ηχείου): <p><img src="logo.png" width="120" height="168" /></p> Στη δεύτερη, απεικονίσαμε τρία κουμπιά (buttons) τα οποία ενσωματώνουν [73]

συνδέσμους προς τα τρία αρχεία *.hmtl που δημιουργήσαμε προηγουμένως: playlist1.html, playlist2.html και result.html. <p> <div id="submitany" align="center"><a href="playlist1.html" target="_blank" >Playlist A</a></div></p> <p><div id="submitany" align="center"><a href="playlist2.html" target="_blank" >Playlist B</a></div></p> <p><div id="submitany" align="center"><a href="result.html" target="_blank" >Result Playlist</a></div> </p> Στη τελευταία παράγραφο δημιουργήσαμε τρία ακόμη κουμπιά, τα οποία παραπέμπουν στο www.w3schools.com σε αντίστοιχα tutorial της XML, HTML και CSS, τα οποία και χρησιμοποιήσαμε στην υλοποίηση του Project: <p> <a title="xml" href="http://www.w3schools.com/xml/default.asp" target="_blank" ><img src="xml_logo.png" border="0" alt="xml"/></a> <a title="css" href="http://www.w3schools.com/css/default.asp" target="_blank" ><img src="css_logo.png" border="0" alt="css"/></a> <a title="html" href="http://www.w3schools.com/html/default.asp" target="_blank" ><img src="html_logo.png" border="0" alt="html"/></a> </p> Ολοκληρώνοντας, κλείσαμε το division με την ετικέτα </div>, το στοιχείο <body> με την ετικέτα </body> και όλο το HTML αρχείο μας με την ετικέτα </html>. Ανάλυση του αρχείου style.css Στο αρχείο style.css συμπεριλάβαμε divisions και κλάσεις για να απεικονίσουμε βασικά στοιχεία μορφοποίησης για τη δημιουργία κουμπιών (buttons), τα οποία στην ουσία δεν είναι στατικές εικόνες, αλλά δημιουργούνται δυναμικά από τον [74]

browser με τη μορφή που ορίζουν τα παρακάτω: Divisions: #submitany { cursor:pointer; width: 120px; height: 32px; line-height:2; font-size:5; color: #ffffff; background: no-repeat #4d90fe center; border: 1px solid #3079ED; -moz-border-radius: 2px; -webkit-border-radius: 2px; /* Style the search button hover state */ #submit:hover { background: no-repeat center #357AE8; border: 1px solid #2F5BB7; /* Style the search button hover state */ #submitany:hover { background: no-repeat center #357AE8; color: #ffffff; border: 1px solid #2F5BB7; [75]

Κλάσεις: a:link { color: #ffffff; a:visited { color: #ffffff; a:hover { text-decoration: none; Εικ.51:Απείκονιση του index.html [76]