Toto zadanie je jednoduchá SwiftUI aplikácia, ktorá zobrazuje verejne dostupné prístupové body (APIs). Využíva dáta poskytnuté cez public-api a vie zobrazovať a filtrovať APIs podľa rôznych kritérií. Bolo mi zadané vytvoriť aplikáciu, ktorá:
|
- SwiftUI
- Combine
- Core Data
- XCTest
Hneď na začiatku som narazil na problém s dostupnosťou dát z public-api. Keďže to nie je funkčné, aby som bol schopný dokončiť zadanie použil som web scraping na vytiahnutie všetkých dát. Ďalej som zvažoval vytvorenie vlastného REST API, no najjednoduchšie pre mňa bolo použiť Firebase, kedže podporuje jednoduché server-side sortovanie a filtrovanie json súborov.
Aplikácia pozostáva z dvoch hlavných častí: Dashboard a List.
Dashboard slúži ako úvodná obrazovka aplikácie, kde sa zobrazuje náhodne vybrané API. Pod touto náhodnou položkou sú zobrazené všetky dostupné APIs, usporiadané podľa kategórií. Vzhľadom na to, že aplikácia je vyvíjaná vo SwiftUI, tento dashboard funguje ako alternatíva k tradičnému CollectionView
v UIKit.
Hlavnou časťou aplikácie je List, ktorý je alternatívou TableView
. Táto časť obsahuje všetky zadané funkcionality.
Použitie Firebase prináša určité obmedzenia v možnostiach vyhľadávania. Neumožňuje vyhľadávanie podreťazcov, ako to robí originálne public-api. V dôsledku toho aplikácia sťahuje všetky dostupné výsledky a vyhľadávanie podľa názvu alebo popisu sa deje priamo v aplikácii. Naproti tomu, vyhľadávanie podľa kategórií je spravované priamo cez REST API.
Pre spustenie aplikácie v Xcode:
- Naklonujte repozitár.
- Otvorte
.xcworkspace
súbor v Xcode. - Vyberte cieľové zariadenie a spustite projekt.
- Pre overenie kvality kódu môžete spustiť integrované XCTesty (
Command+U
).