Native iOS και Android εφαρμογές, σχεδιασμένες από μια ενιαία βάση κώδικα.
Δεν χρειάζεστε δύο ξεχωριστές ομάδες μηχανικών, δύο προϋπολογισμούς και δύο διαφορετικές βάσεις κώδικα για να φτάσετε στο App Store και στο Google Play. Αυτό το απαρχαιωμένο (legacy) μοντέλο πρακτορείων καίει χρόνο και χρήμα, ενώ σας αναγκάζει να κατασκευάσετε και να διορθώσετε κάθε χαρακτηριστικό δύο φορές.
Κατασκευάζω υψηλής απόδοσης mobile εφαρμογές που εκτελούνται εγγενώς (natively) τόσο σε iOS όσο και σε Android από μια ενοποιημένη βάση. Χρησιμοποιώντας σύγχρονες τεχνολογίες πολλαπλών πλατφορμών (cross-platform technologies) όπως το Flutter, το Capacitor και το React Native, οι χρήστες σας έχουν μια γνήσια native αίσθηση—ομαλές κινήσεις αφής 60fps, απτική ανάδραση, πρόσβαση στην κάμερα, ειδοποιήσεις push και βιομετρικές συνδέσεις—ενώ η επιχείρησή σας κερδίζει τη μισή επιβάρυνση (overhead) συντήρησης και ταυτόχρονες κυκλοφορίες δυνατοτήτων και στις δύο πλατφόρμες.
Καθορίζουμε τη σωστή διαδρομή διανομής (distribution path) για τους χρήστες σας: μια εφαρμογή εγκατεστημένη στο App Store και στο Google Play, μια Προοδευτική Διαδικτυακή Εφαρμογή (PWA) με δυνατότητα εγκατάστασης στην αρχική οθόνη, ή και τα δύο. Αποσαφηνίζουμε τις απαιτήσεις από νωρίς για να διασφαλίσουμε ομαλές εγκρίσεις στο κατάστημα χωρίς εκπλήξεις.
02 / 08Τι μπορούμε να παραδώσουμε
02
Διεπαφή με έμφαση στην αφή (Touch-first) & φυσική χειρονομιών
Η οθόνη ενός τηλεφώνου δεν είναι απλώς μια μικρή οθόνη υπολογιστή· είναι μια οικεία φυσική επιφάνεια. Σχεδιάζω διατάξεις φιλικές προς τον αντίχειρα (thumb-friendly), κάτω φύλλα πλοήγησης (bottom navigation sheets), αλληλεπιδράσεις pull-to-refresh και φυσικές κινήσεις σάρωσης (swipe gestures) που μοιάζουν απόλυτα φυσικές στις σύγχρονες συσκευές.
03 / 08Τι μπορούμε να παραδώσουμε
03
Μία κοινόχρηστη επιχειρηματική μηχανή
Αντί να γράφουμε τον έλεγχο ταυτότητας, τα μοντέλα δεδομένων και την επιχειρηματική λογική (business logic) δύο φορές σε δύο διαφορετικές γλώσσες προγραμματισμού, κατασκευάζουμε μία κεντρική μηχανή. Μια ενιαία πηγή λογικής οδηγεί ταυτόχρονα τις κατασκευές σας σε iOS και Android.
04 / 08Τι μπορούμε να παραδώσουμε
04
Γέφυρες υλικού εγγενούς (Native) συσκευής
Άμεση πρόσβαση στους αισθητήρες της συσκευής και στα εγγενή χαρακτηριστικά του λειτουργικού συστήματος: σάρωση γραμμωτών κωδίκων με την κάμερα, γεωεντοπισμός GPS για λειτουργίες πεδίου (field operations), βιομετρικά FaceID/δακτυλικό αποτύπωμα, απτικές δονήσεις (haptic vibrations) και ειδοποιήσεις push.
Όταν η συνδεσιμότητα πέφτει σε μια σήραγγα ή μια αποθήκη με ασταθές Wi-Fi, η εφαρμογή σας δεν παγώνει ούτε εμφανίζει σφάλμα. Τα κρίσιμα δεδομένα αποθηκεύονται με ασφάλεια στη συσκευή ώστε οι χρήστες να μπορούν να συνεχίσουν τη δουλειά τους· οι αλλαγές συγχρονίζονται αυτόματα όταν επιστρέψει το σήμα.
Η συμμόρφωση με τη χρέωση του Apple App Store και του Google Play είναι πασίγνωστα (notoriously) ανελέητη. Εφαρμόζω την ασφαλή χειραψία αγοράς από την πλευρά του πελάτη (client-side purchase handshake), την επικύρωση απόδειξης (receipt validation), τις ροές επαναφοράς-αγοράς και τη διαχείριση δικαιωμάτων (entitlement) συνδρομής.
Αναλαμβάνω τον κουραστικό μηχανισμό κυκλοφορίας: πιστοποιητικά προγραμματιστή Apple, Android keystores, προφίλ παροχής (provisioning profiles), κλιμάκωση πόρων (asset scaling), δηλώσεις απορρήτου (privacy manifests) και απαιτήσεις ελέγχου του App Store. Όλα συσκευάζονται έτοιμα για δημόσια διανομή.
08 / 08Τι μπορούμε να παραδώσουμε
08
Δοκιμές σε πραγματική συσκευή & παράδοση
Δεν βασιζόμαστε μόνο σε προσομοιωτές υπολογιστή. Η εφαρμογή σας δοκιμάζεται εξονυχιστικά σε πραγματικά φυσικά iPhone και συσκευές Android σε διάφορες εγκοπές οθόνης (screen notches) και εκδόσεις λειτουργικού συστήματος. Λαμβάνετε καθαρή ιδιοκτησία του αποθετηρίου, οδηγούς κατασκευής και σταθεροποίηση (stabilization) μετά το λανσάρισμα.
Καθορίζουμε τη σωστή διαδρομή διανομής (distribution path) για τους χρήστες σας: μια εφαρμογή εγκατεστημένη στο App Store και στο Google Play, μια Προοδευτική Διαδικτυακή Εφαρμογή (PWA) με δυνατότητα εγκατάστασης στην αρχική οθόνη, ή και τα δύο. Αποσαφηνίζουμε τις απαιτήσεις από νωρίς για να διασφαλίσουμε ομαλές εγκρίσεις στο κατάστημα χωρίς εκπλήξεις.
03 / γιατί
Πότε αυτό βοηθά
04 / τα κομμάτια lego
Επιλέγοντας τα σωστά εργαλεία
Η σύγχρονη μηχανική (engineering) πολλαπλών (cross-platform) πλατφορμών έχει ξεπεράσει εντελώς τα υποτονικά υβριδικά περιβλήματα (hybrid wrappers) της προηγούμενης δεκαετίας.
Κατασκευάζω mobile εφαρμογές χρησιμοποιώντας δοκιμασμένα στη μάχη frameworks (όπως το Flutter, το Capacitor και το React Native). Είτε γίνεται μεταγλώττιση (compiling) απευθείας σε κώδικα μηχανής ARM με το Flutter για πλούσια οπτική πιστότητα (visual fidelity), είτε αξιοποιώντας τα κοινά θεμέλια της TypeScript με το Capacitor, λαμβάνετε την ταχύτητα, την απόκριση (response) αφής και τις ρευστές κινούμενες εικόνες (animations) 60fps του εγγενούς (native) κώδικα σε συνδυασμό με την αποδοτικότητα μιας ενιαίας βάσης κώδικα.
Κάνετε ανάπτυξη (deploy) στο TestFlight, στο Google Play Internal Testing, και στα δύο δημόσια καταστήματα εφαρμογών (app stores) από ένα ενιαίο αποθετήριο (repository) Git—εξοικονομώντας μήνες πλεονάζουσας (redundant) ανάπτυξης και διατηρώντας τη μελλοντική συντήρηση λιτή (lean).
Σχετικά έργα
Μπορείτε να δείτε ακριβώς αυτή τη μηχανική (engineering) πολλαπλών πλατφορμών (cross-platform) σε δράση στο Sport Goal—όπου μια πυκνή, πλούσια σε δεδομένα αθλητική πλατφόρμα προσαρμόστηκε για iOS και Android χρησιμοποιώντας Ionic και Capacitor, συμπεριλαμβανομένου του χειρισμού εγγενών (native) χειρονομιών και της χειραψίας αγορών (purchase handshake) πελάτη στο App Store και στο Google Play.
Εάν έχουμε ήδη μια web εφαρμογή, μπορούμε να επαναχρησιμοποιήσουμε τον υπάρχοντα κώδικά μας για κινητά;+
Ναι, και από εκεί προέρχεται η τεράστια εξοικονόμηση χρόνου και κόστους.
Η επιχειρηματική σας λογική, τα αιτήματα API, οι ρουτίνες υπολογισμού και τα σχήματα δεδομένων μπορούν σε μεγάλο βαθμό να κοινοποιηθούν (shared). Προσαρμόζουμε το επίπεδο (layer) παρουσίασης (presentation) για κινητά—ανταλλάσσοντας τις διατάξεις (layouts) υπολογιστή (desktop) για κάτω πλοήγηση (bottom navigation), χειρονομίες αντίχειρα και αλληλεπιδράσεις ειδικές για τη συσκευή—έτσι ώστε να μην χρειάζεται να δημιουργήσετε τη βασική εφαρμογή σας από την αρχή.
Πώς διαχειρίζεται η εφαρμογή την εργασία εκτός σύνδεσης όταν δεν υπάρχει σύνδεση στο διαδίκτυο;+
Διατηρώντας μια ασφαλή τοπική κρυφή μνήμη (cache) δεδομένων στη συσκευή.
Εντοπίζουμε ποιες εργασίες πρέπει να είναι προσβάσιμες χωρίς σήμα. Η εφαρμογή αποθηκεύει προσωρινά (caches) αυτές τις πληροφορίες τοπικά (χρησιμοποιώντας SQLite ή αποθηκευτικό χώρο κινητής συσκευής). Όταν ο χρήστης κάνει μια ενέργεια εκτός σύνδεσης, μπαίνει στην ουρά με ασφάλεια στη συσκευή· τη στιγμή που το τηλέφωνο επανασυνδέεται σε δεδομένα κινητής ή Wi-Fi, η εφαρμογή συμφωνεί (reconciles) αυτόματα με τον διακομιστή (server) σας.
Θα μας βοηθήσετε να πλοηγηθούμε στη διαδικασία ελέγχου (review process) του Apple App Store και του Google Play;+
Ναι. Η πλοήγηση στις οδηγίες (guidelines) του καταστήματος είναι ένα αναπόσπαστο μέρος της παράδοσης.
Η Apple και η Google έχουν αυστηρές πολιτικές σχετικά με τη διαγραφή λογαριασμού, τις γνωστοποιήσεις απορρήτου (privacy disclosures), τη χρέωση εντός εφαρμογής (in-app billing) και την ελάχιστη λειτουργικότητα. Διαμορφώνω την κατασκευή (build) της εφαρμογής σας ώστε να ικανοποιεί τις οδηγίες του καταστήματος, συγκεντρώνω τα απαιτούμενα (privacy manifests) απορρήτου και σας υποστηρίζω απευθείας μέσα από τα σχόλια (feedback) ελέγχου μέχρι η εφαρμογή να εγκριθεί και να είναι ζωντανή (live).
Πρέπει να υποβάλλουμε μια νέα ενημέρωση καταστήματος (store update) στην Apple και τη Google κάθε φορά που κάνουμε μια μικρή αλλαγή;+
Όχι για όλα.
Οι αλλαγές που μεταβάλλουν τα δικαιώματα ή τα εγγενή (native) πρόσθετα της συσκευής (device plugins) απαιτούν μια τυπική (standard) δυαδική (binary) ενημέρωση μέσω των καταστημάτων. Ωστόσο, με τη σύγχρονη αρχιτεκτονική πολλαπλών πλατφορμών (cross-platform), πολλές βελτιώσεις στο περιεχόμενο, στο στυλ και στο επίπεδο ιστού (web-layer) μπορούν να προωθηθούν μέσω αέρα (over-the-air) ή να αντιμετωπιστούν μέσω ενημερώσεων διακομιστή (server updates) χωρίς να περιμένουν ημέρες για τον επανέλεγχο του App Store.
Μπορούμε να ξεκινήσουμε στο iOS πρώτα και να κυκλοφορήσουμε στο Android αργότερα, ή πρέπει να τα κυκλοφορήσουμε και τα δύο μαζί;+
Επειδή χτίζουμε με μια ενιαία βάση κώδικα (single codebase), η στόχευση και των δύο πλατφορμών από την πρώτη ημέρα είναι φυσική και απλή.
Ωστόσο, εάν το αρχικό κοινό σας είναι σε μεγάλο βαθμό προσανατολισμένο προς το iOS (ή το Android), μπορούμε να επικεντρώσουμε τις δοκιμές (testing) και το μάρκετινγκ σε ένα κατάστημα πρώτα για να επικυρώσουμε τη ζήτηση, και να ενεργοποιήσουμε τη δεύτερη πλατφόρμα όποτε είστε έτοιμοι χωρίς να ξαναγράψουμε την εφαρμογή.
Δουλεύοντας μαζί
Πόσο θα κοστίσει το έργο;+
Κάθε συνεργασία κοστολογείται ξεχωριστά, με βάση το εύρος, την πολυπλοκότητα και τις ανάγκες παράδοσης. Συμφωνούμε για την εργασία και το κόστος της πριν ξεκινήσει η ανάπτυξη.
Σε ποιον ανήκει το λογισμικό;+
Για custom έργα, σας ανήκει ο custom κώδικας, με αποθετήρια και υποδομές ελεγχόμενα από τον πελάτη, τεκμηρίωση και πλήρη παράδοση. Τα στοιχεία και οι υπηρεσίες τρίτων διατηρούν τις δικές τους άδειες και όρους.
Όταν ένα υπάρχον προϊόν ταιριάζει στις ανάγκες σας, μπορώ να σας βοηθήσω να το υιοθετήσετε και να το διαμορφώσετε, αποφεύγοντας την περιττή ανάπτυξη. Λαμβάνετε πρόσβαση με τους συμφωνημένους όρους του προϊόντος· η υποκείμενη πλατφόρμα του παραμένει στον ιδιοκτήτη της.
Τι υποστήριξη περιλαμβάνεται μετά το λανσάρισμα;+
Τα εφάπαξ έργα περιλαμβάνουν 60 ημέρες επιδιόρθωσης σφαλμάτων και σταθεροποίησης μετά το λανσάρισμα για τη συμφωνημένη παράδοση. Μπορεί να ακολουθήσει συνεχής υποστήριξη μέσω μιας συμφωνίας συντήρησης, με επιπλέον δυνατότητες να κοστολογούνται ξεχωριστά. Η πρόσβαση σε υπάρχοντα προϊόντα ακολουθεί τους όρους υποστήριξης του εκάστοτε προϊόντος.
Συζητήστε το έργο σας
Σχεδιάζετε μια εφαρμογή για κινητά; Ας συζητήσουμε τις απαιτήσεις σας.
Μιλήστε μου για την ιδέα, το πρόβλημα ή το μέρος του προϊόντος σας που θέλετε να προχωρήσετε. Μπορούμε να καθορίσουμε μαζί το εύρος και το σωστό επόμενο βήμα.