Skip to content
/ iNews Public

Aplikasi iOS Berita Internasional dengan SwiftUI, API dari newsapi.org, MVVM Design Pattern, dan Paw

License

Notifications You must be signed in to change notification settings

dekapd99/iNews

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iNews

iNews adalah aplikasi iOS Berita Internasional yang datanya didapatkan dari News API. Dibuat menggunakan SwiftUI, MVVM Design Pattern, dan Paw. Aplikasi ini memiliki fitur Search, Filter, Bookmark, Search History, Safari Browser, dan Sharing URL Berita.

Preview

Folder & File Structure

iNews mengikuti pedoman design pattern dengan 3 komponen, yaitu Model, View, & ViewModel (MVVM). Berikut struktur file dan folder pada iNews:

.
├── iNewsApp.swift
├── ContentView.swift
├── news.json            
├── info
├── API                        # API: API Service (Fetch Data)
│   └── NewsAPI.swift          # Berisikan Fungsi Decode JSON File, Fetch (data & response) via URL Session, & Generate Berita (search & kategori)
│
├── Models                     # Models: API Data Declaration
│   ├── Article.swift          # Berisikan Endpoints Data yang digunakan dari API
│   ├── Category.swift         # Berisikan Kategori berita (Raw Data)
│   ├── DataStore.swift        # Berisikan Concurrency Type untuk membantu menghindari masalah ketika terjadi update pada value
│   └── NewsAPIResponse.swift  # Berisikan API Response Code (Handler)
│
├── ViewModel                           # ViewModel: Information Handler & CRUD Logic
│   ├── ArticleBookmarkViewModel.swift  # Berisikan Fungsi CRUD untuk Fitur Bookmark
│   ├── ArticleNewsViewModel.swift      # Berisikan Fungsi Load Berita dari API
│   └── ArticleSearchViewModel.swift    # Berisikan Fungsi CRUD untuk Fitur Search dan Search History
│
└── Views                           # Views: Controller UI & Frontend Related (Show & Get)
    ├── ArticleListView.swift       # Berisikan Tampilan Berita dalam Bentuk List
    ├── ArticleRowView.swift        # Berisikan Tampilan Berita (Card)
    ├── BookmarkTabView.swift       # Berisikan Tampilan Halaman Bookmark
    ├── EmptyPlaceholderView.swift  # Berisikan Skeleton Card Berita (ketika loading / fetching data)
    ├── NewsTabView.swift           # Berisikan Tampilan Halaman Beranda Aplikasi
    ├── RetryView.swift             # Berisikan Tampilan Retry
    ├── SafariView.swift            # Berisikan Fungsi untuk Membuka Browser Safari dari URL Berita
    ├── SearchHistoryListView.swift # Berisikan Komponen dari List Riwayat Pencarian
    └── SearchTabView.swift         # Berisikan Tampilan Halaman Search

Features:

  • CRUD -> Kategori Berita, Bookmark, & Search History
  • MVVM Design Pattern
  • Search
  • Filter Kategori
  • Bookmark
  • Sharing Berita URL
  • Safari Browser

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):

  1. Lakukan download .zip atau clone repositori dengan cara:
git clone https://github.com/dekapd99/iNews.git
  1. Buka project di Xcode dan copy API Key dari newsapi.org.
  2. Jika sudah, buka Project Navigation klik API > NewsAPI.swift, paste string pada variabel apiKey dengan API Key Anda.
  3. Build & Run

License

MIT License: Copyright (c) 2022 DK

(back to top)

About

Aplikasi iOS Berita Internasional dengan SwiftUI, API dari newsapi.org, MVVM Design Pattern, dan Paw

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages