Από το τελευταίο post έχει περάσει αρκετός καιρός, αλλά αυτό δεν σημαίνει ότι το project δεν εξελίσσεται. Συνεχίζω να χρωστάω την μεγάλη αναβάθμιση στον τρόπο που λειτουργούν τα φίλτρα, που θα σημαίνει ουσιαστικά και την ολοκλήρωση του project από πλευράς όλων των δυνατοτήτων που θα έχει.
Προς το παρόν όμως έδωσα προτεραιότητα σε έναν μεγάλο εκσυγχρονισμό του κώδικα. Δεν φαίνεται στον χρήστη, αλλά είναι σημαντικό για το μέλλον της εφαρμογής (και όχι μόνο), να είναι ο κώδικας όσο γίνεται πιο μοντέρνος. Οπότε το έχω ρίξει στο διάβασμα και κάνω τις ανάλογες αλλαγές, όσο προχωράει η εκπαίδευση μου.
Για παράδειγμα, μπαίνω περισσότερο στο νόημα του αντικειμενοστραφούς προγραμματισμού κι έτσι πολλά πράγματα που είχα κάνει στην αρχή, πλέον έχουν αλλάξει και έχουν σπάσει σε περισσότερες και πιο εύχρηστες κλάσεις. Ταυτόχρονα γίνεται χρήση των namespaces και χρησιμοποιείται autoloading σύμφωνα με τα πρότυπα της μοντέρνας PHP, για το φόρτωμα των απαραίτητων αρχείων κάθε φορά. Πράγμα που μου έλυσε τα χέρια, αφού πριν μου φαίνονταν πολύ μπακαλίστικο και χαζό να τα φορτώνω όλα με την μία ή κάποια συγκεκριμένα στην καλύτερη περίπτωση, το οποίο σημαίνει ότι θα έχανα την μπάλα όσο προχωράει το project.
Παράλληλα σπάω τον κώδικα ώστε το framework μου να είναι όσο γίνεται πιο ανεξάρτητο από την συγκεκριμένη εφαρμογή και άρα την κάθε πιθανή μελλοντική εφαρμογή που θα φτιάξω.
Σημαντικές αλλαγές έχουν γίνει και σε θέματα ασφάλειας.
Από τις αλλαγές που φαίνονται στον χρήστη είναι κάποιες βελτιώσεις στο κατέβασμα από YouTube. π.χ. μπορεί ο χρήστης να δώσει μια youtube playlist και να κατεβάσει όλα τα βίντεο με την μία. Επίσης έχει προστεθεί η επιλογή αν θέλει να κατεβάσει βίντεο (mp4) ή σκέτο ήχο (mp3).
Πολύ σημαντική προσθήκη είναι η δυνατότητα να κάνεις backup της βάσης (μέσα από την εφαρμογή) και αντίστοιχα το restore. Οπότε τώρα ο χρήστης μπορεί να έχει το κεφάλι του ήσυχο μην χάσει την συλλογή του από κάποια ζημιά στον server.
Στον player έχουν βελτιωθεί τα controls και (χαρές και πανηγύρια)… μπήκε κουμπί που ενεργοποιεί/απενεργοποιεί το shuffle mode…
Με τις βελτιώσεις που έχω κάνει στον κώδικα και νέα κόλπα που έχω μάθει, ελπίζω ότι στο επόμενο post θα πω για τα φίλτρα που γίνανε όπως πρέπει…
Ένα βήμα περίπου πριν από την βασική έκδοση της εφαρμογής βρίσκεται το Parrot Tunes. Ουσιαστικά για να γίνει πλήρης με όλα τα βασικά της χαρακτηριστικά, μένει η βελτιωμένη διαχείριση των φίλτρων και η δυνατότητα αποθήκευσης τους. Μετά θα μένουν βελτιώσεις και διορθώσεις.
Τις προηγούμενες μέρες προστέθηκε ένα από τα βασικότερα χαρακτηριστικά που είχα σκεφτεί από την αρχή. Τo Jukebox. Αυτό σημαίνει ότι αν την εφαρμογή την χρησιμοποιεί κάποιο cafe/bar ή ραδιοφωνικός σταθμός κτλ, μπορούν οι πελάτες/ακροατές να μπαίνουν σε ειδική σελίδα και να ψηφίζουν πιο τραγούδι θα παίξει αμέσως μετά. Για πιο αναλυτικά μπορείτε να διαβάσετε εδώ.
Μέχρι τώρα η εφαρμογή δούλευε μόνο με keyboard shortcuts. Επιτέλους προστέθηκαν και controls που εμφανίζονται και στον μικρό player αλλά και σε full screen. Σε full screen τα controls εμφανίζονται στα κινητά σύροντας το δάχτυλο στην οθόνη, ενώ σε desktop με double click οπουδήποτε. Επίσης στον μικρό player, όπως φαίνεται και στο screenshot, εμφανίζεται και slider με τον χρόνο στον οποίο βρίσκεται το τραγούδι.
Αυτό που μπορεί να αλλάξει τελείως και την χρήση της εφαρμογής, είναι η mobile έκδοση. Μέχρι τώρα όταν έκλεινες τον browser σε κινητό, έπαιζε 1-2 τραγούδια και σταματούσε. Δεν είμαι σίγουρος αν οφείλεται σε αλλαγές που έκανα εγώ (έτυχε να κάνω κάποιες στο σημείο της ροής των τραγουδιών) ή σε πρόσφατο update του Chrome στο Android, αλλά πλέον και να κλείσεις τον browser τα τραγούδια συνεχίζουν να παίζουν κανονικά. Αυτό γίνεται με τα mp3, γιατί τα video έχουν την παλιά συμπεριφορά (παίζουν 1-2 τραγούδια και σταματάνε). Αλλά έτσι κι αλλιώς τα video δεν μας ενδιαφέρουν και πολύ στο κινητό. Πάντως είναι ενδιαφέρον ότι παίζουν πλέον και τα βιντεο όταν κλείσεις τον browser. Αυτό δεν μπορούσε να γίνει καθόλου πριν. Φαντάζομαι σύντομα θα μπορούν και αυτά να παίζουν χωρίς κανένα πρόβλημα, όπως και τα mp3.
Όλες τις δοκιμές τις έκανα σε Chrome, σε Android. Σε iOS δεν το έχω δοκιμάσει ακόμη. Ελπίζω να παίζει κι εκεί.
Η δυνατότητα να παίζει η εφαρμογή κανονικά και στο κινητό με έκανε να δω και πιο σοβαρά την εμφάνιση της σε αυτό. Έτσι πλέον υπάρχει και layout ειδικά για κινητά. Θέλει πολύ δουλειά ακόμη στο CSS για να προσαρμοστεί σωστά, αλλά η ουσία είναι ότι η αρχή έγινε και υπάρχει η δυνατότητα ξεχωριστού layout για desktop και κινητά.
Για να δοκιμάσω το jukebox με φίλους, έκανα και κάποιους πειραματισμούς στήνοντας ένα web radio με icecast. Το αποτέλεσμα ήταν να δω και μια μικρή συνεργασία της εφαρμογής με icecast server. Δηλαδή το Parrot Tunes μπορεί να ενημερώνει και τον icecast server με το τραγούδι που παίζει κάθε στιγμή.
Αρχές Νοεμβρίου το W3C (World Wide Web Consortium) δημοσίευσε τις επίσημες προδιαγραφές για την HTML 5.1, η οποία γίνεται πλέον η τρέχουσα έκδοση. Περιλαμβάνονται μικρές αλλαγές και προσθήκες. Η επόμενη έκδοση (5.2) θα δημοσιευτεί τέλη του 2017.
Από τις σημαντικότερες προσθήκες είναι το element <picture> και το attribute srcset, με το οποίο μπορούν να δηλώνονται διάφορες εκδόσεις εικόνων. Θα εμφανίζεται η κατάλληλη αναλόγως την ανάλυση του client.
Άλλη προσθήκη είναι τα elements <details> και <summary>, με τα οποία μπορεί ο χρήστης να πατάει σε ένα κείμενο και να ανοίγουν περισσότερες πληροφορίες.
Επίσης, το <menuitem> επιτρέπει την προσθήκη επιλογών στο context menu του browser.
Όλες τις αλλαγές μπορείτε να τις δείτε εδώ, ενώ το πλήρες κείμενο εδώ.