🕶️
Awesome SwiftUI A curated list of awesome SwiftUI tutorials, libraries, sessions and articles.
Contributing
Found a SwiftUI library or snippet that you think is awesome? Fork this repository and send your pull request.
Index
Websites
- SwiftUI developer.apple.com/xcode/swiftui/
- Documentation developer.apple.com/documentation/swiftui
- WWDC 2020 developer.apple.com/wwdc20/
Notice: Apple Developer Program required.
Resource download
- Xcode 13 Download
- iOS Image Download restore image
- iPadOS Image Download restore image
- macOS Catalina Image Install profile
- watchOS Image Install profile
Tutorials
- Creating and Combining Views
- Building Lists and Navigation
- Handling User Input
- Drawing Paths and Shapes
- Animating Views and Transitions
- Composing Complex Interfaces
- Working with UI Controls
- Interfacing with UIKit
- Present your app’s content in widgets with SwiftUI views.
- SwiftUI Cheatsheet
- SwiftUI 与 Combine 编程
- SwiftUI 编程思想
- SwiftUI by Tutorials
- 100 Days of SwiftUI
- SwiftUI by Example
Sessions
-
WWDC 2019
- 204 - Introducing SwiftUI: Building Your First App
- 237 - Building Custom Views with SwiftUI
- 238 - Accessibility in SwiftUI
- 226 - Data Flow Through SwiftUI
- 231 - Integrating SwiftUI
- 233 - Mastering Xcode Previews
- 216 - SwiftUI Essentials
- 240 - SwiftUI On All Devices
- 219 - SwiftUI on watchOS
-
WWDC 2020
- 10119 - Introduction to SwiftUI
- 10041 - What's new in SwiftUI
- 10031 - Stacks, Grids, and Outlines in SwiftUI
- 10037 - App essentials in SwiftUI
- 10040 - Data Essentials in SwiftUI
- 10149 - Structure your app for SwiftUI previews
- 10033 - Build SwiftUI views for widgets
- 10039 - Build document-based apps in SwiftUI
- 10042 - Build SwiftUI apps for tvOS
- 10048 - Build complications in SwiftUI
- 10185 - Visually edit SwiftUI views
-
WWDC 2021
- 10018 - What's new in SwiftUI
- 10017 - Bring Core Data concurrency to Swift and SwiftUI
- 10019 - Discover concurrency in SwiftUI
- 10119 - SwiftUI Accessibility: Beyond the basics
- 10220 - Localize your SwiftUI app
- 10021 - Add rich graphics to your SwiftUI app
- 10022 - Demystify SwiftUI
- 10023 - Direct and reflect focus in SwiftUI
- 10176 - Craft search experiences in SwiftUI
- 10062 - SwiftUI on the Mac: Build the fundamentals
- 10289 - SwiftUI on the Mac: The finishing touches
Documents
- App Structure and Behavior
- Views and Controls
- View Layout and Presentation
- Drawing and Animation
- Framework Integration
- State and Data Flow
- Gestures
- Preview in Xcode
Articles
- Easily format phone numbers entirly in SwiftUI - IcyHovercraft
- An Instagram clone using SwiftUI and GraphQL [1] [2] [3] [4]
- SwiftUI, Combine, and Firebase [1] [2] [3] - - Medium@Peter Friese
- SwiftUI + Combine =
❤️ - - Medium@Peter Friese - Get started with SwiftUI - Hacking with Swift
- Inside SwiftUI's Declarative Syntax's Compiler Magic - SwiftRocks
- SwiftUI’s relationship to UIKit and AppKit - WWDC by Sundell
- A first look at SwiftUI: Apple's declarative new UI framework - WWDC by Sundell
- Answers to the most common questions about SwiftUI - WWDC by Sundell
- Making real-world app with SwiftUI - Majid's
- SwiftUI 的一些初步探索 (一) - 小专栏@onevcat
- SwiftUI 的一些初步探索 (二) - 小专栏@onevcat
- SwiftUI 的 DSL 语法分析 - 知乎专栏@黄二少碎碎念
- 从 SwiftUI 谈声明式 UI 与类型系统 - 知乎专栏@CyanTalks
- SwiftUI Are we saying goodbye to IB(UIStoryboard) ? - Medium@Mohammad Sawalha
- Tutorial: How to setup a SwiftUI project - Medium@Martin Lasek
- What SwiftUI Means for Flutter - Medium@Martin Rybak
- SwiftUI 程式開發初體驗 - Medium@彼得潘的 iOS App Neverland
- SwiftUI - How to setup a project - Medium@Martin Lasek
- How To Make a Simple Countdown Timer with SwiftUI - Medium@Antoine Barrault
- SwiftUI - Understanding State - Medium@Martin Lasek
- Understanding SwiftUI in depth - Medium@Balraj Singh
- A Skeptics view on SwiftUI - Medium@Jille van der Weerd
- Optionals in SwiftUI - Medium@Jasper Haggenburg
- URL Image view in SwiftUI - Medium@Dmytro Anokhin
- What Swift UI means to current Apps and Frameworks - Medium@Luca Kiedrowski
- How to build a Chat App or Messenger in SwiftUI for iOS Swift - Medium@Nick Halavins
- Presenting UIViewControllers in SwiftUI - Medium@Johannes Nevels
- A Week With SwiftUI - iCalvin.dev
- SwiftUI, First Impression - Medium@Ahmad Fayyas
- SwiftUI & Combine: Better Together - Medium@Peter Friese
- Programmatic navigation in SwiftUI project - Medium@nalexn
- Clean Architecture for SwiftUI - Medium@nalexn
- Variadic DisposeBag for Combine subscriptions - Medium@nalexn
- 8 Amazing SwiftUI Libraries to Use in Your Next Project - Medium@rudrankriyam
- Create a map view compatible with SwiftUI - Mapbox
- SwiftUI Architectures: Model-View, Redux & MVVM - QuickBird Studios
- Modern Dependency Injection in Swift - Medium@michaellong
Samples
- Building Widgets Using WidgetKit and SwiftUI - Create widgets to show your app’s content on the Home screen, with custom intents for user-customizable settings.
- Fruta: Building a Feature-Rich App with SwiftUI - Create a shared codebase to build a multiplatform app that offers widgets and an App Clip.
- Creating Accessible Views - Make your app accessible to everyone by applying accessibility modifiers to your SwiftUI views.
- MojtabaHs/iPhoneNumberField - A SwiftUI text field view that formats your phone number as you type
- devxoul/SwiftUITodo - An example to-do list app using SwiftUI which is introduced in WWDC19
- marty-suzuki/GitHubSearchWithSwiftUI - SwiftUI and Combine based GitHubSearch example.
- ra1028/SwiftUI-Combine-Example - This is an example project of SwiftUI and Combine using GitHub API.
- timdonnelly/SwiftUITimeTravel - An experimental time traveling state store for SwiftUI
- alexpaul/SwiftUI-Landmarks - Introducing SwiftUI. A declarative way to create User Interfaces with Swift.
- Yohrd/iOS-Portfolio-Rodrigo - Portfolio criado em Swift 5.1 (Beta) e SwiftUI
- ra1028/SwiftUI-Flux - This is a tiny experimental application using SwiftUI with Flux architecture.
- unixzii/SwiftUI-2048 - A 2048 game writing with SwiftUI.
- agiletalk/SwiftUINote - Simple note app using SwiftUI
- artemnovichkov/SwiftUI-by-Examples - Examples of new SwiftUI framework
- jrtibbetts/TempusRomanumII - The SwiftUI implementation of TempusRomanum
- hotchner/SwiftUICalculator - A calculator app using SwiftUI which is introduced in WWDC19
- YOONMS/WWDCPlayer - WWDC19 player using SwiftUI
- leavenstee/InstaFake-Swift-UI - Swift UI Demo for an instagram copy
- Dimillian/MovieSwiftUI - SwiftUI & Combine app using MovieDB API
- alexdrone/DispatchStore - Package that implements an operation based multi-store à-la Flux for SwiftUI.
- miliPolo/SwiftUI_Jike - Build Jike App UI with SwiftUI
- danielctull/SwiftUI-Tutorials - All of the SwiftUI tutorials in one easy download.
- robbiet480/TransitPal - A open source Swift app for iOS 13 that allows you to check your NFC transit card information. Written with SwiftUI.
- vinhnx/CombineUnsplash - Exploring SwiftUI + Combine + Result by using Unsplash API, with detailed code explaination
- Jinxiansen/SwiftUI - SwiftUI Framework Learning and Usage Guide.
- StevenLambion/SwiftDux - Redux inspired predictable state management for SwiftUI applications.
- antgar/CombineMarbles-SwiftUI - Diagrams for the new Combine framework
- SwiftUIX/SwiftUIX - An extension to the standard SwiftUI library
- SwiftWebUI/SwiftWebUI - A demo implementation of SwiftUI for the Web
- pietropizzi/GridStack - A flexible grid layout view for SwiftUI
- nickffox/KeyboardObserving -
⌨️ A Combine-based way to observe and adjust for Keyboard notifications in SwiftUI - SwiftUIX/GoshDarnBugs - A collection of bugs present in the SwiftUI beta.
- luoxiu/CombineX - CombineX is an open source implementation for Apple's Combine specs.
- alexejn/TypeYouCard - SwiftUI Paycard form
- nalexn/clean-architecture-swiftui - Clean Architecture for SwiftUI demo app
- nalexn/ViewInspector - Runtime inspection and unit testing of SwiftUI views
- muukii/Verge - iOS + Flux - Verge is a state management tools (Store, ViewModel, ORM, Reactive) on iOS App (UIKit / SwiftUI)
- apptekstudios/ASCollectionView - A SwiftUI collection view
- siteline/SwiftUI-Introspect - Introspect underlying UIKit components from SwiftUI
- dmytro-anokhin/url-image - Asynchronous image loading in SwiftUI
- hbmartin/Directory-SwiftUI - A card interface contacts app built on Core Data and Alamofire
- onurhuseyincantay/Hover - Hover an async combine supported network library
- joehinkle11/Lazy-Pop-SwiftUI Modifier that allows swiping on any part of the screen to start an interruptible pop animation to the previous view.
- joehinkle11/Login-with-Apple-Firebase-SwiftUI SwiftUI component that handles logging in with Apple into Firebase. Complete tutorial in the README.
- Cay-Zhang/SwiftSpeech - A speech recognition framework designed for SwiftUI
- Zaprogramiacz/GrowingTextView - Growing text view implementation in SwiftUI
- mythxn/DesignCode-SwiftUI -
📱 An app fully written in SwiftUI showcasing beautiful design and animations. - carson-katri/reddit-swiftui - A cross-platform Reddit client built in SwiftUI
- mecid/swiftui-recipes-app - Recipes app written in SwiftUI using Single State Container
- sgr-ksmt/FireTodo - Simple Todo Application using SwiftUI / Firebase / Redux.
- caiobzen/water-reminder-swiftui - A simple Apple Watch app to remind you to drink water!
- simonboots/SwiftUIFourierSeries - A Fourier Series visualisation written in Swift/SwiftUI
- sindresorhus/Defaults -
@State
replacement for UserDefaults. - sindresorhus/Preferences - Create a good-looking preferences window for your macOS app in SwiftUI.
- sindresorhus/KeyboardShortcuts - User-customizable global keyboard shortcuts for your macOS app.
- quassummanus/SVG-to-SwiftUI - SVG to SwiftUI Shape converter tool.
- lorenzofiamingo/SharedObject -
🍱 A new property wrapper for SwiftUIObservableObject
. - stleamist/BetterSafariView - A better way to present a
SFSafariViewController
or start aASWebAuthenticationSession
in SwiftUI. - huybuidac/SwiftUIFontIcon - Font icon for SwiftUI (Material icon, Ionicons, Font Awesome 5 Free)
- SimformSolutionsPvtLtd/SSToastMessage -
📱 An library writtern in purly in SwiftUI to showtoast, alert or floating message
with using modifier. - Zaprogramiacz/MGFlipView - MGFlipView allows to create flipping view in easy way without worrying about flipping animation and flipping logic.
- VerticalTabView -
🔝 A native way to display paged vertical content in SwiftUI, usingTabView
. - SwiftUIKit - A collection of missing SwiftUI components
- huseyinbagana/TransactionAlert - Simple SwiftUI Alert
- philipturner/ar-multipendulum - AR app using SwiftUI for touchscreen interface
- philipturner/ARHeadsetKit - High-level AR framework for replicating Hololens, using SwiftUI instead of Storyboard
- exyte/Grid - Grid view inspired by CSS Grid and written with SwiftUI
- lorenzofiamingo/CachedAsyncImage -
🗃️ The simplest way to add cache to your AsyncImage. - vinhnx/Clendar - Clendar - universal calendar app. Written in SwiftUI. Available on App Store. MIT License.
Videos
- Format phone numbers in SwiftUI - What is iSwiftUI