Appleova godišnja konferencija Apple Worldwide Developers Conference trenutno se održava u u Kaliforniji, a najzanimljivije novosti na njoj prokomentirao je za rep.hr Zoran Pleško iz tvrtke Mašinerija.
Napokon odlične vijesti, barem za one koji razvijaju iOS aplikacije. iOS programeri, obucite svoje plesne cipelice i odčagajte jedan “happy dance” - deklarativni UI API je tu i zove se SwiftUI!
Ovo je bila moja tiha patnja već neko vrijeme, pogotovo u trenucima kada sam s čežnjom i zavišću gledao kolege frontendaše s kojom brzinom slažu web sučelja. Dva mjeseca razvoja frontend weba pomnoži s dva ili tri puta i dobiješ iOS app. Ostale, po meni manje značajne, novosti kao dark mode ili novi moćni MacPro neću spominjati, jer jedino vrijedno pažnje s ovog WWDC-a je to kako će nama developerima ubuduće izgledati razvoj aplikacija za iOS. Ovo je bitno i za sve one koji naručuju iOS aplikacije jer za njih bi ova promjena trebala značiti dosta manje uloženog novca do gotovog proizvoda. Vidi se da je Apple postao svjestan prijetnje hibridnih rješenja i ovo je njihov konj za utrku.
Što to znači za programere? U zadnjih par godina je UIKit i AppKit konačno dostigla njihova starost i postalo je prilično jasno da deklarativni API-ji omogućavaju razvoj bogatih vizualnih sučelja bez puno programiranja, s Reactom kao predvodnikom (u kompi s Reduxom). U zadnje dvije godine smo vidjeli pokušaje da se kao arhitektura u iOS uvede jednosmjerni tok podataka, a dobili smo i svoju verziju Reduxa kroz ReSwift. No, to je još uvijek zahtijevalo dosta prčkanja da bismo pretvorili svoja sučelja u deklarativna. Na kraju krajeva, već kod MVVM arhitekture, htjeli smo imati sučelja koja jednostavno pretvaraju model u prikaz na ekranu pa smo koristili razne metode bindinga da nekako navučemo piletu sise. U ovoj priči je pile UIKit, a sise pokušaj da bindamo naš model u UIKit.
Stvari su otišle malo predaleko kad je tvrtka Artsy odabrala React Native za razvoj svoje iOS-only aplikacije, pogotovo jer je Ash Furrow (koji radi u Artsyju) jedno od poznatijih imena u svijetu iOS-a i Swifta. Ako si Apple inžinjer, dosta je neugodno čitati njegove postove o tome kako je razvoj u Reactu Nativeu baš super. (i mi u Mašineriji smo bili znatiželjni isprobati React Native, pa smo napravili lijepu period tracking aplikaciju Simple Cycle i rezultat nam se dosta svidio)
Moja je procjena da kad se priča malo slegne, razvoj korisničkog sučelja za iOS će se ubrzati dva do tri puta što znači da ćemo moći lakše nuditi usluge razvoja nativne aplikacije tamo gdje je vrijeme i novac ograničavajući faktor. Naravno, nativne aplikacije uvijek pružaju najbolje korisničko iskustvo, što znači da će Apple zadržati kontrolu nad razvojem aplikacija, a mi developeri nećemo morati razmišljati o još jednom sloju apstrakcije iznad iOS-a (kao kod hibridnih aplikacija) i još dodatno održavati taj sloj praćenjem verzija i instaliranjem updatea koji su unatrag nekompatibilni.
Dodatno, Apple je dodao podršku za real time razvoj SwiftUI sučelja u XCodeu, opet dostužući React Native koji nudi real time razvoj sučelja koji ne zahtijeva ponovo kompajliranje koda. Vidjet ćemo kako to funkcionira u praksi i hoće li to smanjiti zelenost trave u React Native okruženju. Možda sam subjektivan, ali mislim da većinu iOS developera puno više veseli programiranje u Swiftu nego korištenje JavaScript toolseta.
Dok nestrpljivo iščekujem isprobati novi UI API, ipak za kraj želim spomenuti još jednu sinoćnju Appleovu najavu jer se radi o bitnijoj stvari - Apple single sign on. Svi znamo notorno ružne “Sign in with Facebook” i “Sign in with Google” opcije u aplikacijama za registriranje ili log in. S godinama su se fukcionalnosti tih opcija toliko kompromitirale, a i njihov UX je otišao k vragu zbog problema s privatnošću, tako da nam se sve češće događalo da klijenti u potpunosti odustaju od tih opcija. E pa sada imamo Appleov single sign on, koji u potpunosti poštuje privatnost i dodatno je integriran s biometrijskim svojstvima telefona. Povrh toga nudi opciju za anonimizaciju emaila što znači da vaš email više neće biti spreman po raznim bazama na internetu, već će to biti neki izmišljeni email iz kojeg se ne vidi vaš originalni email.
I još jedna sitnica - ARKit je postao stvarno zaokružen alat sada. Mislim da je teren zreo za jedne dobre naočale. Ove godine bi se svatko trebao ponešto poigrati s ARKitom, jer bi sljedeća mogla doživjeti određeni bum što se AR-a tiče.