开源项目 awesome-swiftui
使用教程
1. 项目的目录结构及介绍
awesome-swiftui
项目是一个收集了关于 SwiftUI 的各种资源的开源项目,包括文章、教程、视频、代码示例等。以下是项目的目录结构及介绍:
awesome-swiftui/
├── LICENSE
├── README.md
├── awesome-swiftui-banner.png
├── Articles
│ ├── Architecture
│ ├── Animations
│ ├── Navigation
│ ├── StateAndBinding
│ └── UnitTesting
├── Code
│ ├── MultiPendulum
│ ├── OakOTP
│ ├── macOSRedditOS
│ ├── ControlRoom
│ ├── AppShot
│ ├── GUIs
│ ├── PasteboardViewer
│ ├── pika
│ ├── nuage
│ ├── writefreely
│ └── PrivacyRedirectForSafari
├── Helpers
│ ├── ActivityIndicatorView
│ ├── ActivityIndicators
│ ├── SkeletonUI
│ ├── Laden
│ ├── ConcentricOnboarding
│ ├── Pages
│ ├── LiquidSwipe
│ └── PageView
├── Libraries
│ ├── Button
│ ├── Calendar
│ ├── Chart
│ ├── DragosIoneanu
│ ├── AndreiVillasana
│ ├── ryanashcraft
│ ├── AlexeyNaumov
│ ├── MartinLasek
│ ├── Majid
│ ├── Mattt
│ ├── VladimirsMatusevics
│ ├── MortyMerr
│ ├── MohammadAzam
│ └── XiomaraFigueroa
└── Videos
├── AppleWWDC2019
└── Tutorials
目录介绍
LICENSE
: 项目的许可证文件。README.md
: 项目的介绍文档。awesome-swiftui-banner.png
: 项目的标志图片。Articles
: 包含关于 SwiftUI 的各种文章,分为不同的主题,如架构、动画、导航等。Code
: 包含使用 SwiftUI 实现的各种示例代码项目。Helpers
: 包含一些辅助工具和组件,如加载指示器、骨架屏等。Libraries
: 包含一些第三方库和组件,如按钮、日历、图表等。Videos
: 包含关于 SwiftUI 的视频资源,如 WWDC 2019 的视频和教程视频。
2. 项目的启动文件介绍
awesome-swiftui
项目本身是一个资源集合,没有特定的启动文件。每个示例代码项目(如 MultiPendulum
、OakOTP
等)都有自己的启动文件。以 MultiPendulum
为例,其启动文件通常是 ContentView.swift
或 App.swift
。
示例启动文件
// ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, World!")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
3. 项目的配置文件介绍
awesome-swiftui
项目没有统一的配置文件,每个示例代码项目都有自己的配置文件。以 MultiPendulum
为例,其配置文件通常是 Info.plist
。
示例配置文件
<!-- Info.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>MultiPendulum</string>
<key>CFBundleIdentifier</key>
<string>com.example.MultiPendulum</string>
<key>CFBundleName</key>
<string>MultiPendulum</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPort