# SwiftUI

[dev](https://lochiwei.gitbook.io/ios/master) ⟩ SwfitUI&#x20;

{% hint style="success" %} <mark style="color:purple;">SwiftUI</mark> is a modern way <mark style="color:yellow;">to declare user interfaces</mark> for any Apple platform. It provides [views](https://lochiwei.gitbook.io/ios/swiftui/view), [controls](https://lochiwei.gitbook.io/ios/swiftui/control), and [layout](https://lochiwei.gitbook.io/ios/swiftui/view/layout) structures for declaring your app's user interface. The framework provides <mark style="color:orange;">event handlers</mark> for delivering <mark style="color:orange;">taps</mark>, [gestures](https://lochiwei.gitbook.io/ios/swiftui/gestures), and other types of input to your app, and tools to manage the [flow of data](https://lochiwei.gitbook.io/ios/swiftui/data-flow) from your app's models down to the views and controls that users will see and interact with.
{% endhint %}

{% tabs %}
{% tab title="🔴 主題" %}

* [view](https://lochiwei.gitbook.io/ios/swiftui/view "mention")
* [control](https://lochiwei.gitbook.io/ios/swiftui/control "mention")
* [gestures](https://lochiwei.gitbook.io/ios/swiftui/gestures "mention")
* [data-flow](https://lochiwei.gitbook.io/ios/swiftui/data-flow "mention")
* [layout](https://lochiwei.gitbook.io/ios/swiftui/view/layout "mention")
  * [adaptive-layout](https://lochiwei.gitbook.io/ios/swiftui/view/layout/adaptive-layout "mention")
* [Broken link](https://lochiwei.gitbook.io/ios/broken-reference "mention")
* [for-mac](https://lochiwei.gitbook.io/ios/swiftui/for-mac "mention")
  {% endtab %}

{% tab title="👩‍🎓 課程" %}

<details>

<summary><a href="https://developer.apple.com/pathways/swiftui/">SwiftUI Pathway</a></summary>

* [ ] &#x20;[SwiftUI Essentials](https://developer.apple.com/videos/play/wwdc2024/10150/) (WWDC2024)

</details>

* [ ] mobile01 ⟩ [雪白西丘斯](https://www.mobile01.com/userinfo.php?id=2744231) (SwiftUI 教學)&#x20;
* [ ] Apple ⟩&#x20;
  * [x] [SwiftUI Tutorials](https://developer.apple.com/tutorials/swiftui)
  * [ ] [Develop Apps for iOS](https://developer.apple.com/tutorials/app-dev-training/?utm_campaign=iOS%2BDev%2BWeekly\&utm_medium=email\&utm_source=iOS%2BDev%2BWeekly%2BIssue%2B552) ⭐️
  * [ ] [Sample Apps Tutorials](https://developer.apple.com/tutorials/sample-apps/aboutme) ⭐️
    * [x] [About Me](https://developer.apple.com/tutorials/sample-apps/aboutme) - about [tabview](https://lochiwei.gitbook.io/ios/swiftui/container/presentation/tabview "mention").
    * [x] [Choose Your Own Story](https://developer.apple.com/tutorials/sample-apps/chooseyourownstory) - about [navigationview](https://lochiwei.gitbook.io/ios/swiftui/deprecated/navigationview "mention"), [link](https://lochiwei.gitbook.io/ios/swiftui/view/navi/link "mention").
    * [x] [Date Planner](https://developer.apple.com/tutorials/sample-apps/dateplanner) - about [stateobject](https://lochiwei.gitbook.io/ios/swiftui/view/state/object/stateobject "mention"), [binding](https://lochiwei.gitbook.io/ios/swiftui/view/state/binding/binding "mention").
    * [x] [Organizing with Grids](https://developer.apple.com/tutorials/sample-apps/organizingwithgrids) - about [stacks](https://lochiwei.gitbook.io/ios/swiftui/view/layout/stacks "mention"), [scrollview](https://lochiwei.gitbook.io/ios/swiftui/control/scrollview "mention").
    * [ ] [Editing Grids](https://developer.apple.com/tutorials/sample-apps/editinggrids) - about adding/updating data item.
    * [ ] [Image Gallery](https://developer.apple.com/tutorials/sample-apps/imagegallery)
* [ ] Ray ⟩ [Your First iOS and SwiftUI App](https://www.raywenderlich.com/ios/paths/learn)
* [ ] Paul ⟩&#x20;
  * [ ] [Hacking with iOS: SwiftUI Edition](https://www.hackingwithswift.com/books/ios-swiftui) ⭐️
  * [ ] [100 Days of SwiftUI](https://www.hackingwithswift.com/100/swiftui)
* [ ] [Design+Code](https://designcode.io)
* [ ] Tunde ⟩ [SwiftUI Sessions](https://youtube.com/playlist?list=PLvUWi5tdh92w0BP5gwJxgSJ12wKmYK9Y8) (YouTube playlist)
* [ ] [WWDC2019: SwiftUI](https://developer.apple.com/videos/play/wwdc2019/216/)
* [ ] Stanford ⟩ [Developing Apps for iOS](https://cs193p.sites.stanford.edu/) ⭐️
* [ ] Udemy ⟩ [SwiftUI Masterclass 2022 - iOS 15 App Development & Swift 5](https://www.udemy.com/course/swiftui-masterclass-course-ios-development-with-swift/?persist_locale=\&locale=en_US)
  {% endtab %}

{% tab title="📗 參考" %}

* [ ] Richard Turton ⟩ [GETTING STARTED WITH SWIFTUI IN 30 MINUTES OR LESS](https://martiancraft.com/blog/2022/05/swiftui-quickstart/)
* [ ] [SwiftUI Projects](https://github.com/PacktPublishing/SwiftUI-Projects) - source code
* [ ] Hacking with Swift ⟩ [SwiftUI by Example](https://www.hackingwithswift.com/quick-start/swiftui) ⭐️ #todo
* [ ] [Swift with Majid](https://swiftwithmajid.com/categories/)
* [ ] [A deeper Understanding of SwiftUI](https://www.egeniq.com/blog/deeper-understanding-swiftui) - egeniq
* [ ] 5 Stars ⟩ [Every SwiftUI protocol explained](https://www.fivestars.blog/articles/swiftui-protocols/)
* [x] Paul ⟩ [8 Common SwiftUI Mistakes - and how to fix them](https://www.hackingwithswift.com/articles/224/common-swiftui-mistakes-and-how-to-fix-them)
* [x] [Write SwiftUI Entirely on an iPad Using Swift Playgrounds](https://medium.com/better-programming/write-swiftui-entirely-on-an-ipad-using-swift-playgrounds-f48364e50c9a) - [Rob Sturgeon](https://robsturgeon.medium.com/?source=post_page-----f48364e50c9a--------------------------------)
* [ ] Sarun ⟩&#x20;
  * [ ] tagged [SwiftUI](https://sarunw.com/tags/SwiftUI/)
  * [ ] [Set SwiftUI app theme with AccentColor](https://sarunw.com/posts/swiftui-accentcolor/)
  * [ ] [How to add Keyboard Shortcuts in SwiftUI](https://sarunw.com/posts/swiftui-keyboard-shortcuts/)
* [ ] [The Ultimate Guide to the SwiftUI 2 Application Life Cycle](https://peterfriese.dev/posts/ultimate-guide-to-swiftui2-application-lifecycle/)
* [ ] MartianCraft ⟩ [Creating a Component & Using Binding in SwiftUI](https://martiancraft.com/blog/2022/10/swiftui-reusable-components/)
* [ ] 南e中教學網 ⟩ [SwiftUI](https://moodle.tnfsh.tn.edu.tw/pluginfile.php/46128/mod_resource/content/0/SwiftUI%E6%95%99%E6%9D%90%E9%9B%A2%E7%B7%9A%E7%89%88.pdf) (<mark style="color:red;">**PDF**</mark>)
* [ ] [Model View Controller for SwiftUI](http://www.alwaysrightinstitute.com/viewcontroller/)
* [ ] Ray ⟩ [State Restoration in SwiftUI](https://www.kodeco.com/34862236-state-restoration-in-swiftui)
* [ ] YouTube ⟩&#x20;
  * [ ] Swiftful Thinking ⟩ [SwiftUI Bootcamp](https://youtube.com/playlist?list=PLwvDm4VfkdphqETTBf-DdjCoAvhai1QpO) (62 videos)
    {% endtab %}

{% tab title="📘 手冊" %}

* [SwiftOnTap](https://swiftontap.com/) - SwiftUI Docs with Examples ⭐️
* [SwiftUI](https://developer.apple.com/documentation/swiftui) ⟩
  * #### Essentials ⟩
    * [Introducing SwiftUI](https://developer.apple.com/tutorials/SwiftUI)
    * [Exploring SwiftUI Sample Apps](https://developer.apple.com/tutorials/Sample-Apps)
  * App Structure ⟩&#x20;
    * [App Structure and Behavior](https://developer.apple.com/documentation/swiftui/app-structure-and-behavior)
    * [Scenes](https://developer.apple.com/documentation/swiftui/scenes)
    * [App Extensions](https://developer.apple.com/documentation/swiftui/app-extensions)
    * [State and Data Flow](https://developer.apple.com/documentation/swiftui/state-and-data-flow)
  * User Interface ⟩&#x20;
    * [View Fundamentals](https://developer.apple.com/documentation/swiftui/view-fundamentals)
    * [Text Input and Output](https://developer.apple.com/documentation/swiftui/text-input-and-output)
    * [Images](https://developer.apple.com/documentation/swiftui/images)
    * [Controls and Indicators](https://developer.apple.com/documentation/swiftui/controls-and-indicators)
    * [Shapes](https://developer.apple.com/documentation/swiftui/shapes)
    * [Drawing and Graphics](https://developer.apple.com/documentation/swiftui/drawing-and-graphics)
  * View Containers ⟩
    * [Layout Containers](https://developer.apple.com/documentation/swiftui/layout-containers)
    * [Collection Containers](https://developer.apple.com/documentation/swiftui/collection-containers)
    * [Presentation Containers](https://developer.apple.com/documentation/swiftui/presentation-containers)
  * Interactivity ⟩
    * [User Input](https://developer.apple.com/documentation/swiftui/user-input)
    * [Gestures](https://developer.apple.com/documentation/swiftui/gestures)
    * [Animations](https://developer.apple.com/documentation/swiftui/animations)
  * Framework Integration ⟩
    * [SwiftUI Views in Other Frameworks](https://developer.apple.com/documentation/swiftui/swiftui-views-in-other-frameworks)
    * [Other Views in SwiftUI](https://developer.apple.com/documentation/swiftui/other-views-in-swiftui)
  * Tool Support ⟩&#x20;
    * [Previews in Xcode](https://developer.apple.com/documentation/swiftui/previews-in-xcode)
    * [Xcode Library Customization](https://developer.apple.com/documentation/swiftui/xcode-library-customization)
      {% endtab %}

{% tab title="🛠 工具" %}

* [A Companion for SwiftUI](https://swiftui-lab.com/companion/)
* [SwiftUI Index](https://mackuba.eu/swiftui/changelog) - a list of what's new in SwiftUI.
  {% endtab %}

{% tab title="📅 事件" %}

* [wwdc22](https://lochiwei.gitbook.io/ios/master/events/wwdc22 "mention")
  {% endtab %}
  {% endtabs %}
