Ο Ηλίας Κατσαρός έφτιαξε μια εφαρμογή για το ελαιοτριβείο του έξω από την Καλαμάτα: ο ζυγιστής χτυπάει το όνομα του παραγωγού και τα κιλά, και το φορτίο μπαίνει στη σειρά. Στο γραφείο δούλευε τέλεια. Στην αυλή, όπου το κινητό ζει σε τσέπη ποδιάς ανάμεσα σε δύο φορτηγά, τα μισά φορτία έφταναν χωρίς όνομα.
Αυτή είναι όλη η διαφορά ανάμεσα σε αυτό το θέμα και στο διπλανό του. Μια σελίδα ζητιέται και παραδίδεται. Μια εφαρμογή εγκαθίσταται πάνω σε συσκευή που έχει λίγο ρεύμα, λίγη προσοχή, και δικαίωμα να τη σβήσει χωρίς να της το πει, και καθένα από τα πέντε υποθέματα εδώ είναι συνέπεια αυτού.
Αυτό που δεν δείχνει ποτέ ένα κινητό πάνω σε πάγκο
Και οι δύο πλατφόρμες αντιμετωπίζουν μια εφαρμογή στο παρασκήνιο ως πόρο προς ανάκτηση. Η εφαρμογή τερματίζεται στο παρασκήνιο και επαναφέρεται μόνο από όσα έχει γράψει. Δεν παγώνει, δεν αναστέλλεται με τρόπο που επιβιώνει: τελειώνει, της παίρνουν τη μνήμη, και ύστερα ξαναξεκινάει σε όποια οθόνη ισχυριστεί ότι ήταν. Το όνομα που είχε διαλέξει ο ζυγιστής και δεν είχε γραφτεί πουθενά δεν είχε υπάρξει ποτέ.
Η διόρθωση του Ηλία ήταν έντεκα γραμμές: γράψε τον επιλεγμένο παραγωγό στον μικρό αποθηκευτικό χώρο της συσκευής τη στιγμή που αλλάζει, διάβασέ τον πίσω στην εκκίνηση, και αντιμετώπισε το αντίγραφο στη μνήμη ως προσωρινό και όχι ως την αλήθεια. Ο κανόνας ισχύει για κάθε κατάσταση που κρατάει μια εφαρμογή. Ό,τι δεν γράφτηκε χάνεται την πρώτη φορά που κάποιος σηκώνει τηλέφωνο.
Ο λόγος που αυτό μένει αόρατο στη δοκιμή είναι ότι ένα κινητό συνδεδεμένο σε φορητό υπολογιστή με ενεργό αποσφαλματωτή προστατεύεται ρητά από τη συμπεριφορά. Η πλατφόρμα δεν ανακτά εφαρμογή που της ζητούν να την επιθεωρήσει, οπότε ακριβώς η βλάβη που είναι σχεδιασμένη να παράγει η συσκευή είναι εκείνη που καταπνίγει το περιβάλλον ανάπτυξης.
Δύο αριθμοί που αποφασίζουν μια διάταξη
Ένας δείκτης πάνω σε γραφείο είναι ένα εικονοστοιχείο, ένα δάχτυλο δεν είναι. 44 σημεία στο iOS και 48 dp στο Android είναι το δάπεδο για έναν στόχο αφής, και οι δύο αριθμοί είναι δημοσιευμένη οδηγία και όχι γούστο κανενός. Δεν είναι μετρήσεις σε εικονοστοιχεία: το σημείο και το ανεξάρτητο από την πυκνότητα εικονοστοιχείο μένουν ίδια σε φυσικό μέγεθος πάνω σε οθόνες διαφορετικής ευκρίνειας, που είναι όλος ο λόγος ύπαρξής τους.
Η λίστα παραγωγών του Ηλία είχε γραμμές 32 σημείων, επειδή αυτό έδειχνε σωστό στο μέγεθος που του έδειχνε το εργαλείο σχεδίασης. Στην αυλή, με λαδωμένα χέρια και ήλιο πάνω στην οθόνη, μία στις έξι επιλογές έπεφτε σε λάθος γραμμή. Οι άνθρωποι που τη χτυπούσαν λάθος δεν ανέφεραν σφάλμα. Ανέφεραν ότι η εφαρμογή είναι εκνευριστική, που είναι η μορφή με την οποία φτάνουν οι περισσότερες τέτοιες βλάβες και ο λόγος που ο Σχεδιασμός για κινητό είναι υποθέμα και όχι υποσημείωση.
Μία φορά ή δύο, και το αποφασίζει η συσκευή
Η ερώτηση που κυριαρχεί εδώ είναι αν γράφεται μία φορά ή δύο, και η απάντηση εξαρτάται από το πόσο αγγίζει η εφαρμογή τη συσκευή. Μια εφαρμογή με λίστες, φόρμες και κείμενο γράφεται μία φορά και φτάνει και στα δύο καταστήματα με κόστος πολύ κοντά στο μισό. Μια εφαρμογή χτισμένη γύρω από την κάμερα, τη θέση στο παρασκήνιο ή ένα μικροεργαλείο στην αρχική οθόνη δεν γράφεται μία φορά, επειδή ένας κοινός κώδικας φτάνει σε δύο καταστήματα, και το καινούριο χαρακτηριστικό αργεί: τη γέφυρα προς αυτό πρέπει να τη γράψει κάποιος αφού το βγάλει η πλατφόρμα.
Η εφαρμογή του ελαιοτριβείου είναι λίστες και ένα άθροισμα, οπότε η κοινή απάντηση στον Κοινό κώδικα για δύο πλατφόρμες ήταν η σωστή για εκείνον. Θα ήταν λάθος απάντηση για μια εφαρμογή που ξυπνάει μόνη της όταν το φορτηγό μπαίνει στην αυλή, και το λάθος δεν θα φαινόταν για τέσσερις μήνες.
Μία κυκλοφορία
Το χτίσιμο είναι η πρώτη από πέντε πύλες και η μόνη φτιαγμένη από κώδικα
Το πλάτος κάθε ζώνης είναι η μέτρηση του ίδιου του ελαιοτριβείου για μία κυκλοφορία, οπότε η πτώση είναι το δεδομένο: η μεγαλύτερη απώλεια κάθεται ανάμεσα στην εγκατάσταση και στο δεύτερο άνοιγμα.
- Χτίζει στο μηχάνημαΗ πύλη στην οποία τελειώνει κάθε μάθημα, και η φθηνότερη από τις πέντε100
- Περνάει τον έλεγχοΑπορρίφθηκε μία φορά για μια άδεια που ζητήθηκε στην πόρτα, και κόστισε τέσσερις μέρες71
- Βρίσκεται στο κατάστημαΈνας κατάλογος είναι αποτέλεσμα αναζήτησης πριν γίνει εφαρμογή34
- ΕγκαθίσταταιΕκεί που σταματάει η μέτρηση των περισσότερων, και εκεί που δεν έχει συμβεί ακόμη τίποτα19
- Ανοίγει δεύτερη φοράΟ πρώτος τίμιος αριθμός, και εκείνος που τον κατέστρεφε το ξεχασμένο όνομα6
Οι μετρήσεις είναι μιας μικρής εφαρμογής σε μία κυκλοφορία, ανηγμένες στα εκατό, και όχι νούμερο του κλάδου. Ο ισχυρισμός είναι το σχήμα: οι τέσσερις από τις πέντε πύλες περνιούνται αφού τελειώσει ο κώδικας.
Η ουρά που δεν είναι κώδικας
Η δημοσίευση μιας εφαρμογής δεν είναι εγκατάσταση σε διακομιστή. Υπάρχει έλεγχος, ο έλεγχος είναι ουρά, και η ουρά έχει σχήμα που αξίζει να το ξέρετε πριν από την πρώτη υποβολή. Μία απόρριψη σας ξαναβάζει στο τέλος της ουράς ελέγχου, οπότε μια πρόχειρη υποβολή κοστίζει μέρες και όχι τα δέκα λεπτά που θέλει η διόρθωση. Οι συνηθισμένες απορρίψεις δεν είναι λεπτές: μια δήλωση απορρήτου που λείπει, μια σύνδεση από την οποία δεν περνάει ο ελεγκτής, ή μια άδεια που ζητιέται και δεν φαίνεται πουθενά να χρησιμοποιείται.
Οι αριθμοί της πρώτης του έκδοσης, ανηγμένοι στα εκατό, δείχνουν πού χάνεται στ' αλήθεια μια κυκλοφορία. Από 100 χτισίματα που έτρεξαν στο μηχάνημά του, 71 πέρασαν τον έλεγχο, 34 βρέθηκαν από κάποιον που έψαχνε στο κατάστημα, 19 εγκαταστάθηκαν και 6 ανοίχτηκαν δεύτερη φορά. Τέσσερις από τις πέντε πύλες περνιούνται αφού τελειώσει ο κώδικας, και η μεγαλύτερη πτώση είναι η τελευταία.
Ο Ηλίας ζητούσε πρόσβαση στην τοποθεσία στο πρώτο άνοιγμα, πριν φανεί οτιδήποτε, και απορρίφθηκε γι' αυτό. Η εκδοχή που πέρασε τη ζητάει την τρίτη φορά, τη στιγμή που ο ζυγιστής πατάει το κουμπί που τη χρειάζεται. Μια άδεια με ορατό λόγο μπροστά της δίνεται πολύ πιο συχνά από μια άδεια που ζητιέται στην πόρτα.
Η δεύτερη πλατφόρμα είναι ένα Mac και 99 ευρώ τον χρόνο
Εδώ κολλάει ο Έλληνας αναγνώστης, και το κόλλημα είναι λογαριασμός μεταμφιεσμένος σε τεχνικό εμπόδιο. Κάποιος βγάζει την εφαρμογή στο Android, βρίσκει χρήστες, και ύστερα ανακαλύπτει ότι ο δρόμος προς το iOS περνάει από μηχάνημα που δεν έχει. Ο λογαριασμός προγραμματιστή της Apple κοστίζει 99 ευρώ τον χρόνο και ανανεώνεται κάθε χρόνο. Ο λογαριασμός του Google Play πληρώνεται μία φορά και μένει κάτω από τα τριάντα ευρώ. Η εγγραφή δείχνει την τρέχουσα τιμή και εκείνη μετράει, όχι ένα άρθρο.
Πάνω σε καθαρές αποδοχές γύρω στα 1.000 ευρώ, πληρωμένες δεκατέσσερις φορές τον χρόνο, η ετήσια συνδρομή είναι περίπου το ένα δέκατο ενός μισθού, πριν καν μπει στη μέση το μηχάνημα. Ένας Γερμανός αναγνώστης το γράφει σε έξοδα. Ένας Έλληνας φοιτητής το αποφασίζει, και αυτό είναι το σημείο όπου ένα βραδινό έργο ή γίνεται προϋπολογισμός ή σταματάει.
Υπάρχει και ένα δεύτερο ελληνικό μισό, που το αγνοεί κάθε ξένη σελίδα. Η ελληνική αγορά είναι μικρή και ξοδεύει λίγα μέσα σε καταστήματα εφαρμογών, οπότε μια εφαρμογή που πρέπει να πληρώσει τον εαυτό της γράφεται από την πρώτη μέρα στα αγγλικά και για ξένο κατάστημα. Αυτό αλλάζει τα κείμενα, τα νομίσματα και τις εικόνες του καταλόγου, όχι μόνο τη γλώσσα, και το ζυγίζουν μαζί τα Έσοδα από μια εφαρμογή με τον Ελεύθερο επαγγελματία.
Τι ανοίγετε το 2026, και τι πληρώνετε πριν γράψετε γραμμή
Το Android Studio χτίζει για Android πάνω και στα τρία λειτουργικά συστήματα γραφείου, είναι δωρεάν, και αντικατέστησε το Eclipse με το πρόσθετο για Android, που το δείχνουν ακόμη οδηγοί παλαιότεροι από το 2015 περίπου. Είναι ο φθηνός δρόμος και ο λόγος που σχεδόν κάθε ελληνικό βραδινό έργο ξεκινάει από εκεί.
Το Xcode είναι ο μόνος δρόμος για το iOS και θέλει Mac, που σημαίνει ότι μια απόφαση υλικού παίρνεται από ένα εργαλείο λογισμικού. Το ίδιο το Xcode δεν κοστίζει τίποτα. Το μηχάνημα και ο ετήσιος λογαριασμός κοστίζουν, και αυτοί οι δύο αριθμοί ανήκουν στο ίδιο χαρτί με τα υπόλοιπα έξοδα πριν γραφτεί η πρώτη γραμμή.
Για τον κοινό δρόμο, το Flutter και το React Native είναι οι δύο σοβαρές επιλογές και χωρίζονται από αυτό που ήδη ξέρετε: το React Native αν η ομάδα γράφει JavaScript, το Flutter αν δεν γράφει και προτιμάει να μάθει ένα πράγμα που συμπεριφέρεται ίδια και στις δύο πλευρές. Και τα δύο αντικατέστησαν την προηγούμενη γενιά εργαλείων που έστελναν μια ιστοσελίδα μέσα σε κέλυφος εφαρμογής, τακτική που ο χρήστης τη νιώθει αξιόπιστα και που τα Θεμέλια του προγραμματισμού δεν τη σώζουν.
Η ίδια δουλειά, γραμμένη για περιηγητή, δεν έχει ούτε ουρά ελέγχου ούτε ετήσιο λογαριασμό, και είναι η Ανάπτυξη ιστού. Άρα η ερώτηση που μένει στον Ηλία δεν είναι ποια πλατφόρμα. Είναι αν το πράγμα που φτιάχνει χρειάζεται καθόλου κατάστημα, και αυτό είναι μια ερώτηση για ολόκληρο τον Προγραμματισμό υπολογιστών και όχι μόνο για την τσέπη.