News App πŸ“± built to demonstrate the use of SwiftUI 3 features, Async/Await, CoreData and MVVM architecture pattern.

Overview

GitHub Cards Preview

Box Feed

News App πŸ“± built to demonstrate the use of following features,

  • SwiftUI 3
    • Async/Await
    • AsyncImage
    • List
      • Refreshable
      • Swipe Actions
      • Separator
  • Core Data
  • MVVM Architecture Pattern

Made with love ❀️ by Sameer Nawaz


Preview

Home Article Bookmarks

Note

Once you clone the repo,

  • Add your own API key from News API in AppConfig file
  • Checkout your current plan. The News API has limit for developer plan on dates query and content chars

Built With πŸ› 

  • SwiftUI - SwiftUI is an innovative, exceptionally simple way to build user interfaces across all Apple platforms with the power of Swift.
  • CoreData - Framework used to manage the model layer objects in the application.
  • Figma - Figma is a vector graphics editor and prototyping tool which is primarily web-based.

Project Structure

BoxFeed # Target
|
β”œβ”€β”€ Resources
|
β”œβ”€β”€ Library
|   β”œβ”€β”€ CoreData            # CoreData ManagedObject
|   β”œβ”€β”€ Helpers             # All extension functions + CustomViews
|   β”œβ”€β”€ Models              # Decodable models
|   β”œβ”€β”€ Services            # NewsService
|
β”œβ”€β”€ Screens
|   |
|   β”œβ”€β”€ view
|   β”‚   β”œβ”€β”€ main                    # Main root folder
|   |   β”‚   β”œβ”€β”€ view                # SwiftUI MainView
|   |   β”‚   └── viewmodel           # ViewModel for MainView
|   β”‚   β”œβ”€β”€ Home                    # Home root folder
|   |   |   |__ Home                # Home
|   β”‚   β”œβ”€β”€ Article                 # Article root folder
|   |   |   |__ Article             # Article
|   β”‚   β”œβ”€β”€ Bookmarks               # Bookmarks root folder
|   |   |   |__ Bookmarks           # Bookmarks
|

Contribute

If you want to contribute to this app, you're always welcome! See Contributing Guidelines.


Donation

If this project helped you reduce time to develop, you can buy me a cup of coffee :)


Buy Me A Coffee

License

    Apache 2.0 License


    Copyright 2021 Sameer Nawaz

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

You might also like...
App for displaying VK news feed (VKSDK API). Clean Swift VIP architecture
App for displaying VK news feed (VKSDK API). Clean Swift VIP architecture

VKNewsFeed VKNewsFeed - application for displaying VK news feed with dynamic cells and a collection of images in the post. Data request occurs from th

Giphy is an open source iOS app based on MVVM (Model–view–viewmodel) software architectural pattern.

Giphy(Search and display gifs) - MVVM Description Giphy is an open source iOS app based on MVVM (Model–view–viewmodel) software architectural pattern.

A demo app to showcase testable, modern iOS development with SwiftUI and Combine on MVVM-C architecture.

Coinz_App_iOS A demo app to showcase testable, modern iOS development with SwiftUI and Combine on MVVM-C architecture. Tech Stack: Swift, SwiftUI, Com

Best architecture for SwiftUI + CombineBest architecture for SwiftUI + Combine

Best architecture for SwiftUI + Combine The content of the presentation: First of the proposed architectures - MVP + C Second of the proposed architec

A simple SwiftUI Application to demonstrate creation of UI using SwiftUI.
A simple SwiftUI Application to demonstrate creation of UI using SwiftUI.

WatchShop_UI A simple SwiftUI Application to demonstrate creation of UI using SwiftUI. How to run the project ? Fork the project. Run the project usin

Watchos-navlink-swiftui-bug - Example Project to demonstrate bug in SwiftUI when NavigationLink is activated inside a TabView A mobile application that presents the news received via NewsAPI to the user. Built with SwiftUI.
A mobile application that presents the news received via NewsAPI to the user. Built with SwiftUI.

πŸ“° SwiftUI News App with NewsAPI A mobile application that presents the news received via NewsAPI to the user. Built with SwiftUI. βœ… Features The data

NewsApp - MVVM pattern have been used
NewsApp - MVVM pattern have been used

NewsApp MVVM pattern have been used. All features are working properly as suppose to. Alamofire, Kingfisher, lottie-ios and IQKeyboardManagerSwift pod

An iOS template project using SwiftUI, Combine and MVVM-C software architecture
An iOS template project using SwiftUI, Combine and MVVM-C software architecture

SwiftUI-MVVM-C A template project that uses SwiftUI for UI, Combine for event handling, MVVM-C for software architecture. I have done some small proje

Comments
  • Add support for dark mode

    Add support for dark mode

    Changed the defined colors to use dynamic system colors, which update automatically based on the theme. Updated the UI elements to use these colors appropriately.

    This closes #6

    enhancement 
    opened by pahnev 0
  • Add core-data

    Add core-data

    Add core-data with following functionalities,

    • [x] CD setup
    • [x] CD dependencies
    • [x] Func: Bookmark article
    • [x] Setup bookmarks screen
    • [x] Design bookmarks screen
    • [x] Fetch and display bookmarks from CD
    • [x] Func: Delete bookmark
    enhancement 
    opened by sameersyd 0
Releases(v1.0)
  • v1.0(Sep 19, 2021)

    This is the early version of BoxFeed News application

    Features

    • Multiple news channels
    • Offline bookmarks support

    Add ons features like Searching, Offline indicator & Dark Mode are currently WIP 🚧

    Source code(tar.gz)
    Source code(zip)
Owner
Sameer Nawaz
iOS Engineer  | Open Source Contributor ✨
Sameer Nawaz
RippleQueries is an iOS application built as assessment task at Ripple Egypt. Built Using MVVM (Model-View-ViewModel) and Clean Architecture concepts

RippleRepositories RippleRepositories is an iOS application built as an assessment task at Ripple Egypt. Built Using RxSwift & MVVM (Model-View-ViewMo

Muhammad Ewaily 3 Sep 16, 2021
Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principles altogether. Protocol oriented development has been followed.

BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe

Dhruvik Rao 2 Mar 10, 2022
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.

Articles related to this project Clean Architecture for SwiftUI Programmatic navigation in SwiftUI project Separation of Concerns in Software Design C

Alexey Naumov 4k Jan 8, 2023
A Full News App based on the latest SwiftUI 3/iOS 15 API that fetches latest news from newsapi.org

SwiftUI NewsAPI App A Full News App based on the latest SwiftUI 3/iOS 15 that fetches latest news from newsapi.org. Features The app has several main

Alfian Losari 139 Jan 2, 2023
An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS

Reminders iOS An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS. Idea The idea is to implement the simpl

Tiago Martinho 306 Nov 9, 2022
Easily create UIViewControllers for news articles similar to those in the News app.

MRArticleViewController This framework allows you to easily setup View Controllers to display News Articles inspired by those from the Apple News App.

Matt Rigdon 104 Apr 18, 2022
Lentit iOS app developed in Swift with SwiftUI using MVVM design pattern

Lentit Track things you lend with Lentit Features 100% Swift 100% SwiftUI MVVM d

W1W1-M 2 Jun 26, 2022
Aplikasi iOS Advanced Level To Do List dengan Firebase Auth, SwiftUI, MVVM Design Pattern, dan Firebase Firestore

Aplikasi Tasker adalah aplikasi iOS To Do List yang dibuat menggunakan Autentikasi Firebase / Firestore dan MVVM Design Pattern.

DK 10 Oct 17, 2022
Aplikasi iOS Statistik Internasional Penyebaran Covid-19 dengan SwiftUI, MVVM Design Pattern, dan REST APIs dari rapidapi.com

CovStats CovStats adalah aplikasi iOS Data Statistik Internasional Covid-19 yang datanya didapatkan dari rapidapi.com dengan struktur REST API. Dibuat

DK 7 Aug 1, 2022
NewsApp- - Built A News App With SwiftUI and Mock Data

News APP Built A News App With Swift UI and Mock Data Screen Gif

Mehmet Can Seyhan 1 Feb 14, 2022