├── .github └── FUNDING.yml ├── LICENSE ├── README.md └── awesome-swiftui-banner.png /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [vlondon] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Vladimirs Matusevics 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A list of articles, tutorials, guides and videos about SwiftUI and Combine. **Feel free to contribute!** 2 | 3 | #### If you have a great content to share and want people to know about it ASAP then join our [Reddit Community](https://www.reddit.com/r/AwesomeSwiftUI/). 4 | 5 | 6 | 7 | ### Content 8 | - [Articles](#-articles) 9 | - [Tutorials](#tutorials) 10 | - [How to](#how-to) 11 | - [View and Navigation](#view-and-navigation) 12 | - [State and Binding](#state-and-binding) 13 | - [Architecture](#architecture) 14 | - [Animations](#animations) 15 | - [Inside](#inside) 16 | - [Unit Testing](#unit-testing) 17 | - [Debug](#debug) 18 | - [Other](#other) 19 | - [Combine](#combine) 20 | - [Videos](#-videos) 21 | - [Apple WWDC 2019](#apple-wwdc-2019) 22 | - [Tutorials](#tutorials) 23 | - [Examples](#-examples) 24 | - [Helpers](#helpers) 25 | - [Libraries](#libraries) 26 | - [Combine](#combine) 27 | - [Open Source Apps](#open-source-apps) 28 | - [Apps](#apps) 29 | - [Courses](#-courses) 30 | - [Books](#-books) 31 | - [SwiftUI](#swiftui) 32 | - [Combine](#combine) 33 | 34 | 35 | ## 📝 Articles 36 | 37 | #### [SwiftUI Cheat Sheet](https://fuckingswiftui.com/) 38 | 39 | ### Tutorials 40 | * [SwiftUI Tutorials](https://developer.apple.com/tutorials/swiftui/tutorials) by Apple 41 | * [Making real-world app with SwiftUI](https://mecid.github.io/2019/06/05/swiftui-making-real-world-app/) by Majid 42 | * [Intro to SwiftUI — Part 1](https://medium.com/@suyash.srijan/intro-to-swiftui-part-1-47361a3ffb2e) by Suyash Srijan 43 | * [Intro to SwiftUI — Part 2](https://medium.com/@suyash.srijan/intro-to-swiftui-part-2-6b7e792c21ef) by Suyash Srijan 44 | * [MessageUI, SwiftUI and UIKit integration](https://medium.com/@florentmorin/messageui-swiftui-and-uikit-integration-82d91159b0bd) by Florent Morin 45 | * [Managing Data Flow in SwiftUI](https://mecid.github.io/2019/07/03/managing-data-flow-in-swiftui/) by Majid 46 | * [Beginner SwiftUI Tutorials](https://swiftuihub.com/beginner-swiftui-tutorials/) by SwiftUI Hub 47 | * [Making a Real World Application With SwiftUI](https://medium.com/better-programming/making-a-real-world-application-with-swiftui-cb40884c1056) by Thomas Ricouard 48 | * [Building BarChart with Shape API in SwiftUI](https://mecid.github.io/2019/08/14/building-barchart-with-shape-api-in-swiftui/) by Majid 49 | * [100 Days of SwiftUI](https://www.hackingwithswift.com/100/swiftui) by Paul Hudson 50 | 51 | ### How to 52 | * [How to build a phone number text field](https://benjaminlsage.medium.com/format-phone-numbers-entirely-in-swiftui-9456f52990a1) by icyhovercraft 53 | * [How to build an onboarding screen](https://blckbirds.com/post/how-to-create-a-onboarding-screen-in-swiftui-1/) by blckbirds 54 | * [How to build a Chat App or Messenger](https://blog.usejournal.com/how-to-build-a-chat-app-or-messenger-in-swiftui-for-ios-swift-b46dbe5cc0ab) by Nick Halavins 55 | * [How to build a Form UI](https://www.appcoda.com/swiftui-form-ui/) by Simon Ng 56 | * [How to build a Weather App](https://medium.com/lunabee-studio/building-a-weather-app-with-swiftui-4ec2743ff615) by Benjamin Pisano 57 | * [How to build a Slide out Menu](https://medium.com/programming-with-swift/create-a-side-menu-with-swiftui-4225c8842d26) by Darren 58 | * [How to build a TicTacToe game](https://medium.com/@valv0/a-tictactoe-game-in-swiftui-66b24953f467) by Costantino Pistagna 59 | * [How to build a Simple Countdown Timer](https://medium.com/better-programming/make-a-simple-countdown-with-timer-and-swiftui-3ce355b54986) by Antoine Barrault 60 | * [How to create a side(hamburger) menu](https://blckbirds.com/post/side-menu-hamburger-menu-in-swiftui/) by blckbirds 61 | * [How to Implement Sign In With SwiftUI and AWS Amplify](https://medium.com/better-programming/sign-in-with-aws-amplify-and-swiftui-978b01a5cf10) by Victor Sanchez 62 | * [Build Mobile Serverless Apps Using Amazon Aurora, Amplify, and SwiftUI](https://medium.com/better-programming/build-mobile-serverless-apps-using-amazon-aurora-amplify-and-swiftui-7562ecb7df9a) by Victor Sanchez 63 | * [Build an Object Detection App Using Amazon Rekognition, Amplify, and SwiftUI](https://medium.com/better-programming/build-an-object-detection-app-using-amazon-rekognition-amplify-and-swiftui-20b51dd0024b) by Victor Sanchez 64 | 65 | ### View and Navigation 66 | * [Dynamic List & Identifiable](https://medium.com/flawless-app-stories/swiftui-dynamic-list-identifiable-73c56215f9ff) by Martin Lasek 67 | * [Create a Detail View](https://medium.com/@martinlasek/swiftui-detail-view-44772246fa2a) by Martin Lasek 68 | * [SwiftUI tips and tricks](https://www.hackingwithswift.com/quick-start/swiftui/swiftui-tips-and-tricks) by Paul Hudson 69 | * [How to use SwiftUI to Speed Up your View Coding](https://medium.com/@leonardo.dematossouza/how-to-use-swiftui-to-speed-up-your-view-coding-6dbb0fcabc99) by Leonardo Souza 70 | * [The Simple Life(cycle) of a SwiftUI View](https://medium.com/flawless-app-stories/the-simple-life-cycle-of-a-swiftui-view-95e2e14848a2) by Danny Bolella 71 | * [Alignment Guides in SwiftUI](https://swiftui-lab.com/alignment-guides/) by javier 72 | * [Custom navigation view for your applications](https://medium.com/swlh/swiftui-custom-navigation-view-for-your-applications-7f6effa7dbcf) by Dragos Ioneanu 73 | * [Reusable Components/Higher-Order-Components](https://medium.com/better-programming/swiftui-reusable-components-higher-order-components-192c65375c36) by Andrei Villasana 74 | * [How to Programmatically Push and Pop Views in SwiftUI with NavigationDestinationLink](https://ryanashcraft.com/swiftui-programmatic-navigation/) by ryanashcraft 75 | * [Programmatic navigation in SwiftUI project](https://nalexn.github.io/swiftui-deep-linking/?utm_source=awsui1) by Alexey Naumov 76 | 77 | ### State and Binding 78 | * [Understanding State](https://medium.com/flawless-app-stories/swiftui-understanding-state-8afa23fd9f1f) by Martin Lasek 79 | * [Understanding Binding](https://medium.com/flawless-app-stories/swiftui-understanding-binding-8e20269a76bc) by Martin Lasek 80 | * [Understanding Property Wrappers in SwiftUI](https://mecid.github.io/2019/06/12/understanding-property-wrappers-in-swiftui/) by Majid 81 | * [Redux-like state container in SwiftUI. Basics.](https://mecid.github.io/2019/09/18/redux-like-state-container-in-swiftui/) by Majid 82 | * [Swift Property Wrappers](https://nshipster.com/propertywrapper/) by Mattt 83 | * [Conditional views in SwiftUI](https://medium.com/@iosdev/conditional-views-in-swiftui-dc09c808bc30#95f6-9e0f877be7d4) by Vladimirs Matusevics 84 | 85 | ### Architecture 86 | * [Will Combine kill RxSwift?](https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d89) by MortyMerr 87 | * [MVVM in SwiftUI](https://medium.com/flawless-app-stories/mvvm-in-swiftui-8a2e9cc2964a) by Mohammad Azam 88 | * [Clean Architecture for SwiftUI](https://nalexn.github.io/clean-architecture-swiftui/?utm_source=awsui1) by Alexey Naumov 89 | 90 | ### Animations 91 | * [Animations in SwiftUI](https://mecid.github.io/2019/06/26/animations-in-swiftui/) by Majid 92 | * [Gestures in SwiftUI](https://mecid.github.io/2019/07/10/gestures-in-swiftui/) by Majid 93 | * [UI Animations With Swift](https://medium.com/better-programming/ui-animations-with-swift-2ebb5e6d2292) by Xiomara Figueroa 94 | * [Advanced SwiftUI Animations – Part 1: Paths](https://swiftui-lab.com/swiftui-animations-part1/) by javier 95 | * [Advanced SwiftUI Animations – Part 2: GeometryEffect](https://swiftui-lab.com/swiftui-animations-part2/) by javier 96 | 97 | ### Inside 98 | * [Inside SwiftUI's Declarative Syntax's Compiler Magic](https://swiftrocks.com/inside-swiftui-compiler-magic.html) by Bruno Rocha 99 | * [What’s this “some” in SwiftUI?](https://medium.com/@PhiJay/whats-this-some-in-swiftui-34e2c126d4c4) by Mischa Hildebrand 100 | * [Swift Opaque Result Types](https://jeroenscode.com/swift-opaque-result-types/) by Baking Swift 101 | * [Inside SwiftUI (About @State)](https://kateinoigakukun.hatenablog.com/entry/2019/06/09/081831) by kateinoigakukun 102 | 103 | ### Unit Testing 104 | * [ViewInspector](https://github.com/nalexn/ViewInspector) by Alexey Naumov 105 | * [Unit testing SwiftUI views](https://nalexn.github.io/swiftui-unit-testing/?utm_source=awsui1) by Alexey Naumov 106 | 107 | ### Debug 108 | * [How to use Instruments to profile your SwiftUI code and identify slow layouts](https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-instruments-to-profile-your-swiftui-code-and-identify-slow-layouts) by Paul Hudson 109 | * [Building SwiftUI debugging utilities](https://www.swiftbysundell.com/articles/building-swiftui-debugging-utilities/) by John Sundell 110 | 111 | ### Other 112 | * [Curated list of questions and answers about SwiftUI](https://goshdarnswiftui.com/) by Gosh Darn SwiftUI 113 | * [Answers to the most common questions about SwiftUI](https://wwdcbysundell.com/2019/swiftui-common-questions/) by John Sundell 114 | * [A first look at SwiftUI: Apple’s declarative new UI framework](https://wwdcbysundell.com/2019/swiftui-first-look/) by John Sundell 115 | * [Shifting paradigms in Swift](https://www.swiftbysundell.com/articles/shifting-paradigms-in-swift) by John Sundell 116 | * [Understanding Declarative Programming](https://medium.com/better-programming/swiftui-understanding-declarative-programming-aaf05b2383bd) by Michael Long 117 | * [Rendering SwiftUI views to HTML](https://worthdoingbadly.com/swiftui-html/) by Zhuowei Zhang] 118 | * [SwiftUI: Handling optionals](https://ericasadun.com/2019/06/20/swiftui-handling-optionals/) by Erica Sadun 119 | * [Improving SwiftUI modal presentation API](https://alejandromp.com/blog/improving-swiftui-modal-presentation-api) by Alejandro Martinez 120 | * [Mixing SwiftUI, Combine, OLX](https://tech.olx.com/mixing-swiftui-combine-olx-636c4f3c4162) by Aleksander Lorenc 121 | * [The missing :SwiftWebUI](http://www.alwaysrightinstitute.com/swiftwebui/) by alwaysrightinstitute 122 | * [Rasterizing SwiftUI views from the Command-Line](https://medium.com/@eneko/rasterizing-swiftui-views-from-the-command-line-80d974356c4a) by Eneko Alonso 123 | * [A Brief Tour of Swift UI](https://www.bignerdranch.com/blog/a-brief-tour-of-swift-ui/) by Amit Bijlani 124 | * [Why You Should Consider SwiftUI for Your Next Project](https://medium.com/better-programming/why-you-should-consider-swiftui-for-your-next-project-2d67a7e3745e) by Thomas Ricouard 125 | * [What is new in SwiftUI](https://swiftwithmajid.com/2020/06/23/what-is-new-in-swiftui/) by mecid 126 | 127 | ### Combine 128 | * [Problem Solving with Combine Swift](https://medium.com/flawless-app-stories/problem-solving-with-combine-swift-4751885fda77) by Arlind Aliu 129 | * [SwiftUI & Combine: Better Together](https://medium.com/flawless-app-stories/swiftui-plus-combine-equals-love-791ad444a082) by [Peter Friese](https://twitter.com/peterfriese) 130 | * [Swift Combine Framework Tutorial: Getting Started](https://www.vadimbulavin.com/swift-combine-framework-tutorial-getting-started/) by vadimbulavin 131 | * [Variadic DisposeBag for Combine subscriptions](https://nalexn.github.io/cancelbag-for-combine/?utm_source=awsui1) Alexey Naumov 132 | 133 | ## 📺 Videos 134 | 135 | ### Apple WWDC 2019 136 | * [Introducing SwiftUI: Building Your First App](https://developer.apple.com/videos/play/wwdc2019/204/) - Start here for a quick overview and demo 137 | * [SwiftUI Essentials](https://developer.apple.com/videos/play/wwdc2019/216/) - Deeper dive into how it works and the key concepts 138 | * [Data Flow Through SwiftUI](https://developer.apple.com/videos/play/wwdc2019/226/) - How to use data in SwiftUI. A single source of truth. Explains the difference between a simple property, BindableObject, @Environment, @Binding and @State 139 | * [Building Custom Views with SwiftUI](https://developer.apple.com/videos/play/wwdc2019/237/) - 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 140 | * [Integrating SwiftUI](https://developer.apple.com/videos/play/wwdc2019/231/) - 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 141 | * [Mastering Xcode Previews](https://developer.apple.com/videos/play/wwdc2019/233/) - Great demos on how Xcode previews make working with SwiftUI so easy 142 | * [Accessibility in SwiftUI](https://developer.apple.com/videos/play/wwdc2019/238/) - 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. 143 | * [SwiftUI on watchOS](https://developer.apple.com/videos/play/wwdc2019/219/) - Of course, you can now build watchOS Apps with SwiftUI. 144 | * [Mastering Xcode Previews](https://developer.apple.com/videos/play/wwdc2019/233) - 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 145 | 146 | ### Apple WWDC 2020 147 | 148 | * [Introduction to SwiftUI](https://developer.apple.com/wwdc20/10119) - 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. 149 | * [Visually edit SwiftUI views](https://developer.apple.com/wwdc20/10185) - Building a view in the Xcode preview canvas. 150 | * [Build a SwiftUI view in Swift playgrounds](https://developer.apple.com/wwdc20/10643) - Prototyping SwiftUI views using Swift playgrounds on an iPad. 151 | * [What’s new in SwiftUI](https://developer.apple.com/wwdc20/10041) - An essential session that covers all the new in latest SwiftUI. 152 | * [Stacks, Grids, and Outlines in SwiftUI](https://developer.apple.com/wwdc20/10031) - Lazy stacks and grids, sidebar lists and outlines. 153 | * [App essentials in Swift UI](https://developer.apple.com/wwdc20/10037) - No more AppDelegate and SceneDelegate. Improved scene based state restoration. 154 | * [Data essentials in SwiftUI](https://developer.apple.com/wwdc20/10040) - Let's recap on data flow in SwiftUI and get famialiar with @StateObject, @SceneStorage and @AppStorage. 155 | * [Build document-based apps in SwiftUI](https://developer.apple.com/wwdc20/10037) - Introduction th DocumentGroup for document based apps. 156 | * [Add custom views and modifiers to the Xcode library](https://developer.apple.com/wwdc20/10649) - Great addition to Xcode 12 making it easy to share views and modifiers. 157 | * [Structure your app for SwiftUI previews](https://developer.apple.com/wwdc20/10149) - Great session with lots of tips, especially the section on where to put sample preview data. 158 | * [Build SwiftUI views for widgets](https://developer.apple.com/wwdc20/10033) - Let's build a Widget using SwiftUI views. 159 | 160 | ### Tutorials 161 | * [Your First iOS and SwiftUI App](https://www.raywenderlich.com/4919757-your-first-ios-and-swiftui-app) by raywenderlich 162 | * [Swift UI: Working With UIKit](https://www.raywenderlich.com/4279893-swift-ui-working-with-uikit) by raywenderlich 163 | * [Facebook Complex Layouts - Horizontal Scroll View](https://www.youtube.com/watch?v=7QgPpvqTfeo) by Lets Build That App 164 | * [Dynamic Lists, HStack VStack, Images with Circle Clipped Stroke Overlays](https://www.youtube.com/watch?v=bz6GTYaIQXU) by Lets Build That App 165 | * [Format phone numbers as they're typed](https://www.youtube.com/watch?v=4SnmiWFvolM&ab_channel=WhatisiSwiftUI%3F) by What is iSwiftUI? 166 | * [Fetching JSON and Image Data with BindableObject](https://www.youtube.com/watch?v=xT4wGOc2jd4) by Lets Build That App 167 | * [Reactive Intro: State Management and Bindings](https://www.youtube.com/watch?v=l7vkP6WW6Yk) by Lets Build That App 168 | * [Simple SwiftUI Application](https://www.youtube.com/watch?v=Pfw7zWxchQc) by Brian Advent 169 | * [Understanding State](https://www.youtube.com/watch?v=KD4OAjQJYPc) by Martin Lasek 170 | * [SwiftUI Complete Apps](https://www.youtube.com/watch?v=VGJBLlfSN-Y&list=PLuoeXyslFTuaZtX7xSYbWz3TR0Vpz39gK) by Paul Hudson 171 | * [Collection View 2019 - Scrolling List in Swift UI](https://youtu.be/AYQHRnYT9Jc) by 172 | maxcodes 173 | * [State Management Using View Models in SwiftUI](https://youtu.be/kXsOBDymFdI) by azamsharp 174 | * [Programmatically Navigation to Destination View in SwiftUI](https://youtu.be/-VSbZrBtTGw) by azamsharp 175 | * [Integrating Core Data with SwiftUI](https://youtu.be/NLA_2DtnHyI) by azamsharp 176 | * [Understanding ObservableObject in SwiftUI](https://youtu.be/VioWHKN1eKs) by azamsharp 177 | * [Building Relative Layouts Using GeometryReader in SwiftUI](https://youtu.be/XxZUVDSdfyA) by azamsharp 178 | * [TabView in SwiftUI](https://youtu.be/yRFzfuqjZao) by azamsharp 179 | * [Integrating Camera with SwiftUI](https://youtu.be/W60nnRFUGaI) by azamsharp 180 | * [SwiftUI and Core Data - Build a To-Do List App](https://youtu.be/-BZdQmHV4MQ) by Brian Advent 181 | 182 | ## 🛠 Examples 183 | 184 | ### Helpers 185 | * [SwiftUI by Example](https://www.hackingwithswift.com/quick-start/swiftui/) by Paul Hudson 186 | * [Learning and Usage Guide](https://github.com/Jinxiansen/SwiftUI) by Jinxiansen 187 | * [SwiftUI Cheat Sheet](https://github.com/SimpleBoilerplates/SwiftUI-Cheat-Sheet) by SimpleBoilerplates 188 | * [SwiftUI phone number text field](https://github.com/MojtabaHs/iPhoneNumberField) by MojtabaHs 189 | * [SwiftUI Image view that displays an image downloaded from provided URL](https://github.com/dmytro-anokhin/url-image) by Dmytro Anokhin 190 | * [A SwiftUI view that manages a UIViewController that responds to keyboard events with modified additionalSafeAreaInsets](https://github.com/a2/KeyboardAvoiding) by a2 191 | * [Re-implementation of @binding and @State](https://gist.github.com/AliSoftware/ecb5dfeaa7884fc0ce96178dfdd326f8) by AliSoftware 192 | * [SwiftUI Framework Learning and Usage Guide](https://github.com/Jinxiansen/SwiftUI) by Jinxiansen 193 | * [FlowStack is a grid layout component](https://github.com/johnsusek/FlowStack) by johnsusek 194 | * [Flux pattern for SwiftUI](https://github.com/johnsusek/fluxus/blob/master/README.md) by johnsusek 195 | * [A flexible grid layout view for SwiftUI](https://github.com/pietropizzi/GridStack) by pietropizzi 196 | * [Declarative HTTP networking, designed for SwiftUI](https://github.com/carson-katri/swift-request) by carson-katri 197 | * [SwiftUI support for drag and drop on iOS](https://github.com/brunogb/SwiftUIDragDrop) by brunogb 198 | 199 | ### Libraries 200 | * [Async image loading](https://github.com/cmtrounce/SwURL) by Callum Trounce 201 | * [QGrid: The missing SwiftUI collection view](https://github.com/Q-Mobile/QGrid) by Q-Mobile 202 | * [ASCollectionView: A SwiftUI collection view](https://github.com/apptekstudios/ASCollectionView) by Apptek Studios 203 | * [Walkthrough or onboarding flow with tap actions](https://github.com/exyte/ConcentricOnboarding) by Exyte 204 | * [Render ring chart, sunburst chart and multilevel pie chart diagrams](https://github.com/lludo/SwiftSunburstDiagram) by lludo 205 | * [SwiftSpeech: A speech recognition framework designed for SwiftUI](https://github.com/Cay-Zhang/SwiftSpeech) by Cay Zhang 206 | * [CardStack: A easy-to-use SwiftUI view for Tinder like cards on iOS, macOS & watchOS](https://github.com/dadalar/SwiftUI-CardStackView) by Deniz Adalar 207 | * [Defaults: `@State` replacement for UserDefaults](https://github.com/sindresorhus/Defaults#swiftui-support) by Sindre Sorhus 208 | * [Preferences: Create a macOS preferences window in SwiftUI](https://github.com/sindresorhus/Preferences#swiftui-support) by Sindre Sorhus 209 | * [KeyboardShortcuts: SwiftUI control to set global keyboard shortcuts in your macOS app](https://github.com/sindresorhus/KeyboardShortcuts) by Sindre Sorhus 210 | * [SharedObject: A new property wrapper for SwiftUI `ObservableObject`](https://github.com/lorenzofiamingo/SwiftUI-SharedObject) 211 | * [FontIcon: Bring Material, Font Awesome 5, Ionicons font icons into SwiftUI](https://github.com/huybuidac/SwiftUIFontIcon) by Huy Bui Dac 212 | * [SyntaxHighlight: TextMate-style syntax highlighting for SwiftUI](https://github.com/maoyama/SyntaxHighlight) by maoyama 213 | 214 | ### Combine 215 | * [Hover an async combine supported network library](https://github.com/onurhuseyincantay/Hover) by Onur H. Cantay 216 | 217 | ### Open Source Apps 218 | * [Examples projects using SwiftUI released by WWDC2019. Include Layout, UI, Animations, Gestures, Draw and Data.](https://github.com/ivanvorobei/SwiftUI) by ivanvorobei 219 | * [SwiftUI & Combine app using MovieDB API](https://github.com/Dimillian/MovieSwiftUI) by Dimillian (Thomas Ricouard) 220 | * [SwiftUI MovieDB prototype app](https://github.com/alfianlosari/SwiftUI-MovieDB) by alfianlosari 221 | * [SwiftUI and Combine based GitHubSearch example](https://github.com/marty-suzuki/GitHubSearchWithSwiftUI) by marty-suzuki 222 | * [This is an example project of SwiftUI and Combine using GitHub API](https://github.com/ra1028/SwiftUI-Combine) by ra1028 223 | * [An app that composes text over an image in SwiftUI](https://github.com/dempseyatgithub/MemeMaker) by dempseyatgithub 224 | * [A 2048 game writing with SwiftUI](https://github.com/unixzii/SwiftUI-2048) by unixzii 225 | * [Sample iOS project built by SwiftUI + MVVM and Combine framework using GitHub API](https://github.com/kitasuke/SwiftUI-MVVM) by kitasuke 226 | * [Sample iOS project built by SwiftUI + Flux and Combine framework using GitHub API](https://github.com/kitasuke/SwiftUI-Flux) by kitasuke 227 | * [ChartView made in SwiftUI](https://github.com/AppPear/ChartView) by AppPear 228 | * [Swift UI Demo for an instagram copy](https://github.com/leavenstee/InstaFake-Swift-UI) by leavenstee 229 | * [A to-do list app using SwiftUI and combine with restful api](https://github.com/jamfly/SwiftUI-Combine-todo-example) by jamfly 230 | * [Anime schedule, korean subtitle for iOS with SwiftUI + Combine and MVVM architecture](https://github.com/PangMo5/AniTime) by PangMo5 231 | * [A notes app written in >100 lines of swift using SwiftUI](https://gist.github.com/jnewc/35692b2a5985c3c99e847ec56098a451) by jnewc 232 | * [A weather forecast app using the OpenWeather API, MapKit, and SwiftUI!](https://github.com/jhatin94/tempatlas-swiftui) by jhatin94 233 | * [Hacker News reader built with SwiftUI and Combine](https://github.com/woxtu/SwiftUI-HackerNews) by woxtu 234 | * [Currency Converter App](https://github.com/alexliubj/SwiftUI-Currency-Converter) by alexliubj 235 | * [A basic SwiftUI chat app that leverages the new URLSessionWebSocketTask](https://github.com/niazoff/Chat) by niazoff 236 | * [A simple SwiftUI weather app using MVVM](https://github.com/niazoff/Weather) by niazoff 237 | * [Koober a ride-hailing app from Advanced iOS App Architecture book](https://github.com/raywenderlich/swiftui-example-app-koober) by raywenderlich 238 | * [Design+Code app that shows how you can use SwiftUI to create beautiful UI](https://github.com/mythxn/DesignCode-SwiftUI) by mythxn 239 | * [Shopping List app showing how to use SwiftUI with Core Data](https://github.com/ericlewis/ShoppingList) by ericlewis 240 | * [Carbode Barcode QRCode scanner](https://github.com/heart/CarBode-Barcode-Scanner-For-SwiftUI) by heart 241 | * [Clean Architecture for SwiftUI demo app](https://github.com/nalexn/clean-architecture-swiftui) by Alexey Naumov 242 | * [Address Book project with Core Data](https://github.com/hbmartin/Directory-SwiftUI) by Harold Martin 243 | * [Imgur app with SwiftUI and Combine using MVVM](https://github.com/YetAnotherRzmn/Imgur.iOS) by Nikita Razumnyi 244 | * [Mac app that shows pull request last modified each line of a file](https://github.com/maoyama/GitBlamePR) by maoyama 245 | * [Animal Crossing New Horizons Companion App](https://github.com/Dimillian/ACHNBrowserUI) by Dimillian (Thomas Ricouard) 246 | 247 | ## Apps 248 | * [Healr](https://apps.apple.com/ca/app/healr/id1492834816) by Healr Street 249 | * [Photo Widget](https://apps.apple.com/app/id1532588789) by Sindre Sorhus 250 | 251 | 252 | ## 💻 Courses 253 | 254 | * [SwiftUI Quick Start Guide with iOS 13 and Xcode 11](https://www.udemy.com/course/swiftui-quick-start-guide-with-ios-13-and-xcode-11/) by DevTechie Interactive 255 | * [SwiftUI - Declarative Interfaces for any Apple Device](https://www.udemy.com/course/swiftui-declarative-interfaces-for-any-apple-device/?couponCode=SWIFTUIMEDIUM) by Mohammad Azam 256 | * [Learn SwiftUI](https://learn.designcode.io/swiftui) by Meng To 257 | * [Build an app with SwiftUI](https://designcode.io/swiftui/) by Meng To 258 | 259 | 260 | ## 📖 Books 261 | 262 | ### SwiftUI 263 | 264 | * [SwiftUI by Tutorials](https://store.raywenderlich.com/products/swiftui-by-tutorials) by raywenderlich.com 265 | * [SwiftUI Views](https://www.bigmountainstudio.com/swiftui-views-book) by Mark Moeykens (Big Mountain Studio) 266 | * [SwiftUI - Declarative Interfaces for any Apple Device](https://www.udemy.com/course/swiftui-declarative-interfaces-for-any-apple-device/) by Mohammad Azam 267 | 268 | ### Combine 269 | 270 | * [Combine: Asynchronous Programming with Swift](https://store.raywenderlich.com/products/combine-asynchronous-programming-with-swift) by raywenderlich.com 271 | * [Using Combine](https://heckj.github.io/swiftui-notes/) by Joseph Heck 272 | -------------------------------------------------------------------------------- /awesome-swiftui-banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlondon/awesome-swiftui/c88f116c40aa7e66f531cc5dda3585cbd18b0b89/awesome-swiftui-banner.png --------------------------------------------------------------------------------