Awesome
Awesome SwiftUI <u>🕶️</u>
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/
<details open> <summary>Resource <a href="https://developer.apple.com/download/">download</a></summary> <ul> <li>Xcode 13 <a href="https://apps.apple.com/us/app/xcode/id497799835">Download</a></li> <li>iOS Image <a href="https://developer.apple.com/download/#ios-restore-images-iphone-new">Download restore image</a></li> <li>iPadOS Image <a href="https://developer.apple.com/download/#ios-restore-images-ipad-new">Download restore image</a></li> <li>macOS Catalina Image <a href="https://developer.apple.com/services-account/download?path=/WWDC_2019/macOS_10.15_Developer_Beta_Access_Utility/macOSDeveloperBetaAccessUtility.dmg">Install profile</a></li> <li>watchOS Image <a href="https://developer.apple.com/services-account/download?path=/WWDC_2019/watchOS_6_beta_Configuration_Profile/watchOS_6_Beta_Profilemobileconfig.mobileconfig">Install profile</a></li> </ul> </details>Notice: Apple Developer Program required.
Tutorials
- iOS App Dev Training
- Creating a macOS App
- Creating a watchOS App
- 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
- 肘子的Swift记事本
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
- How to Speed Up SwiftUI Development and Testing Using PreviewSnapshots - DoorDash Engineering
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 SwiftUI
ObservableObject
. - 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 show
toast, 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, using
TabView
. - 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.
- zzanehip/The-OldOS-Project - Recreating a fully functional version of iOS 4 in SwiftUI.
- soundcloud/Axt - SwiftUI view testing library
- siteline/SwiftUI-Introspect - Introspect underlying UIKit components from SwiftUI
- joogps/SlideOverCard - A SwiftUI card view, made great for setup interactions.
- TokamakUI/Tokamak - SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
- markiv/SwiftUI-Shimmer - Shimmer is a super-light modifier that adds a shimmering effect to any SwiftUI View, for example, to show that an operation is in progress. It works well on light and dark modes, and across iOS, macOS, tvOS and watchOS.
Videos
- Format phone numbers in SwiftUI - What is iSwiftUI