SwiftUI 3.0 News App for iOS 15, iPadOS 15, macOS 12, watchOS 8, tvOS 15
A Full News App based on the latest SwiftUI 3 that fetches latest news from newsapi.org targeting iOS 15, macOS 12, watchOS 8, and tvOS 15.
Features
The app has several main features:
- Fetch news based on categories: general, business, science, technology, health, entertainment, sports
- Bookmark articles so it can be persisted even when the app restarts.
- Share article using native iOS share sheet UIActivityController.
- Read article inside a Safari Webview in modal sheet presentation.
- Search news based on the search query you type on the search bar.
- Recent search history list.
- Suggestion search list.
- Watch Connectivity and Watch Face Complication support for watchOS.
- Intent Configurable Widgets - iOS, iPadOS, macOS - S, M, L, XL Family Sizes
SwiftUI 3 API:
The SwiftUI 3 APIs used to build the app:
- Async Await, Structured Concurrency, and Actors.
- Task Lifecycle View Modifer.
- AsyncImage.
- Refreshable and SwipeAction on List.
- Actor to isolate disk persistence.
- Crafting Search Experience using Swift Searchable modifier. synchronous local search and async remote search, as well as providing search suggestions.
Getting Started
- Register for an API Key at https://newsapi.org
- Paste the key inside NewsAPI.swift file.
- Download Xcode 13 from App Store.
Installation
- Build and run the project using iOS 15, iPadOS 15, watchOS 8, tvOS 15 physical devices or simulator from Xcode 13
- For building macOS 12 target you need to use Xcode 13 Beta 5 or upcoming Xcode 13.X release and macOS 12 Beta 7.
Tutorial
This project is based on the YouTube tutorial series that you can watch from these links:
- Build an iOS News App with SwiftUI 3 & NewsAPI | Full Course YouTube.
- Add iPadOS UX Adaptivity to an iOS News App with SwiftUI 3 | Full Course YouTube.
- Build a macOS News App with SwiftUI 3 & NewsAPI | Full Course YouTube.
- Build a watchOS News App with SwiftUI 3 & NewsAPI | Full Course YouTube.
- Build a tvOS News App with SwiftUI 3 & NewsAPI | Full Course YouTube.
- Data Caching with SwiftUI Task YouTube.
- Adding Infinity Scroll Pagination in SwiftUI with Task Modifier YouTube.
- 8 Add Widget to Home Screen YouTube.