NY Times is an Minimal News πŸ—ž iOS application built to describe the use of SwiftSoup and CoreData with SwiftUI.

Overview

SwiftUI Architecture License: MIT GitHub forks GitHub Stars GitHub Watchers

Twitter URL Twitter Follow

NYTimes

NY Times is an Minimal News πŸ—ž iOS application built to describe the use of SwiftSoup and CoreData with SwiftUI.

β›“ Features

Articles Loading Browse by Category
Bookmark a Article using 3D Touch. Deleting bookmarks is just one swipe away

πŸ“ Table of Contents

βš™οΈ Requirements

iOS 14+
Xcode 12.2 and Up

πŸ“š What you can learn?

  • You can learn Technologies like
    • SwiftUI
    • CoreData
    • Combine
    • Web Scraping
  • You can learn various Design patterns from this project such as
    • Dependency injection
    • Repository
    • Singleton
    • Observers
  • You can learn MVVM Two way binding Architecture for SwiftUI with Combine framework

πŸ›  Technical Background

  • NYTimes App was made using SwiftUI as the Core interface with Two Way Binding MVVM Architecture using Combine framework.
  • CoreData is used to store the Article Bookmarks offline in device so that the user can access it at later time.
  • SwiftSoup is used to scrap the required details from the NYTimes website.
  • The User interface of this app mostly uses the inbuilt iOS components to keep the User experience close to the native feel.
  • Bookmarks can be added as easy as a 3d-touch from Homescreen or a tap in bookmark icon in the detailed article screen.
  • This project was built in the mindset of modularity and good coding patterns. Multiple design patterns like Dependency injection, Repository pattern, Singleton Pattern etc.

πŸ”— Dependencies

This project uses SPM (Swift Package Manager) as Dependency manager.

β›“ Project Structure

NYTimes                 # Root Group
.
β”œβ”€β”€ Utilities           # Utilities for Fetching data ans Scraping HTML
β”œβ”€β”€ Extensions          # Some useful extensions
β”œβ”€β”€ Globals             # Contains App constants
β”œβ”€β”€ Persistence         # Coredata files. Contains coredata model and Singleton for ManagedObjectContext
β”œβ”€β”€ Views               # SwiftUI Views
β”œβ”€β”€ Repository          # Repository for Coredata
β”œβ”€β”€ ViewModel           # Viewmodels for SwiftUI Views
β”œβ”€β”€ Model               # Model files
|   └── Coredata Model  # Coredata model subclasses
|
└── Supporting files    # Misc. files like Appdelegate, SceneDelegate.

Architecture

This app uses MVVM architecture.

MVVM

✏️ Contribute

If you want to contribute to this library, you're always welcome!

What you can do

You can contribute us by filing issues, bugs and PRs.

Before you do

Before you open a issue or report a bug, please check if the issue or bug is related to Xcode or SwiftUI.

Contributing guidelines:

  • Open issue regarding proposed change.
  • Repo owner will contact you there.
  • If your proposed change is approved, Fork this repo and do changes.
  • Open PR against latest dev branch. Add nice description in PR.
  • You're done!

β˜•οΈ Donation

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

paypal

πŸ“± Contact

Have an project? DM us at πŸ‘‡

Drop a mail to:- [email protected]

βš–οΈ License

MIT License

Copyright (c) 2020 TheCodeMonks

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
You might also like...
Small iOS app to show some COVID-19 health, data, news and tweets ⚑
Small iOS app to show some COVID-19 health, data, news and tweets ⚑

covid19.swift Small iOS app to show some COVID-19 health, data, news and tweets ⚑ Requirements Xcode 12, iOS 14 Credits API: COVID-19 API: News Tweets

Fancy news app that diwnloads data from new.com api and shows it in a paging collectionview.
Fancy news app that diwnloads data from new.com api and shows it in a paging collectionview.

Fancy news reader PAging collection view that shows latest news from techcurch.com and displays full content in a detail page, was built to practice t

πŸ“° iOS news app in the style of the NYT, WSJ, CNN, BBC, FB, Twitter, Reddit & more - Includes a tvOS app :tv:
πŸ“° iOS news app in the style of the NYT, WSJ, CNN, BBC, FB, Twitter, Reddit & more - Includes a tvOS app :tv:

News iOS news app in the style of Apollo, Apple News, Axios, BBC, CNN, Facebook, Facebook News, FastNews, Flipboard, Lil News, NBC News, Reddit, The N

This is my version of the H4X0R News app, taught by Angela Yu on the iOS Development Bootcamp.
This is my version of the H4X0R News app, taught by Angela Yu on the iOS Development Bootcamp.

H4X0R News πŸ“° (I didn't choose the name btw) What is it about? H4X0R News is an app that shows the front page news from Hacker News Website, and when

 App that shows recently posted articles about Android or iOS on Hacker News
App that shows recently posted articles about Android or iOS on Hacker News

App that shows recently posted articles about Android or iOS on Hacker News

Today. News app for iOS
Today. News app for iOS

Today - News app for iOS This iOS app displays a list of news, fetched from mediastack API. Running This Project Clone this project and open with XCod

Headline News View Example App for iOS. You can display the articles fetched by rss.

HeadLineNews-ObjC Headline News View Example App for iOS. You can display the articles fetched by rss. PiP(Picture in Picture) is also supported DEMO

Hackers is an elegant iOS app for reading Hacker News written in Swift.
Hackers is an elegant iOS app for reading Hacker News written in Swift.

Hackers Hackers is an iPhone and iPad app for reading Hacker News on the go. It's optimised for quickly catching up on the latest news and comments wi

A Hacker News reader iOS app written in Swift.
A Hacker News reader iOS app written in Swift.

HackerNews A Hacker News reader iOS app written in Swift. Features View "top", "newest", and "show" posts from Hacker News. Read posts using the SFSaf

Comments
  • Saving users favorite tags

    Saving users favorite tags

    [Feature Request] I really love the idea that users can browse articles by tag and they can choose tag by swiping the view at the bottom. But I think there is an improvement need to be made. Some users might just interested in Space and Science. In that case, the user has to swipe to far-right to click Science and have to swipe far to left again to click the Space tag.

    So I think asking users to choose their favourite tag and adding a new view(favoruiteTagView) below the NavigationTitle(NYTimes) which shows their favourite tag would be great. And for some users who might not like newly added view under NavigationTitle, adding one more feature which allows them to show or hide the favoruteTagView would be great Simulator Screen Shot - iPhone 12 - 2020-11-24 at 19 57 41

    OR you can add an option at settings which allows user can reorder the order of the tag.

    enhancement hacktoberfest-accepted 
    opened by seungjun-green 2
  • Add the possibility to select what categories you want

    Add the possibility to select what categories you want

    Hi ! I thought it was good for people to manages their categories.

    Now, they can add a category from all categories and they can delete it too

    I refactored some codes to fit better with the MVVM design pattern and Combine too

    Simulator Screen Shot - iPhone 13 - 2021-11-14 at 18 07 42

    Was a pleasure to contribute to the project ! hop you will like what I did

    opened by Matttx 1
Owner
The Code Monks
πŸŒ€Our Next Gen Open source is starts here...
The Code Monks
News app to see daily news from new York Times

News This project is demo project for newyork time apis news feed. Generally thi

kamalesh 0 Dec 18, 2021
NewsAPISwift is a Swift client for News API V2, a service that provides breaking news headlines, and search for articles from over 30,000 news sources and blogs.

NewsAPISwift NewsAPISwift is a Swift client for News API V2, a service that provides breaking news headlines, and search for articles from over 30,000

Lucas Lima 22 Feb 10, 2022
News App for Latinx News built in UIKit programmatically

LatinxNewsApp News App for Latinx News built in UIKit programmatically Overview LatinxNewsApp is a design taken from a bigger idea. It is a news app t

Bryan Gomez 1 Apr 21, 2022
News - A news app that use NewsAPI

News app - UIKit This is a news app that use NewsAPI - Features MVC design patte

Muhammed Faruk Sâğüt 1 Jan 4, 2022
Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding.

Daily News Hey ! Daily News is a news app with good looking user interface ! Apps architecture is MVVM and used RxSwift for binding. Architecture I pr

Latif Atci 39 Dec 13, 2022
iOS App to show Top Stories from New York Times

NYT News iOS app displaying New York Times top stories. Features Shows articles from various sections of New York Times top stories. Open each article

Muhammad Yusuf 1 Jan 14, 2022
This app can be used to search for New York Times articles

NY Times Article Search This app can be used to search for New York Times articles. The articles are populated by matching keywords. Here are the feat

Alexei Tulloch 0 Feb 10, 2022
A simple to use yet very powerful tool for the tech heads looking for daily dose of tech news

A simple to use yet very powerful tool for the tech heads looking for daily dose of tech news. This app is built using SwiftUI and also uses catalyst to run on MacOs as well.

Dishant Nagpal 1 Feb 27, 2022
Good News iOS Application Using Machine Learning

Good News iOS Application Using Machine Learning The project entails creating an iOS application that uses an API to identify only positive articles.

RasitOner 1 Nov 19, 2021
News application with 66 providers

News Description An application that let's you discover and read news. It's possible with using News API, that provides simple and easy-to-use API tha

Ivan Magda 18 Dec 10, 2022