8 passos bàsics per fer-ho per executar l'aplicació Speech Blubs a Mac Catalyst

A principis de juny de 2019, enginyers d’iOS i macOS estaven tremolant perquè Apple estava a punt de llançar canvis a la seva conferència anual de la WWDC. Sigui el que fossin, solen canviar molts plans d’enginyers per a l’estiu. El nostre objectiu és aportar experiències excel·lents i de qualitat a les plataformes iOS / Mac, cosa que generalment significa treballar intensament per aconseguir que la data de llançament d’Apple sigui el més recent sistema operatiu. L’any 2019 no va ser diferent, encara que potser fins i tot una mica més especial.

Com és habitual, Apple va llançar moltes funcions noves, però n’hi havia una que esperava personalment fer proves. Fa més d'un any que se sap que treballen en un port UIKit per a macOS. Hi ha diverses aplicacions en macOS Mojave basades en aquesta tecnologia, que els mateixos Apple han creat.

Què significa exactament per als desenvolupadors d'aplicacions

Significa que podríem executar codi per a les nostres aplicacions d’iPhone i iPad amb molt pocs canvis de forma nativa en macOS. També vol dir que no hauríem de reescriure el nostre codi d'interfície d'usuari de UIKit a AppKit, que s'ha utilitzat en macOS des de fa dècades. Bàsicament, podríem afegir tota la plataforma macOS a la nostra cartera amb només unes hores de desenvolupament.

Com que la tecnologia ja estava al sistema operatiu l'any passat, la gent ja estava entusiasmada i va començar a experimentar amb l'anomenat "Projecte de massapà". El 2019 es va fer oficial i ara es diu "Project Catalyst", que s'inclou a la versió oficial de macOS Catalina. Però, com funciona a la pràctica? Quant triguem a fer que una aplicació real i iOS de producció funcioni en macOS amb Catalyst?

Speech Blubs al Mac

Tenia moltes ganes de saber la resposta a aquestes preguntes. Speech Blubs és la nostra aplicació principal i estem aconseguint grans resultats a iOS. És una aplicació complexa en diversos idiomes, amb més de 100.000 línies de codi, diverses biblioteques de tercers, etc. A mi em va semblar una opció fantàstica i realista per a aquest experiment. Així que només havia de començar a treballar en una versió de Mac. . .

Primer, vaig obrir el projecte, vaig crear una nova branca i vaig fer clic a la plataforma macOS. El següent pas va ser simplement fer-lo recopilar. La creació de l'aplicació emetria més de 100 errors. Oh estimat. Però deixeu-me continuar. Primer, vam haver de garantir que totes les biblioteques de tercers creessin i enllacessin. Com que el projecte utilitza CocoaPods, això seria més complicat, ja que el suport de Catalyst encara pot ser una mica incòmode. Així doncs, vaig començar a eliminar les nostres biblioteques d’analítica, inclosos Facebook, Crashlytics i les seves dependències, ja que realment no els necessitem per a aquest experiment.

Arribem al darrer número d'enllaç: Realm. Speech Blubs utilitza Realm com a base de dades, ja que és una de les millors bases de dades mòbils que hi ha. Estàvem enllaçant mitjançant CocoaPods i no es construiria. L’única manera d’incloure’l era amb Swift Package Manager, que fins ara no havíem utilitzat.

Gestor de paquets ràpids

Utilitzem diversos marcs privats i construïm el projecte amb CocoaPods. La conversió a SPM no seria una tasca petita de ben segur. Però no havíem de deixar completament CocoaPods, ja que treballen de la mà de la integració SPM de Xcode. Així doncs, vaig començar per convertir els nostres marcs interns per vincular-se amb SPM. Això també incloïa la conversió de totes les seves dependències. Vaig trigar aproximadament una hora en aprendre a escriure un paquet senzill, un fitxer ràpid i convertir totes les nostres dependències.

Fins i tot per la meva sorpresa, vaig aconseguir molt més ràpid del que m'esperava originalment. Encara és una mica molest afegir paquets Swift de forma manual a Xcode, ja que necessiteu que es torni a carregar cada vegada que feu un petit canvi al dipòsit GIt a GitHub.

Compilar i executar Speech Blubs a Mac

Així, ara totes les dependències es compilen i s’enllacen amb èxit, però l’aplicació encara no. Ja he suprimit algunes biblioteques de tercers, inclosa la nostra assistència de xat. Per continuar, vaig començar a comentar el codi que feia trucades a les biblioteques i després d’una hora de treball aproximadament, el projecte es va anar construint amb èxit. Per acabar-ho d'executar, només calia prémer el botó "Reproduir" a Xcode, a "El meu Mac" com a dispositiu de destinació, i Speech Blubs es va executar per primer cop a un escriptori. És una sensació increïble veure aquesta icona d'iOS familiar al vostre Dock.

Primer llançament de l'aplicació Speech Blubs

Glitches i Bugs

La primera tirada va demostrar que hi havia alguns insectes i falles. MacOS és una plataforma completament diferent. Comprensiblement, hi hauria un parell de coses que hem de solucionar. Teníem alguns problemes amb els botons, ja que semblaven massa grans. El més probable és que només hagin de corregir-se les restriccions de disseny automàtic. Desplaçar-se per funcionar, però de vegades semblava que no responia. Les nostres funcions de càmera i micròfon no funcionaven correctament, ja que hi havia grans diferències arquitectòniques. També faltaven els nostres anàlisis i suport de tercers perquè fos un producte totalment característic.

Conseqüències

A part d'alguns problemes i d'errors, Catalyst realitza la vostra elevada càrrega. Els reconeguts gestuals han funcionat molt bé, tots els elements UIKit per defecte també funcionen bastant bé. La majoria del nostre codi de model ja es trobava fora de caixa, ja que era independent de la UI. En casos com aquests, l'arquitectura sòlida ajuda realment a traslladar les coses ràpidament a una nova plataforma. Té sentit el producte en si? Sincerament no ho sé. La majoria de les mecàniques que utilitzem a l'aplicació no són adequades al Mac, però això no significa que no hàgim seguit la idea. Cada aplicació és diferent i té les seves pròpies funcions. I cada plataforma és diferent, el mateix passa amb watchOS, tvOS, etc. En general, Catalyst és un gran conjunt d’eines i, si la vostra aplicació té sentit també a Mac, realment pot simplificar i accelerar el procés de desenvolupament si suporta tant plataformes iOS com macOS. I encara més quan podreu utilitzar SwiftUI, que es troba com a mínim un any. De qualsevol manera, va ser un bon experiment fer, només per veure com sortiria tot. Pot ser que tingueu problemes que hi hagi a causa de les solucions solucionades que heu implementat a iOS, però ja no funcionen al Mac. Llavors, per respondre a la meva pregunta, quant temps triga? Depèn. En el producte en si, en suport de l’iPad, la qualitat del codi i la qualitat que voleu que l’aplicació se senti al Mac.

Posa't en contacte amb l'equip de desenvolupadors de Speech Blubs!

Si voleu xerrar sobre el desenvolupament d'aplicacions, no dubteu en contactar amb nosaltres. És el que fem i el que estimem, per la qual cosa ens agrada molt parlar-ne. :)