Το τελευταίο μου project είναι μία web εφαρμογή για οδοντιατρείο. Ήταν μια νέα εμπειρία για εμένα, γιατί έκανα πράξη και κάποια καινούργια πράγματα στην σχεδίαση και υλοποίηση.
Καταρχήν για πρώτη φορά σχεδίασα όλα τα πρωτότυπα των οθονών που θα έχει η εφαρμογή. Αυτό το έκανα στο figma. Δεν έκανα τίποτα εξεζητημένο από πλευράς εμφάνισης. Απλά το τι θα έχει κάθε σελίδα και ένα βασικό flow από σελίδα σε σελίδα.
Στην συνέχεια πήγα εντελώς ανάποδα σε σχέση με το τι έκανα μέχρι τώρα στις εφαρμογές. Πριν σχεδίαζα πρώτα την βάση, μετά ίσως κάποια βασικά api. Στην συνέχεια πήγαινα ταυτόχρονα και έφτιαχνα το frontend, μαζί με τα αντίστοιχα api.
Τώρα όμως πήγα ανάποδα. Πρώτα έκανα το frontend (σε Vue). Έκανα όλες τις σελίδες, οι οποίες μετά θα περίμεναν απλά να τραβάνε τα data από τα αντίστοιχα api routes. Έτσι είχα ήδη μια πρώτη έκδοση της εφαρμογής και πως θα είναι το τελικό προϊόν. Έκανα και μια πρώτη προσπάθεια για testing, αλλά δεν το πήγα πολύ, γιατί δεν ήξερα καλά την τεχνολογία και δεν θα τέλειωνα ποτέ, με τον χρόνο να τρέχει.
Στην συνέχεια έπιασα το κομμάτι του backend (σε Laravel), σχεδιάζοντας και την βάση. Το οποίο πλέον ήταν παιχνιδάκι, αφού το έτοιμο frontend μου έδινε άμεσα τι ακριβώς χρειάζομαι. Μετά έφτιαξα και όλα τα api routes. Εδώ έκανα και testing σχεδόν στο σύνολο του κώδικα. Σε Laravel έχω ήδη μια πολύ καλή ιδέα από testing, αν και πάλι ξόδεψα αρκετό χρόνο μαθαίνοντας και νέα πράγματα.
Από κάποια στιγμή και μετά βέβαια, η ανάπτυξη γίνονταν ταυτόχρονα στο frontend και το backend.
Επειδή μάθαινα ταυτόχρονα και νέα πράγματα, τελικά το project μου πήρε σχεδόν τον διπλάσιο χρόνο να το φτιάξω, από τον αρχικό προϋπολογισμό. Φυσικά είχα κάνει και λάθος προϋπολογισμό, λόγω έλλειψης εμπειρίας. Ελπίζω την επόμενη φορά να πάω καλύτερα σε αυτό, αφού πλέον ξέρω και καλύτερα τις τεχνολογίες. Το έχω πάει σε πολύ καλό επίπεδο όλο αυτό με ξεχωριστό frontend (σε Vue) και backend (σε Laravel).
Σήμερα ανέβασα και ένα landing page του προϊόντος. Ελπίζω να δω ενδιαφέρον για την εφαρμογή.
Ταυτόχρονα επεξεργάζομαι μια-δυο ακόμη ιδέες, για νέα projects και μάλλον θα ξεκινήσω σύντομα ένα από τα δύο. Αν μπορέσω να οργανώσω τον χρόνο μου καλύτερα βέβαια, μεταξύ και του Ανοιχτού Πανεπιστήμιου (που συνεχίζω για δεύτερο έτος)
Το site του Dentist βρίσκεται στην σελίδα https://dentist-app.eu, για όποιον ενδιαφέρεται.
Μετά από πάνω από μήνα “αποτοξίνωσης” από το Mac OS (σαν βασικό σύστημα), μπορώ να πω τώρα πως είναι η ζωή με Linux (Ubuntu για την ακρίβεια).
Στην αρχή δεν ήταν εύκολα. Έπρεπε να προσαρμόσω το workflow μου στα νέα κόλπα. Και να λύσω κάποια πραγματάκια. π.χ. δεν είχε δει σωστά την motherboard μου και δεν δούλευε σωστά η διαχείριση της ψήκτρας αναλόγως την χρήση της CPU. Λύθηκε με λίγο ψάξιμο.
Για να συνηθίσω πιο εύκολα στο νέο περιβάλλον, έπαιξα λίγο με themes του Gnome που το κάνανε να μοιάζει πολύ με Mac OS (εικονίδια, χρώματα κτλ). Γρήγορα κατάλαβα ότι και αναξιόπιστο είναι και χωρίς νόημα.
Το γύρισα σε default και άρχισα να μπαίνω στην ουσία του Gnome και πλέον το λατρεύω. Απολαυστικά μινιμαλιστικό, χωρίς φρου φρου και αρώματα, έχει τα πράγματα όπως πρέπει. Κάτι Cinnamon και κάτι KDE δεν μπορώ να τα βλέπω, γιατί απευθύνονται σε Windows users και ακολουθούν την ίδια λογική.
Το Gnome ακολουθεί κάπως τα χνάρια του Mac OS, αλλά χωρίς να αντιγράφει. Επιβάλει τον δικό του χαρακτήρα τελείως. Θέλει λίγο χρόνο να συνηθίσεις, αλλά μετά δεν υπάρχει γυρισμός. Αν αρχίσεις να μαθαίνεις να δουλεύεις πολύ και με shortcuts είναι απόλαυση. Πλέον έχω και το dock στα αριστερά πάντα κρυμμένο. Στο πρώτο πλάνο είναι μόνο οι εφαρμογές μου και τίποτα άλλο.
Κι εδώ έρχεται το πιο χρήσιμο εργαλείο να βοηθήσει, που σου αλλάζει την ζωή. Το Albert, που είναι αντιγραφή του αντίστοιχου εργαλείου σε Mac OS (Alfred) και του spotlight. Ανοίγεις πολύ γρήγορα τις εφαρμογές σου, ψάχνεις τα αρχεία σου, ψάχνεις στο web (σε όποιο site θες, προσθέτοντας extensions). Απλά πατάς το συνδυασμό πλήκτρων που έχεις επιλέξει (εγώ π.χ. ctrl+space) και κάνεις την αναζήτηση. π.χ. γράφεις “gg ubuntu” και ψάχνει στο google. Πραγματικά σε κάνει πολύ πιο γρήγορο όλο αυτό.
Έτσι από πλευράς περιβάλλοντος έχω συνηθίσει γενικά και είμαι και πολύ καλύτερα από Mac OS.
Από πλευράς εφαρμογών ακόμη συνηθίζω. Για backup έχω βρει το cronopete που κάνει περίπου ότι κάνει και το time machine. Μαζί και με το timeshift που παίρνει snapshots του συστήματος. Έτσι έχω το κεφάλι μου ήσυχο.
Στον ήχο παιδεύομαι λίγο. Το Pulse Audio Volume Control πάνω κάτω κάνει την δουλειά του Audio Hijack. Να στέλνω δηλαδή τον ήχο από κάθε εφαρμογή σε όποιο ηχοσύστημα θέλω. Αλλά δεν είναι και πολύ stable και το interface του είναι άθλιο. Η ουσία είναι ότι η δουλειά γίνεται κι ελπίζω σε βελτίωση.
Για φωτογραφίες και γραφικά το gThumb κάνει περίπου ότι κάνει και το Preview στο Mac OS. Ενώ για περισσότερα υπάρχουν και το Gimp και Krita, που μια χαρά με βολεύουν.
Για video editing δεν έχω ακόμη δοκιμάσει. Αλλά το kdenlive μάλλον θα κάνει την δουλειά, όταν χρειαστεί.
Άγνωστο είναι αν θα με καλύψει το libreOffice (ή κάτι αντίστοιχο) για τις εργασίες μου στο Ανοιχτό Πανεπιστήμιο. Πέρυσι “αναγκάστηκα” να χρησιμοποιώ MS Office, γιατί χρειάζομαι τις μαθηματικές εκφράσεις και το βρήκα πιο βολικό, αντί να παιδεύομαι ψάχνοντας άλλες λύσεις. Στο Mac OS όμως υπάρχει MS Office. Σε Linux αναγκαστικά θα πρέπει να βρω άλλη λύση.
Το plan B βέβαια, είναι πάντα η χρήση Windows σε virtual machine. Το οποίο δεν το γλιτώνω έτσι κι αλλιώς, γιατί δυστυχώς οι τηλεσυνεδριάσεις στο Ανοιχτό Πανεπιστήμιο γίνονται αποκλειστικά με Skype for Business, το οποίο παίζει μόνο σε Windows (σε Mac OS ήταν αναξιόπιστη η έκδοση και σε Linux δεν υπάρχει καν)
Τέλος, για development, που είναι και η βασική μου χρήση, σαφώς και με Linux είμαι στο σπίτι μου. Δεν υπάρχει καλύτερο περιβάλλον, αν ασχολείσαι με προγραμματισμό (εκτός κι αν γράφεις εφαρμογές για Windows, Mac OS, iOS κτλ)
Για κερασάκι σε όλα αυτά είναι το gaming. Με το Proton στο Steam και το Lutris, σχεδόν τα πάντα από windows παιχνίδια, παίζουν και σε Linux. Οπότε σαφώς η κατάσταση, αν παίζεις κανα παιχνίδι που και που, είναι πολύ καλύτερη από το Mac OS.
Συχνά χρησιμοποιούμε κάποια web εφαρμογή την οποία έχουμε μονίμως ανοιχτή σε κάποιο tab του browser. Θα βόλευε ίσως αν έτρεχε σαν ξεχωριστή desktop εφαρμογή.
Αυτό έρχεται να κάνει το nativefier, το οποίο είναι ένα command line εργαλείο που μετατρέπει οποιαδήποτε σελίδα σε electron app. Το nativefier τρέχει σε Linux, Mac OS και Windows.
Πρέπει να έχουμε εγκαταστήσει πρώτα το node.js και μετά το εγκαθιστούμε γράφοντας
npm install nativefier -g
Στην συνέχεια πάμε στο directory που θέλουμε να δημιουργηθεί η εφαρμογή και γράφουμε κάτι τέτοιο
nativefier "http://twitter.com"
Θα δημιουργήσει ένα directory και μέσα σε αυτό θα έχει ένα εκτελέσιμο (αναλόγως το λειτουργικό). Το τρέχουμε και ανοίγει η σελίδα σαν ξεχωριστή desktop εφαρμογή.
Σε Linux μάλλον θα χρειαστείτε να δημιουργήσετε κι ένα σχετικό .desktop αρχείο, για συντόμευση.
Συγκεκριμένα, σε Ubuntu π.χ. Στον φάκελο /usr/share/applications δημιουργούμε ένα αρχείο του τύπου myApp.desktop
Μέσα σε αυτό βάζουμε κάτι τέτοιο:
[Desktop Entry]
Name=myApp
GenericName=Music
Comment=Music Program
Exec=path/to/my/app
Icon=audio-headphones
StartupNotify=true
Terminal=false
Type=Application
Categories=Multimedia;
X-Ubuntu-Gettext-Domain=myApp
Πλέον κάνοντας search στις εφαρμογές μας για myApp θα εμφανίζεται η εφαρμογή μας και μπορούμε να την τρέξουμε.