8 Πρέπει να κάνετε τα βήματα για να εκτελέσετε την εφαρμογή Blubs ομιλίας στον καταλύτη Mac

Στις αρχές Ιουνίου του 2019, οι μηχανικοί του iOS και του macOS αναταράσσονταν επειδή η Apple επρόκειτο να απελευθερώσει τις αλλαγές στο ετήσιο συνέδριο WWDC. Ό, τι κι αν ήταν, αλλάζουν συνήθως τα σχέδια των μηχανικών για το καλοκαίρι. Στόχος μας είναι να φέρουμε σπουδαίες και ποιοτικές εμπειρίες στις πλατφόρμες iOS / Mac, που συνήθως σημαίνει να δουλέψουμε σκληρά για να κάνουμε την ημερομηνία κυκλοφορίας του νεότερου λειτουργικού συστήματος της Apple. Το έτος 2019 δεν ήταν διαφορετικό, αν και ίσως ακόμη και λίγο πιο ειδικό.

Ως συνήθως, η Apple κυκλοφόρησε πολλά νέα χαρακτηριστικά, αλλά υπήρξε ένα που προσωπικά ανυπομονούσα να δοκιμάσω. Έχει γίνει κοινή γνώση ότι πάνω από ένα χρόνο δουλεύουν σε ένα λιμάνι UIKit στο macOS. Υπάρχουν αρκετές εφαρμογές στο MacOS Mojave που βασίζονται σε αυτή την τεχνολογία, την οποία η ίδια η Apple έχει κατασκευάσει.

Τι σημαίνει για τους προγραμματιστές εφαρμογών Ακριβώς

Αυτό σημαίνει ότι θα μπορούσαμε να εκτελέσουμε κώδικα για τις εφαρμογές iPhone και iPad με πολύ λίγες αλλαγές στο native macOS. Σημαίνει επίσης ότι δεν θα χρειαζόταν να ξαναγράψουμε τον κώδικα διεπαφής χρήστη από το UIKit στο AppKit, το οποίο έχει χρησιμοποιηθεί για MacOS εδώ και δεκαετίες. Βασικά, θα μπορούσαμε να προσθέσουμε ολόκληρη την πλατφόρμα macOS στο χαρτοφυλάκιο μας με λίγες μόνο ώρες ανάπτυξης.

Δεδομένου ότι η τεχνολογία ήταν ήδη στο λειτουργικό σύστημα πέρυσι, οι άνθρωποι ήταν ήδη ενθουσιασμένοι και άρχισαν να πειραματίζονται με το λεγόμενο "Project Marzipan". Το 2019, έγινε επίσημο και τώρα αποκαλείται "Project Catalyst", το οποίο περιλαμβάνεται στην επίσημη έκδοση macOS Catalina. Αλλά, πώς λειτουργεί στην πράξη; Πόσο καιρό χρειάζεται για να εκτελεστεί μια πραγματική εφαρμογή παραγωγής iOS στο macOS με Catalyst;

Λάθη ομιλίας στο Mac

Ήθελα πραγματικά να μάθω την απάντηση στις ερωτήσεις αυτές. Τα Blubs ομιλίας είναι η κύρια εφαρμογή μας και επιτυγχάνουμε εξαιρετικά αποτελέσματα στην iOS. Είναι μια σύνθετη εφαρμογή σε πολλές γλώσσες, με περισσότερες από 100.000 σειρές κώδικα, πολλαπλές βιβλιοθήκες τρίτου μέρους και ούτω καθεξής. Για μένα, ακούγεται σαν μια μεγάλη και ρεαλιστική επιλογή για αυτό το πείραμα. Έτσι, έπρεπε να αρχίσω να δουλεύω σε μια έκδοση Mac. . .

Αρχικά, άνοιξα το έργο, δημιούργησα ένα νέο υποκατάστημα και έκανα κλικ στην πλατφόρμα macOS! Το επόμενο βήμα ήταν απλώς να το καταρτίσουμε! Η δημιουργία της εφαρμογής θα εκπέμπει περισσότερα από 100 λάθη. Αγαπητέ. Αλλά επιτρέψτε μου να συνεχίσω. Κατ 'αρχάς, έπρεπε να εξασφαλίσουμε ότι όλες οι βιβλιοθήκες τρίτων μερών οικοδομούσαν και συνδέονταν. Καθώς το έργο χρησιμοποιεί CocoaPods, αυτό θα το έκανε λίγο πιο περίπλοκο, καθώς η υποστήριξη Catalyst μπορεί να είναι ακόμα λίγο buggy. Έτσι άρχισα να απομακρύνω τις βιβλιοθήκες αναλύσεων, όπως το Facebook, το Crashlytics και τις εξαρτήσεις τους, καθώς δεν τις χρειαζόμαστε πραγματικά για αυτό το πείραμα.

Φτάσαμε στο τελευταίο θέμα σύνδεσης: Realm. Το Blurb Speech χρησιμοποιεί το Realm ως βάση δεδομένων επειδή είναι μια από τις καλύτερες βάσεις δεδομένων για κινητά εκεί έξω. Συνδέσαμε το μέσω CocoaPods και απλά δεν θα χτίσαμε. Ο μόνος τρόπος να συμπεριληφθεί ήταν με το Swift Package Manager, το οποίο δεν είχαμε χρησιμοποιήσει μέχρι τώρα.

Διευθυντής πακέτων Swift

Χρησιμοποιούμε πολλά ιδιωτικά πλαίσια και χτίζουμε το έργο με το CocoaPods. Η μετατροπή σε SPM δεν θα είναι σίγουρα ένα μικρό έργο. Αλλά δεν έπρεπε πραγματικά να ρίξουμε το CocoaPods εντελώς, καθώς συνεργάζονται μαζί με την ενσωμάτωση SPM του Xcode. Έτσι, ξεκίνησα με τη μετατροπή των εσωτερικών μας πλαισίων που συνδέονται με το SPM. Αυτό περιλαμβάνει επίσης τη μετατροπή όλων των εξαρτήσεων. Μου πήρε περίπου μια ώρα για να μάθω να γράφω ένα απλό πακέτο, ένα γρήγορο αρχείο και να μετατρέψω όλες τις εξαρτήσεις μας.

Ακόμη και για την έκπληξή μου, πέρασα πολύ πιο γρήγορα από ό, τι περίμενα. Είναι ακόμα ενοχλητικό να προσθέτετε χειροκίνητα το Swift πακέτα στο Xcode, καθώς χρειάζεται να το φορτώνετε κάθε φορά που κάνετε μια μικρή αλλαγή στο χώρο αποθήκευσης GIT στο GitHub.

Συγκέντρωση και εκτέλεση μπλοκ ομιλίας σε Mac

Έτσι, τώρα όλες οι εξαρτήσεις καταρτίζουν και συνδέουν με επιτυχία, αλλά η εφαρμογή εξακολουθεί να μην το κάνει. Έχω ήδη αφαιρέσει ορισμένες βιβλιοθήκες τρίτων μερών, συμπεριλαμβανομένης της υποστήριξης συνομιλίας. Για να συνεχίσω, άρχισα να σχολιάζω τον κώδικα που έκανε κλήσεις σε αυτές τις βιβλιοθήκες και μετά από περίπου μία ώρα εργασίας, το έργο χτίζεται με επιτυχία. Για να το εκτελέσω τελικά, το μόνο που έπρεπε να κάνω ήταν να πατήσω το πλήκτρο 'Play' στο Xcode, στο 'My Mac' ως συσκευή στόχου, και το Speech Blubs τρέχει σε επιφάνεια εργασίας για πρώτη φορά! Είναι ένα εκπληκτικό συναίσθημα που βλέπει το γνωστό εικονίδιο iOS στο Dock σας.

Πρώτη εκτέλεση της εφαρμογής Blubs ομιλίας

Δυσκολίες και σφάλματα

Η πρώτη διαδρομή έδειξε ότι υπήρχαν κάποια σφάλματα και δυσλειτουργίες. Το MacOS είναι μια εντελώς διαφορετική πλατφόρμα. Φυσικά, υπήρχαν κάποια πράγματα στα Blub Speech που θα χρειαζόταν να διορθώσουμε. Είχαμε ορισμένα προβλήματα με τα κουμπιά, καθώς φαίνονταν πολύ μεγάλα. Πιθανότατα απλώς περιορισμοί αυτόματης διάταξης που έπρεπε να διορθωθούν. Ο κύλινδρος στο έργο, αλλά φάνηκε λίγο απόκριση κατά καιρούς. Οι δυνατότητες κάμερας και μικροφώνου δεν λειτουργούσαν σωστά, καθώς υπήρχαν τεράστιες αρχιτεκτονικές διαφορές. Οι αναλύσεις και η υποστήριξη τρίτων μας επίσης λείπουν για να είναι ένα πλήρως εξοπλισμένο προϊόν.

Συνέπεια

Εκτός από μερικές δυσλειτουργίες και σφάλματα, ο Catalyst κάνει πραγματικά τη βαριά ανύψωση για εσάς. Οι αναγνώστες χειρονομίας δούλεψαν ωραία, όλα τα προεπιλεγμένα στοιχεία UIKit λειτουργούν πολύ καλά. Το μεγαλύτερο μέρος του κώδικα μοντέλου μας έλειπε ήδη από το κουτί, καθώς ήταν ανεξάρτητο από το UI. Σε περιπτώσεις όπως αυτές, η σταθερή αρχιτεκτονική βοηθά στην γρήγορη μετακίνηση των πραγμάτων σε μια νέα πλατφόρμα. Είναι λογικό για το ίδιο το προϊόν; Ειλικρινά δεν το ξέρω. Οι περισσότεροι από τους μηχανικούς που χρησιμοποιούμε στην εφαρμογή δεν είναι κατάλληλοι για Mac, αλλά αυτό δεν σημαίνει ότι δεν ακολουθήσαμε την ιδέα. Κάθε εφαρμογή είναι διαφορετική και έχει τα δικά της μοναδικά χαρακτηριστικά. Και κάθε πλατφόρμα είναι διαφορετική, το ίδιο ισχύει για το watchOS, το tvOS και ούτω καθεξής. Ο συνολικός καταλύτης είναι μια μεγάλη εργαλειοθήκη και αν η εφαρμογή σας έχει νόημα και για Mac, μπορεί πραγματικά να απλοποιήσει και να επιταχύνει τη διαδικασία ανάπτυξης αν υποστηρίζετε και τις πλατφόρμες iOS και macOS. Και ακόμα περισσότερο όταν θα μπορείτε να χρησιμοποιήσετε το SwiftUI, το οποίο είναι τουλάχιστον ένα χρόνο μακριά. Είτε έτσι είτε αλλιώς, ήταν ένα καλό πείραμα να κάνουμε, απλώς για να δούμε πώς θα έκαναν όλα τα turs out. Μπορεί να αντιμετωπίσετε σφάλματα που υπάρχουν λόγω των εναλλακτικών λύσεων που εφαρμόσατε στο iOS, αλλά δεν λειτουργούν πλέον στο Mac. Για να απαντήσω στην ερώτησή μου, πόσο καιρό χρειάζεται; Εξαρτάται. Στο ίδιο το προϊόν, στην υποστήριξη iPad, την ποιότητα του κώδικα και τον τρόπο με τον οποίο θέλετε να αισθάνεται η εφαρμογή στο Mac.

Λάβετε επαφή με την Ομάδα Προγραμματιστών του Speech Blubs 'Developers!

Αν θέλετε να συζητήσετε για την ανάπτυξη εφαρμογών, επικοινωνήστε μαζί μας. Είναι αυτό που κάνουμε και τι αγαπάμε, οπότε πραγματικά θέλουμε να μιλήσουμε γι 'αυτό! :)