8 Абавязковыя інструкцыі па запуску прыкладання Speech Blubs на Mac Catalyst

У пачатку чэрвеня 2019 года інжынеры iOS і macOS дрыжалі, таму што Apple збіралася выпусціць змены на сваёй штогадовай канферэнцыі WWDC. Якімі б яны ні былі, яны звычайна мяняюць шмат планаў інжынераў на лета. Наша мэта складаецца ў тым, каб прынесці выдатны і якасны вопыт платформам iOS / Mac, што, як правіла, азначае, што трэба працаваць над тым, каб зрабіць дату выхаду Apple на найноўшую АС. 2019 год нічым не адрозніваўся, хаця, можа, нават і крыху больш асаблівы.

Як звычайна, Apple выпусціла шмат новых функцый, але была адна, якую я асабіста спадзяваўся выпрабаваць. Ужо больш за год вядома, што яны працуюць над портам UIKit для macOS. У macOS Mojave, пабудаваных па гэтай тэхналогіі, ёсць некалькі прыкладанняў, якія стварылі самі Apple.

Што гэта дакладна для распрацоўшчыкаў дадаткаў

Гэта азначае, што нам удасца запусціць код для нашых прыкладанняў iPhone і iPad з вельмі невялікімі зменамі, якія адбываюцца на macOS. Гэта таксама азначае, што нам не давядзецца перапісваць код нашага інтэрфейсу з UIKit у AppKit, які выкарыстоўваецца на macOS дзесяцігоддзямі. У прынцыпе, мы маглі дадаць усю платформу macOS да нашага партфоліа за некалькі гадзін распрацоўкі.

Паколькі тэхналогія ўжо была ў АС у мінулым годзе, людзі былі ўжо ўсхваляваны і пачалі эксперыментаваць з так званым "праектам Марцыпана". У 2019 годзе ён стаў афіцыйным, і цяпер ён называецца "Project Catalyst", які ўваходзіць у афіцыйны выпуск MacOS Catalina. Але, як гэта працуе на практыцы? Колькі часу спатрэбіцца, каб зрабіць рэальнае вытворчае прыкладанне для iOS, запушчанае на macOS з Catalyst?

Speech Blubs на Mac

Мне вельмі хацелася ведаць адказ на гэтыя пытанні. Speech Blubs - гэта наша галоўнае прыкладанне, і мы дасягаем вялікіх вынікаў на iOS. Гэта складанае прыкладанне на некалькіх мовах, якое змяшчае больш за 100 000 радкоў кода, некалькі бібліятэк трэцяй партыі і гэтак далей. Для мяне гэта гучала як выдатны і рэалістычны выбар для гэтага эксперыменту. Таму я проста павінен быў пачаць працаваць на версіі Mac. . .

Спачатку я адкрыў праект, стварыў новае аддзяленне і націснуў на платформу macOS! Наступным крокам было проста зрабіць яго кампіляцыяй! Стварэнне прыкладання прывядзе да больш за 100 памылак. Даражэнькі. Але дазвольце мне працягнуць. Спачатку мы павінны былі забяспечыць стварэнне і сувязь усіх бібліятэк трэціх асоб. Паколькі праект выкарыстоўвае CocoaPods, гэта зробіць яго некалькі больш складана, бо падтрымка Catalyst можа быць яшчэ крыху няўдалай. Такім чынам, я пачаў выдаляць аналітычныя бібліятэкі, уключаючы Facebook, Crashlytics і іх залежнасці, бо мы ім не патрэбныя для гэтага эксперыменту.

Мы прыйшлі да апошняй спасылкі нумара: Царства. Speech Blubs выкарыстоўвае Realm як базу дадзеных, таму што гэта адна з лепшых мабільных баз дадзеных там. Мы звязвалі яго праз CocoaPods, і ён проста не стварыў бы. Адзіны спосаб уключыць яго быў у Swift Package Manager, якім мы раней не карысталіся.

Менеджэр пакетаў Swift

Мы выкарыстоўваем некалькі прыватных рамак і будуем праект з CocoaPods. Пераўтварэнне ў SPM не была б маленькай задачай напэўна. Але нам не давялося цалкам адмаўляцца ад CocoaPods, бо яны працуюць рука аб руку з інтэграцыяй у SPM Xcode. Такім чынам, я пачаў з пераўтварэння нашых унутраных рамак, каб яны былі звязаны са SPM. Гэта таксама ўключала пераўтварэнне ўсіх іх залежнасцей. Мне спатрэбілася каля гадзіны, каб навучыцца пісаць просты пакет, хуткі файл і канвертаваць усе нашы залежнасці.

Нават на маё здзіўленне, я перажыў значна хутчэй, чым я першапачаткова чакаў. Дадаваць Swift пакеты ўручную ў Xcode яшчэ крыху раздражняльна, бо вам трэба перазагрузіць кожны раз, калі вы ўносіце невялікія змены ў сховішча GIt на GitHub.

Складанне і запуск прамовы Blubs на Mac

Такім чынам, зараз усе залежнасці паспяхова кампілююцца і звязваюцца, але прыкладанне ўсё яшчэ не робіць. Я ўжо выдаліў некаторыя іншыя бібліятэкі, у тым ліку падтрымку нашага чата. Каб працягнуць, я пачаў каментаваць код, які тэлефанаваў у гэтыя бібліятэкі, і прыкладна праз гадзіну працы праект паспяхова развіваўся. Каб нарэшце запусціць усё, што мне трэба было зрабіць, гэта націснуць кнопку «Прайграць» у Xcode, на «Мой Mac» у якасці мэтавай прылады, і Speech Blubs працуе на працоўным стале ўпершыню! Дзіўнае адчуванне, калі вы ўбачылі гэты знаёмы значок на iOS у вашай доке.

Першы запуск прыкладання Speech Blubs

Глюкі і памылкі

Першы прабег паказаў, што былі некаторыя памылкі і збоі. MacOS - гэта зусім іншая платформа. Зразумела, у Speech Blubs было некалькі рэчаў, якія нам трэба было б выправіць. У нас былі праблемы з кнопкамі, бо яны здаліся занадта вялікімі. Хутчэй за ўсё, абмежаванні аўтаматычнага разметкі, якія трэба было выправіць. Пракрутка працавала, але часам здавалася крыху не рэагаваць. Нашы камеры і мікрафонныя функцыі працавалі няправільна, бо існуе вялікая архітэктурная розніца. Нашы аналітыкі і падтрымка трэціх бакоў таксама не хапае, каб гэта быў поўнафункцыянальны прадукт.

Наступствы

Акрамя некалькіх збояў і памылак, Catalyst на самай справе робіць цяжкі ўздым для вас. Распазнавальнікі жэстаў працавалі прыгожа, усе элементы UIKit па змаўчанні таксама добра працуюць. Большасць нашага мадэльнага кода ўжо скончылася, бо ён быў незалежны ад карыстацкага інтэрфейсу. У такіх выпадках надзейная архітэктура сапраўды дапамагае хутка перамяшчаць рэчы на ​​новую платформу. Ці мае сэнс сам прадукт? Я, шчыра кажучы, не ведаю. Большасць механізатараў, якія мы выкарыстоўваем у дадатку, не вельмі падыходзяць для Mac, але гэта не значыць, што мы не пераследвалі гэтую ідэю. Кожнае прыкладанне адрозніваецца і мае свае унікальныя магчымасці. І кожная платформа іншая, тое ж самае тычыцца watchOS, tvOS і гэтак далей. У цэлым Catalyst - гэта выдатны набор інструментаў, і калі ваша дадатак мае сэнс і на Mac, ён сапраўды можа спрасціць і паскорыць працэс распрацоўкі, калі вы падтрымліваеце платформы iOS і macOS. І тым больш, калі вы зможаце выкарыстоўваць SwiftUI, які знаходзіцца як мінімум на год. У любым выпадку, гэта быў добры эксперымент, каб убачыць, як усё атрымаецца. У вас могуць узнікнуць памылкі, якія ўзнікаюць з-за абыходных шляхоў у iOS, але яны больш не працуюць на Mac. Такім чынам, каб адказаць на маё пытанне, колькі часу займае? Гэта залежыць. Што тычыцца самога прадукту, падтрымкі iPad, якасці кода і таго, наколькі роднае вы хочаце, каб прыкладанне адчувала сябе на Mac.

Звяжыцеся з камандай распрацоўшчыкаў Speech Blubs!

Калі вы хочаце пагаварыць пра распрацоўку прыкладання, не саромейцеся звязацца з намі. Гэта тое, што мы робім і што любім, таму нам вельмі падабаецца гаварыць пра гэта! :)