{"id":84812,"url":"https://github.com/xiaomingx/awesome-swiftui","name":"awesome-swiftui","description":"🌮 Awesome resources, articles, libraries about SwiftUI","projects_count":30,"last_synced_at":"2026-09-07T20:00:24.277Z","repository":{"id":264484037,"uuid":"893505161","full_name":"XiaomingX/awesome-swiftui","owner":"XiaomingX","description":"🌮 Awesome resources, articles, libraries about SwiftUI","archived":false,"fork":false,"pushed_at":"2025-09-17T04:54:30.000Z","size":15,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-07T14:18:08.428Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XiaomingX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-24T16:09:15.000Z","updated_at":"2025-10-30T12:07:11.000Z","dependencies_parsed_at":"2024-11-24T17:20:15.703Z","dependency_job_id":"d80cae31-d0b4-445f-ad00-b0deef516460","html_url":"https://github.com/XiaomingX/awesome-swiftui","commit_stats":null,"previous_names":["xiaomingx/awesome-swiftui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/XiaomingX/awesome-swiftui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaomingX%2Fawesome-swiftui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaomingX%2Fawesome-swiftui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaomingX%2Fawesome-swiftui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaomingX%2Fawesome-swiftui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XiaomingX","download_url":"https://codeload.github.com/XiaomingX/awesome-swiftui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XiaomingX%2Fawesome-swiftui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284227494,"owners_count":26968592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-13T02:00:06.582Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2025-02-18T06:30:23.252Z","updated_at":"2026-09-07T20:00:24.277Z","primary_language":"Swift","list_of_lists":false,"displayable":true,"categories":["四、开源库精选（解决80%开发场景，附核心优势）","五、系统学习资源（按“学习路径”分类）","开源库精选","一、官方教程（权威首选，适配最新版本）","实用书籍","七、深度文章推荐（聚焦高频问题）","文章推荐","六、开源实战应用（看源码学架构）","开源应用","WWDC精选","二、WWDC 近年核心专题（抓准技术迭代方向）","三、实用书籍（从入门到进阶，覆盖系统新特性）"],"sub_categories":["2. 状态管理（SwiftUI核心难点）","1. 零基础入门","1. 图片加载（最常用场景）","加载动画","4. 动画与交互","3. 高级深入","1. 基础原理","构建与布局","iOS 应用","2. 速查与工具","5. 布局增强","图表","macOS 应用","提示与消息","6. 加载与提示","macOS应用","iOS应用","3. 图表与数据可视化","网格布局","日历","4. 跨平台适配","2. 状态管理","3. 性能优化"],"readme":"# awesome-swiftui（精选SwiftUI学习资源与工具 | 适配iOS 18+/Swift 5.10）\n\n专注整理**适配最新系统、高频实用**的SwiftUI资源，剔除小众过时内容和早期版本教程，帮你精准聚焦核心技能，高效提升开发能力。\n\n\n## 一、官方教程（权威首选，适配最新版本）\n苹果官方出品的教程是入门和进阶的“标准答案”，完全同步Xcode、Swift和系统的最新特性，权威性拉满。\n\n- [SwiftUI 官方教程](https://developer.apple.com/tutorials/swiftui) - **入门级首选**：从基础视图（Text、Button）到交互逻辑，通过小案例快速上手，教你用SwiftUI搭建“优雅且动态”的UI。\n- [iOS App开发入门（含SwiftUI）](https://developer.apple.com/tutorials/app-dev-training/) - **完整项目实战**：以“开发一个功能完整的iOS App”为目标，串联SwiftUI布局、数据处理、上架基础等核心流程。\n- [跨平台开发：从iOS到macOS/watchOS](https://developer.apple.com/tutorials/swiftui/creating-a-macos-app) - **平台拓展必备**：讲解SwiftUI的“一次编码、多端适配”特性，教你快速将iOS应用拓展到macOS、watchOS平台。\n\n\n## 二、WWDC 近年核心专题（抓准技术迭代方向）\nWWDC是SwiftUI更新的“风向标”，优先看2023年后的内容，聚焦苹果官方主推的新特性（如Observation框架、性能优化）。\n\n- [SwiftUI 性能优化实战（WWDC 2023 | 10164）](https://developer.apple.com/videos/play/wwdc2023/10164/) - **核心内容**：解决SwiftUI常见的“视图重复刷新”“布局卡顿”问题，实操讲解`LazyVStack`优化、动画性能调优。\n- [Observation框架深度解析（WWDC 2023 | 10149）](https://developer.apple.com/videos/play/wwdc2023/10149/) - **核心内容**：替代旧的`ObservableObject`，教你用更轻量的`@Observable`管理数据，简化数据流逻辑。\n- [SwiftUI 新组件与交互增强（WWDC 2024 | 10037）](https://developer.apple.com/videos/play/wwdc2024/10037/) - **核心内容**：上手iOS 18新增的`SegmentedPicker`、动态字体适配、手势交互增强等实用功能。\n\n\n## 三、实用书籍（从入门到进阶，覆盖系统新特性）\n推荐经过社区验证、持续更新的书籍，避免买“过时教材”。\n\n- [《SwiftUI by Tutorials》（RayWenderlich | v5.0）](https://www.raywenderlich.com/books/swiftui-by-tutorials/v5.0) - **特点**：“手把手教敲代码”模式，从基础布局到`SwiftData`数据持久化、跨平台适配，适配iOS 18/Swift 5.10，适合零基础到中级开发者。\n- [《SwiftUI 权威指南》（王巍 @onevcat）](https://onevcat.com/2021/swiftui-handbook/) - **特点**：国内Swift领域权威作者出品，侧重“原理+实战”，深入解析SwiftUI布局系统、状态管理等难点，适合想“知其所以然”的开发者。\n- [《Advanced SwiftUI》（objc.io）](https://objc.io/books/advanced-swiftui/) - **特点**：进阶必备，讲解复杂交互（如自定义手势）、性能优化、架构设计（MVVM/MVI），适合有1年以上SwiftUI经验的开发者。\n\n\n## 四、开源库精选（解决80%开发场景，附核心优势）\n精选**维护活跃、社区星数高**的库，覆盖开发高频需求，部分标注“原生替代方案”（避免重复造轮子）。\n\n### 1. 图片加载（最常用场景）\n- [Kingfisher](https://github.com/onevcat/Kingfisher) - 核心优势：轻量、链式API易上手，支持缓存（内存+磁盘）、图片压缩、渐进式加载，适配SwiftUI的`AsyncImage`特性。\n- [SDWebImageSwiftUI](https://github.com/SDWebImage/SDWebImageSwiftUI) - 核心优势：基于老牌`SDWebImage`，支持GIF动图、图片过渡动画，适合需要复杂图片处理（如圆角、模糊）的场景。\n\n### 2. 状态管理（SwiftUI核心难点）\n- [TCA (The Composable Architecture)](https://github.com/pointfreeco/swift-composable-architecture) - 核心优势：苹果推荐的“可组合架构”，解决复杂应用的状态共享、副作用管理问题，适合中大型项目。\n- [ObservableMacros](https://github.com/pointfreeco/swift-observable-macros) - 核心优势：简化`Observation`框架的代码，用宏自动生成数据观察逻辑，减少模板代码。\n\n### 3. 图表与数据可视化\n- [SwiftUICharts](https://github.com/mecid/SwiftUICharts) - 核心优势：支持折线图、柱状图、饼图，自带无障碍适配（VoiceOver），API简洁，比苹果原生`Charts`更易定制样式。\n- 原生替代：iOS 16+自带`Charts`框架，适合简单图表场景（无需额外引入第三方）。\n\n### 4. 动画与交互\n- [SwiftUI-Animations](https://github.com/Shubham0812/SwiftUI-Animations) - 核心优势：包含100+实战动画案例（如渐入、缩放、路径动画），可直接复制代码到项目中修改。\n- [LottieSwiftUI](https://github.com/airbnb/lottie-ios) - 核心优势：支持加载AE制作的复杂动画（如启动页动画、交互反馈），是App动效的“行业标配”。\n\n### 5. 布局增强\n- [WaterfallGrid](https://github.com/paololeonardi/WaterfallGrid) - 核心优势：SwiftUI原生不支持瀑布流，这个库可快速实现“小红书式”不等高网格布局。\n- 原生替代：iOS 16+的`LazyVGrid`/`LazyHGrid`，适合规则网格布局（无需第三方）。\n\n### 6. 加载与提示\n- [SkeletonUI](https://github.com/CSolanaM/SkeletonUI) - 核心优势：优雅的“骨架屏”实现，支持列表、卡片等多种布局，解决数据加载时的“空白等待”问题。\n- [AlertToast](https://github.com/elai950/AlertToast) - 核心优势：仿苹果原生样式的提示框，支持成功/失败/加载等状态，可自定义图标和文字。\n\n\n## 五、系统学习资源（按“学习路径”分类）\n### 1. 零基础入门\n- [100天SwiftUI学习计划（Hacking with Swift）](https://www.hackingwithswift.com/100/swiftui) - 特点：免费、项目驱动，每天1个小项目（如计算器、待办清单），从0到1掌握基础。\n\n### 2. 速查与工具\n- [SwiftUI Cheat Sheet](https://github.com/SimpleBoilerplates/SwiftUI-Cheat-Sheet) - 特点：常用代码片段合集（布局、动画、手势等），可打印出来当“手边手册”。\n- [Xcode SwiftUI Preview 技巧](https://developer.apple.com/videos/play/wwdc2024/10165/) - 特点：教你用Preview快速调试UI、模拟不同设备/系统版本，提升开发效率。\n\n### 3. 高级深入\n- [The SwiftUI Lab](https://swiftui-lab.com/) - 特点：解析SwiftUI“黑盒”原理（如布局优先级、视图生命周期），解决复杂场景的“疑难杂症”。\n\n\n## 六、开源实战应用（看源码学架构）\n通过跑通真实项目，理解SwiftUI在实际开发中的“落地方式”。\n\n### iOS 应用\n- [MovieSwiftUI](https://github.com/Dimillian/MovieSwiftUI) - 技术栈：SwiftUI + Observation + Async/Await + TMDB API，学习点：网络请求封装、列表懒加载、复杂页面布局。\n- [Expenso-iOS](https://github.com/sameersyd/Expenso-iOS) - 技术栈：SwiftUI + MVVM + SwiftData，学习点：本地数据持久化、图表展示、主题切换。\n\n### macOS 应用\n- [ControlRoom](https://github.com/twostraws/ControlRoom) - 技术栈：SwiftUI + Xcode Simulator API，学习点：跨应用交互、桌面端UI设计、工具类App开发。\n\n\n## 七、深度文章推荐（聚焦高频问题）\n### 1. 基础原理\n- [SwiftUI 布局系统：从基础到进阶](https://kean.blog/post/swiftui-layout-system) - 看点：用“案例+图示”讲清`frame`、`padding`、`Spacer`的工作逻辑，避免布局“玄学问题”。\n\n### 2. 状态管理\n- [Observation框架 vs ObservableObject：该用哪个？](https://peterfriese.dev/posts/observation-framework-swiftui/) - 看点：对比新旧状态管理方案，明确不同场景下的选择标准（如小项目用`@Observable`，大项目用TCA）。\n\n### 3. 性能优化\n- [SwiftUI 性能优化：避开这10个坑](https://www.swiftbysundell.com/articles/swiftui-performance-tips/) - 看点：实操讲解“避免视图过度刷新”“优化列表加载”等关键技巧，附Xcode性能调试工具用法。\n\n### 4. 跨平台适配\n- [SwiftUI 跨平台开发：iOS与macOS的差异处理](https://swiftui-lab.com/macos-ios-differences/) - 看点：解决“同一套代码在不同平台的UI适配、功能兼容”问题（如macOS的菜单栏、iOS的导航栏）。\n\n\n---\n\n**学习建议**：先通过“官方教程+100天计划”打基础，再用“WWDC专题+深度文章”追新特性，最后靠“开源库+实战项目”练落地能力。SwiftUI更新快，记得定期关注苹果开发者官网的更新日志哦！\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/xiaomingx%2Fawesome-swiftui/projects"}