8 kötelező lépés a Speech Blubs alkalmazás futtatásához a Mac Catalyston

2019. június elején az iOS és a macOS mérnökei remegtek, mert az Apple éppen a WWDC éves konferenciáján fogja közzétenni a változásokat. Bármi is legyen, általában sok mérnök megváltoztatja a nyári terveket. Célunk az, hogy nagyszerű és minőségi élményeket nyújtsunk az iOS / Mac platformokra, ami általában azt jelenti, hogy keményen dolgozunk annak érdekében, hogy az Apple kiadja a legújabb operációs rendszer kiadásának dátumát. A 2019 év nem volt különbözõ, bár talán még valamivel különösebb.

Mint általában, az Apple kiadott egy csomó új funkciót, de volt egy, amit személyesen vártam a teszteléshez. Több mint egy éve köztudott, hogy egy UIKit porton dolgoznak a MacOS-hoz. A macOS Mojave-ben számos olyan alkalmazás van, amely erre a technológiára épül, amelyeket maguk az Apple építettek.

Mit jelent pontosan az alkalmazásfejlesztők számára?

Ez azt jelenti, hogy képes leszünk futtatni kódot iPhone és iPad alkalmazásunkra, nagyon kevés változással natív módon a macOS-on. Ez azt is jelenti, hogy nem kellene újraírnunk felhasználói felületünket az UIKit-től az AppKit-ig, amelyet évtizedek óta használnak a macOS-on. Alapvetõen néhány órányi fejlesztéssel hozzá tudnánk adni az egész macOS platformot portfóliónkhoz.

Mivel a technológia már az operációs rendszerben volt a tavalyi évben, az emberek már izgatottak voltak és elkezdték kísérletezni az úgynevezett „Marcipán projektet”. 2019-ben hivatalossá vált, és most neve „Project Catalyst”, amely szerepel a MacOS Catalina hivatalos kiadásában. De hogyan működik ez a gyakorlatban? Mennyi ideig tart egy valódi, produkciós iOS alkalmazás futtatása a MacOS-on a Catalyst segítségével?

Beszédbuborékok a Mac számítógépen

Nagyon szerettem volna tudni a választ ezekre a kérdésekre. A Speech Blubs a fő alkalmazásunk, és jó eredményeket érünk el az iOS rendszeren. Ez egy összetett alkalmazás több nyelven, több mint 100 000 kódsorral, több harmadik fél könyvtárával és így tovább. Számomra nagyszerű és reális választásnak tűnt e kísérlet számára. Szóval el kellett kezdenem dolgozni egy Mac verzióval. . .

Először kinyitottam a projektet, létrehoztam egy új ágot, és rákattintottam a macOS platformon! A következő lépés az volt, hogy csak összeállítsuk! Az alkalmazás létrehozása több mint 100 hibát eredményez. Ó, drágám. De hadd folytassam. Először is biztosítanunk kellett, hogy minden harmadik fél könyvtárak épüljenek és összekapcsolódjanak. Mivel a projekt CocoaPod-okat használ, ez egy kicsit bonyolultabbá tenné, mivel a Catalyst támogatás továbbra is kissé hibás lehet. Tehát elkezdtem eltávolítani az elemző könyvtárainkat, köztük a Facebook-ot, a Crashlytics-t és azok függőségeit, mivel nem igazán szükségük van rájuk ehhez a kísérlethez.

Megérkeztünk az utolsó kapcsoló kérdéshez: a birodalomhoz. A Speech Blubs a Realm-t használja adatbázisként, mert az egyik legjobb mobil adatbázis. Összekapcsoltuk a CocoaPods-on keresztül, és ez csak nem épül fel. Az egyetlen módja annak bevonása a Swift Package Manager segítségével volt, amelyet eddig még nem használtunk.

Swift csomagkezelő

Számos privát keretet használunk, és a projektet a CocoaPods-nal építjük fel. Az SPM-re való konvertálás nem minden bizonnyal kicsi feladat. De nem kellett teljesen elhagynunk a CocoaPod-ot, mivel ezek együtt járnak az Xcode SPM-integrációjával. Tehát kezdtem azzal, hogy belső kereteinket átalakítottuk az SPM-hez kapcsolva. Ez magában foglalta valamennyi függőségük átalakítását is. Nagyjából egy órába telt, amíg megtanultam írni egy egyszerű csomagot, egy gyors fájlt és konvertálni az összes függőségünket.

Még meglepetésemre is, sokkal gyorsabban mentem keresztül, mint amire eredetileg számítottam. Még mindig bosszantó, ha a Swift csomagokat manuálisan adjuk hozzá az Xcode-hez, mivel újratelepítésre van szüksége minden alkalommal, amikor kis változtatásokat hajt végre a GitHub GIt-tárházában.

Beszédbuborékok összeállítása és futtatása Mac rendszeren

Tehát most az összes függőség sikeresen összeáll és összekapcsolódik, de az alkalmazás még mindig nem rendelkezik. Már eltávolítottam néhány harmadik fél könyvtárait, beleértve a csevegési támogatást. A folytatáshoz elkezdtem kommentálni azt a kódot, amely felhívta ezeket a könyvtárakat, és körülbelül egy óra munka után a projekt sikeresen felépült. Végül a futtatáshoz csak annyit kellett tennem, hogy megnyomtam a 'Play' gombot az Xcode-ban, a 'My Mac'-en cél eszközként, és a Speech Blubs először futott az asztalon! Csodálatos érzés látni ezt az ismerős iOS ikont a dokkban.

A Speech Blubs alkalmazás első futtatása

Hibák és hibák

Az első futtatás azt mutatta, hogy vannak hibák és hibák. A MacOS egy teljesen más platform. Érthető módon volt néhány dolog a Speech Blub-ban, amelyeket javítanunk kellene. Van néhány probléma a gombokkal, mivel túl nagynak tűntek. Valószínűleg csak az automatikus elrendezés megszorításai, amelyeket meg kellett javítani. A görgetés működött, de időnként kissé nem reagált. A fényképezőgép és a mikrofon funkciói nem működtek megfelelően, mivel hatalmas építészeti különbségek voltak. Külső elemzőktől és támogatástól szintén hiányzott, hogy ez teljes értékű termék legyen.

utóhatás

Néhány csillogástól és hibától eltekintve a Catalyst valóban nehéz emelőt nyújt Önnek. A gesztusfelismerők szépen működtek, az összes alapértelmezett UIKit elem is nagyon jól működik. A legtöbb modellkód már kifogyott a dobozból, mivel az UI-tól független volt. Ilyen esetekben a szilárd architektúra valóban segíti a dolgok gyors áthelyezését egy új platformra. Van értelme magának a terméknek? Őszintén nem tudom. Az alkalmazásban alkalmazott mechanika többsége nem megfelelő a Mac-hez, de ez nem jelenti azt, hogy nem követjük el az ötletét. Minden alkalmazás különbözik, és megvan a maga egyedi jellemzői. És minden platform különbözik, ugyanez vonatkozik a watchOS-ra, a tvOS-ra és így tovább. Az Összességében a Catalyst nagyszerű eszközkészlet, és ha az alkalmazásnak is van értelme a Mac-en, akkor valóban egyszerűsítheti és felgyorsíthatja a fejlesztési folyamatot, ha mind iOS, mind MacOS platformokat támogatja. És még ennél is inkább, ha képes lesz használni a SwiftUI-t, amely legalább egy évre van. Mindkét esetben jó kísérlet volt, csak hogy megnézhessük, hogyan menne ki mindez. Előfordulhat, hogy hibákat tapasztal az iOS-en végrehajtott megoldások miatt, ám ezek már nem működnek a Mac rendszeren. Tehát a kérdésem megválaszolásához mennyi ideig tart? Attól függ. Maga a termék, az iPad támogatás, a kódminőség és az, hogy milyen natívnak szeretné, hogy az alkalmazás érezze magát a Mac rendszeren.

Vegye fel a kapcsolatot a Speech Blubs fejlesztői csapatával!

Ha csevegni szeretne az alkalmazásfejlesztésről, vegye fel velünk a kapcsolatot. Ez az, amit csinálunk és amit szeretünk, tehát nagyon szeretünk róla beszélni! :)