Mac Catalyst-де сөйлеуге тыйым салу бағдарламасын іске қосу үшін 8-қадам

2019 жылдың маусым айының басында iOS және macOS инженерлері Apple өздерінің WWDC жыл сайынғы конференциясында өзгерістер шығаратын болғандықтан дірілдеп жатты. Қандай болмасын, олар көбінесе инженерлердің жазғы жоспарларын өзгертеді. Біздің мақсатымыз - iOS / Mac платформаларына керемет және сапалы тәжірибе жинау, бұл әдетте Apple-дің ең жаңа ОС шығарылған күнін жасау үшін көп жұмыс жасауды білдіреді. 2019 жыл ерекше болмады, бірақ одан да ерекше болуы мүмкін.

Әдеттегідей, Apple көптеген жаңа мүмкіндіктерді шығарды, бірақ мен тестілеуді тағатсыздана күткен біреу бар еді. UIKit портында macOS-қа дейін жұмыс істегендері бір жылдан астам уақыттан бері белгілі. MacOS Mojave-те Apple компаниясы өздері құрастырған осы технологияға негізделген бірнеше қосымшалар бар.

Қолданбаны жасаушылар үшін бұл нені білдіреді

Бұл дегеніміз, біз MacOS-та өте аз өзгерістермен iPhone және iPad қосымшаларына арналған кодты іске қоса аламыз деген сөз. Бұл сонымен қатар біздің қолданушы интерфейсінің кодын UIKit-тен AppKit-қа онжылдықтар бойы қолданылып келген AppKit-ке қайта жазу қажет емес екенін білдіреді. Негізінде, біз бірнеше сағаттық дамуымен барлық портфолиоға macOS платформасын қоса аламыз.

Технология өткен жылы ОЖ-де болғандықтан, адамдар «Марзипан жобасы» деп аталатын тәжірибемен айналыса бастады. 2019 жылы ол ресми болды, және қазір ол «Project Catalyst» деп аталады, ол ресми macOS Catalina шығарылымына кіреді. Бірақ, бұл тәжірибеде қалай жұмыс істейді? MacOS-те Catalyst көмегімен нақты, өндірістік iOS қосымшасын жасау қанша уақытты алады?

Mac-тағы сөйлеулер

Мен бұл сұрақтардың жауабын білгім келді. Сөйлеуді тоқтату - бұл біздің негізгі қолданба және біз iOS жүйесінде керемет нәтижелерге қол жеткізіп жатырмыз. Бұл бірнеше тілдегі күрделі бағдарлама, 100000 жолдан астам код, үшінші тараптардың бірнеше кітапханалары және т.б. Менің ойымша, бұл тәжірибе үшін керемет және нақты таңдау сияқты көрінді. Сондықтан мен тек Mac нұсқасында жұмыс істеуді бастауыма тура келді. . .

Алдымен мен жобаны ашып, жаңа филиал құрдым және macOS платформасын шертдім! Келесі қадам - ​​оны жай құрастыру! Бағдарламаны құру 100-ден астам қателерді жіберуі мүмкін. О қымбаттым. Бірақ жалғастырайын. Біріншіден, біз барлық үшінші тарап кітапханаларын құрып, байланыстыруды қамтамасыз етуіміз керек. Жобада CocoaPods қолданылғандықтан, бұл оны біршама күрделендіреді, өйткені катализатордың қолдауы әлі де аз болуы мүмкін. Сонымен, мен біздің аналитикалық кітапханаларымызды, соның ішінде Facebook, Crashlytics және олардың тәуелділіктерін жоюды бастадым, өйткені бізге бұл эксперимент қажет емес.

Біз байланыстырудың соңғы нөміріне жеттік: хандық. Сөйлеуді өшіру аймақты деректер базасы ретінде пайдаланады, өйткені ол ең жақсы мобильді дерекқорлардың бірі болып табылады. Біз оны CocoaPods арқылы байланыстыратын едік, бірақ бұл жай болмайды. Мұны енгізудің жалғыз тәсілі - біз әлі пайдаланбаған Swift Package Manager.

Swift пакет менеджері

Біз бірнеше жеке шеңберлерді қолданамыз және CocoaPods көмегімен жобаны құрамыз. SPM-ге айналдыру әрине оңай емес. Бірақ CocoaPod-ны толығымен тастаудың қажеті жоқ, өйткені олар Xcode-дің SPM-интеграциясымен жұмыс жасайды. Сонымен, мен ішкі шеңберлерімізді SPM-мен байланыстыратын етіп бастадым. Бұл барлық тәуелділіктерді түрлендіруді де қамтыды. Қарапайым пакетті, жылдам файлды жазуды және барлық тәуелділіктерімізді түрлендіруді үйренуге шамамен бір сағат қажет болды.

Менің таңқаларым, мен күткеннен де тезірек өттім. Свифт бумаларын Xcode-ға қолмен қосу әлі де тітіркендіргіш, өйткені GitHub-де GIt репозиторийінде кішкене өзгеріс жасағанда әрдайым қайта жүктеу қажет.

Mac-та сөйлеу блоктарын құрастыру және іске қосу

Сонымен, қазір барлық тәуелділіктер сәтті құрастырылып, байланыстырылуда, бірақ бағдарлама әлі де жоқ. Мен кейбір үшінші тарап кітапханаларын, соның ішінде чатқа қолдау көрсетуді алып тастадым. Жалғастыру үшін мен сол кітапханаларға қоңырау шалатын кодты түсіндіре бастадым және шамамен бір сағат жұмыс істегеннен кейін жоба сәтті құрылды. Мұны іске қосу үшін маған Xcode-дегі «Ойнау» түймесін басып, мақсатты құрылғы ретінде «My Mac» -те басу керек, ал Сөйлесу бұдырлары алғаш рет жұмыс үстелінде іске қосылды! Сіздің Dock жүйеңізде таныс iOS белгішесін көру өте керемет.

Сөйлеуді тоқтату қолданбасының алғашқы іске қосылуы

Шағымдар мен қателер

Алғашқы жүгіру кейбір қателер мен қылаңдар болғанын көрсетті. MacOS - бұл мүлдем басқа платформа. Сөйлеудегі блоктарда біз түзетуге тура келетін екі нәрсе бар екені түсінікті. Түймешіктерде қиындықтар болды, өйткені олар тым үлкен болып көрінді. Бәлкім, жөндеуді қажет ететін авто-орналасудың шектеулері. Айналдыру жұмыс істеді, бірақ кейде сәл жауапсыз болып көрінді. Біздің камера мен микрофонның функциялары дұрыс жұмыс істемеді, өйткені сәулеттік жағынан үлкен айырмашылықтар болды. Үшінші тараптың талдауы мен қолдауы да толыққанды өнім болуы үшін жетіспеді.

Одан кейін

Catalyst бірнеше қателіктер мен қателерден басқа, шын мәнінде сіз үшін ауыр атлетика жасайды. Қимылмен танушылар жақсы жұмыс істеді, барлық UIKit әдепкі элементтері де жақсы жұмыс істейді. Біздің модельдік кодтың көп бөлігі UI тәуелсіз болғандықтан, ескірген. Осындай жағдайларда қатты архитектура заттарды жаңа платформаға тез жылжытуға көмектеседі. Бұл өнімнің өзі үшін мағынасы бар ма? Мен шынымды білмеймін. Бағдарламада біз қолданатын көптеген механика Mac жүйесінде дұрыс емес, бірақ бұл біздің идеяны ұстанғанымызды білдірмейді. Әр қосымшаның ерекшелігі және өзіндік ерекшеліктері бар. Әр платформа әртүрлі, watchOS, tvOS және басқаларға қатысты. Жалпы Catalyst - бұл керемет құралдар жиынтығы, және сіздің бағдарламаңыз Mac-та мағынасы бар болса, егер сіз iOS және macOS платформаларын қолдайтын болсаңыз, бұл даму процесін шынымен жеңілдетеді және жылдамдатады. Сонымен қатар, сіз кемінде бір жыл тұрған SwiftUI-ді қолдана алатын кезде. Қалай болғанда да, бәрі жақсы болатынын көру үшін жақсы эксперимент жасалды. Сіз iOS-де іске қосқан қосылыстарыңыздың арқасында пайда болатын қателерге тап болуыңыз мүмкін, бірақ олар енді Mac жүйесінде жұмыс істемейді. Менің сұрағыма жауап беру үшін қанша уақыт қажет? Әр кезде әрқалай. Өнімнің өзінде, iPad қолдауы, код сапасы және бағдарламаның Mac-та қандай сезімде болғыңыз келетіндігі туралы.

Сөйлеуді жасаушылар тобымен байланыста болыңыз!

Егер сіз бағдарламаны дамыту туралы сөйлескіңіз келсе, бізге хабарласыңыз. Бұл біздің не істейтініміз және не жақсы көретініміз, сондықтан біз бұл туралы сөйлескенді ұнатамыз! :)