26. Sep 2023
iOSNáš iOS toolbox – sprístupnenie nášho code-base svetu
S rozšírením vývoja iOS aplikácií po celom svete sa programátori stále viac spoliehajú na knižnice, aby zvýšili svoju produktivitu a rozšírili funkcionalitu do svojich aplikácií. Z tohto dôvodu sme sa v GoodRequeste rozhodli zdieľať náš codebase so svetom prostredníctvom štyroch knižníc, ktoré nám uľahčujú prácu.
GRProvider
Použitím GRTableViewProvider
a GRCollectionViewProvider
, sa zjednoduší práca s UITableView
a UICollectionView
.
Tieto triedy poskytujú sadu metód a väzieb, ktoré umožňujú jednoduchú implementáciu viacerých sekcií a položiek v štruktúrovanej a reaktívnej forme.
Jednoducho sa vytvorí štruktúra, ktorá spĺňa protokol Sectionable
vo factory class, deklaruje sa tabuľka/zbierka a poskytnuté metódy sa použijú na konfiguráciu a naplnenie údajov.
Good Networking
Vstavané možnosti siete v jazyku Swift môžu mať nevýhody, ako je nedostatok štandardizácie a flexibility.
Ale použitie balíka Swift GoodNetworking môže spraviť spracovanie sieťových požiadaviek efektívnejším. Prvotne sa definuje základná URL a koncový bod pre sieťovú požiadavku. Následne sa určí očakávaná odpoveď pomocou štruktúry. Ďalej sa vytvorí inštancia GRSession
, ktorá bude spravovať sieťové požiadavky, pričom použije dva generické parametre: koncový bod a API server. Nakoniec sa vykoná sieťová požiadavka pomocou metódy session.request
a použitím metód sink
alebo assign
z Combine sa zobrazia získané údaje.
Náš iOS toolbox - Spracovanie sieťových požiadaviek vo Swifte
Good Reactor
Na použitie reaktívneho programovania v jazyku Swift sa môže využiť balík GoodReactor na správu komplexného a reaktívneho kódu. GoodReactor používa architektúru založenú na protokole a integrovanie s Combine, aby vytvoril reaktívny komponent, ktorý môže byť opätovne ľahko použitý v celej aplikácii.
Pre vytvorenie reaktívneho zobrazenia, sa definuje trieda BaseViewController
, ktorá berie generický typ T, ktorý by mal byť viewModel
poskytujúci údaje a obchodnú logiku pre zobrazenie. Trieda viewModel
by mala implementovať protokol GoodReactor a definovať štruktúru, ktorá reprezentuje aktuálny stav zobrazenia, výpočtový typ Action, ktorý reprezentuje akcie používateľa a výpočtový typ Mutation, ktorý reprezentuje zmeny stavu v reakcii na akcie používateľa.
Trieda viewModel
by mala tiež definovať metódy, ako sú navigate, mutate a reduce, na spracovanie navigácie, zmeny stavu a redukciu stavu.
Nakoniec sa vytvorí trieda ViewController
, ktorá použije triedu viewModel
na zobrazenie a interakciu s poskytnutými údajmi.
Náš iOS toolbox – Ako vytvárame reaktívne aplikácie v Swifte?
Good Persistence
Použitím UserDefaults
v jazyku Swift na ukladanie malého množstva dát, ako sú preferencie používateľa, nastavenia a stav aplikácie. Balík GoodPersistence
zjednodušuje prácu s UserDefaults
a Keychain
v Swift. Použitím vlastnosti UserDefaultValue
s obalom na ukladanie akéhokoľvek hodnoty typu Codable
do UserDefaults
.
Na sledovanie zmien pomocou Combine sa deklaruje vlastník pre premennú. Na bezpečné ukladanie citlivých údajov sa použije obal KeychainValue
na ukladanie do Keychain
.
Špecifikovaním parametra dostupnosti, sa určí, kedy sú uložené údaje prístupné. Obaly UserDefaultValue
a KeychainValue
ponúkajú aj praktickú funkciu na sledovanie zmien hodnôt pomocou Combine. Preskúmajte ich funkčnosť pomocou poskytnutého vzoru v balíku.