A list of articles, tutorials, guides and videos about SwiftUI and Combine. Feel free to contribute!
Reddit Community.
If you have a great content to share and want people to know about it ASAP then join ourContent
📝 Articles
SwiftUI Cheat Sheet
Tutorials
- SwiftUI Tutorials by Apple
- Making real-world app with SwiftUI by Majid
- Intro to SwiftUI — Part 1 by Suyash Srijan
- Intro to SwiftUI — Part 2 by Suyash Srijan
- MessageUI, SwiftUI and UIKit integration by Florent Morin
- Managing Data Flow in SwiftUI by Majid
- Beginner SwiftUI Tutorials by SwiftUI Hub
- Making a Real World Application With SwiftUI by Thomas Ricouard
- Building BarChart with Shape API in SwiftUI by Majid
- 100 Days of SwiftUI by Paul Hudson
How to
- How to build a phone number text field by icyhovercraft
- How to build an onboarding screen by blckbirds
- How to build a Chat App or Messenger by Nick Halavins
- How to build a Form UI by Simon Ng
- How to build a Weather App by Benjamin Pisano
- How to build a Slide out Menu by Darren
- How to build a TicTacToe game by Costantino Pistagna
- How to build a Simple Countdown Timer by Antoine Barrault
- How to create a side(hamburger) menu by blckbirds
- How to Implement Sign In With SwiftUI and AWS Amplify by Victor Sanchez
- Build Mobile Serverless Apps Using Amazon Aurora, Amplify, and SwiftUI by Victor Sanchez
- Build an Object Detection App Using Amazon Rekognition, Amplify, and SwiftUI by Victor Sanchez
View and Navigation
- Dynamic List & Identifiable by Martin Lasek
- Create a Detail View by Martin Lasek
- SwiftUI tips and tricks by Paul Hudson
- How to use SwiftUI to Speed Up your View Coding by Leonardo Souza
- The Simple Life(cycle) of a SwiftUI View by Danny Bolella
- Alignment Guides in SwiftUI by javier
- Custom navigation view for your applications by Dragos Ioneanu
- Reusable Components/Higher-Order-Components by Andrei Villasana
- How to Programmatically Push and Pop Views in SwiftUI with NavigationDestinationLink by ryanashcraft
- Programmatic navigation in SwiftUI project by Alexey Naumov
State and Binding
- Understanding State by Martin Lasek
- Understanding Binding by Martin Lasek
- Understanding Property Wrappers in SwiftUI by Majid
- Redux-like state container in SwiftUI. Basics. by Majid
- Swift Property Wrappers by Mattt
- Conditional views in SwiftUI by Vladimirs Matusevics
Architecture
- Will Combine kill RxSwift? by MortyMerr
- MVVM in SwiftUI by Mohammad Azam
- Clean Architecture for SwiftUI by Alexey Naumov
Animations
- Animations in SwiftUI by Majid
- Gestures in SwiftUI by Majid
- UI Animations With Swift by Xiomara Figueroa
- Advanced SwiftUI Animations – Part 1: Paths by javier
- Advanced SwiftUI Animations – Part 2: GeometryEffect by javier
Inside
- Inside SwiftUI's Declarative Syntax's Compiler Magic by Bruno Rocha
- What’s this “some” in SwiftUI? by Mischa Hildebrand
- Swift Opaque Result Types by Baking Swift
- Inside SwiftUI (About @State) by kateinoigakukun
Unit Testing
- ViewInspector by Alexey Naumov
- Unit testing SwiftUI views by Alexey Naumov
Debug
- How to use Instruments to profile your SwiftUI code and identify slow layouts by Paul Hudson
- Building SwiftUI debugging utilities by John Sundell
Other
- Curated list of questions and answers about SwiftUI by Gosh Darn SwiftUI
- Answers to the most common questions about SwiftUI by John Sundell
- A first look at SwiftUI: Apple’s declarative new UI framework by John Sundell
- Shifting paradigms in Swift by John Sundell
- Understanding Declarative Programming by Michael Long
- Rendering SwiftUI views to HTML by Zhuowei Zhang]
- SwiftUI: Handling optionals by Erica Sadun
- Improving SwiftUI modal presentation API by Alejandro Martinez
- Mixing SwiftUI, Combine, OLX by Aleksander Lorenc
- The missing :SwiftWebUI by alwaysrightinstitute
- Rasterizing SwiftUI views from the Command-Line by Eneko Alonso
- A Brief Tour of Swift UI by Amit Bijlani
- Why You Should Consider SwiftUI for Your Next Project by Thomas Ricouard
- What is new in SwiftUI by mecid
Combine
- Problem Solving with Combine Swift by Arlind Aliu
- SwiftUI & Combine: Better Together by Peter Friese
- Swift Combine Framework Tutorial: Getting Started by vadimbulavin
- Variadic DisposeBag for Combine subscriptions Alexey Naumov
📺 Videos
Apple WWDC 2019
- Introducing SwiftUI: Building Your First App - Start here for a quick overview and demo
- SwiftUI Essentials - Deeper dive into how it works and the key concepts
- Data Flow Through SwiftUI - How to use data in SwiftUI. A single source of truth. Explains the difference between a simple property, BindableObject, @Environment, @Binding and @State
- Building Custom Views with SwiftUI - Dave Abrahams, with a brief appearance from Crusty, digs deeper into how the layout process works. Second part is an impressive demo of how to use graphics to draw custom controls
- Integrating SwiftUI - Use a hosting controller to wrap SwiftUI for use in your existing App. Use the Representable protocol to wrap existing UIKit/AppKit/WatchKit views to use in SwiftUI. Use the BindableObject protocol to integrate external data
- Mastering Xcode Previews - Great demos on how Xcode previews make working with SwiftUI so easy
- Accessibility in SwiftUI - You get a lot for free in SwiftUI but you’ll likely need to tweak some things (as with UIKit). API for setting labels, traits, actions, etc.
- SwiftUI on watchOS - Of course, you can now build watchOS Apps with SwiftUI.
- Mastering Xcode Previews - Learn how previews work, how to optimize the structure of your SwiftUI app for previews, and how to add preview support to your existing views and view controllers
Apple WWDC 2020
- Introduction to SwiftUI - Great start for the ones who are new to SwiftUI or just need a recap on SwiftUI updated for Xcode 12 and multi-platform Apps.
- Visually edit SwiftUI views - Building a view in the Xcode preview canvas.
- Build a SwiftUI view in Swift playgrounds - Prototyping SwiftUI views using Swift playgrounds on an iPad.
- What’s new in SwiftUI - An essential session that covers all the new in latest SwiftUI.
- Stacks, Grids, and Outlines in SwiftUI - Lazy stacks and grids, sidebar lists and outlines.
- App essentials in Swift UI - No more AppDelegate and SceneDelegate. Improved scene based state restoration.
- Data essentials in SwiftUI - Let's recap on data flow in SwiftUI and get famialiar with @StateObject, @SceneStorage and @AppStorage.
- Build document-based apps in SwiftUI - Introduction th DocumentGroup for document based apps.
- Add custom views and modifiers to the Xcode library - Great addition to Xcode 12 making it easy to share views and modifiers.
- Structure your app for SwiftUI previews - Great session with lots of tips, especially the section on where to put sample preview data.
- Build SwiftUI views for widgets - Let's build a Widget using SwiftUI views.
Tutorials
- Your First iOS and SwiftUI App by raywenderlich
- Swift UI: Working With UIKit by raywenderlich
- Facebook Complex Layouts - Horizontal Scroll View by Lets Build That App
- Dynamic Lists, HStack VStack, Images with Circle Clipped Stroke Overlays by Lets Build That App
- Format phone numbers as they're typed by What is iSwiftUI?
- Fetching JSON and Image Data with BindableObject by Lets Build That App
- Reactive Intro: State Management and Bindings by Lets Build That App
- Simple SwiftUI Application by Brian Advent
- Understanding State by Martin Lasek
- SwiftUI Complete Apps by Paul Hudson
- Collection View 2019 - Scrolling List in Swift UI by maxcodes
- State Management Using View Models in SwiftUI by azamsharp
- Programmatically Navigation to Destination View in SwiftUI by azamsharp
- Integrating Core Data with SwiftUI by azamsharp
- Understanding ObservableObject in SwiftUI by azamsharp
- Building Relative Layouts Using GeometryReader in SwiftUI by azamsharp
- TabView in SwiftUI by azamsharp
- Integrating Camera with SwiftUI by azamsharp
- SwiftUI and Core Data - Build a To-Do List App by Brian Advent
🛠 Examples
Helpers
- SwiftUI by Example by Paul Hudson
- Learning and Usage Guide by Jinxiansen
- SwiftUI Cheat Sheet by SimpleBoilerplates
- SwiftUI phone number text field by MojtabaHs
- SwiftUI Image view that displays an image downloaded from provided URL by Dmytro Anokhin
- A SwiftUI view that manages a UIViewController that responds to keyboard events with modified additionalSafeAreaInsets by a2
- Re-implementation of @binding and @State by AliSoftware
- SwiftUI Framework Learning and Usage Guide by Jinxiansen
- FlowStack is a grid layout component by johnsusek
- Flux pattern for SwiftUI by johnsusek
- A flexible grid layout view for SwiftUI by pietropizzi
- Declarative HTTP networking, designed for SwiftUI by carson-katri
- SwiftUI support for drag and drop on iOS by brunogb
Libraries
- Async image loading by Callum Trounce
- QGrid: The missing SwiftUI collection view by Q-Mobile
- ASCollectionView: A SwiftUI collection view by Apptek Studios
- Walkthrough or onboarding flow with tap actions by Exyte
- Render ring chart, sunburst chart and multilevel pie chart diagrams by lludo
- SwiftSpeech: A speech recognition framework designed for SwiftUI by Cay Zhang
- CardStack: A easy-to-use SwiftUI view for Tinder like cards on iOS, macOS & watchOS by Deniz Adalar
- Defaults:
@State
replacement for UserDefaults by Sindre Sorhus - Preferences: Create a macOS preferences window in SwiftUI by Sindre Sorhus
- KeyboardShortcuts: SwiftUI control to set global keyboard shortcuts in your macOS app by Sindre Sorhus
- SharedObject: A new property wrapper for SwiftUI
ObservableObject
- FontIcon: Bring Material, Font Awesome 5, Ionicons font icons into SwiftUI by Huy Bui Dac
- SyntaxHighlight: TextMate-style syntax highlighting for SwiftUI by maoyama
Combine
- Hover an async combine supported network library by Onur H. Cantay
Open Source Apps
- Examples projects using SwiftUI released by WWDC2019. Include Layout, UI, Animations, Gestures, Draw and Data. by ivanvorobei
- SwiftUI & Combine app using MovieDB API by Dimillian (Thomas Ricouard)
- SwiftUI MovieDB prototype app by alfianlosari
- SwiftUI and Combine based GitHubSearch example by marty-suzuki
- This is an example project of SwiftUI and Combine using GitHub API by ra1028
- An app that composes text over an image in SwiftUI by dempseyatgithub
- A 2048 game writing with SwiftUI by unixzii
- Sample iOS project built by SwiftUI + MVVM and Combine framework using GitHub API by kitasuke
- Sample iOS project built by SwiftUI + Flux and Combine framework using GitHub API by kitasuke
- ChartView made in SwiftUI by AppPear
- Swift UI Demo for an instagram copy by leavenstee
- A to-do list app using SwiftUI and combine with restful api by jamfly
- Anime schedule, korean subtitle for iOS with SwiftUI + Combine and MVVM architecture by PangMo5
- A notes app written in >100 lines of swift using SwiftUI by jnewc
- A weather forecast app using the OpenWeather API, MapKit, and SwiftUI! by jhatin94
- Hacker News reader built with SwiftUI and Combine by woxtu
- Currency Converter App by alexliubj
- A basic SwiftUI chat app that leverages the new URLSessionWebSocketTask by niazoff
- A simple SwiftUI weather app using MVVM by niazoff
- Koober a ride-hailing app from Advanced iOS App Architecture book by raywenderlich
- Design+Code app that shows how you can use SwiftUI to create beautiful UI by mythxn
- Shopping List app showing how to use SwiftUI with Core Data by ericlewis
- Carbode Barcode QRCode scanner by heart
- Clean Architecture for SwiftUI demo app by Alexey Naumov
- Address Book project with Core Data by Harold Martin
- Imgur app with SwiftUI and Combine using MVVM by Nikita Razumnyi
- Mac app that shows pull request last modified each line of a file by maoyama
- Animal Crossing New Horizons Companion App by Dimillian (Thomas Ricouard)
Apps
- Healr by Healr Street
- Photo Widget by Sindre Sorhus
💻 Courses
- SwiftUI Quick Start Guide with iOS 13 and Xcode 11 by DevTechie Interactive
- SwiftUI - Declarative Interfaces for any Apple Device by Mohammad Azam
- Learn SwiftUI by Meng To
- Build an app with SwiftUI by Meng To
📖 Books
SwiftUI
- SwiftUI by Tutorials by raywenderlich.com
- SwiftUI Views by Mark Moeykens (Big Mountain Studio)
- SwiftUI - Declarative Interfaces for any Apple Device by Mohammad Azam
Combine
- Combine: Asynchronous Programming with Swift by raywenderlich.com
- Using Combine by Joseph Heck