CovStats
CovStats adalah aplikasi iOS Data Statistik Internasional Covid-19 yang datanya didapatkan dari rapidapi.com dengan struktur REST API. Dibuat menggunakan SwiftUI, MVVM Design Pattern, dan REST APIs dari rapidapi.com. Aplikasi ini memiliki fitur Storing Cache Locally, Search, Custom Alert, Responsive Layout Display, Number Formatting, dan Dark Mode Integration.
Preview
Folder & File Structure
CovStats mengikuti pedoman design pattern dengan 3 komponen, yaitu Model, View, & ViewModel (MVVM). Berikut struktur file dan folder pada CovStats:
.
├── CovStatsApp.swift
├── ContentView.swift # Berisikan Tampilan Halaman Beranda Aplikasi sebagai View Utama
├── Assets.xcassets # Berisikan Default cardBackground dan App Icon
│
├── API # API: API Service (Fetch Data Globally & Locally) dan Store & Save Countries Data Locally
│ ├── LocalFileManager.swift # Berisikan Fungsi (Store & Save, Fetch from Saved, dan Helper) Data Countries
│ └── CovStatsAPI.swift # Berisikan Fungsi Decode JSON File, Fetch (data, response, & error) via URL Session dengan method GET, & Generate
│ Hasil (Total Data, Negara, dan Report)
│
├── Errors # Error: Custom Error dan Custom Alert ketika Gagal Fetch API dari Server
│ ├── CustomError.swift # Berisikan 2 Error Case untuk Incorrect URL dan No Data Received
│ └── AlertItem.swift # Berisikan Deklarasi Singleton Alert Item dan Macam-macam Alert Context
│
├── Extension # Extension: Custom Extension untuk Format Penulisan Angka (Data Kasus)
│ └── Extension+Int.swift # Berisikan Custom Format Number Decimal & Format Pembulatan Digit Jutaan (ex. "5.1 Juta")
│
├── Models # Models: API Data Declaration
│ ├── Regions.swift # Berisikan Endpoints Data Regions
│ ├── Report.swift # Berisikan Endpoints Data Report
│ └── TotalData.swift # Berisikan Endpoints Data TotalData
│
├── ViewModels # ViewModel: Fungsi Information Handler (Data Bindings) yang Berkomunikasi Langsung dengan UI di Views
│ ├── CountryDetailViewModel.swift # Berisikan Fungsi Fetch Report berdasarkan Country (Kode iso)
│ └── MainViewModel.swift # Berisikan Fungsi Fetch Total Data dan Fetch All Countries
│
└── Views # Views: Controller UI & Frontend Related (Show & Get Data from ViewModels)
├── CountryDetailView.swift # Berisikan Tampilan Halaman Provinsi ketika Salah Satu Negara dipilih (jika ada maka ditampilkan)
├── DataCardView.swift # Berisikan Default Card Wrapper untuk Masing-masing Data (TotalDataView)
├── SearchBarView.swift # Berisikan Bar Form untuk Kolom Search
├── TotalDataView.swift # Berisikan Layout 4 DataCardView untuk Tampilan Masing-masing Data Kasus Covid-19
└── ReportView.swift # Berisikan Tampilan Halaman Report untuk Negara atau untuk Negara per-bagian Provinsi
Features:
- MVVM Design Pattern
- Search
- Storing Cache Locally
- Custom Alert
- Responsive Layout Display
- Number Formatting
- Dark Mode Integration
Build With:
Installation
Untuk menggunakan repositori ini, ikutilah petunjuk penggunaan berikut dan pastikan git sudah terinstall pada komputer (semua perintah dilaksanakan pada cmd.exe
atau terminal
):
- Lakukan download .zip atau
clone
repositori dengan cara:
git clone https://github.com/dekapd99/CovStats.git
- Buka project di Xcode dan copy API Key dari rapidapi.com (Pastikan Anda sudah login)
- Jika sudah, buka Project Navigation klik API > CovStatsAPI.swift, paste string pada variabel X-RapidAPI-Key (line 21) dengan API Key Anda.
"X-RapidAPI-Key": "copy & paste your api key here", // Replace API Key disini
- Build & Run
License
No License