diff --git a/2019/OpenSourceforSwift-ApplicationArchitecture-MindNode.md b/2019/OpenSourceforSwift-ApplicationArchitecture-MindNode.md new file mode 100644 index 00000000..02e06751 --- /dev/null +++ b/2019/OpenSourceforSwift-ApplicationArchitecture-MindNode.md @@ -0,0 +1,684 @@ +# Swift 开源项目精选 - 应用架构角度 
➟ GitHub + + +# Learning & Advanced + + +## <*algorithms*>
raywenderlich/swift-algorithm-club 
➟ Swift Playgrounds + +Swift 算法俱乐部,最全、最活跃,最具学习价值的算法库。 + +## <*useful Swift snippets*>
elizabethsiegle/30-seconds-of-swift-code
➟ Swift Playgrounds + +精选的 30 秒或更短时间即能理解的实用 Swift 代码片段。(高效学习 swift 语言语法利器。思路来源于 知名 JavaScript 项目 https://github.com/30-seconds/30-seconds-of-code ) + +## <*video series & programming*>
pointfreeco/episode-code-samples
➟ Swift Playgrounds + +专注于学习 Swift 编程的视频聊天系列。 + +## <*livestreams, videos and sessions*>
insidegui/WWDC
➟ macOS + +WWDC 现场、视频及相关资源汇集应用(非官方) + +## <*ARCL framework*>
ProjectDent/ARKit-CoreLocation
➟ iOS + +AR 与 GPS 精确数据的结合,开始一次导航之旅。非常重要的实验性项目,未来开发前景可期。 + +## <*Swift for Tensorflow*>
tensorflow/swift
➟ macOS | Linux + +集成使用 TensorFlow 专用版 Swift + +## …… + + +# Developer Tools + + +## Package Manager + +### <*Package Manager*>
apple/swift-package-manager
➟ macOS + +苹果官方 Swift 包管理 + +### <*dependency manager*>
Carthage/Carthage
➟ macOS + +简单,去中心化库依赖管理框架。 入门指南:[https://www.raywenderlich.com/416-carthage-tutorial-getting-started](https://www.raywenderlich.com/416-carthage-tutorial-getting-started) + +### <*Git Hooks*>
orta/Komondor
➟ macOS + +在 Swift 项目中支持 Git hooks。
配置实例:https://github.com/orta/Komondor/blob/master/Documentation/with_swiftpm.md + +### <*third-party dependencies*>
mxcl/swift-sh
➟ macOS | Linux + +最简单、实用的依赖库导入脚本。这太方便了 + +### <*dependency manager*>
JamitLabs/Accio
➟ macOS + +结合 SwiftPM,为 Carthage 锦上添花的包管理命令行工具。 + +## <*App Store Connect API*>
AvdLee/appstoreconnect-swift-sdk
➟ macOS + +“借助 App Store Connect API 实现工作流程自动化”,这个库是对整套工作流程 Swift 版的易用化封装。 +REST API:https://[developer.apple.com/documentation/appstoreconnectapi](http://developer.apple.com/documentation/appstoreconnectapi) +APP STORE CONNECT 使用入门(官方中、英、日文版)[https://help.apple.com/app-store-connect/](https://help.apple.com/app-store-connect/) + +## <*design & prototype*>
IBAnimatable/IBAnimatable
➟ iOS | macOS + +IBAnimatable 是一个帮助我们在 Interface Builder 和 Swift Playground 里面设计 UI, 交互, 导航模式, 换场和动画的开源库。
[https://github.com/IBAnimatable/IBAnimatable/blob/master/Documentation/README.zh.md](https://github.com/IBAnimatable/IBAnimatable/blob/master/Documentation/README.zh.md) + +## <*Code Diagnostics*>
realm/SwiftLint
➟ macOS + +Realm 采用 Swift 编写的基于 GitHub's Swift Style Guide 规则的检查及转换工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。 + +## <*code formatter*>
inamiy/SwiftRewriter
➟ CLI environment + +基于 SwiftSyntax 针对代码进行自动格式化(其中包括基于代码规范进行简单的代码优化)。 + +## <*code generator*>
mac-cain13/R.swift
➟ macOS + +常用资源(images,fonts, ,colors 等)通过更易用的强类型方式在 Xcode 编辑器输入并自动转换。 + +## XCTest + +### <*testing framework*>
Quick/Quick & Quick/Nimble
➟ iOS | macOS + +单元测试框架库 + +### <*snapshot testing*>
pointfreeco/swift-snapshot-testing
➟ iOS | macOS + +通过快照记录方式进行自动化测试。非常直观方便的一种方式。 + +## <*network debugging tool*>
yagiz/Bagel
➟ iOS | macOS + +iOS 网络通讯本地调试神器(用 Bounjour 协议,不需要繁琐的连接证书之类的)。 + +## <*layouts debugging tool*>
isavynskyi/LayoutInspector
➟ iOS + +3D 视角 iOS 应用布局视图检查器。 + +## <*modularization*>
mxcl/Cake
➟ macOS + +基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 + +## <*Metrics API*>
apple/swift-metrics
➟ iOS | macOS | Linux + +苹果开源并逐步固定 Metrics API,以方便用户对应用的运行及资源状态进行有效跟踪。 + +## <*science-journal*>
google/science-journal-ios
➟ iOS + +Google 科学日志 iOS 版应用开源。 + +## <*CLI tool*>
rockbruno/SwiftInfo
➟ macOS + +命令行工具跟踪检查 iOS 应用版本代码级变化。 + + +# Programming Framework
➟ iOS | macOS | watchOS | Linux + + +## <*Reactive Programming*>
ReactiveX/RxSwift + +简单、高效,活泼的函数反应式编程框架。 +何为反应式编程?面向数据流和变化传播(时间和事件非代码顺序)的编程范式。 + +## <*Promises*>
mxcl/PromiseKit + +Promise 的 Swift 实现类库,简化异步编程代码实现。 +RxSwift vs PromiseKit https://blog.dianqk.org/2016/08/22/rxswift-vs-promisekit/ + +## <*state management*>
ReSwift/ReSwift + +该框架主要针对单页面应用状态及单向数据流管理。 + +## …… + + +# Server
➟ macOS | Linux + + +## <*web framework*>
vapor/vapor + +最活跃的 Web 服务器框架。 +推荐理由:纯 Swift 开发,引导开发者采用简洁、干净的 Swift 语法。 +主要缺点:牺牲部分性能换取未使用 C 语言基础库为代价 + +Vapor, Perfect, Kitura 比较:[https://www.jianshu.com/p/a9ca47e844d7](https://www.jianshu.com/p/a9ca47e844d7) + +## <*web framework*>
PerfectlySoft/Perfect + +功能更强大,性能更好的 Web 服务器框架。有完整的中文开发文档支持。 +[https://github.com/PerfectlySoft/Perfect/blob/master/README.zh_CN.md](https://github.com/PerfectlySoft/Perfect/blob/master/README.zh_CN.md) + +## <*web framework and HTTP server*>
IBM-Swift/Kitura + +与 IBM Bluemix 最佳云集成,功能强大的 Web 服务器框架。CGI 支持。 + +## <*Swift on ARM + Docker*>
helje5/dockSwiftOnARM
➟ Shell + +将 Swift 编译运行于 ARM 平台 Docker 上。 + +## …… + + +# Application
➟ iOS | macOS | watchOS + + +## Foundation + +### <*@dynamicMemberLookup feature*>
saoudrizwan/DynamicJSON
➟ iOS | macOS | watchOS + +采用 Swift 4.2 新特性 (@dynamicMemberLookup) 实现轻便访问 JSON 数据。 + +### <*UserDefaults wrapper*>
radex/SwiftyUserDefaults
➟ iOS | macOS + +轻量级数据存储类 NSUserDefaults 扩展类,它使类型数据访问和存储更为便捷、直观。 + +## System + +### Security + +- <*data store in Keychain*>
square/Valet
➟ iOS | macOS | watchOS + + 在钥匙串中安全、方便的去存储你的数据。 + +- <*Keychain Services wrapper*>
kishikawakatsumi/KeychainAccess
➟ iOS | macOS | watchOS + + 钥匙串存储管理封装 + +- <*AES wrapper*>
RNCryptor/RNCryptor
➟ iOS | macOS + + 针对数据的 AES 加密封装。提供多语言封装解决方案。 + +### Networking + +- <*HTTP networking*>
Alamofire/Alamofire
➟ iOS | watchOS | macOS + + 著名的 AFNetworking 络基础库 Swift 语言版。 + +- <*network abstraction layer*>
Moya/Moya
➟ iOS | watchOS | macOS + + 为你提供一套干净的网络抽象层,以以区隔底层网络库。 + +- <*Apple Reachability replacement*>
ashleymills/Reachability.swift
➟ iOS | macOS + + 检测网络连通性实用工具库。 + +- <*wrapper for Apple’s Reachability*>
rwbutler/Connectivity
➟ iOS + + 基于 Reachability 的封装类库,检查 当前 Wi-Fi 互联网连接性及即时状态。 + +- <*WebSocket client*>
daltoniam/Starscream
➟ iOS | macOS + + WebSocket 标准(RFC 6455)客户端库 Swift 实现。 + +### <*RxSwift + Bluetooth*>
Polidea/RxBluetoothKit
➟ iOS | macOS + +基于 RxSwift 框架的蓝牙库。 + +### <*LocalAuthentication*>
rushisangani/BiometricAuthentication
➟ iOS | macOS + +针对 Face ID 和 Touch ID 更简洁地封装使用。 + +## App Services + +### Cache + +- <*cache*>
hyperoslo/Cache
➟ iOS | macOS | watchOS + + 多类型数据混合缓存库。 + +### Social API + +- <*facebook SDK*>
facebook/facebook-sdk-swift
➟ iOS + +- <*Twitter SDK*>
twitter/twitter-kit-ios
 ➟ iOS + +### editor + +- <*integration with your app*>
coteditor/CotEditor
➟ macOS + + 轻量,但功能一点也不轻量的 App Store 上架的开源文本编辑器(几乎支持所有主流格式语法高亮显示,且可以扩展及自定义) + +- <*Editor Kit*>
GeekTree0101/VEditorKit
➟ iOS + + 功能强大、完成度非常高的 iOS 编辑器组件。 + +### WebKit + +- <*WKWebView*>
LinusU/Marionette
➟ iOS | macOS + + 通过一套更高级的 API 控制 WKWebView。对标 Google Chrome 的 Puppeteer 库。 + +### Markdown + +- <*cmark*>
iwasrobbed/Down
➟ iOS | macOS + + 集成调用 cmark 的高性能 Markdown 渲染实现库及演示。支持多种输出式(Web View, HTML, XML, LaTeX 等)也许是性能外加可用性最高的一个版本了。 + +- <*WKWebView*>
keitaoouchi/MarkdownView
➟ iOS + + Markdown 文档预览视图组件。 + +- <*WKWebView*>
tophat/RichTextView
➟ iOS + + 兼具主流格式解析(LaTeX, HTML, Markdown)及简单视频嵌入(YouTube/Vimeo)功能富文本浏览视图。 + +- <*customizable Markdown Parser*>
moliveira/MarkdownKit
➟ iOS | macOS + + 一款简单地可定制化 Markdown 解析预览类库。 + +### ePub + +- <*reader & framework for ePub*>
FolioReader/FolioReaderKit
➟ iOS + + ePub 阅读器及解析框架类库。这个很震撼,开发者还同步提供 Android 版。 + +### Database & Client + +- <*mobile database*>
realm/realm-cocoa
➟ iOS | macOS | watchOS + + 可以匹敌甚至替代 Core Data 和 SQLite 的移动数据库。 + +- <*sync Realm with CloudKit*>
caiyue1993/IceCream
➟ iOS | macOS | watchOS + + 用 CloudKit 同步 Realm 数据库工具库。 + +### FileProvider & CloudKit + +- <*files*>
nvzqz/FileKit
➟ iOS | macOS | watchOS + + 简单、接口友好的文件管理类库。 + +- <*local file, iCloud & remote*> 
amosavian/FileProvider
➟ iOS | macOS + + 提供了一套完整、实用,接口统一的本地及远程文件管理封装器实现 Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive)。 + +### Core ML + +- <*utilities*> 
hollance/CoreMLHelpers
➟ iOS + + 一些输入/输出类型转换和扩展,以便于更容易地去使用 CoreML 。 + +- <*running trained-model Inception-v3*> 
hollance/Inception-CoreML
➟ iOS + + Inception-v3 运行在 CoreML 框架内 + +- <*using Watson Visual Recognition*>
watson-developer-cloud/visual-recognition-coreml
➟ iOS + + 来自 IBM Watson 的视觉识别及机器学习示例。 使用 Watson Swift SDK 管理和执行定制的训练模型。 + +- <*trained using CreateML*>
lovoo/NSFWDetector
➟ iOS + + 用 CoreML 扫描、过滤不雅图片。 + +### Web Services + +- <*iOS SDK for AWS AppSync*>
awslabs/aws-mobile-appsync-sdk-ios
➟ iOS + + 来自 Amazon Web Services 实验室的 AWS AppSync iOS SDK。 + +- <*AWS SDK*>
swift-aws/aws-sdk-swift
➟ macOS | Linux + + 支持 macOS 和 Ubuntu 的 AWS SDK。 + +## Graphics and Games + +### ARKit + +- <*usable practices*>
simformsolutions/ARKit2.0-Prototype
➟ iOS + + AR 2.0 实现效果原型演示 + +- <*ARKit + GPS data*>
ProjectDent/ARKit-CoreLocation
➟ iOS + + AR 与 GPS 精确数据的结合,开始一次导航之旅。其中包括了 ARKit + CoreLocation 框架库 ARCL,它是非常重要的实验性项目,未来开发前景可期。 + +- <*referenced cases*>
olucurious/Awesome-ARKit
➟ iOS + + AR 开源项目汇总列表。 + +- <*AR paths*>
maxxfrazer/ARKit-SCNPath
➟ iOS + + 方便地绘制一条 AR 场景导航路径。 + +### Core Graphics + +- <*image processing*>
gavinbunney/Toucan
➟ iOS | macOS + + 小而美的图片变换及处理类。 + +- <*dominant & prominent colors*> 
jathu/UIImageColors
➟ iOS + + 图片色系决定界面背景色及字体显示颜色。获取主色、次色、背景色、详细色 + +### Core Image + +- <*OpenCV and portrait mode*>
koooootake/Portrait-without-Depth-ios
➟ iOS + + 实现单摄人像模式。 + +### Image I/O + +- <*parse & play GIF*>
kaishin/gifu
➟ iOS + + 高性能 GIF 显示类库 + +- <*parse & play APNG*> 
onevcat/APNGKit
➟ iOS + + 解析和显示 APNG 的框架 + +- <*play GIF & APNG*>
wangjwchn/AImage
➟ iOS + + GIF/APNG 播放引擎。 + +- <*SVG parser*>
mchoe/SwiftSVG
 ➟ iOS | macOS + + 支持多种接口绘制 SVG 类库。 + +- <*size of PNG, GIF, JPEG, BMP*>
malcommac/ImageSizeFetcher
➟ iOS | macOS | watchOS + + 通过 URL 获取图像类型或尺寸。 + +### Metal + +- <*Instagram filters implemented in Metal*>
alexiscn/MetalFilters
➟ iOS + + 基于 Metal 框架实现的 Instagram 风格图片滤镜库。 + +- *<3D graphics>*
endavid/VidEngine
➟ iOS + + 用 Metal (GPU) 技术封装实现的 3D渲染引擎。 + +### SceneKit + +- <*3D Picture Gallery Slideshow*>
folio-sec/Slideshow
➟ macOS + + 采用 SceneKit 写的 3D 动态图片墙。酷!不过系统资源消耗也很历害。 + +## UIKit & AppKit + +### View and Controls + +- <*Form*>
xmartlabs/Eureka
➟ iOS + + “由XMARTLABS精心编写,是XLForm的Swift版本。”https://github.com/xmartlabs/Eureka/blob/master/Documentation/README_CN.md + +- <*folding paper card*>
Ramotion/folding-cell
➟ iOS + + 自然流畅、清新的单元格可折叠视图及演示库。 + +- <*Image*>
onevcat/Kingfisher
➟ iOS | macOS + + 轻量级下载、缓存网络图像视图库。 + +- <*Charts*>
danielgindi/Charts
➟ iOS | macOS + + Android 图表开源库 MPAndroidChart 的 Swift 版。相当于在 Apple 的跨平台版本。 + +- <*modal segue*>
SwiftKickMobile/SwiftMessages
➟ iOS + + 高可定制信息弹窗组件 + +- <*modal*>
slackhq/PanModal
➟ iOS + + 这款可定制性底部上滑式模态窗口组件开发和用户体验都不错啊。 + +- <*Calendar*>
patchthecode/JTAppleCalendar
➟ iOS + + 功能强大、高可定制日历组件。 + +- <*UILabel morphing*>
lexrus/LTMorphingLabel
➟ iOS + + 特赞的文字飘入飘出效果。 + +- <*skeleton loading*>
Juanpe/SkeletonView
➟ iOS + + 等待加载信息前,预先优雅的显示内容骨架。 + +- <*loading*>
farshadjahanmanesh/loady
➟ iOS + + 常用可定制载入进程按钮动画。 + +- <*UITextFields*>
raulriera/TextFieldEffects
➟ iOS + + 定制的不同风格 UITextFields 输入框。 + +- <*UINavigationController*>
andreamazz/AMScrollingNavbar
➟ iOS + + 可滚动的(显示或隐藏 UINavigationBar + +- <*Mac style Menu*>
TwoLivesLeft/Menu
➟ iOS + + 著名 iPad 编程应用 Codea(Lua 语言) 开源传统菜单如何存在于小屏幕设计思路及解决方案。 + +- <*floating panel* >
IdeasOnCanvas/Aiolos
➟ iOS + + MindNode  iOS 项目中使用的浮动面板。 + +- <*A simple routing library*>
hubrioAU/XRouter
➟ iOS + + 一款使用简单,结构清晰同时支持 URL 的应用路由库。 + +- *
Cuberto/rubber-range-picker*
➟ iOS + + 很带人情味的数字区间选择。 + +- <*progress view*>
mac-gallagher/MultiProgressView
➟ iOS + + 多区间进程条展示效果组件及示例。 + +### View Layout + +- <*Autolayout*> 
SnapKit/SnapKit
➟ iOS | macOS + + 自动布局 DSL 框架库。 + http://snapkit.io/docs/ + +- <*grids and lists layout*>
airbnb/MagazineLayout
➟ iOS + + 出自 Airbnb 栅格级 CollectionView 布局库。 + +- <*component-based UI*>
ra1028/Carbon
➟ iOS + + 在 UITableView 和 UICollectionView 中构建基于组件声明式界面库。提供 API 文档及丰富示例。 + +### window + +- <*window manager*>
ianyh/Amethyst
➟ macOS + + 自动排列及快捷操作切换、管理窗口。 + +### Animations + +- <*animations framework*>
timdonnelly/Advance
➟ iOS | macOS + + 一款高阶仿真动画框架库。 + +- <*animations*>
MengTo/Spring
➟ iOS + + 精简版动画库(并附动画功能展示和调试功能)。 + +- <*loading & animations*>
ninjaprox/NVActivityIndicatorView
➟ iOS + + 酷炫的装载动画库及演示。满足你对装载动画的个性化需求。 + +- <*transition*>
HeroTransitions/Hero
➟ iOS + + 类似于 Keynote 的 Magic Move 的 transition 库。极为易用、支持自动布局。 + +- <*transition*>
marcosgriselli/ViewAnimator
➟ iOS + + 简单的代码实现复杂 UI 布局及动画切换。 + +- <*liquid swipe animation* >
Cuberto/liquid-swipe
➟ iOS + + 液滑动画效果升级版。 + +- <*vector animations*>
airbnb/lottie-ios
➟ iOS | macOS + + Airbnb 矢量级动画渲染库全面迁移至 Swift 版本。其势不可挡。 + +- <*animations*>
sagaya/Wobbly
➟ iOS + + 对界面组件元素实现各种摇晃抖闪的动画效果。 + +### <*UIKit extensions*>
haoking/SwiftyUI
➟ iOS + +轻量、高性能的 UI 渲染及扩展类库。 + +### <*Declarative UI construction*>
square/Blueprint
➟ iOS + +Square 公司开源的自用声明式 UI 开发框架库。 + +### <*hand-drawn, comic shape*>
onmyway133/RoughSwift
➟ iOS + +编程方式创建手绘和漫画风格画面。酷炫! + + +# IoT
➟ Ubuntu | Raspain + + +## <*Swift on ARM devices*>
uraimo/buildSwiftOnARM
➟ Shell + +持续提供使 Swift 运行于 ARM 上的编译版本(已经更新到 Swift 4.1.3 ),它几乎支持所有的(运行于 Ubuntu 16.04 和 Raspbain)树莓派版本。 + +## <*hardward projects*>
uraimo/SwiftyGPIO
➟ Linux + +通过 Swift 语言去控制基于 Linux/ARM 主板(比如:C.H.I.P. 和 树莓派) 的 GPIO(General Purpose Input Output ),去完成简单的工控功能(比如 LED 灯的显示)。 + +## …… + + +# Foundation
➟ iOS | macOS | watchOS | Linux + + +## Utility + +### <*handy features to standard library*>
*Flinesoft/HandySwift*
➟ iOS | macOS | Linux + +由于某些原因 Swift 标准库仍未收入且很好用的功能特性扩展。 + +### <*extensions*>
SwifterSwift/SwifterSwift + +一套超过 500 个本地库扩展的生产力工具库。 + +### **
JohnSundell/Sweep
➟ iOS | macOS | Linux + +比正则表达式简单很多的子字符串扫描和匹配。 + +### <*JSON parser*>
SwiftyJSON/SwiftyJSON + +GitHub 上最为开发者认可的 JSON 解析库。 + +### <*JSON parser & object mapping*>
tristanhimmelman/ObjectMapper + +简介:对象与JSON互转实用类库。 +推荐理由:面向对象模型,易于开发集成。有更完善的与 Alamofire 的集成方案。 + +### <*Binary Codable*>
jverkoey/BinaryCodable
➟ iOS | macOS | Linux + +Codable 风格实现 Binary 数据的 Decode/Encode。 + +### <*Codable extension*>
JohnSundell/Codextended
➟ macOS | Linux + +为自定义 Codable 而生的扩展 API。 + +### <*Date*>
malcommac/SwiftDate + +几乎涵盖了已知开源日期类库所有优秀特性 + +### <*file paths*>
kylef/PathKit + +极易用的文件路径操作类库 + +### <*pure swift PNG decoder and encoder* >
kelvin13/png
➟ macOS | Linux + +纯 Swift 代码解析 PNG 格式,返回图像原始像素数据和尺寸。 + +### <*chainable file-pathing*>
mxcl/Path.swift + +功能完整的文件系统针对目录级路径的 CRUD(增删改查)。 + +### <*logger*>
apple/swift-log
➟ macOS | Linux + +这个 Apple 官方也出,与民争利了。 + +### <*Regular Expression*>
Flight-School/RegularExpressionDecoder
➟ iOS | macOS + +针对结构化数据的正则表达式解析库。 + +### <*converts between AttributedStrings and HTML*>
IdeasOnCanvas/Ashton
➟ iOS | macOS + +MindNode 团队开发使用的 NSAttributedStrings 和 HTML 高性能互转类库。 + +## Security + +### <*cryptographic algorithms*>
krzyzanowskim/CryptoSwift + +Crypto 算法及相关功能类库集合 + +## Database & Client + +### <*SQLite*>
stephencelis/SQLite.swift + +简单、轻量,使用上最 SQL 的 SQLite 封装库。 + +## Networking Framework + +### <*event-driven network framework*>
apple/swift-nio + +事件驱动网络应用框架。 + +### <*HTTP/2 support for SwiftNIO*>
apple/swift-nio-http2 + +苹果发布 SwiftNIO 针对 HTTP/2 的开源支持库。 + +### <*SwiftNIO-based server-side*>
amzn/smoke-framework + +事件驱动网络应用框架。 + +## GitHub + +### <*GitHub client API*>
nerdishbynature/octokit.swift + +同时支持 GitHub 和 GitHub 企业版 Swift API 客户端类库。 + +## Cognitive Computing + +### <*tensorflow apis*>
tensorflow/swift-apis
➟ macOS + +### <*IBM Watson*>
watson-developer-cloud/swift-sdk
➟ iOS | Linux + +让开发者在自己的应用内快速应用 IBM Watson Cognitive Computing 服务。 + +## <*JavasScript engine*>
googleprojectzero/fuzzilli
➟ macOS | Linux + +Javascript 解释器引擎,技术融合的一大进步。 + +## …… + + +# IBM Watson Services
(AI) + + +# Database Server
(cross platform) + + +## ➟ Shell
 <*Realm Platform>*
realm/realm-object-server + +Realm 平台目标实现可交互的移动数据库 + +## …… + + +# iCloud & Remote
(iCloud, On-drive, Dropbox, Webdav, ftp/ftps, Samba...) + + +# TensorFlow
(pre-trained model) + + +## <*TensorFlow to CoreML Converter*>
tf-coreml/tf-coreml
➟ Python + + +# Caffe
(Neural networks model) + diff --git a/2019/OpenSourceforSwift-ApplicationArchitecture.md b/2019/OpenSourceforSwift-ApplicationArchitecture.md new file mode 100644 index 00000000..c19e3d6c --- /dev/null +++ b/2019/OpenSourceforSwift-ApplicationArchitecture.md @@ -0,0 +1,19 @@ +# Swift 开源项目精选 - 应用架构角度 + +基于[Swift 开源项目精选导图](OpenSourceforSwift-Classification.md),以应用架构角度出发继续甄选并“精分”。筛选、介定方法更偏重于构建应用时,项目在分类中起到的作用权重,可持续性权重,并部分算上开发者影响力。尝试持续地完善一份不那么杂乱无章(也许还比较好用)的 Swift 开源子集。内容将依然以导图和 myMindNode 形式呈现(持续更新中……) + +![](OpenSourceforSwift-ApplicationArchitecture.png?raw=true) + +[myMindNode浏览及导图原文档下载……](https://my.mindnode.com/epd4C5grMxtWnojnVGXy9LCay1n8zosXRpzawppy) + + +## 附:MindNode 格式导图导出的文本内容 +* [浏览 Markdown 版本](OpenSourceforSwift-ApplicationArchitecture-MindNode.md) +* [浏览 PDF 版本](OpenSourceforSwift-ApplicationArchitecture.pdf) + +--- + +整理过程中八卦过的两位传奇人物: +> 1. GitHub 上曾经最具影响力的 iOS 独立博主及开发者 Mattt 就曾于 2015年加入苹果后,几乎消声匿迹(无论在其个人网站、博客、 GitHub 社区还是 Twitter 都少有活动,原因又鲜为人知)。很多不太了解开发者多诧异他怎么了?大部分人都是在 Mattt 本人在 Twitter 上于2018年3月再次发声后,才知道他过去三年原来一直为苹果工作(做为一位资深技术作者为 The Swift Programming Language,Swift Package Manager 和 swift.org 等写开发文档)。并且,回归社区后的活跃度显示爆发式增加,并开辟了一个新的领域( Swift 基础教育系列课程项目 Flight School)。当然,奠定其“江湖”地位的几款知名开源项目的后续,也基本不用担心未来发展。 +2. 此外,Swift “教父” Chris Lattner 于 2016 年下半年后在开源社区贡献大幅度减少,自从 2017年初闪电离职苹果公司,短暂加入特斯拉担任自动驾驶(Tesla Autopilot)项目软件副总裁,由于工作性质变更,Swift 及 开源社区贡献更加稀少。可喜的是不到六个月后即又离职特斯拉,并迅速加入了谷歌大脑(Google Brain)项目组,负责推动 TensorFlow 平台开发者体验及接入Swift 语言基础构架工作等工作后,逐渐恢复了开源社区活跃度及贡献。目前看来,他不会轻易地撒手不管 Swift 语言的发展、建设。这一点对于热衷于 iOS 开发和开源项目的同学们都是很大的鼓舞。 +坦率地讲,以上内容只是在整理过程中,闲着无聊顺便“八卦”解闷,也可以认为纯粹凑字数。😂 diff --git a/2019/OpenSourceforSwift-ApplicationArchitecture.pdf b/2019/OpenSourceforSwift-ApplicationArchitecture.pdf new file mode 100644 index 00000000..1cd85a73 Binary files /dev/null and b/2019/OpenSourceforSwift-ApplicationArchitecture.pdf differ diff --git a/2019/OpenSourceforSwift-ApplicationArchitecture.png b/2019/OpenSourceforSwift-ApplicationArchitecture.png new file mode 100644 index 00000000..b258064b Binary files /dev/null and b/2019/OpenSourceforSwift-ApplicationArchitecture.png differ diff --git a/2019/OpenSourceforSwift-Classification-MindNode.md b/2019/OpenSourceforSwift-Classification-MindNode.md new file mode 100644 index 00000000..d0c8e06a --- /dev/null +++ b/2019/OpenSourceforSwift-Classification-MindNode.md @@ -0,0 +1,1580 @@ +# Swift 开源项目精选 
➟ GitHub + + +# Open Sources for Swift + + +## App Frameworks + +### Foundation + +- Codable + + - ***SwiftyJSON/SwiftyJSON*** + + GitHub 上最为开发者认可的 JSON 解析库。 + + - saoudrizwan/DynamicJSON + + 采用 Swift 4.2 新特性 (@dynamicMemberLookup) 实现轻便访问 JSON 数据。 + + - ***tristanhimmelman/ObjectMapper*** + + 简介:对象与JSON互转实用类库。 + 推荐理由:面向对象模型,易于开发集成。有更完善的与 Alamofire 的集成方案。 + + - *tristanhimmelman/AlamofireObjectMapper* + + Alamofire 网络请求 JSON 数据返回采用 ObjectMapper 自动转换、映射至对象。 + + - *alibaba/HandyJSON* + + 出自阿里开发团队轻便的 JSON 对象序列化和反序列化工具库。 + + - *marmelroy/PhoneNumberKit* + + 解析、格式化及验证国际电话号码工具库(相当于 Google 的 libphonenumber 库的 Swift 版本)。 + + - jverkoey/BinaryCodable + + Codable 风格实现 Binary 数据的 Decode/Encode。 + + - JohnSundell/Codextended + + 为自定义 Codable 而生的扩展 API。 + +- *date & time* + + - ***malcommac/SwiftDate*** + + 几乎涵盖了已知开源日期类库所有优秀特性 + + - *dreymonde/Time* + + 使用简洁、类型保护的时间计算库。 + + - *naoty/Timepiece* + + 日期加减运算、初始设置、变更以及格式解析。 + + - *akosma/SwiftMoment* + + Swift 版 Moment.js + +- *cache* + + - *hyperoslo/Cache* + + 多类型数据混合缓存库。 + + - *nmdias/DefaultsKit* + + 简单、有效的默认值管理库。 + + - *radex/SwiftyUserDefaults* + + 轻量级数据存储类 NSUserDefaults 扩展类,它使类型数据访问和存储更为便捷、直观。 + + - *GitHawkApp/FlatCache* + + Khanlou 的扁平式缓存思路实现,并应用于 GitHawk 应用。 + +- *FDD: MontanaFlossCo/Flint* + + 为高效使用 iOS 常用特性而生的工具框架库。 + +- *data flow: ReSwift/ReSwift* + + 该框架主要针对单页面应用状态及单向数据流管理。 + +- *promises* + + - ***mxcl/PromiseKit*** + + Promise 的 Swift 实现类库,简化异步编程代码实现。
RxSwift vs PromiseKit [https://blog.dianqk.org/2016/08/22/rxswift-vs-promisekit/](https://blog.dianqk.org/2016/08/22/rxswift-vs-promisekit/) + + - *Thomvis*/BrightFutures + + 漫长或复杂计算由独立线程异步来完成。 + +- *task* + + - *jianstm/Schedule* + + “一个轻量级的定时任务框架,它可以让你用一种难以置信的友好语法执行定时任务”。 + +- *functional programming* + + - *ankurp/Dollar* + + Swift 版 Lo-Dash (或 underscore )函数式工具库 + + - *typelift/Swiftz* + + 一套函数式编程库。 + + - *Flight-School/RegularExpressionDecoder* + + 针对结构化数据的正则表达式解析库。 + +- *reactive programming* + + - ***ReactiveX/RxSwift*** + + 简单、高效,活泼的函数反应式编程框架。 + 何为反应式编程?面向数据流和变化传播(时间和事件非代码顺序)的编程范式。 + + - *ReactiveCocoa/ReactiveCocoa* + + Cocoa 风格 Swift 函数反应式编程 API + +- JavasScript engine + + - googleprojectzero/fuzzilli + + Javascript 解释器引擎,技术融合的一大进步。 + +- *extensions & syntactic sugar* + + - *SwifterSwift/SwifterSwift* + + 一套超过 500 个本地库扩展的生产力工具库。 + + - *hyperoslo/Sugar* + + Cocoa 实现语法糖 + + - *duemunk/Async* + + 简洁的后台执行代码封装库。 + + - *dennisweissmann/DeviceKit* + + 相对 UIDevice 更易用、功能也更丰富的 DeviceKit 工具库。 + + - *nvzqz/RandomKit* + + 超乎你想象的,针对基础类型及对象的随机数据生成扩展库。 + + - *yannickl/DynamicColor* + + 得到不同深浅、饱和度、灰度、色相,以及反转后的新颜色。 + + - *Flinesoft/HandySwift* + + 由于某些原因 Swift 标准库仍未收入且很好用的功能特性扩展。 + + - *JohnSundell/Sweep* + + 比正则表达式简单很多的子字符串扫描和匹配。 + +- *HTML* + + - *parser: honghaoz/Ji* + + Swift 版 HTML/XML 解析器 + + - *transformation: pointfreeco/swift-html* + + 类型保护、可扩展、可转换的 HTML 文档的 Swift DSL 支持工具库。 + + - *IdeasOnCanvas/Ashton* + + MindNode 团队开发使用的 NSAttributedStrings 和 HTML 高性能互转类库。 + +- *Excel* + + - *MaxDesiatov/CoreXLSX* + + 简单易用解析 Excel (XLSX)格式文件库。XMLCoder 和 ZIPFoundation 基础库分别做为 ZIP 和 XML 格式解压解析支持。 + +### UIKit + +- View Layout + + - ***SnapKit/SnapKit*** + + 自动布局 DSL 框架库。 + http://snapkit.io/docs/ + + - *roberthein/TinyConstraints* + + 自动布局微约束、易理解、高可读语法糖。 + + - + + - *robb/Cartography* + + 基于代码级的自动布局封装框架。 + + - *mamaral/Neon* + + 功能强大的 UI 布局神器。 + + - *mirego/PinLayout* + + 纯代码 UI 布局库。支持 iOS/macOS/tvOS + + - *airbnb/AloeStackView* + + 一款功能及使用实例完善成熟(在 Airbnb 广泛使用)的视图及布局基础类(可以与自动布局协同工作)。 + + - *SwiftKickMobile/SwiftAutoLayout* + + 简单快速地代码式自动布局约束类库。 + + - *airbnb/MagazineLayout* + + 出自 Airbnb 栅格级 CollectionView 布局库。 + +- UITabBar + + - *Ramotion/animated-tab-bar* + + 灵动的动画标签栏类库,storyboard中使用。 + +- UISegmentedControl + + - *Yalantis/Segmentio* + + 功能完善的带动画的可定制分段式控制组件。 + +- UIPageControl + + - *xmartlabs/XLPagerTabStrip* + + Android 上最常用的 PagerTabStrip 在 iOS 中的实现。 + + - *antoniocasero/Panels* + + 这款可以说是相当出色的滑动呼出面板框架了。 + + - hubrioAU/XRouter + + 一款使用简单,结构清晰同时支持 URL 的应用路由库。 + +- UILabel + + - *optonaut/ActiveLabel.swift* + + 扩展实现 UILabel 触控事件针对 “#, @, 链接” 响应。 + +- UITableView/UICollectionView + + - *SwipeCellKit/SwipeCellKit* + + UITableViewCell 内各种滑动变化及动画效果。 + + - ***Ramotion/folding-cell*** + + 自然流畅、清新的单元格可折叠视图及演示库。 + + - *Instagram/IGListKit* + + 一款数据驱动,以便快速、灵活构建列表的 UICollectionView 框架。 + + - *Yalantis/Koloda* + + 基于卡片的 Tinder-style 动画效果示例 + [https://yalantis.com/blog/how-we-built-tinder-like-koloda-in-swift/](https://yalantis.com/blog/how-we-built-tinder-like-koloda-in-swift/) + + - *Ramotion/expanding-collection* + + 也许是展开、查看列表项最自然天成的 Peek/Pop 用法及动画效果 + + - *SoySauceLab/CollectionKit* + + 构建可重用的数据驱动的集合组件框架(内置丰富的布局和动效)。 + + - *KelvinJin/AnimatedCollectionViewLayout* + + 低耦合实现在 CollectionView 内增加漂亮地转场过渡效果。 + + - *ishkawa/DataSourceKit* + + 标识和结构很清楚的样子。 + + - *Ramotion/cardslider* + + 一款流畅、爽心悦目的卡片式滑动切换内容展示组件。 + + - *yahoojapan/UICollectionViewSplitLayout* + + 使集合视图内项目显示及布局管理更灵活、合理。 + + - ra1028/Carbon + + 在 UITableView 和 UICollectionView 中构建基于组件声明式界面库。提供 API 文档及丰富示例。 + +- UIRefreshControl + + - *Juanpe/SkeletonView* + + 等待加载信息前,预先优雅的显示内容框架。 + + - *gontovnik/DGElasticPullToRefresh* + + 皮筋式弹性下拉即刷新组件及演 + +- UIPickerView/UIImageView + + - *hyperoslo/ImagePicker* + + - *mikaoj/BSImagePicker* + + - *zhangao0086/DKImagePickerController* + +- UIDatePicker + + - *Mozharovsky/CVCalendar* + + 日历组件及示例。该项目开发者充分使用了面向对象设计思想,让开发者可以更容易扩展及定制功能。同时,该开发者还提供了详细的组件使用方法(Storyboard和代码方式指南)。 + + - *patchthecode/JTAppleCalendar* + + 功能强大、高可定制日历组件。 + +- Alerts + + - *vikmeup/SCLAlertView-Swift* + + - *Orderella/PopupDialog* + + - *xmartlabs/XLActionController* + + - *sberrevoets/SDCAlertView* + + - *GitHawkApp/Squawk* + + 适用于全面屏设备的 iOS 交互式高可定制底部警示弹出框。 + + - slackhq/PanModal + + 这款可定制性底部上滑式模态窗口组件开发和用户体验都不错啊。 + +- Popovers + + - *corin8823/Popover* + + - *andreamazz/AMPopTip* + + - *teodorpatras/EasyTipView* + + - *contextual: alexaubry/BulletinBoard* + + - *antoniocasero/Arrows* + + 很贴心、舒服的滑动窗口操作指示箭头小组件。 + +- UINavigationController + + - *andreamazz/AMScrollingNavbar* + + 可滚动的(显示或隐藏 UINavigationBar + + - *Ramotion/navigation-toolbar* + + 专业水准导航工具栏。 + +- UIGesture + + - *eBay/HeadGazeLib* + + 通过头部移动和凝视控制用户界面。 + +- UIImpactFeedbackGenerator + + - *iSapozhnik/Haptico* + + 让 iOS 的触觉反馈(haptic feedback)硬件特性更容易接口调用(接口产生低、中、高档触觉反馈)。 + +- *Panels* + + - *louisdh/panelkit* + + - *SCENEE/FloatingPanel* + + 几乎无可挑剔的浮动面板用户界面组件。 + + - *IvanVorobei/SPStorkController* + + 精细化效仿官方音乐,播客,邮件等应用弹出模态窗口效果控制库。 + + - IdeasOnCanvas/Aiolos + + MindNode  iOS 项目中使用的浮动面板。 + +- *Notification View* + + - Daltron/NotificationBanner + + - SwiftKickMobile/SwiftMessages + + 高可定制信息弹窗组件 + +- *transition* + + - ***HeroTransitions/Hero*** + + 类似于 Keynote 的 Magic Move 的 transition 库。极为易用、支持自动布局。 + + - *Touchwonders/Transition* + + - *SebastianBoldt/Jelly* + + - *PiXeL16/RevealingSplashView* + + - *naru-jpn/View2ViewTransition* + + - *Ramotion/preview-transition* + + - *marmelroy/Interpolate* + + - *zhxnlai/ZLSwipeableViewSwift* + + - *onurersel/anim* + + 这款动画库让整个屏幕都动起来了。 + + - *AlexandrGraschenkov/LiquidTransition* + + 对这款动画转场库中酷酷的碎图转场效果示例比较感兴趣。 + + - Cuberto/liquid-swipe + + 液滑动画效果升级版。 + +- *form* + + - ***xmartlabs/Eureka*** + + “由XMARTLABS精心编写,是XLForm的Swift版本。”
[https://github.com/xmartlabs/Eureka/blob/master/Documentation/README_CN.md](https://github.com/xmartlabs/Eureka/blob/master/Documentation/README_CN.md) + + - ***raulriera/TextFieldEffects*** + + 定制的不同风格 UITextFields 输入框。 + + - *Skyscanner/SkyFloatingLabelTextField* + + - *entotsu/TKSubmitTransition* + + - *SwiftValidatorCommunity/SwiftValidator* + + - *cgoldsby/LoginCritter* + + - Cuberto/rubber-range-picker + + 很带人情味的数字区间选择。 + +- *graph* + + - ***danielgindi/Charts*** + + Android 图表开源库 MPAndroidChart 的 Swift 版。相当于在 Apple 的跨平台版本。 + + - *philackm/ScrollableGraphView* + + - *i-schuetz/SwiftCharts* + + - *mac-gallagher/MultiProgressView* + + 多区间进程条展示效果组件及示例。 + +- *menu* + + - *jonkykong/SideMenu* + + - *dekatotoro/SlideMenuControllerSwift* + + - *WenchaoD/FSPagerView* + + - *Ramotion/circle-menu* + + - *yoavlt/LiquidFloatingActionButton* + + - *Yalantis/GuillotineMenu* + + - TwoLivesLeft/Menu + + 著名 iPad 编程应用 Codea(Lua 语言) 开源传统菜单如何存在于小屏幕设计思路及解决方案。 + +- *keyboard* + + - *freshOS/KeyboardLayoutGuide* + + 自由灵活的调用键盘输入。 + +- *extensions: haoking/SwiftyUI* + + 轻量、高性能的 UI 渲染及扩展类库。 + +- square/Blueprint + + Square 公司开源的自用声明式 UI 开发框架库。 + +- onmyway133/RoughSwift + + 编程方式创建手绘和漫画风格画面。酷炫! + +### SwiftNIO + +- apple/swift-nio + + 事件驱动网络应用框架。 + +- apple/swift-nio-http2 + + 苹果发布 SwiftNIO 针对 HTTP/2 的开源支持库。 + +- ***vapor/vapor*** + + 最活跃的 Web 服务器框架。 + 推荐理由:纯 Swift 开发,引导开发者采用简洁、干净的 Swift 语法。 + 主要缺点:牺牲部分性能换取未使用 C 语言基础库为代价 + + Vapor, Perfect, Kitura 比较:[https://www.jianshu.com/p/a9ca47e844d7](https://www.jianshu.com/p/a9ca47e844d7) + +- *PerfectlySoft/Perfect* + + 功能更强大,性能更好的 Web 服务器框架。有完整的中文开发文档支持。 + +- *IBM-Swift/Kitura* + + 与 IBM Bluemix 最佳云集成,功能强大的 Web 服务器框架。CGI 支持。 + +- *httpswift/swifter* + +- *swiftengine/SwiftEngine* + + 基于 SwiftNIO 的 HTTP 服务器项目。特性都很亮眼,风险是项目可持续性。 + +### WatchKit + +- ezefranca/WatchNote + +- ezefranca/WatchShaker + +### AppKit + +- *videos*→ *GIF: sindresorhus/gifski-app* + +- *clipboard: Clipy/Clipy* + +- *overtake / TelegramSwift* + +### … + +## App Services + +### Core Image + +- *OCR: garnele007/SwiftOCR* + +- *QR & Barcode* + + - *appcoda/QRCodeReader* + + - *EyreFree/EFQRCode* + + - *MxABC/swiftScan* + + - *hyperoslo/BarcodeScanner* + +- *muukii/Pixel* + + 一款(迭代开发中)基于 CoreImage 开源图片编辑器。 + +- koooootake/Portrait-without-Depth-ios + + 实现单摄人像模式。 + +### *Core Data* + +- ***realm: realm/realm-cocoa*** + + 可以匹敌甚至替代 Core Data 和 SQLite 的移动数据库。 + +- *SQLite: groue/GRDB.swift* + +- ***SQLite: stephencelis/SQLite.swift*** + + 简单、轻量,使用上最 SQL 的 SQLite 封装库。 + +- *GraphGL: apollographql/apollo-ios* + +- *OR-Mapping: vapor/fluent* + +- *plivesey/RocketData* + +### FileProvider + +- *nvzqz/FileKit* + + 简单、接口友好的文件管理类库。 + +- *kylef/PathKit* + + 极易用的文件路径操作类库 + +- *JohnSundell/Files* + +- *njdehoog/Witness* + + macOS 文件系统更新事件监视封装库。 + +- mxcl/Path.swift + + 功能完整的文件系统针对目录级路径的 CRUD(增删改查)。 + +### NotificationCenter + +### Core Location + +- *malcommac/SwiftLocation* + +- *GEOSwift/GEOSwift* + +- *SvenTiigi/STLocationRequest* + +### Messages + +- *MessageKit/MessageKit* + +- *eBay/NMessenger* + +### UIMessage + +- *badoo/Chatto* + +- *aslanyanhaik/Quick-Chat* + +- *nathantannar4/InputBarAccessoryView* + + 一款简单、易用的高可定制全功能输入输入组件。 + +### CloudKit + +- ***amosavian/FileProvider*** + + 提供了一套完整、实用,接口统一的本地及远程文件管理封装器实现 Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive)。 + +- *evermeer/EVCloudKitDao* + +- *CoreData: nofelmahmood/Seam* + +- ***Realm: caiyue1993/IceCream*** + + 用 CloudKit 同步 Realm 数据库工具库。 + +- *insidegui/CloudKitCodable* + +- *leancloud/leancloud-sdk* + + “LeanCloud 提供移动服务端整体解决方案,为移动应用开发者提供稳定可依赖的后端云服务,包括存储、账号管理、社交分享、推送等以及相关的技术支持和服务。” + +### SiriKit + +- *insidegui/Sharecuts* + +### HomeKit + +- *Bouke/HAP* + +### Core ML + +- *watson-developer-cloud/swift-sdk* + + 让开发者快速应用 Watson Cognitive Computing 服务在自己的应用内 + +- *watson-developer-cloud/visual-recognition-coreml* + + 来自 IBM Watson 的视觉识别及机器学习示例。 使用 Watson Swift SDK 管理和执行定制的训练模型。 + +- *hollance/Inception-CoreML* + + Inception-v3 运行在 CoreML 框架内 + +- *hollance/CoreMLHelpers* + + 一些输入/输出类型转换和扩展,以便于更容易地去使用 CoreML 。 + +- *Swift-AI/Swift-AI* + +- *xmartlabs/Bender* + +- *fossasia/susi_iOS* + +- *KevinCoble/AIToolbox* + +- *sobri909/LocoKit* + +- *likedan/Awesome-CoreML-Models* + +- *alexsosn/iOS_ML* + +- *tensorflow/swift* + +- *tensorflow/swift-tutorials* + +- *lovoo/NSFWDetector* + + 用 CoreML 扫描、过滤不雅图片。 + +- tensorflow/swift-apis + + 应用于 Swift 的 TensorFlow 深度学习库。 + +### Social + +- *facebook/facebook-sdk-swift* + +- *twitter/twitter-kit-ios* + +- *twitter: mattdonnelly/Swifter* + +- *weibo: sinaweibosdk/weibo_ios_sdk* + +- *instagram: Imputes/Instagram* + +- *https://developer.github.com/v4/* + +- *github: nerdishbynature/octokit.swift* + + 同时支持 GitHub 和 GitHub 企业版 Swift API 客户端类库。 + +- *zhihu: NicholasTD07/SwiftDailyAPI* + +- *telegram: overtake/TelegramSwift* + +- *Weixin: Xinguang/WechatKit* + +### Accounts + +### *Permissions* + +- *ennioma/arek* + +- *IvanVorobei/RequestPermission* + +### *version reminder* + +- *ArtSabintsev/Siren* + +### WebKit + +- *LinusU/Marionette* + + 通过一套更高级的 API 控制 WKWebView。对标 Google Chrome 的 Puppeteer 库。 + +### *editor* + +- *tophat/RichTextView* + + 兼具主流格式解析(LaTeX, HTML, Markdown)及简单视频嵌入(YouTube/Vimeo)功能富文本浏览视图。 + +- *text: tnantoka/edhita* + +- *ePub: FolioReader/FolioReaderKit* + + ePub 阅读器及解析框架类库。这个很震撼,开发者还同步提供 Android 版。 + +- *markdown: iwasrobbed/Down* + + 集成调用 cmark 的高性能 Markdown 渲染实现库及演示。支持多种输出式(Web View, HTML, XML, LaTeX 等)也许是性能外加可用性最高的一个版本了。 + +- *markdown: keitaoouchi/MarkdownView* + + Markdown 文档预览视图组件。 + +- *spreadsheet: kishikawakatsumi/SpreadsheetView* + +- GeekTree0101/VEditorKit + + 功能强大、完成度非常高的 iOS 编辑器组件。 + +- moliveira/MarkdownKit + + 一款简单地可定制化 Markdown 解析预览类库。 + +### … + +## Web + +### App Store Connect API + +- AvdLee/appstoreconnect-swift-sdk + + “借助 App Store Connect API 实现工作流程自动化”,这个库是对整套工作流程 Swift 版的易用化封装。 + + REST API:https://[developer.apple.com/documentation/appstoreconnectapi](http://developer.apple.com/documentation/appstoreconnectapi) + + + APP STORE CONNECT 使用入门(官方中、英、日文版)https://help.apple.com/app-store-connect/ + +### Web Services + +- awslabs/aws-mobile-appsync-sdk-ios + + 来自 Amazon Web Services 实验室的 AWS AppSync iOS SDK。 + +- swift-aws/aws-sdk-swift + + 支持 macOS 和 Ubuntu 的 AWS SDK。 + +## Developer Tools + +### Package Manager + +- apple/swift-package-manager + + 苹果官方 Swift 包管理 + +- *orta/Komondor* + + 在 Swift 项目中支持 Git hooks。 + 配置实例:[https://github.com/orta/Komondor/blob/master/Documentation/with_swiftpm.md](https://github.com/orta/Komondor/blob/master/Documentation/with_swiftpm.md) + +- mxcl/swift-sh + + 最简单、实用的依赖库导入脚本。这太方便了 + +- JamitLabs/Accio + + 结合 SwiftPM,为 Carthage 锦上添花的包管理命令行工具。 + +### XcodeKit + +- *quicktype/quicktype-xcode* + +### XCTest + +- *apple/swift-corelibs-xctest* + +- *Quick/Quick & Quick/Nimble* + + 单元测试框架库 + +- *networking test: venmo/DVR* + +- *morizotter/TouchVisualizer* + +- *pointfreeco/swift-snapshot-testing* + + 通过快照记录方式进行自动化测试。非常直观方便的一种方式。 + +### Code Diagnostics + +- ***realm/SwiftLint*** + + Realm 采用 Swift 编写的基于 GitHub's Swift Style Guide 规则的检查及转换工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。 + +- *agent-no/swift* + +- *tuist/tuist* + + 通过命令行工具提取 Xcode 项目配置及包依赖关系,实现友好、直观、自掌握的项目配置及管理,避免不必要的初始化及编译错误。 + +- *inamiy/SwiftRewriter* + + 基于 SwiftSyntax 针对代码进行自动格式化(其中包括基于代码规范进行简单的代码优化)。 + +### Playground Support + +- *ole/whats-new-in-swift-4* + +### *dependency manager* + +- ***Carthage/Carthage*** + + 简单,去中心化库依赖管理 + +### *code generator* + +- *Ahmed-Ali/JSONExport* + +- *SwiftGen/SwiftGen* + +- *mac-cain13/R.swift* + + 常用资源(images,fonts, ,colors 等)通过更易用的强类型方式输入并自动转换。 + +### *code cleaning* + +- *onevcat/FengNiao* + +### *debug* + +- *SwiftyBeaver/SwiftyBeaver* + +- *remirobert/Dotzu* + +- *onevcat/Rainbow* + +- apple/swift-log + + 这个 Apple 官方也出,与民争利了。 + +- *DaveWoodCom/XCGLogger* + +- *kasketis/netfox* + +- *netguru/ResponseDetective* + +- *wojteklu/Watchdog* + +- *agens-no/swiff* + + 分分钟获得程序运行时代码片段运动时长命令行工具。 + +- *marcosgriselli/Sizes* + + 根据不同 iPhone/iPad 设备及尺寸规格、横竖屏、字体预览界面显示效果。 + +- *wigl/iSimulator* + + 便捷、实用、高效管理和控制模拟器中运行过的应用。 + +- *lyft/set-simulator-location* + + 命令行下设置模拟器地理位置。 + +- *johnno1962/InjectionIII* + + 在 Xcode 开发调试应用过程中使用注入(即通过不重新编译及重启应用干预应用运行状态,以提高调试效率)。 + +- yagiz/Bagel + + iOS 网络通讯本地调试神器(用 Bounjour 协议,不需要繁琐的连接证书之类的)。 + +- isavynskyi/LayoutInspector + + 3D 视角 iOS 应用布局视图检查器。 + +### design & prototype + +- ***IBAnimatable/IBAnimatable*** + + IBAnimatable 是一个帮助我们在 Interface Builder 和 Swift Playground 里面设计 UI, 交互, 导航模式, 换场和动画的开源库。
[https://github.com/IBAnimatable/IBAnimatable/blob/master/Documentation/README.zh.md](https://github.com/IBAnimatable/IBAnimatable/blob/master/Documentation/README.zh.md) + +### modularization + +基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 + +- mxcl/Cake + + 基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 + +### *References* + +- The Swift Programming Language in Chinese + + https://www.cnswift.org + +- vsouza/awesome-ios + +- dkhamsing/open-source-ios-apps + +- matteocrippa/awesome-swift + +- ipader/SwiftGuide in Chinese + +- BohdanOrlov/iOS-Developer-Roadmap + +- pointfreeco/episode-code-samples + + 这种专注于学习 Swift 编程的视频聊天系列有点酷。 + +### apple/swift-metrics + +苹果开源并逐步固定 Metrics API,以方便用户对应用的运行及资源状态进行有效跟踪。 + +### google/science-journal-ios + +Google 科学日志 iOS 版应用开源。 + +### rockbruno/SwiftInfo + +命令行工具跟踪检查 iOS 应用版本代码级变化。 + +### … + +## *application* + +### *website* + +- kickstarter/ios-oss + +- wordpress-mobile/WordPress-iOS + +- wireapp/wire-ios + +- rg3/youtube-dl + +- aslanyanhaik/youtube-iOS + +- fancymax/12306ForMac + +- pointfreeco/pointfreeco + +- artsy/eidolon + +- yewei02538/TodayNews + +### *window* + +- *dgurkaynak/Penc* + + 果然是窗口管理神器,历害了。 + +- ianyh/Amethyst + + 自动排列及快捷操作切换、管理窗口。 + +### *player* + +- ***lhc70000/iina*** + + 一款开源且基于 mpv 播放库的视频播放器项目。 + +- *josejuanqm/VersaPlayer* + + 同时支持 iOS,macOS,tvOS 的开源视频播放器。 + +### *editor* + +- tnantoka/edhita + +- ***coteditor/CotEditor*** + + 轻量,但功能一点也不轻量的 App Store 上架的开源文本编辑器(几乎支持所有主流格式语法高亮显示,且可以扩展及自定义) + +### *tool* + +- *JakeLin/SwiftLanguageWeather* + +- ***insidegui/WWDC*** + + WWDC 现场、视频及相关资源汇集应用(非官方) + +- *lexrus/VPNOn* + +- *mortenjust/androidtool-mac* + +- *voisine/breadwallet-ios* + +### *browser* + +- ***mozilla-mobile/firefox-io*** + + 来自 Mozilla 开发团队大型纯 Swift 项目(AppStore上架 Firefox浏览器)。 + +### *ss* + +- *shadowsocks/ShadowsocksX-NG* + +- *haxpor/Potatso* + +### *DB client* + +- *PostgresApp/PostgresApp* + +### *social* + +- *hilen/TSWeChat* + +- *GitHub: GitHawkApp/GitHawk* + + 号称 GitHub 最佳客户端应用。 + +- *GitHub: khoren93/SwiftHub* + + 一款功能在线的 GitHub 客户端(程序框架采用 RxSwift + MVVM)。 + +### *game* + +- *fullstackio/FlappySwift* + +### *security* + +- *password: mssun/passforios* + + 功能完善,非常实用的密码管理工具。 + +### *desktop* + +- *mczachurski/wallpapper* + + 通过控制台命令为 macOS Mojave 生成动态墙纸工具。 + +- *ApolloZhu/Dynamic-Dark-Mode* + + 自动深色模式 + +### *bitcoin* + +- *breadwallet/breadwallet-ios* + + 开源(上架)版比特币钱包(iOS 版)。 + +## System + +### Accelerate + +- *mattt/Surge* + + 基于苹果 Accelerate 高性能计算框架封装库。 + +### Dispatch + +- *Zewo/Venice* + + 让 Swift 3 提前支持协程。 + +### CFNetwork + +- ***Alamofire/Alamofire*** + + 著名的 AFNetworking 络基础库 Swift 语言版。 + +- *ashleymills/Reachability.swift* + + 检测网络连通性实用工具库。 + +- *rwbutler/Connectivity* + + 基于 Reachability 的封装类库,检查 当前 Wi-Fi 互联网连接性及即时状态。 + +- ***Moya/Moya*** + + 为你提供一套干净的网络抽象层,以以区隔底层网络库。 + +- *socket* + + - *SwiftSocket/SwiftSocket* + + 使 TCP socket 协议通讯容易(轻量级库)。 + + - *IBM-Swift/BlueSocket* + + 较完整支持了 socket 各种协议和类型标准(中量级库),且该库具有良好的跨平台支持特性。 + +- *websocket* + + - *socketio/socket.io-client-swift* + + WebSockect 客户端类库。开放的通讯协议,有利于构建强大地跨平台应用。 + + - *daltoniam/Starscream* + + WebSocket 标准(RFC 6455)客户端库 Swift 实现。 + +- *image fetch* + + - Haneke/HanekeSwift + + 轻量带缓存高性能图片加载组件。 + + - kean/Nuke + + 完整、强大、实用的图片管理类库。 + + - ***onevcat/Kingfisher*** + + 轻量级下载、缓存网络图像视图库。 + + - Alamofire/AlamofireImage + + 基于 Alamofire 的网络图片组件库。 + + - twitter/ios-twitter-image-pipeline + + 它是一套高性能图片加载缓存框架。 + +### Core Bluetooth + +- *rhummelmose/BluetoothKit* + +- *Polidea/RxBluetoothKit* + + 基于 RxSwift 框架的蓝牙库。 + +### LocalAuthentication + +- *rushisangani/BiometricAuthentication* + + 针对 Face ID 和 Touch ID 更简洁地封装使用。 + +### Security + +- *crypto* + + - ***krzyzanowskim/CryptoSwift*** + + Crypto 算法及相关功能类库集合 + + - *RNCryptor/RNCryptor* + + 提供跨语言解决方案的数据 AES 加密封装。 + +- *keychain* + + - *square/Valet* + + 在钥匙串中安全、方便的去存储你的数据。 + + - *kishikawakatsumi/KeychainAccess* + + 钥匙串存储管理封装 + + - *matthewpalmer/Locksmith* + + 功能强大、面向协议便于扩展的 Keychain 类库。 + + - *evgenyneu/keychain-swift* + + 功能相对单一的在钥匙串存储数据。 + +- *blockchain* + + - *shu223/BlockchainSwift* + + 学习区块链编程示例。 + + - *BANKEX/web3swift* + + 用 Swift 实现的以太坊平台 web3.js API 功能类库。 + + - *consenlabs/token-core-ios* + + 区块链私钥管理类库。 + +### *cross platform* + +- *Linux/ARM* + + - *uraimo/SwiftyGPIO* + + 通过 Swift 语言去控制基于 Linux/ARM 主板(比如:C.H.I.P. 和 树莓派) 的 GPIO(General Purpose Input Output ),去完成简单的工控功能(比如 LED 灯的显示)。 + + - *uraimo/buildSwiftOnARM* + + 持续提供使 Swift 运行于 ARM 上的编译版本(已经更新到 Swift 4.1.3 ),它几乎支持所有的(运行于 Ubuntu 16.04 和 Raspbain)树莓派版本。 + +- *Swift* → *Kotlin* + + - *angelolloqui/SwiftKotlin* + +- *UI* + + - *airbnb/Lona* + + - *hyperoslo/Spots* + +### *LSP Implementation* + +- *apple/sourcekit-lsp* + +### … + +## Graphics and Games + +### Core Animation + +- *framework* + + - *timdonnelly/Advance* + + 一款高阶仿真动画框架库。 + + - *material-motion/material-motion-swift* + + 基于 Core Animation 的响应式动画编程框架库。 + + - *MengTo/Spring* + + 精简版动画库(并附动画功能展示和调试功能)。 + + - *shoheiyokoyama/Gemini* + + 动画式滚动组件中集合度很高的一个可定制库。 + +- *loading* + + - ***ninjaprox/NVActivityIndicatorView*** + + 酷炫的装载动画库及演示。满足你对装载动画的个性化需求。 + + - *icanzilb/SwiftSpinner* + + 这个图文结合进程条功能完整,整体效果还很酷。 + + - *farshadjahanmanesh/loady* + + 常用可定制载入进程按钮动画。 + +- *screen* + + - *willowtreeapps/spruce-ios* + + 更易用的多视图协同编排动画库。 + + - *marcosgriselli/ViewAnimator* + + 简单的代码实现复杂 UI 布局及动画切换。 + +- *text: lexrus/LTMorphingLabel* + + 特赞的文字飘入飘出效果。 + +- vector animations: airbnb/lottie-ios + + Airbnb 矢量级动画渲染库全面迁移至 Swift 版本。其势不可挡。 + +- sagaya/Wobbly + + 对界面组件元素实现各种摇晃抖闪的动画效果。 + +### Core Graphics + +- Image Processing: gavinbunney/Toucan + + 小而美的图片变换及处理类。 + +- *color: jathu/UIImageColors* + + 图片色系决定界面背景色及字体显示颜色。获取主色、次色、背景色、详细色 + +### Image I/O + +- *GIF: kaishin/gifu* + + 高性能 GIF 显示类库 + +- *GIF: kirualex/SwiftyGif* + + 高性能 Gif 播放引擎 + +- *SVG: mchoe/SwiftSVG* + + 支持多种接口绘制 SVG 类库。 + +- *APNG: onevcat/APNGKit* + + 解析和显示 APNG 的框架 + +- *wangjwchn/AImage* + + GIF/APNG 播放引擎。 + +- kelvin13/png + + 纯 Swift 代码解析 PNG 格式,返回图像原始像素数据和尺寸。 + +- *malcommac/ImageSizeFetcher* + + 通过 URL 获取图像类型或尺寸。 + +- kaishin/ImageScout + + 最小网络代价获得图片大小及类型。 + +### ARKit + +- *ProjectDent/ARKit-CoreLocation* + + AR 与 GPS 精确数据的结合,开始一次导航之旅。其中包括了 ARKit + CoreLocation 框架库 ARCL,它是非常重要的实验性项目,未来开发前景可期。 + +- *NovaTecConsulting/FaceRecognition-in-ARKit* + + 人脸识别在 AR 中的应用演示案例。 + +- *Boris-Em/ARCharts* + + 直观、实用的 AR 版 3D 图表组件也来了。 + +- simformsolutions/ARKit2.0-Prototype + + AR 2.0 实现效果原型演示 + +- olucurious/Awesome-ARKit + + AR 开源项目汇总列表。 + +- *maxxfrazer/ARKit-SCNPath* + + 方便地绘制一条 AR 场景导航路径。 + +### PDFKit + +- *nRewik/SimplePDF* + + 轻松程序建立简单格式 PDF 。 + +- *Alua-Kinzhebayeva/iOS-PDF-Reader* + + 简单易用的轻量级 PDF 阅读器组件。 + +- *sgr-ksmt/PDFGenerator* + + 创建简单的 PDF 文档。 + +### GLKit + +- *BradLarson/GPUImage2* + + 基于 GPU 图像和视频处理框架库。 + +- *vector graphics: exyte/Macaw* + + 强大又易用的 SVG 矢量图工具库。 + +### Metal + +- *BradLarson/GPUImage3* + + 采用 Metal 代替上一版 OpenGL 重新设计,实现 GPU 对图像和视频的加速处理。 + +- *kawoou/FlexibleImage* + + 简单编辑静态图片,产生适宜的效果叠加播放。 + +- *alexiscn/MetalFilters* + + 基于 Metal 框架实现的 Instagram 风格图片滤镜库。 + +- endavid/VidEngine + + 用 Metal (GPU) 技术封装实现的 3D渲染引擎。 + +### SpriteKit + +- *bubble picker: efremidze/Magnetic* + + 可定制地类似 Apple Music 磁力吸引式泡泡选择器组件。 + +- *refresh control* + + - *dasdom/BreakOutToRefresh* + + 下拉加载刷新时,嵌入了用 SpriteKit 框架写的有趣的小游戏播放页。 + + - *Onix-Systems/RainyRefreshControl* + + 下雨要撑伞动效下拉刷新组件。 + +- *loading: BalestraPatrick/ParticlesLoadingView* + + 通过 SpriteKit 内置工具粒子动画实现酷炫的可定制装载动画。 + +- *game: songkuixi/TouchBreakout* + + 用 Touch Bar 在 Mac 上玩打砖块游戏。 + +### SceneKit + +- folio-sec/Slideshow + + 采用 SceneKit 写的 3D 动态图片墙。酷!不过系统资源消耗也很历害。 + +### … + +## Media + +### AVFoundation + +- *AlexLittlejohn/ALCameraViewController* + + 摄像头视图控制器,图片选择及简单编辑。 + +- *imaginary-cloud/CameraManager* + + 简单、易用的相机管理封装类库。 + +- *live: shogo4405/HaishinKit.swift* + + 同时支持 iOS, macOS, tvOS 的摄像头和麦克风流(RTMP, HLS)管理库。 + +- *recognition: dokun1/Lumina* + + 易于集成 CoreML 模型,以及图像识别,二维码检测及相关特性摄像库。 + +- *radio: analogcode/Swift-Radio-Pro* + + 集成 LastFM 的专业电台应用。 + +### PhotoKit + +- *MailOnline/ImageViewer* + + 用心之作图片全屏预览组件及类库(效果类似 Twitter 相应组件)。 + +- *suzuki-0000/SKPhotoBrowser* + + 中规中矩、实用的图片浏览类库。 + +- *ytakzk/Fusuma* + + Instagram 风格图片浏览及拍照。 + +### Core Audio + +- *AudioKit/AudioKit* + + 音频合成、加工及分析平台框架库 + +- *fulldecent/FDWaveformView* + + 播放并显示音频波形组件。 + +### Media Player + +- *lhc70000/iina* + + 一款开源且基于 mpv 播放库的全功能视频播放器项目。 + +- *mobileplayer/mobileplayer-ios* + + 貌似很不错的高度可定制播放器项目。 + +- *piemonte/Player* + + 本地视频及流媒体播放器。 + +- *audio: adamcichy/SwiftySound* + + 极简播放声音文件方式。 + +### ScreenSaver + +- *JohnCoates/Aerial* + + 在 macOS 中仿新版的 Apple TV 的 Aerial 屏保。 + +### … + +## Syntax + +### apple/swift-syntax + +Swift 语法库开源,极大方便了开发者研究、解析、转换、自动生成 Swift 代码。 + +### *NSHipster/SwiftSyntaxHighlighter* + +采用 SwiftSyntax 库产品 Swift 代码 HTML 格式高亮库 + +### *highlighter: JohnSundel/Splash* + +将 Swift 程序代码转换至 HTML(或 PNG),并高亮显示其语法。 + +### ***raywenderlich/swift-algorithm-club*** + +Swift 算法俱乐部,最全、最活跃,最具学习价值的算法库。 + +### *elizabethsiegle/30-seconds-of-swift-code* + +精选的 30 秒或更短时间即能理解的实用 Swift 代码片段。(高效学习 swift 语言语法利器。思路来源于 知名 JavaScript 项目 [https://github.com/30-seconds/30-seconds-of-code](https://github.com/30-seconds/30-seconds-of-code) ) + +### MobileTipsters/Swift-Daily-Tips + +Swift 语法和编程技巧每日提示 + diff --git a/2019/OpenSourceforSwift-Classification.md b/2019/OpenSourceforSwift-Classification.md new file mode 100644 index 00000000..21a76d7c --- /dev/null +++ b/2019/OpenSourceforSwift-Classification.md @@ -0,0 +1,16 @@ +# Swift 开源项目精选导图 + +这份文档主要基于微博 [@SwiftLanguage](https://weibo.com/swiftlanguage) 跟踪过活跃于 Swift 语言领域的那些 GitHub 开源项目,顺便也是对于过去几年关注的内容进行一次系统化梳理。尝试整理出一份相对结构化且精练的 Swift 开源项目参考知识库,它将主要以思维导图形式呈现。 + +导图分类规则尽可能遵循[苹果开发者文档](https://developer.apple.com/documentation/)(对应关系仅做参考),试图与官方类库分类尽量有一个对照关系(其初衷是引导开发者不要为了使用开源而忽视官方类库本身已经具备的功能特性);筛选规则主要参考过去四年多来微博分享,综合了库的实用性、稳定性、star/fork,以及活跃度等因素,筛选出其中一个子集,整理后的开源项目数量目前为 400 多个项目。导图将以一整张大图及 myMindNode 浏览两种方式访问。另外,站在开发者应用开发视角,额外筛检了一份更精简且分类明细的 [Swift 开源项目精选 - 应用架构角度](OpenSourceforSwift-ApplicationArchitecture.md)。 + +订阅后显示部分目前实为持续更新的 myMindNode 链接及明细内容浏览方式(叶子节点针对每一个收录开源项目的中文简介)。此外,附上项目中部分 [Swift 知名开发者介绍](SwiftDevelopers.md) 和 [Swift 开源项目团队介绍](SwiftDevelopmentTeam.md),以便于进一步了解其中部分优秀项目开发者背景。另外,考虑到开源项目的发展及持续更新。本文档并非最终稿,它将与微博 [@SwiftLanguage](https://weibo.com/swiftlanguage) 同步更新(周为单位)。对于那些不再活跃或中止的项目也会尽力删减。对于 Swift 新手欢迎关注文档 [Swift 开发指引](http://swiftguide.cn) 以及 [Swift 语言指南](https://github.com/ipader/SwiftGuide/blob/master/README20181213.md) (13.9k+ stars),其中有项目介绍、入门文章等与 Swift 开发相关的信息。 + +![](OpenSourceforSwift-Classification.png?raw=true) +[myMindNode浏览及导图原文档下载……](https://my.mindnode.com/s4jn5DKQV7qwpCdnyd12sDXcnTYJmFzPNghYx91s) + +## 附:MindNode 格式导图导出的文本内容 +* [浏览 Markdown 版本](OpenSourceforSwift-Classification-MindNode.md) +* [浏览 PDF 版本](OpenSourceforSwift-Classification.pdf) + +注:开源项目范围广泛,能力所及,其中主观性强烈,甚至不少错误之处,望包涵、指正。 diff --git a/2019/OpenSourceforSwift-Classification.pdf b/2019/OpenSourceforSwift-Classification.pdf new file mode 100644 index 00000000..904a8517 Binary files /dev/null and b/2019/OpenSourceforSwift-Classification.pdf differ diff --git a/2019/OpenSourceforSwift-Classification.png b/2019/OpenSourceforSwift-Classification.png new file mode 100644 index 00000000..ec980d4d Binary files /dev/null and b/2019/OpenSourceforSwift-Classification.png differ diff --git a/2019/RecentlyIncludedSwiftProjects.md b/2019/RecentlyIncludedSwiftProjects.md new file mode 100644 index 00000000..232dda32 --- /dev/null +++ b/2019/RecentlyIncludedSwiftProjects.md @@ -0,0 +1,76 @@ +# Recently Included Swift Projects + +![](RecentlyIncludedSwiftProjects.png) + +## *Shared & Featured* + +- <*AWS SDK*>
swift-aws/aws-sdk-swift
➟ macOS | Linux + + 支持 macOS 和 Ubuntu 的 AWS SDK。 + +- <*3D Picture Gallery Slideshow*>
folio-sec/Slideshow
➟ macOS + + 采用 SceneKit 写的 3D 动态图片墙。酷!不过系统资源消耗也很历害。 + +- <*Metrics API*>
apple/swift-metrics
➟ iOS | macOS | Linux + + 苹果开源并逐步固定 Metrics API,以方便用户对应用的运行及资源状态进行有效跟踪。 + +- <*converts between AttributedStrings and HTML*>
IdeasOnCanvas/Ashton
➟ iOS | macOS + + MindNode 团队开发使用的 NSAttributedStrings 和 HTML 高性能互转类库。 + +- <*handy features to standard library*>
*Flinesoft/HandySwift*
➟ iOS | macOS | Linux + + 由于某些原因 Swift 标准库仍未收入且很好用的功能特性扩展。 + +- <*Codable extension*>
JohnSundell/Codextended
➟ macOS | Linux + + 为自定义 Codable 而生的扩展 API。 + +- <*dependency manager*>
JamitLabs/Accio
➟ macOS + + 结合 SwiftPM,为 Carthage 锦上添花的包管理命令行工具。 + +- **
JohnSundell/Sweep
➟ iOS | macOS | Linux + + 比正则表达式简单很多的子字符串扫描和匹配。 + +- <*Declarative UI construction*>
square/Blueprint
➟ iOS + + Square 公司开源的自用声明式 UI 开发框架库。 + +- <*loading*>
farshadjahanmanesh/loady
➟ iOS + + 常用可定制载入进程按钮动画。 + +- <*science-journal*>
google/science-journal-ios
➟ iOS + + Google 科学日志 iOS 版应用开源。 + +- <*CLI tool*>
rockbruno/SwiftInfo
➟ macOS + + 命令行工具跟踪检查 iOS 应用版本代码级变化。 + +- <*hand-drawn, comic shape*>
onmyway133/RoughSwift
➟ iOS + + 编程方式创建手绘和漫画风格画面。酷炫! + +## *Shared Only* + +- <*animated switch*>
d-dotsenko/DDAnimatedSwitch
➟ iOS + + 把开关动画定制到可乐。 + +- <*execute Swift into markdown*>
objcio/markdown-playgrounds
➟ macOS + + 在 Markdown 中执行 Swift Playgrounds 代码。这是想让 Markdown 编辑器无敌的节奏吗? + +- <*native source editor*>
twostraws/Sourceful
➟ iOS | macOS + + 有了这个支持,是时候写一款 iOS/macOS 通用的源代码编辑器了。 + +- *
pigigaldi/Pock*
➟ macOS + + 将 macOS Dock 放入 Touch Bar。总得来讲是 Touch Bar 的有益补充,设计思路及程序结构也恰到好处。 + diff --git a/2019/RecentlyIncludedSwiftProjects.png b/2019/RecentlyIncludedSwiftProjects.png new file mode 100644 index 00000000..28bab5b6 Binary files /dev/null and b/2019/RecentlyIncludedSwiftProjects.png differ diff --git a/2019/SwiftDevelopers.md b/2019/SwiftDevelopers.md new file mode 100644 index 00000000..fe5f0854 --- /dev/null +++ b/2019/SwiftDevelopers.md @@ -0,0 +1,382 @@ +# Swift 知名开发者介绍 +![](SwiftDevelopers.png?raw=true) +## 目录 +* [全身心拥抱开源的开发者 Mattt Thompson](#mattt-thompson) +* [富有创意的开发者 Morten Just](#morten-just) +* [挑战自我、精益求精的开发者 Daniel Dahan](#daniel-dahan) +* [深耕于 Swift 的开发者 Simon Gladman](#simon-gladman) +* [最接近 Swift 的 Instagram 开发者 Jesse Squires](#jesse-squires) +* [设计先行、持续改进的开发者 Jake Lin](#jake-lin) +* [小即是美的开发者 Lex Tang](#lex-tang) +* [最专注于 UI/UX 领域的开发者 Meng To](#meng-to) +* [最热衷于开源社团的开发者 Kyle Fuller](#kyle-fuller) +* [神话级 Cocoa 框架的开发者 Justin Spahr-Summers](#justin-spahr-summers) +* [最懂 RAC 的开发者 Josh Abernathy](#josh-abernathy) +* [随时产品化思考的开发者 Daniel Cohen Gindi](#daniel-cohen-gindi) +* [最热衷于 OOD 演练的开发者 Oktawian Chojnacki](#oktawian-chojnacki) +* [最文青范的开发者 Wei Wang](#wei-wang) +* [好接地气的开发者 Roy Marmelstein](#roy-marmelstein) +* [敏锐又与时俱进的开发者 Robb Böhnke](#robb-böhnke) +* [设计精致、细节讲究的开发者 Reda Lemeden](#reda-lemeden) +* [战斗力爆棚且又低调的开发者 nixzhu](#nixzhu) +* [冲劲十足、乐在其中的开发者 Kevin](#kevin) +* [着眼于简单、高效的开发者 Damien](#damien) +* [最专注于测试框架的开发者 Brian Gesiak](#brian-gesiak) +* [充满故事的开发者 Ash Furrow](#ash-furrow) +* [最懂软件包管理和分发的开发者 Max Howell](#max-howell) +* [富有学习激情、极为活跃的开发者 Natasha Murashev](#natasha-murashev) +* [玩乐于工作、兴趣之中的开发者 Sam Soffes](#sam-soffes) +* [充满激情创造伟大软件的开发者 Matt Diephouse](#matt-diephouse) +* [全职的开源代码工作者 Sindre Sorhus](#sindre-sorhus) + +## Mattt Thompson +![](https://avatars1.githubusercontent.com/u/7659?v=3&s=220) + +简介:全身心拥抱开源的高产开发者 ([专访](https://blog.heroku.com/archives/2013/11/12/Mattt-Thompson)) + +代表作品: +* 创办了 [NSHipster.com](http://nshipster.com/) +* 著名的网络基础库 [AFNetworking](https://github.com/AFNetworking/AFNetworking) 和 Swift 版 [Alamofire](https://github.com/Alamofire/Alamofire) +* 基于苹果 Accelerate 高性能计算框架封装库 [Surge](https://github.com/mattt/Surge) +* 定制操作符实现直观、简洁的数学表达式 ∛27÷3+∑[3,1,2] 类库 [Euler](https://github.com/mattt/Euler) + +社交:[Github](https://github.com/mattt) | [Twitter](https://twitter.com/mattt) + +## Morten Just +![](https://avatars2.githubusercontent.com/u/1548468?v=3&s=230) + +简介:富有创意的开发者 [CV](http://www.linkedin.com/in/mortenjust) + +代表作品: +* 一键截屏、录屏的 Mac 客户端工具 [androidtool](https://github.com/mortenjust/androidtool-mac) +* 只支持 1000 常用单词的文本编辑器 [cleartext](https://github.com/mortenjust/cleartext-mac)(灵感来源《Complicated Stuff in Simple Words》) +* 视频拖拽到应用窗口后自动转换为 GIF 动画工具 [droptogif](https://github.com/mortenjust/droptogif)(转换动画很赞) + +社交:[Github](https://github.com/mortenjust) | [Twitter](https://twitter.com/mortenjust) | [Medium](https://medium.com/@mortenjust) + +## Daniel Dahan +![](https://avatars3.githubusercontent.com/u/9982123?v=3&s=230) + +个人简介:不断挑战自我、精益求精的开发者。[CV](https://ca.linkedin.com/in/daniel-dahan-7a227460) + +代表作品: +* 基于 Material Design 动画和图像框架库 [Material](https://github.com/CosmicMind/Material) +* 设计新颖、使用简单基于 Core Data 的数据驱动框架库 [Graph](https://github.com/CosmicMind/Graph) +* 算法和概率模型工具集 [Algorithm](https://github.com/CosmicMind/Algorithm) + +社交:[Github](https://github.com/danieldahan) | [Twitter](https://twitter.com/Cosmicmindio) + +## Simon Gladman +![](https://avatars2.githubusercontent.com/u/6221298?v=3&s=230) + +简介:深耕于 Swift 的开发者 [CV](https://uk.linkedin.com/in/simon-gladman-420a001) + +代表作品: + +* [Core Image for Swift 📚](https://itunes.apple.com/us/book/core-image-for-swift/id1073029980) +* [Plum-O-Meter](https://github.com/FlexMonkey/Plum-O-Meter):3D Touch 来称重 +* [Blurable](https://github.com/FlexMonkey/Blurable):通过协议扩展高斯模糊任意 UIView +* [Filterpedia](https://github.com/FlexMonkey/Filterpedia):Core Image 下强大的图片滤镜类库演示应用 + +社交:[Github](https://github.com/FlexMonkey) | [Twitter](https://twitter.com/flexmonkey) + +## Jesse Squires +![](https://avatars2.githubusercontent.com/u/2301114?v=3&s=230) + +简介:最接近 Swift 的 Instagram 开发者,Instagram 主要开发者之一 [CV](https://www.linkedin.com/in/jessesquires) + +代表作品: + +* 让你快速获取 Swift 官方动态的 [Swift Weekly Brief](http://swiftweekly.github.io/) +* 著名的消息 UI 框架库 [JSQMessagesViewController](https://github.com/jessesquires/JSQMessagesViewController) 及其 Swift 版 [MessageKit](https://github.com/MessageKit/MessageKit) + +社交:[Github](https://github.com/jessesquires) | [Twitter](https://twitter.com/jesse_squires) | [cocoapods](https://cocoapods.org/owners/1808) | [Website](http://www.jessesquires.com/) + +## Jake Lin +![](https://avatars1.githubusercontent.com/u/573856?v=3&s=230) + +简介:设计先行、持续改进的开发者 [CV](https://www.linkedin.com/in/jakelin) + +代表作品: + +* 清新淡雅持续改进天气预报项目 [SwiftWeather](https://github.com/JakeLin/SwiftWeather) +* 基于 Xcode 插件技术快速原型开发工具 [IBAnimatable](https://github.com/JakeLin/IBAnimatable) + +社交:[Github](http://github.com/JakeLin) | [dribbble](http://dribbble.com/Jake_Lin) | [Twitter](https://twitter.com/Jake_Lin) | [Weibo](http://weibo.com/yongjianlin) + +## Lex Tang +![](https://avatars1.githubusercontent.com/u/219689?v=3&s=230) + +简介:小即是美的开发者 [CV](https://cn.linkedin.com/in/lexrus) + +代表作品: +* 文字飘入飘出动画效果库 [LTMorphingLabel](https://github.com/lexrus/LTMorphingLabel) +* 驻在通知中心内的 VPN 开关应用 [VPNOn](https://github.com/lexrus/VPNOn) + +社交:[Github](https://github.com/lexrus) | [dribbble](https://dribbble.com/lexrus) | [Twitter](https://twitter.com/lexrus) | [Weibo](http://weibo.com/lexrus) + +## Meng To +![](https://avatars2.githubusercontent.com/u/1065452?v=3&s=230) + +简介:最专注于 UI/UX 领域的开发者 [CV](https://www.linkedin.com/in/mengto) | [专访](http://www.jianshu.com/p/2fd2721530d0) + +代表作品 +* 提供动画调试功能的强大动画的 API 库 [Spring](https://github.com/MengTo/Spring) +* [dribbble 作品集](https://dribbble.com/mengto) + +社交:[Github](https://github.com/MengTo) | [dribbble](https://dribbble.com/mengto) | [Twitter](https://twitter.com/mengto) | [Website](https://designcode.io/) + +## Kyle Fuller +![](https://avatars0.githubusercontent.com/u/44164?v=3&s=230) + +简介:最热衷于开源社团的开发者 [CV](https://www.linkedin.com/in/fullerkyle) + +代表作品: +* 参与开发 [CocoaPods](https://github.com/CocoaPods/CocoaPods), [AFNetworking](https://github.com/AFNetworking/AFNetworking), [Alamofire](https://github.com/Alamofire/Alamofire) 等优秀项目 +* 类似 rvm, nvm 的Swift 版本管理器 [swiftenv](https://github.com/kylef/swiftenv) +* 使用简单、功能强大的模板语言库 [Stencil](https://github.com/kylef/Stencil) +* 使用简单、功能完善的 CoreData 查询类库 [QueryKit](https://github.com/QueryKit/QueryKit) +* 小而美的路径管理类 [PathKit](https://github.com/kylef/PathKit) +* 简单、高效、低耦专业 Web 服务器及示例 [Curassow](https://github.com/kylef/Curassow) + +社交:[Github](https://github.com/kylef) | [Twitter](https://twitter.com/kylefuller) | [Website](https://fuller.li/) + +## Justin Spahr-Summers +![](https://avatars3.githubusercontent.com/u/432536?v=3&s=230) + +简介:神话级 Cocoa 框架的开发者 [CV](http://stackoverflow.com/cv/jspahrsummers) + +代表作品: + +* 简单、去中心化全新 Cocoa 依赖管理库 [Carthage](https://github.com/Carthage/Carthage) +* Cocoa 的函数响应式编程框架 [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa) +* Cocoa 和 Cocoa Touch 模型对象层框架库 [Mantle](https://github.com/Mantle/Mantle) +* 起草了 Github 版 Swift 编程规范 [swift-style-guide](https://github.com/github/swift-style-guide) + +社交:[Github](https://github.com/jspahrsummers) | [Twitter](https://twitter.com/jspahrsummers) | [Website](http://jspahrsummers.com/) + +## Josh Abernathy +![](https://avatars0.githubusercontent.com/u/13760?v=3&s=230) + +简介:最懂 RAC 的开发者 [CV](https://www.linkedin.com/in/josh-abernathy-b1308a10) + +代表作品: +* 与 [Justin Spahr-Summers](https://github.com/jspahrsummers) 合作开发 [GitHub for Mac](https://desktop.github.com/) 并开源了 [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa) 框架 +* 灵感来源于 [React](http://facebook.github.io/react/) 的 UI 框架库 [Few.swift](https://github.com/joshaber/Few.swift) 及其布局组件 [SwiftBox](https://github.com/joshaber/SwiftBox) +* 参与开发 Github 项目 [atom](https://github.com/atom/atom) + +社交:[Github](https://github.com/joshaber) | [Twitter](http://twitter.com/joshaber) | [Blog](https://joshaber.github.io/) + +## Daniel Cohen Gindi +![](https://avatars2.githubusercontent.com/u/366926?v=3&s=230) + +简介:随时产品化思考的开发者 [CV](https://il.linkedin.com/in/danielgindi) + +代表作品: +* Android 图表开源库 [MPAndroidChart](https://github.com/PhilJay/MPAndroidChart) 的Swift 版 [Charts](https://github.com/danielgindi/Charts) +* [MPAndroidChart](https://github.com/PhilJay/MPAndroidChart) 的主要开发、维护者之一 + +社交:[Github](https://github.com/danielgindi) | [Twitter](https://twitter.com/dcgindi) + +## Oktawian Chojnacki +![](https://avatars3.githubusercontent.com/u/3382607?v=3&s=230) + +简介:最热衷于 OOD 演练的开发者 [CV](https://www.linkedin.com/in/oktawianchojnacki) + +代表作品: +* 基于 Bob 大叔 OOD 经典(S.O.L.I.D.) Swift 实现示例 [OOD-Principles-In-Swift](https://github.com/ochococo/OOD-Principles-In-Swift) +* 如何使用常用设计模式及示例 [Design-Patterns-In-Swift](https://github.com/ochococo/Design-Patterns-In-Swift) + +社交:[Github](https://github.com/ochococo) | [Twitter](https://twitter.com/nsmeme) + +## Wei Wang +![](https://avatars2.githubusercontent.com/u/1019875?v=3&s=230) + +简介:最文青范的开发者 [CV](https://www.linkedin.com/in/onevcat) + +代表作品: + +* 高性能 APNG 显示框架 [APNGKit](https://github.com/onevcat/apngkit) +* 轻量级下载、缓存网络图像库 [Kingfisher](https://github.com/onevcat/Kingfisher) +* 快捷程序注释 Xcode 插件 [VVDocumenter-Xcode](https://github.com/onevcat/VVDocumenter-Xcode) +* 控制台七彩字串输出库 [Rainbow](https://github.com/onevcat/Rainbow) +* 组织了翻译了 objc.io 中文站 [objc中国](objccn.io) +* [Swifter - 100 个 Swift 必备 tips](http://swifter.tips/) 📚 + +社交:[Github](https://github.com/onevcat) | [Twitter](https://twitter.com/onevcat) | [stackoverflow](http://stackoverflow.com/users/1468886/onevcat) | [Weibo](http://weibo.com/onevcat) | [Website](http://onev.cat/) + +## Roy Marmelstein +![](https://avatars2.githubusercontent.com/u/889949?v=3&s=230) + +简介:好(hào)接地气的开发者 [CV](http://fr.linkedin.com/pub/roy-marmelstein/27/365/2ba/) + +代表作品: + +* 手势驱动交互式转场动画框架库 [Interpolate](https://github.com/marmelroy/Interpolate) +* 提供向后兼容的 Peek/Pop 预览框架库 [PeekPop](https://github.com/marmelroy/PeekPop) +* 一套较为完整的 i18n 基础库 [Localize-Swift](https://github.com/marmelroy/Localize-Swift), [PhoneNumberKit](https://github.com/marmelroy/PhoneNumberKit), [Zip](https://github.com/marmelroy/Zip), [Format](https://github.com/marmelroy/Format) +* iOS 下 Finder 风格文件浏览器 [FileBrowser](https://github.com/marmelroy/FileBrowser) +* Apple TV 风格按钮 [TVButton](https://github.com/marmelroy/TVButton) + +社交:[Github](https://github.com/marmelroy) | [Twitter](http://twitter.com/marmelroy) | [Medium](https://medium.com/swift-and-ios-writing) |[Website](http://marmelroy.github.io/) + +## Robb Böhnke +![](https://avatars2.githubusercontent.com/u/212465?v=3&s=230) + +简介:敏锐又与时俱进的开发者 [CV](http://robb.is/who-exactly/) + +代表作品: +* 最早发布了 Swift 版声明式自动布局项目([Cartography](https://github.com/robb/Cartography)) +* 参与开发了 [Carthage](https://github.com/Carthage/Carthage), [Mantle](https://github.com/Mantle/Mantle) 等 +* 最早发布了 Swift 版 Hamburger 按钮转场动画开发教程([How to build a nice Hamburger Button transition in Swift](http://robb.is/working-on/a-hamburger-button-transition/))及示例项目([hamburger-button](https://github.com/robb/hamburger-button)) +* 开发了上架应用 [SoundCloud](http://itunes.apple.com/en/app/soundcloud/id336353151), [Artsy](http://robb.is/working-on/artsy-iphone-app/) 等 +* [函数响应式编程(FRP)主要参与者及推动者之一](https://realm.io/news/frp-ios-guide/#who-can-teach-me-more-about-frp) + +社交:[Github](https://github.com/robb) | [Twitter](https://twitter.com/dlx) | [dribbble](https://dribbble.com/robb) | [Website](http://robb.is) + +## Reda Lemeden +![](https://avatars1.githubusercontent.com/u/519433?v=3&s=230) + +简介:设计精致、细节讲究的开发者 [CV](https://redalemeden.com/) + +代表作品: + +* 最小网络代价获得图片大小及类型类库 [ImageScout](https://github.com/kaishin/ImageScout) +* 高性能 GIF 显示类库 [gifu](https://github.com/kaishin/gifu) +* 运行于 OS X 基于 cmark 轻量级 Markdown 预览库 [Markoff](https://github.com/thoughtbot/Markoff) +* 精致的网络测速上架应用 [Speedster](https://speedsterapp.com/) + +社交:[Github](https://github.com/kaishin) | [Twitter](https://twitter.com/kaishin) | [dribbble](https://dribbble.com/kaishin) | [Blog](https://unredacted.redalemeden.com/) + +## nixzhu +![](https://avatars1.githubusercontent.com/u/435208?v=3&s=230) + +简介:战斗力爆棚且又低调的开发者 + +代表作品: + +* “打造由天才开发给天才们使用的社交软件” [Yep](https://github.com/CatchChat/Yep) +* 强大的中文社交网络(WeChat, QQ, Alipay or Weibo)分享组件库 [MonkeyKing](https://github.com/nixzhu/MonkeyKing) +* iOS 扩展与主应用的实时通信库 [MMWormhole](https://github.com/mutualmobile/MMWormhole) 的纯 Swift 版本 [Wormhole](https://github.com/nixzhu/Wormhole) +* 更容易地请求本地设备权限库 [Proposer](https://github.com/nixzhu/Proposer) +* JSON 自动生成 Swift 模型类工具 [Coolie](https://github.com/nixzhu/Coolie) +* [一些 iOS / Web 开发相关的翻译或原创博客文章](https://github.com/nixzhu/dev-blog) + +社交:[Github](https://github.com/nixzhu) | [Twitter](https://twitter.com/nixzhu) | [Weibo](http://weibo.com/nixzhu) + +## Kevin +![](https://avatars3.githubusercontent.com/u/1156192?v=3&s=230) + +简介:冲劲十足、乐在其中的开发者 [专访](http://www.infoq.com/cn/news/2015/10/kevinzhow-interview) + +代表作品: + +* 简单、漂亮带动画效果的图表库 [PNChart](https://github.com/kevinzhow/PNChart)(OC 版)及其 Swift 版 [PNChart-Swift](https://github.com/kevinzhow/PNChart-Swift) +* “开发给天才们使用的社交软件” [Yep](https://github.com/CatchChat/Yep) +* 切身经验讲述如何(只有真心喜欢)完成一款优秀的产品 [《Producter》📚](http://producter.io/) +* 渐变文字输入演示 [RealtimeGradientText](https://github.com/kevinzhow/RealtimeGradientText) +* [给女朋友的 iOS 开发教程](http://weibo.com/p/1001603895923729155287) + +社交:[Github](https://github.com/kevinzhow) | [Twitter](https://twitter.com/kevinzhow) | [Weibo](http://weibo.com/kevinzhow) | [Blog](http://blog.zhowkev.in/) + +## Damien +![](https://avatars3.githubusercontent.com/u/2891970?v=3&s=230) + +简介:着眼于简单、高效的开发者 + +代表作品: +* 使用简单、功能完善的 iOS 设备及资源权限请求库 [Permission](https://github.com/delba/Permission) +* 极为小巧、易用的 OAuth 授权类库 [SwiftyOAuth](https://github.com/delba/SwiftyOAuth) +* 让手势识别如虎添翼库 [Tactile](https://github.com/delba/Tactile) +* 使用简单、性能高效的 JSON 解析类库 [JASON](https://github.com/delba/JASON) +* 可定制输出格式、主题风格日志库 [Log](https://github.com/delba/Log) + +社交:[Github](https://github.com/delba) | [Twitter](https://twitter.com/_delba) + +## Brian Gesiak +![](https://avatars3.githubusercontent.com/u/552921?v=3&s=230) + +简介:最专注于测试框架的开发者 [CV](https://www.linkedin.com/in/bgesiak) + +* 苹果开源组核心库 XCTest 单元测试框架 [swift-corelibs-xctest](https://github.com/apple/swift-corelibs-xctest) +* 行为驱动的测试框架 [Quick](https://github.com/Quick/Quick) +* 比 XCTAssertEqual 更方便易用的匹配框架 [Nimble](https://github.com/Quick/Nimble) +* 参与 [swift](https://github.com/apple/swift) 编译器的开发 +* 行为驱动开发库 [Kiwi](https://github.com/kiwi-bdd/Kiwi) 核心开发者之一 + +社交:[Github](http://github.com/modocache) | [Twitter](https://twitter.com/modocache) | [Website](http://modocache.io/) + +## Ash Furrow +![](https://avatars3.githubusercontent.com/u/498212?v=3&s=230) + +简介:充满故事的开发者 [CV](https://www.linkedin.com/in/ashfurrow) + +代表作品: +* 设计极为出众的网络抽象层类库 [Moya](https://github.com/Moya/Moya) +* Artsy 的艺术品拍卖亭开源应用 [eidolon](https://github.com/artsy/eidolon) +* 出版了[《Your First Swift App》](https://leanpub.com/yourfirstswiftapp/), [《Functional Reactive Programming on iOS》](https://leanpub.com/iosfrp)...等四本书 +* 带感的心路历程 [5 Years of iOS](https://ashfurrow.com/blog/5-years-of-ios/) + +社交:[Github](https://github.com/ashfurrow) | [Twitter](https://twitter.com/ashfurrow) | [Website](https://ashfurrow.com/) + +## Max Howell +![](https://avatars3.githubusercontent.com/u/58962?v=3&s=230) + +简介:最懂软件包管理和分发的开发者 + +代表作品: +* OS X 不可或缺的套件管理器 [Homebrew](https://github.com/Homebrew) +* [Swift Package Manager](https://github.com/apple/swift-package-manager) +* 支持 iOS 和 OS X 平台的 Promise 框架库 [PromiseKit](https://github.com/mxcl/PromiseKit) + +社交:[Github](https://github.com/mxcl) | [Twitter](https://twitter.com/mxcl) | [facebook](https://www.facebook.com/maxhowell) + +## Natasha Murashev +![](https://avatars1.githubusercontent.com/u/1157147?v=3&s=230) + +简介:富有学习激情、极为活跃的开发者 + +代表作品: +* Swift 最佳实践学习网站 [natashatherobot.com](http://natashatherobot.com) +* Swift 开发者大会 try! Swift 组织者 [纽约](http://www.tryswiftnyc.com/),[东京](http://www.tryswiftconf.com/en) +* [Swift Newsletter](http://swiftnews.curated.co/) + +社交:[Github](https://github.com/NatashaTheRobot) | [Twitter](https://twitter.com/NatashaTheRobot) | [Website](http://natashatherobot.com) + +## Sam Soffes +![](https://avatars1.githubusercontent.com/u/52870?v=3&s=200) + +简介:玩乐于工作、兴趣之中的开发者 [CV](https://www.linkedin.com/in/soffes) + +代表作品: +* 简单、实用的限制执行次数类库 [RateLimit](https://github.com/soffes/RateLimit) +* iOS/OS X 平台统一开发类库 [X](https://github.com/soffes/X) +* 倒计时屏保 [Countdown](https://github.com/soffes/Countdown) 和精确显示年龄屏保 [Motivation](https://github.com/soffes/Motivation) +* 开发过的应用详见 [soff.es](https://soff.es) +* 在 spec.fm 上,与人合作主持一档有关于设计和开发的广播 [Immutable](http://spec.fm/podcasts/immutable) + +社交:[Github](https://github.com/soffes) | [Twitter](https://twitter.com/soffes) | [dribbble](https://dribbble.com/soffes/) | [Website](https://soff.es) + +## Matt Diephouse +![](https://avatars0.githubusercontent.com/u/1302?s=200&v=4) + +简介:充满激情创造伟大软件的开发者 [CV](https://www.linkedin.com/in/mattdiephouse/) + +代表作品: +* 基于投影数据库的持久化类库 [PersistDB](https://github.com/PersistX/PersistDB) +* 针对(成功/失败)类型建模类库 [Result](https://github.com/antitypical/Result) +* Carthage, ReactiveSwift 等著名开源项目积极维护者 + +社交:[Github](https://github.com/mdiep) | [Twitter](https://twitter.com/mdiep) | [Website](http://matt.diephouse.com) + +## Sindre Sorhus +![](https://avatars2.githubusercontent.com/u/170270?s=200&v=4) + +简介:全职的开源代码工作者 + +代表作品: +* 功能足够的,视频转高质量 GIF 开源应用 [gifski-app](https://github.com/sindresorhus/gifski-app) +* 实验性:[touch-bar-simulator](https://github.com/sindresorhus/touch-bar-simulator), [DockProgress](https://github.com/sindresorhus/DockProgress), [LaunchAtLogin](https://github.com/sindresorhus/LaunchAtLogin), [dark-mode](https://github.com/sindresorhus/dark-mode) +* 其它:[awesome](https://github.com/sindresorhus/awesome) + [awesome-nodejs](https://github.com/sindresorhus/awesome-nodejs) = 100k+ stars, [query-string](https://github.com/sindresorhus/query-string), [refined-github](https://github.com/sindresorhus/refined-github) + +社交:[Github](https://github.com/sindresorhus) | [Twitter](https://twitter.com/sindresorhus) | [Website](https://sindresorhus.com/) diff --git a/2019/SwiftDevelopers.png b/2019/SwiftDevelopers.png new file mode 100644 index 00000000..0d282c42 Binary files /dev/null and b/2019/SwiftDevelopers.png differ diff --git a/2019/SwiftDevelopmentTeam.md b/2019/SwiftDevelopmentTeam.md new file mode 100644 index 00000000..773028dd --- /dev/null +++ b/2019/SwiftDevelopmentTeam.md @@ -0,0 +1,192 @@ +# Swift 开源项目团队介绍 +![](SwiftDevelopmentTeam.png?raw=true) +## 目录 +* Swift 开源项目团队 + * [专注于服务端 Kitura 及相关技术的项目团队 IBM-Swift](#IBM-Swift) + * [最流行的管依赖管理项目团队 Carthage](#Carthage) + * [使用最广泛活跃的 Cocoa 风格反应式编程项目团队 ReactiveCocoa](#ReactiveCocoa) + * [专注于 Swift 高性能服务端框架项目 Perfect 项目团队 PerfectlySoft](#perfectlysoft) + * [开发已超过 500 个本地库扩展的生产力工具库项目团队 SwifterSwift](#SwifterSwift) + * [最流行的 Swift 网络库开发团队 Alamofire](#Alamofire) + * [最专注的 GitHub 第三方应用开发团队 GitHawkApp](#GitHawkApp) + * [最专业的音乐开发框架项目团队 AudioKit](#AudioKit) + * [专注于纯 Swift 语言 Web 服务器开发团队 vapor](#vapor) + * [专注于应用数据流及状态管理项目团队 ReSwift](#ReSwift) + * [专注于网络抽象层框架开发团队 Moya](#Moya) + * [交互设计及移动开发梦之队 Ramotion](#ramotion) + * [专注于移动开发服务、乐活开源界的团队 Yalantis](#yalantis) + * [把想法变成业务的全能团队 Hyper](#hyper) + * [提供专业移动设计和开发之余有开源建树的团队 SwiftKickMobile](SwiftKickMobile) + * [专注于探索函数化编程的视频系列团队 pointfreeco](#pointfreeco) +* 已涉足 Swift 开源项目的团队和组织 + * [apple](#apple) + * [使用最广泛活跃的反应式编程项目团队 ReactiveX](#ReactiveX) + * [开源机器学习框架开发项目团队 TensorFlow](#TensorFlow) + * [多年致力于开源技术及方案的推动和组织者 FOSSASIA](#FOSSASIA) + * [amazon](#amazon) + * [facebook](#facebook) + * [twitter](#twitter) + * [Instagram](#Instagram) + * [realm](#realm) + * [alibaba](#alibaba) + * [airbnb](#airbnb) + * [eBay](#eBay) + * [mozilla mobile](#mozilla-mobile) + * [wordpress mobile ](#wordpress-mobile) + * [socketio](#socketio) + * [materialmotion](#materialmotion) + * [kickstarter](#kickstarter) + * [Thoughtbot](#thoughtbot) + * [xmartlabs](xmartlabs) + * [Big Nerd Ranch](#big-nerd-ranch) + * [知名开发培训博客 raywenderlich](#raywenderlich) + * [知名开发技术博客 NSHipster](#NSHipster) + +------------ +整理中…… + +## Carthage +![](https://avatars2.githubusercontent.com/u/9146792?s=200&v=4) + +简介:最流行的管依赖管理项目团队 + +代表作品: +* 简单,去中心化库 Cocoa 依赖管理框架 [Carthage](https://github.com/Carthage/Carthage) ➟ [入门指南](https://www.raywenderlich.com/416-carthage-tutorial-getting-started) + +社交:[Github](https://github.com/Carthage) | Twitter + +## ReactiveX + +![](https://avatars3.githubusercontent.com/u/6407041?s=200&v=4) + +简介:使用最广泛活跃的反应式编程项目团队 + +代表作品: +* 简单、高效,最活泼的 Swift 函数反应式编程框架 [ReSwift](https://github.com/ReactiveX/RxSwift) +* Java 反应式编程扩展库 [RxJava](https://github.com/ReactiveX/RxJava) ➟ [入门指南](https://github.com/ReactiveX/RxJava/wiki/Getting-Started) +* JavaScript 反应式编程扩展库 [RxJS](https://github.com/ReactiveX/rxjs) ➟ [开始吧](https://rxjs-dev.firebaseapp.com) + +社交:[GitHub](https://github.com/ReactiveX) | [Twitter](https://twitter.com/ReactiveX) | [Website](http://reactivex.io) + +## ReactiveCocoa +![](https://avatars0.githubusercontent.com/u/3422977?s=200&v=4) + +简介:使用最广泛活跃的 Cocoa 风格反应式编程项目团队 + +代表作品: +* 函数反应式编程库 [ReactiveSwift](https://github.com/ReactiveCocoa/ReactiveSwift) ➟ [入门指南](http://reactivecocoa.io/reactiveswift/docs/latest/) +* Cocoa 风格函数反应式编程库 [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa)(基于 ReactiveSwift)➟ [入门指南](https://www.raywenderlich.com/2493-reactivecocoa-tutorial-the-definitive-introduction-part-1-2) + +[GitHub](https://github.com/ReactiveCocoa) | [Twitter](https://twitter.com/reactivecocoa) | [Website](http://reactivecocoa.io) + +## PerfectlySoft +![](https://avatars0.githubusercontent.com/u/14945043?s=200&v=4) + +简介:专注于 Swift 高性能服务端框架项目 Perfect 项目团队 PerfectlySoft + +代表作品: +* 功能更强大,性能更好的 Web 服务器框架 [Perfect](https://github.com/PerfectlySoft/Perfect) ➟ [入门指南](https://www.perfect.org/docs/gettingStarted.html) + +社交:[GitHub](https://github.com/PerfectlySoft) | [Twitter](https://twitter.com/perfectlysoft) | [Website](http://perfect.org/) + +## FOSSASIA +![](https://avatars3.githubusercontent.com/u/6295529?s=200&v=4) + +简介:多年致力于开源技术及方案的推动和组织者 + +代表项目: + +* 开放活动和峰会组织服务端 [open-event-server](https://github.com/fossasia/open-event-server) +* 开放活动和峰会 [iOS](https://github.com/fossasia/open-event-ios) 和 [Android]() 客户端 +* 开放活动和峰会组织方 [iOS](https://github.com/fossasia/open-event-orga-iOS) 和 [Android](https://github.com/fossasia/open-event-orga-app) 客户端 +* AI 个人助理服务端 [susi_server](https://github.com/fossasia/susi_server) +* AI 对话式个人助理 [iOS](https://github.com/fossasia/susi_android) 和 [andriod](https://github.com/fossasia/susi_android) 客户端 +* 开源技术峰会 [OpenTechSummit](https://events.fossasia.org) + + +社交:[GitHub](https://github.com/fossasia) | [Twitter](https://twitter.com/fossasia) | [Website](https://fossasia.org/) + +## Ramotion +![](https://avatars0.githubusercontent.com/u/6028820?v=3&s=200) + +简介:交互设计及移动开发梦之队 + +代表作品: +* 为 [App Annie](http://ramotion.com/work/appannie) 提供移动应用设计和开发; +* 展开、查看列表项最浑然天成的 Peek/Pop 用法及演示 [expanding-collection](https://github.com/Ramotion/expanding-collection) +* 灵动的动画标签栏组件 [animated-tab-bar](https://github.com/Ramotion/animated-tab-bar) +* 自然流畅、清新的单元格折叠组件及演示 [folding-cell](https://github.com/Ramotion/folding-cell) +* Switch 组件开/关切换时,平滑过渡到父视图的变换效果组件及演示 [paper-switch](https://github.com/Ramotion/paper-switch) +* 圆形缩放菜单组件及演示 [circle-menu](https://github.com/Ramotion/circle-menu) +* 自然且毫无违合感快捷输入并选择组件及演示 [reel-search](https://github.com/Ramotion/reel-search) + +社交:[Github](https://github.com/Ramotion) | [Twitter](https://twitter.com/ramotion) | [dribbble](https://dribbble.com/ramotion) | [Website](http://ramotion.com/) | [facebook](https://www.facebook.com/ramotion) + +## Yalantis +![](https://avatars0.githubusercontent.com/u/752338?v=3&s=200) + +简介:专注于移动开发服务、乐活开源界的团队 + +代表作品: +* 基于卡片的 Tinder-Like 动画效果组件及示例 [Koloda](https://github.com/Yalantis/Koloda) +* 瞬间崩塌为小方块动画效果演示 [StarWars.iOS](https://github.com/Yalantis/StarWars.iOS) +* 极具创意及突破精神的菜单组件及示例 [GuillotineMenu](https://github.com/Yalantis/GuillotineMenu), [Side-Menu](https://github.com/Yalantis/Side-Menu.iOS), [Persei](https://github.com/Yalantis/Persei) +* 不同布局(平铺和列表)间平滑切换组件及示例 [DisplaySwitcher](https://github.com/Yalantis/DisplaySwitcher) +* 刷新动画可定制的下拉数据请求更新组件 [PullToRefresh](https://github.com/Yalantis/PullToRefresh) + + +社交:[Github](https://github.com/Yalantis) | [Twitter](https://twitter.com/yalantis) | [dribbble](https://dribbble.com/yalantis) | [Website](https://yalantis.com/) | [facebook](https://www.facebook.com/Yalantis) + +## Hyper +![](https://avatars2.githubusercontent.com/u/1340892?v=3&s=200) + +简介:把想法变成业务的全能团队 + +代表作品: +* 使用简单、功能实用的消息及应用通知组件 [Whisper](https://github.com/hyperoslo/Whisper) +* 方便你制作定制的动画式教程 [Presentation](https://github.com/hyperoslo/Presentation) +* 将 view models 存储于云端的 view controller 框架库 [Spots](https://github.com/hyperoslo/Spots) +* 多类型数据混合缓存库 [Cache](https://github.com/hyperoslo/Cache) +* 常规功能集于一身的定义、使用颜色库 [Hue](https://github.com/hyperoslo/Hue) +* Promise 基础的网络请求库 [Malibu](https://github.com/hyperoslo/Malibu) +* 使用极为简单图片选取库 [ImagePicker](https://github.com/hyperoslo/ImagePicker) + +社交:[Github](https://github.com/hyperoslo) | [Twitter](https://twitter.com/hyperoslo) | [dribbble](http://dribbble.com/hyperoslo) | [Website](http://www.hyper.no/) | [facebook](https://www.facebook.com/hyper.oslo) + +## PerfectlySoft +![](https://avatars2.githubusercontent.com/u/14945043?v=3&s=200) + +简介:致力于打开全栈通道的中间件团队 [访谈](http://www.businessinsider.com/apple-swift-perfectlysoft-perfect-server-side2016-5) + +代表作品: +* 专业应用服务器及服务端框架库 [Perfect](https://github.com/PerfectlySoft/Perfect) + +社交:[Github](https://github.com/PerfectlySoft) | [Twitter](https://twitter.com/perfectlysoft) | [Website](http://perfect.org/) | [facebook](https://www.facebook.com/Perfectly-Soft-Inc-1050875001629981) + +## Thoughtbot +![](https://avatars1.githubusercontent.com/u/6183?v=3&s=200) + +简介:练就软件技术精英的全栈团队 + +代表作品: +* 函数式 JSON 解析库 [Argo](http://github.com/thoughtbot/argo) +* 基于 cmark 轻量级 Markdown 预览 [Markoff](https://github.com/thoughtbot/Markoff) +* 前端组件 [Bourbon](http://bourbon.io/), [neat](http://neat.bourbon.io/), [bitters](http://bitters.bourbon.io/) +* 采用 shell 脚本让你的 Macbook 成为一台开发用机 [Laptop](http://github.com/thoughtbot/laptop) +* 服务于 ActiveRecord 文件的附件管理库 [Paperclip](http://github.com/thoughtbot/paperclip) +* 除了提供优质软件开发、咨询服务外,独立产品有 [Hound](https://houndci.com/), [formkeep](https://formkeep.com/), [Kromatic](http://kromatic.thoughtbot.com/), [sassquatch](http://sassquatch.thoughtbot.com/); + +社交:[Github](https://github.com/thoughtbot) | [Twitter](https://twitter.com/thoughtbot) | [dribbble](https://dribbble.com/thoughtbot) | [Website](https://thoughtbot.com/) | [Blog](http://robots.thoughtbot.com/) + +## Big Nerd Ranch +![](https://avatars2.githubusercontent.com/u/230455?v=3&s=200) + +简介:致力于授业解惑的开发团队 + +代表作品: +* 面向协议的可重用 JSON 解析库 [Freddy](https://github.com/bignerdranch/Freddy); +* 小巧实用的 Core Data 存储栈框架库 [CoreDataStack](https://github.com/bignerdranch/CoreDataStack) +* 出版了 [Swift Programming](https://www.bignerdranch.com/we-write/swift-programming/), [iOS Programming](https://www.bignerdranch.com/we-write/ios-programming/), [Objective-C Programming](https://www.bignerdranch.com/we-write/objective-c-programming/), [Android Programming](https://www.bignerdranch.com/we-write/android-programming/) 等; +* [提供专业的沉浸式培训服务](https://www.bignerdranch.com/we-teach/)。 + +社交:[Github](http://www.github.com/bignerdranch) | [Twitter](http://twitter.com/bignerdranch) | [dribbble](https://dribbble.com/bignerdranch) | [Website](https://www.bignerdranch.com) | [facebook](http://www.facebook.com/bignerdranch) diff --git a/2019/SwiftDevelopmentTeam.png b/2019/SwiftDevelopmentTeam.png new file mode 100644 index 00000000..ee5fb26e Binary files /dev/null and b/2019/SwiftDevelopmentTeam.png differ diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.md b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.md new file mode 100644 index 00000000..e37354e6 --- /dev/null +++ b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.md @@ -0,0 +1,184 @@ +# Recently Included Swift Projects + +![](RecentlyIncludedSwiftProjects.png) + +## *Shared & Featured* + +- <*Tool to debug layouts*>
isavynskyi/LayoutInspector
➟ iOS + + 3D 视角 iOS 应用布局视图检查器。 + +- <*A simple routing library*>
hubrioAU/XRouter
➟ iOS + + 一款使用简单,结构清晰同时支持 URL 的应用路由库。 + +- <*Editor Kit*>
GeekTree0101/VEditorKit
➟ iOS + + 功能强大、完成度非常高的 iOS 编辑器组件。 + +- <*cross-platform and chainable file-pathing*>
mxcl/Path.swift
➟ iOS | macOS | watchOS | Linux + + 功能完整的文件系统针对目录级路径的 CRUD(增删改查)。 + +- <*customizable Markdown Parser*>
moliveira/MarkdownKit
➟ iOS | macOS + + 一款简单地可定制化 Markdown 解析预览类库。 + +- <*network debugging tool*>
yagiz/Bagel
➟ iOS | macOS + + iOS 网络通讯本地调试神器(用 Bounjour 协议,不需要繁琐的连接证书之类的)。 + +- <*third-party dependencies*>
mxcl/swift-sh
➟ macOS | Linux + + 最简单、实用的依赖库导入脚本。这太方便了 + +- <*floating panel*>
IdeasOnCanvas/Aiolos
➟ iOS + + MindNode  iOS 项目中使用的浮动面板。 + +- <*liquid swipe animation* >
Cuberto/liquid-swipe
➟ iOS + + 液滑动画效果升级版。 + +- <*pure swift PNG decoder and encoder* >
kelvin13/png
➟ macOS | Linux + + 纯 Swift 代码解析 PNG 格式,返回图像原始像素数据和尺寸。 + +- <*Mac style Menu*>
TwoLivesLeft/Menu
➟ iOS + + 著名 iPad 编程应用 Codea(Lua 语言) 开源传统菜单如何存在于小屏幕设计思路及解决方案。 + +- <*@dynamicMemberLookup feature*>
saoudrizwan/DynamicJSON
➟ iOS | macOS | watchOS + + 采用 Swift 4.2 新特性 (@dynamicMemberLookup) 实现轻便访问 JSON 数据。 + +- <*iOS SDK for AWS AppSync*>
awslabs/aws-mobile-appsync-sdk-ios
➟ iOS + + 来自 Amazon Web Services 实验室的 AWS AppSync iOS SDK。 + +- <*HTTP/2 support for SwiftNIO*>
apple/swift-nio-http2
➟ iOS | macOS | watchOS | Linux + + 苹果发布 SwiftNIO 针对 HTTP/2 的开源支持库。 + +- <*Instagram filters implemented in Metal*>
alexiscn/MetalFilters
➟ iOS + + 基于 Metal 框架实现的 Instagram 风格图片滤镜库。 + +- <*wrapper for Apple’s Reachability*>
rwbutler/Connectivity
➟ iOS + + 基于 Reachability 的封装类库,检查 当前 Wi-Fi 互联网连接性及即时状态。 + +- <*UIKit extensions*>
haoking/SwiftyUI
➟ iOS + + 轻量、高性能的 UI 渲染及扩展类库。 + +- <*AR paths*>
maxxfrazer/ARKit-SCNPath
➟ iOS + + 方便地绘制一条 AR 场景导航路径。 + +- <*grids and lists layout*>
airbnb/MagazineLayout
➟ iOS + + 出自 Airbnb 栅格级 CollectionView 布局库。 + +- <*code formatter*>
inamiy/SwiftRewriter
➟ CLI environment + + 基于 SwiftSyntax 针对代码进行自动格式化(其中包括基于代码规范进行简单的代码优化)。 + +- <*WKWebView*>
LinusU/Marionette
➟ iOS | macOS + + 通过一套更高级的 API 控制 WKWebView。对标 Google Chrome 的 Puppeteer 库。 + +- <*utilities*>
hollance/CoreMLHelpers
➟ iOS + + 一些输入/输出类型转换和扩展,以便于更容易地去使用 CoreML 。 + +- <*Swift on ARM devices*>
uraimo/buildSwiftOnARM
➟ Shell + + 持续提供使 Swift 运行于 ARM 上的编译版本(已经更新到 Swift 4.1.3 ),它几乎支持所有的(运行于 Ubuntu 16.04 和 Raspbain)树莓派版本。 + +## *Shared Only* + +- **
tailec/ios-architecture
➟ iOS + + iOS 程序开发框架项目实践。 + +- <*DSL for UIKit*>
mecid/UIKitSwiftDSL
➟ iOS + + Swift DSL for UIKit + +- <*Automated mutation testing*>
SeanROlszewski/muter
➟ iOS | macOS | watchOS | Linux + + 变异测试(mutation testing)库的探索与实践。 + +- <*modal/alert*>
loryhuz/CleanyModal
➟ iOS + + 一套清洁带交互的模式/弹窗组件。 + +- <*Messenger*>
instamobile/messenger-iOS-chat-swift-firestore
➟ iOS + + 基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 + +- **
gabrieloc/roundrect
➟ iOS + + 代码方式渲染 UIButton 显示风格及样式。 + +- **
x0054/MKS
➟ macOS + + 机械键盘按键声效模拟器,MBP 使用时很舒爽的感觉。机械键盘控们可以试试。 + +- **
grzeszczak/ReMVVM
➟ iOS + + ReMVVM is an application architecture concept, marriage of Unidirectional Data Flow (Redux) with MVVM. + +- *
rsrbk/LayoutLoopHunter*
➟ iOS + + 追踪潜在的自动布局反馈循环引起的 OOM(Out of Memory)应用崩溃。 + +- <*iOS Project Template*>
pgorzelany/iOS-project-template
➟ iOS + + 快速少弯路的 iOS 项目开发最佳实践模板。 + +- <*dependency injection framework*>
uber/needle
➟ iOS | macOS | watchOS + + Uber 开源的类似 Dagger(Java)的依赖注入框架。 + +- <*child view controller framework*>
zenangst/Family
➟ iOS | macOS + + 子视图控制器框架。使你的应用代码更加模块化,灵活性和可测试性,并且在构建复杂布局时也不失其可维护性。 + +- <*3D geometry*>
nicklockwood/Euclid
➟ iOS | macOS | watchOS | Linux + + 创建和操控 3D 几何图形类库。 + +- <*localization*>
igorkulman/iOSLocalizationEditor
➟ iOS + + 一款生产力编辑器,通过简单直观、统一的界面编辑 Localizable.strings 文件。 + +- <*API document in Markdown*>
eneko/SourceDocs
➟ CLI environment + + 命令行工具产生 Markdown 格式源码 API 文档。 + +- <*GitHub client*>
khoren93/SwiftHub
➟ iOS + + 一款功能在线的 GitHub 客户端(程序框架采用 RxSwift + MVVM)。 + +- <*Playground generator*>
JohnSundell/Shapeshift
➟ CLI environment + + 一款 Playground 效率工具。快速地转换当前目录及子目录内所有 Swift 文件到(兼容 iPad 运行的) Playground 项目。 + +- <*UI styles using Swifty Method Chain*>
shindyu/ApplyStyleKit
➟ iOS + + 常用 UI 组件样式的链式操作(实现逻辑简单、轻量)。 + +- <*write Shortcuts in Playground*>
a2/shortcuts-swift
➟ iOS + + 用 Swift 在 Playgrounds 中写捷径。 + +- <*feature switch*>
rwbutler/FeatureFlags
➟ iOS + + 特性切换配置(本地或远程)框架库(测试方案支持 A/B 及 MVT)。 + +- <*collection scrolling*>
Cuberto/smooth-scroll
➟ iOS + + 顺滑滚动过程中标题和内容卡式切换。 + diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.png b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.png new file mode 100644 index 00000000..1c17ee6e Binary files /dev/null and b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.png differ diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.zip b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.zip new file mode 100644 index 00000000..ab7cec87 Binary files /dev/null and b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0201.zip differ diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.md b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.md new file mode 100644 index 00000000..05cac1a5 --- /dev/null +++ b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.md @@ -0,0 +1,124 @@ +# Recently Included Swift Projects + +![](RecentlyIncludedSwiftProjects.png) + +## *Shared & Featured* + +- <*openCV portrait mode*>
koooootake/Portrait-without-Depth-ios
➟ iOS + + 实现单摄人像模式。 + +- <*JavasScript engine*>
googleprojectzero/fuzzilli
➟ macOS | Linux + + Javascript 解释器引擎,技术融合的一大进步。 + +- <*randomness*>
pointfreeco/swift-gen
➟ iOS | macOS | Linux + + 基于强大的 Swift 随机数 API,包装易于扩展可定制的多类型随机数生成器。 + +- <*vector animations*>
airbnb/lottie-ios
➟ iOS | macOS + + Airbnb 矢量级动画渲染库全面迁移至 Swift 版本。其势不可挡。 + +- <*logger*>
apple/swift-log
➟ macOS | Linux + + 这个 Apple 官方也出,与民争利了。 + +- <*modal*>
slackhq/PanModal
➟ iOS + + 这款可定制性底部上滑式模态窗口组件开发和用户体验都不错啊。 + +- <*modularization*>
mxcl/Cake
➟ macOS + + 基于组件 MessageKit 及实时通讯云 Firestore 的即时通讯实现(功能参考 Facebook Messenger)。 + +- <*animations*>
sagaya/Wobbly
➟ iOS + + 对界面组件元素实现各种摇晃抖闪的动画效果。 + +- <*window manager*>
ianyh/Amethyst
➟ macOS + + 自动排列及快捷操作切换、管理窗口。 + +- *<3D graphics>*
endavid/VidEngine
➟ iOS + + 用 Metal (GPU) 技术封装实现的 3D渲染引擎。 + +- *
Cuberto/rubber-range-picker*
➟ iOS + + 很带人情味的数字区间选择。 + +- <*progress view*>
mac-gallagher/MultiProgressView
➟ iOS + + 多区间进程条展示效果组件及示例。 + +- <*component-based UI*>
ra1028/Carbon
➟ iOS + + 在 UITableView 和 UICollectionView 中构建基于组件声明式界面库。提供 API 文档及丰富示例。 + +- <*Binary Codable*>
jverkoey/BinaryCodable
➟ iOS | macOS | Linux + + Codable 风格实现 Binary 数据的 Decode/Encode。 + +- <*Regular Expression*>
Flight-School/RegularExpressionDecoder
➟ iOS | macOS + + 针对结构化数据的正则表达式解析库。 + +- <*tensorflow apis*>
tensorflow/swift-apis
➟ macOS + + 应用于 Swift 的 TensorFlow 深度学习库。 + +## *Shared Only* + +- <*2d vector*>
2d-inc/Flare-Swift
➟ macOS + + Flare 创建的 2D 矢量动画 Swift 播放环境。 + +- <*Watch Face*>
kuglee/TermiWatch
➟ watchOS + + Terminal 都能上 Apple Watch 了,想像力无处不在。 + +- **
zagahr/Conferences.digital
➟ macOS + + 该应用模型可以方便你在 Mac 上观看开发论坛高清视频。 + +- **
AndrewBennet/ReadingList
➟ iOS + + 阅读进程列表组件。 + +- <*Swift Algorithms*>
thexande/SwiftAlgorithms
➟ iOS + + 把 raywenderlich/swift-algorithm-club Markdown 资源应用化了,查阅实在太便利了。 + +- <*crop image and transformation*>
*d-dotsenko/DDPerspectiveTransform*
➟ iOS + + 交互式截图并转换。 + +- <*bottom controller*>
IvanVorobei/SPLarkController
➟ iOS + + 效果不错的适用于应用设置模态控制器。 + +- <*dependency manager*>
mxcl/AppUpdater
➟ CLI environment + + GitHub 开源应用自动更新器(macOS)。 + +- <*tab bar*>
Cuberto/bubble-icon-tabbar
➟ iOS + + Tab 图标展开式显示栏。 + +- <*development tool*>
peripheryapp/periphery
➟ macOS + + 排查消除项目内非使用过的代码碎片 + +- <*javascript*>
pomber/git-history
➟ Browser + + 直观动态地展示 GitHub 文件历史。创意和效果一级棒,服! + +- <*Segment Slide*>
Jiar/SegementSlide
➟ iOS + + 功能完整的滑滚及切换组件。 + +- <*notification*>
jogendra/BedgeNotificHub
➟ iOS + + 快速加上通知徽章及数字提醒到 UIView,支持丰富的徽章小动效。 + diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.png b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.png new file mode 100644 index 00000000..2b3bd243 Binary files /dev/null and b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.png differ diff --git a/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.zip b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.zip new file mode 100644 index 00000000..fbecea0d Binary files /dev/null and b/2019/recentlyarchive/RecentlyIncludedSwiftProjects-0325.zip differ diff --git a/2021/MarkdownProgramminginSwift.png b/2021/MarkdownProgramminginSwift.png new file mode 100644 index 00000000..c12dec18 Binary files /dev/null and b/2021/MarkdownProgramminginSwift.png differ diff --git a/Apple Watch/README.md b/Apple Watch/README.md index 69fd86c6..4c5e9b07 100644 --- a/Apple Watch/README.md +++ b/Apple Watch/README.md @@ -16,8 +16,8 @@ ### 1. 文档 * [WatchKit Programming Guide](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html)([中译在线版](http://www.cocoachina.com/ios/20141217/10660.html) By [@CocoaChina](http://weibo.com/cocoachina)) - 译文 | 译者 | 原文 ------------- | ------------- | ------------- +译文 | 译者 | 原文 +--- | --- | --- [概览 - 开始为 Apple Watch 进行开发](http://www.cocoachina.com/ios/20141121/10282.html)|[@星夜暮晨](http://weibo.com/moonisky)|[Overview - Developing for Apple Watch](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/index.html#//apple_ref/doc/uid/TP40014969-CH8-SW1) [概览 - 配置 Xcode 项目](http://www.cocoachina.com/ios/20141121/10284.html)|-|[Overview - Configuring Your Xcode Project](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/ConfiguringYourXcodeProject.html#//apple_ref/doc/uid/TP40014969-CH2-SW1) [概览 - Watch 应用的体系结构](http://www.cocoachina.com/ios/20141121/10286.html)|-|[Overview - Watch App Architecture](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/DesigningaWatchKitApp.html#//apple_ref/doc/uid/TP40014969-CH3-SW1) @@ -37,8 +37,8 @@ * [中译PDF版](http://vdisk.weibo.com/s/yWUvUXSZiJFiv) By [@微博UDC-M](http://weibo.com/uiteam) * [中译在线版](http://www.cocoachina.com/design/20141125/10314.html) By [@CocoaChina](http://weibo.com/cocoachina) - 译文 | 译者 | 原文 ------------- | ------------- | ------------- +译文 | 译者 | 原文 +--- | --- | --- [UI 设计基础 - 为 Apple Watch 而设计](http://www.cocoachina.com/design/20141119/10256.html)|[@CocoaChina](http://weibo.com/cocoachina)|[UI Design Basics - Designing for Apple Watch](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/index.html#//apple_ref/doc/uid/TP40014992-CH3-SW1) [UI 设计基础 - App 剖析](http://www.cocoachina.com/design/20141119/10257.html)|-|[UI Design Basics - App Anatomy](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/WatchOSAppAnatomy.html#//apple_ref/doc/uid/TP40014992-CH4-SW1) [UI 设计基础 - Glances](http://www.cocoachina.com/design/20141119/10258.html)|-|[UI Design Basics - Glances](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/Glances.html#//apple_ref/doc/uid/TP40014992-CH21-SW1) @@ -53,8 +53,8 @@ * 中译在线版 By [@优秀网页设计](http://weibo.com/uidesign) - 译文 | 译者 | 原文 ------------- | ------------- | ------------- +译文 | 译者 | 原文 +--- | --- | --- [UI 设计基础 - Part 1](http://www.uisdc.com/apple-watch-ui-guideline-1), [Part 2](http://www.uisdc.com/apple-watch-ui-guideline-2)|[@陈子木](http://weibo.com/chenzimu7)|[UI Design Basics](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/index.html) [UI 元素设计](http://www.uisdc.com/apple-watch-ui-elements)|[@阿布](http://weibo.com/325808000)|[UI Elements](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/Labels.html#//apple_ref/doc/uid/TP40014992-CH31-SW1) [图标与图片设计](http://www.uisdc.com/apple-watch-icon-and-image)|[@阿布](http://weibo.com/325808000)|[Icon and Image Design](https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/WatchHumanInterfaceGuidelines/IconandImageSizes.html#//apple_ref/doc/uid/TP40014992-CH16-SW1) diff --git a/Featured.md b/Featured.md index e871ee4d..db411d56 100755 --- a/Featured.md +++ b/Featured.md @@ -18,8 +18,8 @@ ### 工具 > 备注栏 🔗 或 📝 链接详细介绍或最佳实践。其中 🔗 - 指外链接,📝 - 指 Wiki 可编辑 - 项目 | 开发者 | 备注 ------------- | ------------- | ------------- +项目 | 开发者 | 备注 +--- | --- | --- [SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON)|[tangplin](https://github.com/tangplin), [lingoer](https://github.com/lingoer)|GitHub 上最为开发者认可的 JSON 解析库 [🔗](http://tangplin.github.io/swiftyjson/) [JASON](https://github.com/delba/JASON)|[Damien](https://github.com/delba/)|高速 JSON 解析类库 [Argo](https://github.com/thoughtbot/Argo)|[thoughtbot](https://github.com/thoughtbot)|函数式 JSON 解析库 [🔗](https://robots.thoughtbot.com/introducing-argo-10-more-power-more-fun) @@ -113,7 +113,7 @@ ### 存储 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [AlecrimCoreData](https://github.com/Alecrim/AlecrimCoreData)|[Alecrim](https://github.com/Alecrim)|更容易地访问 CoreData 对象封装类库 [SQLite.swift](https://github.com/stephencelis/SQLite.swift)|[Stephen Celis](http://stephencelis.com)|简单、轻量,使用上最 SQL 的 SQLite 封装库 @@ -130,7 +130,7 @@ ### 网络 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [Alamofire](https://github.com/Alamofire/Alamofire) |[Mattt Thompson](https://github.com/mattt)|著名的 AFNetworking 络基础库 Swift 语言版 [📝](https://github.com/ipader/SwiftGuide/wiki/Alamofire%20%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5) [AlamofireImage](https://github.com/Alamofire/AlamofireImage)|[Christian Noon](https://github.com/cnoon)|基于 Alamofire 的网络图片组件库 @@ -151,7 +151,7 @@ ### 图片 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [ImageScout](https://github.com/kaishin/ImageScout) |[Reda Lemeden](http://redalemeden.com)|最小网络代价获得图片大小及类型 [DominantColor](https://github.com/indragiek/DominantColor)|[Indragie Karunaratne](http://indragie.com)|提取图片主色示例项目 @@ -180,7 +180,7 @@ ### 框架 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [PromiseKit](https://github.com/mxcl/PromiseKit)|[Max Howell](https://github.com/mxcl) |Swift 化的 Promise 类库 [then](https://github.com/s4cha/then)|[S4cha](https://github.com/s4cha)|极为简洁的 Promise 轻量实现 @@ -257,7 +257,7 @@ ### 界面 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [Spring](https://github.com/MengTo/Spring)|[Meng To](https://github.com/MengTo)| 提供动画调试功能的强大动画的 API 库 [ReactiveAnimation](https://github.com/ReactiveCocoa/ReactiveAnimation)|[ReactiveCocoa](https://github.com/ReactiveCocoa/)|知名ReactiveAnimation 的 Swift 版子项目 @@ -404,7 +404,7 @@ ### 示例 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [LTMorphingLabel](https://github.com/lexrus/LTMorphingLabel)|[Lex Tang](http://weibo.com/lexrus)|特赞的文字飘入飘出效果 [TextKitAndAnimationEffect](https://github.com/morpheus1984/TextKitAndAnimationEffect)|[@我在罪恶坑的日子](http://weibo.com/u/1660258615)|文字下坠动画变化效果实现及示例([开发过程详解](http://www.ismash.cn/post/ru-he-shi-xian-zi-ji-mei-shi-xian-guo-de-xu-qiu-zhi-wen-ben-dong-hua-pian)) @@ -449,7 +449,7 @@ ### 应用 - 项目 | 开发者 | 备注 +项目 | 开发者 | 备注 ------------ | ------------- | ------------- [edhita](https://github.com/tnantoka/edhita)|[Tatsuya Tobioka](http://blog.tnantoka.com/)|支持 Markdown, HTML 预览的文本编辑器 [Markoff](https://github.com/thoughtbot/Markoff)|[thoughtbot](https://github.com/thoughtbot)|运行于 OS X 基于 cmark 轻量级 Markdown 预览 [🔗](https://robots.thoughtbot.com/markoff-free-markdown-previewer) diff --git a/README.md b/README.md index cfcbb225..cb6d3634 100644 --- a/README.md +++ b/README.md @@ -1,152 +1,27 @@ -![](http://dulema.sinaapp.com/logo/sl-banner.png) +[![Build Status](https://img.shields.io/badge/semgrep-security-green.svg)](https://semgrep.dev/) -Swift 语言指南 +Swift 开源精选 === -> [@SwiftLanguage](http://weibo.com/swiftlanguage) 更新于 2016-6-6,更新内容详见 [Issue 55](https://github.com/ipader/SwiftGuide/blob/master/weekly/Issue-55.md)。往期更新回顾详见《[收录周报](https://github.com/ipader/SwiftGuide/blob/master/weekly/README.md)》 +  自 2014年 WWDC 发布 Swift 语言以来,[本项目](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md) 一直致力于将主流 Swift 中文学习、开发资源汇集于此,并且尽力紧密地跟踪、甄选优秀 Swift 开源项目,以方便开发者快速获得并使用。考虑 Swift 已经正式发布超过四年半(更无力管理维护海量的 Swift 学习资源),因此,后续本项目将专注于 Swift 开源精选资源方向(项目及应用架构,开发方法和工具)进行维护、更新,内容的呈现或展示形式将着重于思维导图。而相对偏重于 Swift 初学者的旧有文档 [Swift 语言指南](https://github.com/ipader/SwiftGuide/blob/master/README20181213.md) 将不再进一步更新、维护。项目名称变更为 Swift 开源精选,库名由原先的 SwiftGuide 改为 awesome-swift。后续更新、维护的文档如下: -  [这份指南](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md)汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排。对于精选项目及文章,可直接访问《[Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》和《[Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md)》。还有开发者们自己维护的《[开发者、项目、最佳实践](https://github.com/ipader/SwiftGuide/wiki/%E5%BC%80%E5%8F%91%E8%80%85%E3%80%81%E9%A1%B9%E7%9B%AE%E3%80%81%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)》。当然也不能错过那些活跃、优秀的《[开发者个人资料页](https://github.com/ipader/SwiftGuide/wiki/%E5%BC%80%E5%8F%91%E8%80%85%E4%B8%AA%E4%BA%BA%E8%B5%84%E6%96%99%E9%A1%B5)》。 +* Swift 开源项目精选导图 +> 这份文档主要基于微博 @SwiftLanguage 跟踪过活跃于 Swift 语言领域的那些 GitHub 开源项目,顺便也是对于过去几年关注的开源项目进行一次系统化梳理。尝试整理出一份相对结构化且精练的 Swift 开源项目参考知识库,它将主要以思维导图形式呈现。[详见……](2019/OpenSourceforSwift-Classification.md)   +![](2019/OpenSourceforSwift-Classification.png?raw=true) -## 目录 -* [入门指引](#welcome) -* [教程文章](#swift_courses) -* [开源项目](#swift_projects) -* [推荐网站](#recomm_sites) -* [开发工具](#tools) -* [媒体报道](https://github.com/ipader/SwiftGuide/tree/master/archive/news.md) -* [开放平台](https://github.com/ipader/SwiftGuide/tree/master/archive/platforms.md) -* [Apple Watch 指南](https://github.com/ipader/SwiftGuide/blob/master/Apple%20Watch/README.md) +* Swift 开源项目精选 - 应用架构角度 +> 基于[Swift 开源项目精选导图](2019/OpenSourceforSwift-Classification.md),以应用架构角度出发继续甄选并“精分”。筛选、介定方法更偏重于构建应用时,项目在分类中起到的作用权重,可持续性权重,并部分算上开发者影响力。尝试持续地完善一份不那么杂乱无章(也许还比较好用)的 Swift 开源子集。[详见……](2019/OpenSourceforSwift-ApplicationArchitecture.md)  ---- +![](2019/OpenSourceforSwift-ApplicationArchitecture.png?raw=true) -## 入门指引 +* Swift 开源项目团队介绍 +> 介绍活跃于开源社区优秀的项目团队以及参与到 Swift 项目的公司或组织。[详见……](2019/SwiftDevelopmentTeam.md)  -苹果为 [Swift](http://www.apple.com/swift/)([中文介绍](http://www.apple.com/cn/swift/))开发者提供的[官方文档入口](https://developer.apple.com/swift/),包括 [概述](https://developer.apple.com/swift/),[博客](https://developer.apple.com/swift/blog/)([中文镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/Swift%20Blog%20-%20Apple%20Developer))及 [开发资源](https://developer.apple.com/swift/resources/)。其中以下几份文档(Swift 2.1)为入门级必备([iBooks 版](https://itunes.apple.com/us/book-series/swift-programming-series/id888896989?mt=11)): +* Swift 知名开发者介绍 +> 介绍活跃于开源社区知名的开发者及其作品。[详见……](2019/SwiftDevelopers.md)  -* [Swift Programming Language](https://developer.apple.com/swift/)([中文版](http://gg.swiftguide.cn)|[PDF 版](http://wiki.jikexueyuan.com/download/swift/pdf/) By [SwiftGG翻译组](http://weibo.com/swiftguide)) +* 近期分享和收录 Markdown Programming in Swift -* [Start Developing iOS Apps](https://developer.apple.com/swift/resources/) -* [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html)([中文版](https://github.com/CocoaChina-editors/Welcome-to-Swift/blob/master/UsingSwiftwithCocoaandObjective-C%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C.md) By [@CocoaChina](http://weibo.com/cocoachina)) - - *苹果同时也维护着相应 Beta 版(Swift 2.2)文档:[Swift Programming Language](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html),[Start Developing iOS Apps](https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html),[Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html)。* - -学习实践的角度,标准库示例代码 [Swift Standard Library.playground](https://developer.apple.com/sample-code/swift/downloads/Standard-Library.zip) 是很棒的学习伴侣。 - -教程方面,苹果力荐了斯坦福课程 [Stanford University: Developing iOS 8 Apps with Swift](https://itunes.com/StanfordSwift)([中文字幕版](http://open.163.com/special/opencourse/ios8.html) By [@网易公开课](http://weibo.com/163open)) - -除以上所涉及入门级文档,[iOS Developer Library](https://developer.apple.com/library/ios/navigation/) 还为开发者提供了更庞大、系统化的开发文档支持。 - -以下列举了几份已有第三方中文翻译文档: - -* [API Design Guidelines](https://swift.org/documentation/api-design-guidelines/)([中文版](http://swift.gg/2016/05/18/api-design-guidelines/) By [@SwiftGG翻译组](http://weibo.com/u/5174822990)) -* [App Extension Programming Guide](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/index.html)([中译镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/App%20Extension%20Programming%20Guide)) -* [iOS Human Interface Guidelines](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html)([中文版](https://isux.tencent.com/?s=iOS+9+%E4%BA%BA%E6%9C%BA%E7%95%8C%E9%9D%A2%E6%8C%87%E5%8D%97)|[PDF 版](http://ixdc.org/2016/files/ISUX[%E8%AF%91]iOS9%20human%20Interface%20Guideline.pdf) By [@腾讯ISUX](http://weibo.com/txisux)) -* [HomeKit Developer Guide](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/HomeKitDeveloperGuide/Introduction/Introduction.html)([中文版](http://www.cocoachina.com/ios/20150324/11411.html) By [@CocoaChina](http://weibo.com/cocoachina)) - -值得称道的还有:苹果为 [Apple TV Tech Talks](https://developer.apple.com/videos/) 和 [WWDC 2015](https://developer.apple.com/videos/wwdc2015/) 的视频添加简体中文字幕,从而方便中国开发者观看来自官方的权威技术分享。 - -有关于 Swift 开源及跨平台开发,可以关注 [swift.org](https://swift.org/) - -## [教程文章](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md) - - -## [开源项目](https://github.com/ipader/SwiftGuide/blob/master/Featured.md) - - -## 推荐网站 -* **苹果官方** - * [Swift](https://developer.apple.com/swift/):Swift 概述、博客以及开发资源。 - * [swift.org](https://swift.org/):开源后独立出来的 Swift 开源社区。 - * [GitHub:apple](https://github.com/apple):苹果在 GitHub 上的开源项目。 - * [GitHub:apple/swift](https://github.com/apple/swift):swift 语言在 GitHub 上的开源项目。 -* [ksm/SwiftInFlux](https://github.com/ksm/SwiftInFlux):作者(Karol Mazur)将 Apple Developer Forums 上有关 Swift 特性、缺陷及变更讨论分类汇总并更新到 GitHub,具有很好的可读性。从中可以一窥 Swift 缺陷及未来潜在地变化。最关键地是有 Chris Lattner 及核心团队答疑解惑。 -* [raywenderlich.com](https://www.raywenderlich.com/)([中文版](https://www.raywenderlich.com/zh-hans/)):由Ray Wenderlich创建,专注于开发高质量编程指南(近期优质Swift文章及视频教程不断),著名的iOS/OS X博客及开发教程网站,非常适合新手学习。近期第一时间出了[三本 Swift 新书](https://www.raywenderlich.com/74832/three-new-swift-books)。 -* [Natasha The Robot](http://www.natashatherobot.com/): 时髦码农不容错过的 Swift 开发实战教程类网站。为了简化学习复杂性,每一篇文章涵盖技术点单一又独立,配以开发步骤、运行结果以及代码等标准方式教授。难能可贵的是,它往往出品“追剧式”(最新开发特性或API跟进式)教程,实在是开发者必藏精品网站。 -* [NShipster](http://nshipster.com/) ([中译版](http://nshipster.cn/):[@刘镇夫](http://weibo.com/croath),[April Peng](http://nshipster.cn/translators/april-peng/),[@李乐佳](http://weibo.com/leelejia),[@程序员付恒](http://weibo.com/fallhunter) 等翻译):著名开源作者 [Matt Thompson](https://github.com/mattt) 创建的开发技术博客网站,他开发了 [AFNetworking](https://github.com/afnetworking/afnetworking) 网络库,也是非常多产的开源作者。更多了解参考:[《COCOA 潮人 MATTT THOMPSON》](http://www.fallhunter.com/p/10709) By [@程序员付恒](http://weibo.com/fallhunter) -* [jamesonquave.com](http://jamesonquave.com/blog/):移动开发者,优秀个人博客(近期文章同样关注于Swift 语言,写得很优质)。同时他将于8/30发布一本新书[《Developing iOS 8 Apps in Swift》](http://jamesonquave.com/swiftebook/) (Learn To Make Real World iOS 8 Apps)及视频教程。 -* [objc.io](https://www.objc.io/)([中译版 By @onevcat 及其朋友们](http://objccn.io)):"关于 Objective-C 最佳实践和先进技术的期刊。 由 Chris Eidhof, Daniel Eggert 和 Florian Kugler 成立于柏林。我们成立 objc.io 的目的是针对深入的、跟所有 iOS 和 OS X 开发者相关的技术话题创造一个正式的平台。“ -* [iOSCreator](http://www.ioscreator.com/):这类开发指引式教程对于初学者来讲,是直接明了的有效学习资源。推荐者[@荧星诉语](http://weibo.com/qq184675420) -* [iOS Dev Weekly](https://iosdevweekly.com/):收录一周以来 iOS 开发资讯链接,并于周五发布。由 [Dave Verwer](https://twitter.com/daveverwer) 创办,他是一位 iPhone 和 iPad 开发者以及培训师。 -* [Appcoda.com](http://www.appcoda.com/):质量很高的一个 iOS 开发教程站,其中[iOS Programming Course](http://www.appcoda.com/ios-programming-course/)这个专题很适合刚接触 iOS 开发的新手学习。 -* [中文 iOS/Mac 开发博客列表](https://github.com/tangqiaoboy/iOSBlogCN):By [@唐巧_body](http://weibo.com/tangqiaoboy) -* [devtalking.com](http://www.devtalking.com/):高产的中译博客。翻译了官方博客 Swift Blog - Apple Developer,《App Extension Programming Guide》。参与翻译了《Swift Programming Language》等。 -* [SwiftGG](http://swift.gg/):一个走心的 Swift 翻译组,由《The Swift Programming Language》中文版翻译团队原班人马组成, 翻译的文章来源于国外的优秀 Swift 网站和博客,且全部获得作者和网站授权。 -* [Swift Weekly Brief](http://www.jessesquires.com):“这个博客现在每周会将Swift开源中的重要讨论和提交整理成Open source Swift weekly brief,这对一线开发者尽早了解这门语言的动态情报很有帮助。By [@崔康总编](http://weibo.com/cuikang82) ”。来源:[Jesse Squires](http://www.jessesquires.com) -* [Swift Developer Weekly](http://swiftdevweekly.co/):这个网站每周推送最新的技术文章和书本推荐到你的email,由Phil Wright创办。 -* [iosdevtips.co](http://iosdevtips.co):iOS Development Tips - -* **资源合集** -> 以下是其它开发者社区或 Swift 爱好者整理的有关 Swift 语言学习的资源列表。 - - * [SwiftEducation](https://github.com/SwiftEducation):“这是建立在 GitHub 上的一个 Swift 学习资料汇集,包括了有关幻灯和多个练手的应用程序源码。By @极客头条”。的确有不少基础实用的好[教程](https://github.com/SwiftEducation/presentations)。这对于基础学起的同学有福了。 - * [Awesome-Swift-Education](https://github.com/hsavit1/Awesome-Swift-Education):整理地如此美妙的学习资源,实在让人太欢喜了。 - * [iOS Cookies](http://www.ioscookies.com/):分类合理、排序靠谱的 Swift 开源类库集合。 - * [matteocrippa/awesome-swift](https://github.com/matteocrippa/awesome-swift):这个版本的 Swift 资源集合内容丰富,分类也不错。作者:[Matteo Crippa](https://github.com/matteocrippa) - * [适合iOS开发者的 15 大网站推荐](http://www.csdn.net/article/2015-03-04/2824108-ios-developers-sites/1):的确很全、很主流的国外 iOS 开发者网站。 - * [掘金 Swift 版块](http://gold.xitu.io/#/tag/Swift) - * [码农周刊 -《Swift 特刊》](http://weekly.manong.io/issues/33?ref=swift) - * [CocoaChina -《Swift 新手入门汇集帖》](http://www.cocoachina.com/bbs/read.php?tid=204512) - * [CSDN_CODE -《Swift 编程语言资料大合集》](http://code.csdn.net/news/2820075) - * [InfoQ -《学习苹果 Swift 语言的一些在线资源(英文)》](http://www.infoq.com/cn/news/2014/06/apple-swift-learning-resources) - * [刘兰涛 -《Swift 学习资源》](https://github.com/Lax/iOS-Swift-Demos/wiki) By [@懒桃儿吃桃儿](http://weibo.com/u/1653644220) - * [learnswift.tips](http://www.learnswift.tips/):国外主流 Swift 学习资源集合。 - * [Awesome iOS](https://github.com/vsouza/awesome-ios):一个 iOS 的各类优秀的开源项目集合。真不错!可惜Swift开源项目资源不足。 - * [iOS Developer Tips](http://iosdevelopertips.com/):还是有关 iOS 的开发资源及文章合集。 - * [Wolg/awesome-swift](https://github.com/Wolg/awesome-swift):一位俄罗斯朋友分类整理的 Swift 资源列表(有持续更新)。 - * [Aufree/trip-to-iOS](https://github.com/Aufree/trip-to-iOS):显然作者很用心的做了非常深入的整理。它对于开发者拓展学习范围及开发知识面非常有益。 - * [Robin Eggenkamp - Awesome Swift](https://swift.zeef.com/robin.eggenkamp):“一个收集了很多 Swift 开发资源的网站”。 - * [iOS 开发技术前线](https://github.com/hehonghui/iOS-tech-frontier):“一个定期翻译、发布国内外iOS优质的技术、开源库、软件架构设计、测试等文章的开源项目”。主要翻译来源 Ray Wenderlich,App Coda,Medium。来源:[@开发技术前线](http://weibo.com/u/5589212242) - * [11个超棒的 iOS 开发学习网站](http://www.cocoachina.com/ios/20150626/11348.html):还算比较主流的归纳。不过,缺了raywenderlich.com 和 ioscreator.com 这两个重量级教程网站实在是不应该啊。 - ---- -## 开发工具 -### 1. 编程工具 -* [Xcode 下载](https://developer.apple.com/swift/resources/):苹果应用集成开发环境。支持 C/C++, Objective C, Swift 等。不用购买开发者计划,直接下载。 -* [Textmate](http://macromates.com/):Mac OS X 上一个可高度自定义的编辑器,尤其在我想做出一个快速改变但又不想等待 Xcode 加载的时候。该工具目前已经[开源](https://github.com/textmate/textmate) -* [Mou](http://mouapp.com/):OS X 上一款 Markdown 的编辑器。非常适用于编写自述文件、变更日志以及其他方面的内容。作者:[罗晨](http://chenluois.com/) -* [Sublime Text ($)](http://www.sublimetext.com/):Mac OS X 上另一款非常受欢迎的轻量级,可高度自定义的编辑器。 -* [RunSwift](http://www.runswiftlang.com/):正在犹豫是否入手苹果电脑开始一段 Swift 编程旅程的同学们,或仅仅为了试验一段简单 Swift 代码又懒得打开 Xcode,可以试试这款 Web 版 Swift 编译环境 RunSwift。 -* [InfinitApps - Bezel](http://infinitapps.com/bezel/):“嫌 Xcode 6 目前提供的 Watch 模拟器不够直观?Bezel 是一个用于视觉预览 WatchKit 所开发程序效果的小工具,前提是你安装了 xScope 软件(Mac端)或 xScopeMirror(iPhone端)。 By [@WatchKit开发](http://weibo.com/twios)” -* [Markdown -> Playground](https://github.com/jas/playground):该开源项目可将内含有 Swift 代码的 Markdown 自动转换为 Xcode Playgrounds 文件。喜欢用 Markdown 编辑的同学很激动吧。P.S. 这款工具写于 NodeJS,原因作者有交待。 -* [iOS/Mac Autolayout Constraints](https://autolayoutconstraints.com):这个工具不错,很直观,布局时可以省不少工夫。推荐者:[@荧星诉语](http://weibo.com/qq184675420) -* [在线生成 AppStore 审核用截图](https://appscreens.io/yK7cLuBNij):便捷的生产力工具。免费,易操作,可自定义。 -* [IBM Swift Sandbox](https://swiftlang.ng.bluemix.net/#/repl):IBM的在线Swift网站,需要翻墙。 -* [SwiftStub](http://swiftstub.com/):另外一个Swift在线练习网站。 - -### 2. 代码管理 -* [GitHub](https://github.com/):声望日盛的资源分享之地。 -* [GitHub for Mac](https://desktop.github.com/):一个设计的非常美观的 git 客户端,不能取代你从命令行获得的所有功能,但使用起来非常简单。 -* [GitCafe](https://gitcafe.com/):GitCafe is a source code hosting service based on version control system Git。国内的代码托管服务,基于 Git,值得一提的是最近也推出了和 GitHub Pages 类似的服务 Gitcafe Pages。因为是在国内,所以相比较 GitHub 有速度优势,在网络环境差的情况下也许可以作为 GitHub 的备用。 -* [Bitbucket](https://bitbucket.org/):国外的代码托管服务,不同于 GitHub 的是,Bitbucket 可以免费建立 private 项目。 -* [Git](https://git-scm.com/):分布式版本控制系统和源码管理系统,其优点是:快和简单易用。对于新手来说,可在此查看免费电子书籍。 -* [SourceTree](https://www.sourcetreeapp.com/):A free Git & Mercurial client for Windows or Mac.免费的Git和Mercurial客户端,当然也可以配合Bitbucket使用。 - -### 3. Xcode 插件 -* [CocoaPods](http://beta.cocoapods.org/):第三方库的管理利器,允许你简单地把第三方库整合进自己的应用中。对我个人来说,我基本上每个项目都使用 CocoaPods。 -* [CocoaPods Xcode Plugin](https://github.com/kattrali/cocoapods-xcode-plugin):一款 Xcode 插件,允许你直接从 Xcode 管理 CocoaPod 依赖。 -* [onevcat/VVDocumenter-Xcode](https://github.com/onevcat/VVDocumenter-Xcode):快捷注释 Xcode 插件。By [@onevcat](http://weibo.com/onevcat) -* [ColorSense](https://github.com/omz/ColorSense-for-Xcode):一款显示颜色数值的插件,还可以直接通过系统的ColorPicker来自动生成对应颜色代码 -* [Xcode 优秀插件整理](https://github.com/sopig/DeepIniOS):持续保持整理更新的 Xcode 插件整理 By [@ddapps](https://github.com/ddapps) -* [CodeEagle/SwiftCodeSnippets](https://github.com/CodeEagle/SwiftCodeSnippets):自动下载指定 Xcode Snippet 源的 Xcode Plugin。项目缺省提供 Snippet 代码源 [burczyk/XcodeSwiftSnippets](https://github.com/burczyk/XcodeSwiftSnippets/tree/master/plist) 。 -* [realm/SwiftLint](https://github.com/realm/SwiftLint):Realm 采用 Swift 编写的基于 GitHub's Swift Style Guide 规则的检查工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。 -* [XCode 升级后插件失效的原理与修复办法](http://joeshang.github.io/2015/04/10/fix-xcode-upgrade-plugin-invalid/):由一条命令引发的分析文章。[@_TongJZ](http://weibo.com/u/2068840121) -* [feinstruktur/CoPilot](https://github.com/feinstruktur/CoPilot):通过此插件,Xcode 可以协同编程了(采用 WebSocket 通讯)。如此强大的“黑工具”,不爱它能行吗。[演示视频](https://vimeo.com/128713880) -* [Carthage](https://github.com/Carthage/Carthage):新兴起的去中心化的依赖管理器,目标是用最简单的方式来管理Cocoa第三方框架。优势很明显,但是也有不足,看后面的发展吧。 - -### 4. 管理工具 -* [swiftenv](https://github.com/kylef/swiftenv):Swift 版本管理器。类似 rvm(Ruby), nvm(Node.js)。 -* [HomeBrew](http://brew.sh/index_zh-cn.html):OS X 上非常出色的包管理工具。 -* [Transmit ($)](http://panic.com/transmit/):一个Mac OS X 上 FTP 客户端,有着非常漂亮的用户界面和有用的功能。 - -### 5. 调试工具 -* [mattt/fuckingclangwarnings.com](http://fuckingclangwarnings.com/):警告与语义对照表。以后再也不用为 Xcode 各种警告纠结啦!By [@foogry](http://weibo.com/foogry) - -### 6. 设计工具 -* [sketch](http://www.sketchapp.com/):更适合开发应用的矢量设计工具。通过插件还支持与代码协同工作。推荐书籍:[Learn Sketch 3](https://designcode.io/sketch) -* [PaintCode](http://www.paintcodeapp.com/) -:PaintCode是Apple Designer入门APP开发最合适的辅助工具之一,她可以把你绘制的矢量UI自动转化为适用于iOS/OS X的Objective-C代码。 - -## [媒体报道](https://github.com/ipader/SwiftGuide/tree/master/archive/news.md) -## [开放平台](https://github.com/ipader/SwiftGuide/tree/master/archive/platforms.md) -## [Apple Watch 指南](https://github.com/ipader/SwiftGuide/blob/master/Apple%20Watch/README.md) +![](2021/MarkdownProgramminginSwift.png?raw=true) +推荐:VPS 个人一直坚持使用 [Vultr](https://www.vultr.com/?ref=7229348) 。 diff --git a/README20181213.md b/README20181213.md new file mode 100644 index 00000000..b41da76f --- /dev/null +++ b/README20181213.md @@ -0,0 +1,151 @@ +# 2018/12/13 起不再维护 +--- +Swift 语言指南 +=== +  [这份指南](https://github.com/ipader/SwiftGuide/blob/master/2014%20letter.md)汇集了 Swift 语言主流学习资源,并以开发者的视角整理编排。对于精选项目及文章,可直接访问《[Swift 项目精选](https://github.com/ipader/SwiftGuide/blob/master/Featured.md)》和《[Swift 文章精选](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md)》。还有开发者们自己维护的《[开发者、项目、最佳实践](https://github.com/ipader/SwiftGuide/wiki/%E5%BC%80%E5%8F%91%E8%80%85%E3%80%81%E9%A1%B9%E7%9B%AE%E3%80%81%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)》。当然也不能错过那些活跃、优秀的《[开发者个人资料页](https://github.com/ipader/SwiftGuide/wiki/%E5%BC%80%E5%8F%91%E8%80%85%E4%B8%AA%E4%BA%BA%E8%B5%84%E6%96%99%E9%A1%B5)》。往期《[收录周报](https://github.com/ipader/SwiftGuide/blob/master/weekly/README.md)》回顾。 + + +## 目录 +* [入门指引](#welcome) +* [教程文章](#swift_courses) +* [开源项目](#swift_projects) +* [推荐网站](#recomm_sites) +* [开发工具](#tools) +* [媒体报道](https://github.com/ipader/SwiftGuide/tree/master/archive/news.md) +* [开放平台](https://github.com/ipader/SwiftGuide/tree/master/archive/platforms.md) +* [Apple Watch 指南](https://github.com/ipader/SwiftGuide/blob/master/Apple%20Watch/README.md) + +--- + +## 入门指引 + +苹果为 [Swift](http://www.apple.com/swift/)([中文介绍](http://www.apple.com/cn/swift/))开发者提供的 [官方文档入口](https://developer.apple.com/swift/),包括 [概述](https://developer.apple.com/swift/),[博客](https://developer.apple.com/swift/blog/)([中文镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/Swift%20Blog%20-%20Apple%20Developer))及 [开发资源](https://developer.apple.com/swift/resources/)。其中以下几份文档为入门级必备([iBooks 版](https://itunes.apple.com/us/book-series/swift-programming-series/id888896989?mt=11)): + +* [Swift Programming Language](https://developer.apple.com/swift/)([4.0 中文版](https://www.cnswift.org/) by [@lomyrjo](https://twitter.com/lomyrjo) | [3.0 中文版](http://gg.swiftguide.cn),[3.0 中文版(PDF)](http://wiki.jikexueyuan.com/download/swift/pdf/) By [SwiftGG](http://weibo.com/swiftguide)) +* [Start Developing iOS Apps](https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html) +* [Using Swift with Cocoa and Objective-C](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html)([中文版](https://github.com/CocoaChina-editors/Welcome-to-Swift/blob/master/UsingSwiftwithCocoaandObjective-C%E4%B8%AD%E6%96%87%E6%89%8B%E5%86%8C.md) By [@CocoaChina](http://weibo.com/cocoachina)) + +学习实践的角度,标准库示例代码 [Swift Standard Library.playground](https://developer.apple.com/sample-code/swift/downloads/Standard-Library.zip) 是很棒的学习伴侣。 + +教程方面,苹果力荐了斯坦福课程 [Stanford University: Developing iOS 11 Apps with Swift](https://itunes.apple.com/cn/podcast/developing-ios-11-apps-with-swift)([中文字幕](https://github.com/ApolloZhu/Developing-iOS-11-Apps-with-Swift) By [ApolloZhiyu](https://weibo.com/u/2607042732)) + +除以上所涉及入门级文档,[iOS Developer Library](https://developer.apple.com/library/ios/navigation/) 还为开发者提供了更庞大、系统化的开发文档支持。 + +以下列举了几份已有第三方中文翻译文档: + +* [API Design Guidelines](https://swift.org/documentation/api-design-guidelines/)([中文版](https://www.jianshu.com/p/b11dd44f2848) By [fever105](https://weibo.com/fever105)) +* [App Extension Programming Guide](https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/index.html)([中译镜像](https://github.com/ipader/SwiftGuide/tree/master/mirror/App%20Extension%20Programming%20Guide)) +* [Human Interface Guidelines](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/index.html)([中文版(一](http://www.ui.cn/detail/283944.html)、[二)](http://www.ui.cn/detail/284044.html) By [奔跑的蓝大喵](),[iPhone X](https://zhuanlan.zhihu.com/p/29327102) By [饿了么UED](https://weibo.com/eued)) +* [Auto Layout Guide](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/index.html#//apple_ref/doc/uid/TP40010853)([中文版](https://www.jianshu.com/nb/16482665) By [fever105](https://weibo.com/fever105)) +* [HomeKit Developer Guide](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/HomeKitDeveloperGuide/Introduction/Introduction.html)([中文版](http://www.cocoachina.com/ios/20150324/11411.html) By [@CocoaChina](http://weibo.com/cocoachina)) + +值得称道的还有:苹果为开发者提供的[开发视频](https://developer.apple.com/videos/)(包括 WWDC session,可选中文字幕),方便开发者观看来自官方的权威技术分享。 + +有关于 Swift 开源及跨平台开发,可以关注 [swift.org](https://swift.org/) + +## [教程文章](https://github.com/ipader/SwiftGuide/blob/master/Featured-Articles.md) + + +## [开源项目](https://github.com/ipader/SwiftGuide/blob/master/Featured.md) +>那些仍然活跃的 Swift 开源项目整理,分类规则尽可能遵循苹果开发者文档(对应关系仅做参考);筛选规则主要参考过去四年多来微博分享,综合了库的实用性、稳定性、star/fork,以及活跃度等因素。整理后的开源项目数量目前为 400 多个项目,并以图片及 [myMindNode 浏览](https://xiaozhuanlan.com/topic/5271086934) 两种方式呈现。以下是站在应用架构角度全新整理的其中一部分。望大家多多鼓励、支持,谢谢。🙏 + +![](https://raw.githubusercontent.com/ipader/SwiftGuide/master/Open%20Source%20for%20Swift%20-%20App%20Architecture.png) + + + +## 推荐网站 +* **苹果官方** + * [Swift](https://developer.apple.com/swift/):Swift 概述、博客以及开发资源。 + * [swift.org](https://swift.org/):开源后独立出来的 Swift 开源社区。 + * [GitHub:apple](https://github.com/apple):苹果在 GitHub 上的开源项目。 + * [GitHub:apple/swift](https://github.com/apple/swift):swift 语言在 GitHub 上的开源项目。 +* [ksm/SwiftInFlux](https://github.com/ksm/SwiftInFlux):作者(Karol Mazur)将 Apple Developer Forums 上有关 Swift 特性、缺陷及变更讨论分类汇总并更新到 GitHub,具有很好的可读性。从中可以一窥 Swift 缺陷及未来潜在地变化。最关键地是有 Chris Lattner 及核心团队答疑解惑。 +* [raywenderlich.com](https://www.raywenderlich.com/)([中文版](https://www.raywenderlich.com/zh-hans/)):由Ray Wenderlich创建,专注于开发高质量编程指南(近期优质Swift文章及视频教程不断),著名的iOS/OS X博客及开发教程网站,非常适合新手学习。近期第一时间出了[三本 Swift 新书](https://www.raywenderlich.com/74832/three-new-swift-books)。 +* [Natasha The Robot](http://www.natashatherobot.com/): 时髦码农不容错过的 Swift 开发实战教程类网站。为了简化学习复杂性,每一篇文章涵盖技术点单一又独立,配以开发步骤、运行结果以及代码等标准方式教授。难能可贵的是,它往往出品“追剧式”(最新开发特性或API跟进式)教程,实在是开发者必藏精品网站。 +* [NShipster](http://nshipster.com/) ([中译版](http://nshipster.cn/):[@刘镇夫](http://weibo.com/croath),[April Peng](http://nshipster.cn/translators/april-peng/),[@李乐佳](http://weibo.com/leelejia),[@程序员付恒](http://weibo.com/fallhunter) 等翻译):著名开源作者 [Matt Thompson](https://github.com/mattt) 创建的开发技术博客网站,他开发了 [AFNetworking](https://github.com/afnetworking/afnetworking) 网络库,也是非常多产的开源作者。更多了解参考:[《COCOA 潮人 MATTT THOMPSON》](http://www.fallhunter.com/p/10709) By [@程序员付恒](http://weibo.com/fallhunter) +* [jamesonquave.com](http://jamesonquave.com/blog/):移动开发者,优秀个人博客(近期文章同样关注于Swift 语言,写得很优质)。同时他将于8/30发布一本新书[《Developing iOS 8 Apps in Swift》](http://jamesonquave.com/swiftebook/) (Learn To Make Real World iOS 8 Apps)及视频教程。 +* [objc.io](https://www.objc.io/)([中译版 By @onevcat 及其朋友们](http://objccn.io)):"关于 Objective-C 最佳实践和先进技术的期刊。 由 Chris Eidhof, Daniel Eggert 和 Florian Kugler 成立于柏林。我们成立 objc.io 的目的是针对深入的、跟所有 iOS 和 OS X 开发者相关的技术话题创造一个正式的平台。“ +* [iOSCreator](http://www.ioscreator.com/):这类开发指引式教程对于初学者来讲,是直接明了的有效学习资源。推荐者[@荧星诉语](http://weibo.com/qq184675420) +* [iOS Dev Weekly](https://iosdevweekly.com/):收录一周以来 iOS 开发资讯链接,并于周五发布。由 [Dave Verwer](https://twitter.com/daveverwer) 创办,他是一位 iPhone 和 iPad 开发者以及培训师。 +* [Appcoda.com](http://www.appcoda.com/):质量很高的一个 iOS 开发教程站,其中[iOS Programming Course](http://www.appcoda.com/ios-programming-course/)这个专题很适合刚接触 iOS 开发的新手学习。 +* [中文 iOS/Mac 开发博客列表](https://github.com/tangqiaoboy/iOSBlogCN):By [@唐巧_body](http://weibo.com/tangqiaoboy) +* [devtalking.com](http://www.devtalking.com/):高产的中译博客。翻译了官方博客 Swift Blog - Apple Developer,《App Extension Programming Guide》。参与翻译了《Swift Programming Language》等。 +* [SwiftGG](http://swift.gg/):一个走心的 Swift 翻译组,由《The Swift Programming Language》中文版翻译团队原班人马组成, 翻译的文章来源于国外的优秀 Swift 网站和博客,且全部获得作者和网站授权。 +* [Swift Weekly Brief](http://www.jessesquires.com):“这个博客现在每周会将Swift开源中的重要讨论和提交整理成Open source Swift weekly brief,这对一线开发者尽早了解这门语言的动态情报很有帮助。By [@崔康总编](http://weibo.com/cuikang82) ”。来源:[Jesse Squires](http://www.jessesquires.com) +* [Swift Developer Weekly](http://swiftdevweekly.co/):这个网站每周推送最新的技术文章和书本推荐到你的email,由Phil Wright创办。 +* [iosdevtips.co](http://iosdevtips.co):iOS Development Tips + +* **资源合集** + > 以下是其它开发者社区或 Swift 爱好者整理的有关 Swift 语言学习的资源列表。 + + * [SwiftEducation](https://github.com/SwiftEducation):“这是建立在 GitHub 上的一个 Swift 学习资料汇集,包括了有关幻灯和多个练手的应用程序源码。By @极客头条”。的确有不少基础实用的好[教程](https://github.com/SwiftEducation/presentations)。这对于基础学起的同学有福了。 + * [Awesome-Swift-Education](https://github.com/hsavit1/Awesome-Swift-Education):整理地如此美妙的学习资源,实在让人太欢喜了。 + * [iOS Cookies](http://www.ioscookies.com/):分类合理、排序靠谱的 Swift 开源类库集合。 + * [matteocrippa/awesome-swift](https://github.com/matteocrippa/awesome-swift):这个版本的 Swift 资源集合内容丰富,分类也不错。作者:[Matteo Crippa](https://github.com/matteocrippa) + * [适合iOS开发者的 15 大网站推荐](http://www.csdn.net/article/2015-03-04/2824108-ios-developers-sites/1):的确很全、很主流的国外 iOS 开发者网站。 + * [掘金 Swift 版块](http://gold.xitu.io/#/tag/Swift) + * [码农周刊 -《Swift 特刊》](http://weekly.manong.io/issues/33?ref=swift) + * [CocoaChina -《Swift 新手入门汇集帖》](http://www.cocoachina.com/bbs/read.php?tid=204512) + * [CSDN_CODE -《Swift 编程语言资料大合集》](http://code.csdn.net/news/2820075) + * [InfoQ -《学习苹果 Swift 语言的一些在线资源(英文)》](http://www.infoq.com/cn/news/2014/06/apple-swift-learning-resources) + * [刘兰涛 -《Swift 学习资源》](https://github.com/Lax/iOS-Swift-Demos/wiki) By [@懒桃儿吃桃儿](http://weibo.com/u/1653644220) + * [learnswift.tips](http://www.learnswift.tips/):国外主流 Swift 学习资源集合。 + * [Awesome iOS](https://github.com/vsouza/awesome-ios):一个 iOS 的各类优秀的开源项目集合。真不错!可惜Swift开源项目资源不足。 + * [iOS Developer Tips](http://iosdevelopertips.com/):还是有关 iOS 的开发资源及文章合集。 + * [Wolg/awesome-swift](https://github.com/Wolg/awesome-swift):一位俄罗斯朋友分类整理的 Swift 资源列表(有持续更新)。 + * [Aufree/trip-to-iOS](https://github.com/Aufree/trip-to-iOS):显然作者很用心的做了非常深入的整理。它对于开发者拓展学习范围及开发知识面非常有益。 + * [Robin Eggenkamp - Awesome Swift](https://swift.zeef.com/robin.eggenkamp):“一个收集了很多 Swift 开发资源的网站”。 + * [iOS 开发技术前线](https://github.com/hehonghui/iOS-tech-frontier):“一个定期翻译、发布国内外iOS优质的技术、开源库、软件架构设计、测试等文章的开源项目”。主要翻译来源 Ray Wenderlich,App Coda,Medium。来源:[@开发技术前线](http://weibo.com/u/5589212242) + * [11个超棒的 iOS 开发学习网站](http://www.cocoachina.com/ios/20150626/11348.html):还算比较主流的归纳。不过,缺了raywenderlich.com 和 ioscreator.com 这两个重量级教程网站实在是不应该啊。 + * [30天30个Swift小程序](https://github.com/nimomeng/30-swift-projects-in-30-days):一位开发者用30天写的30个小app,完全用Swift3.2编写,适合新手参考联系。中文介绍[在这里](http://www.jianshu.com/p/c6ae28964ad5) + +--- +## 开发工具 +### 1. 编程工具 +* [Xcode 下载](https://developer.apple.com/swift/resources/):苹果应用集成开发环境。支持 C/C++, Objective C, Swift 等。不用购买开发者计划,直接下载。 +* [Textmate](http://macromates.com/):Mac OS X 上一个可高度自定义的编辑器,尤其在我想做出一个快速改变但又不想等待 Xcode 加载的时候。该工具目前已经[开源](https://github.com/textmate/textmate) +* [Mou](http://mouapp.com/):OS X 上一款 Markdown 的编辑器。非常适用于编写自述文件、变更日志以及其他方面的内容。作者:[罗晨](http://chenluois.com/) +* [Sublime Text ($)](http://www.sublimetext.com/):Mac OS X 上另一款非常受欢迎的轻量级,可高度自定义的编辑器。 +* [RunSwift](http://www.runswiftlang.com/):正在犹豫是否入手苹果电脑开始一段 Swift 编程旅程的同学们,或仅仅为了试验一段简单 Swift 代码又懒得打开 Xcode,可以试试这款 Web 版 Swift 编译环境 RunSwift。 +* [InfinitApps - Bezel](http://infinitapps.com/bezel/):“嫌 Xcode 6 目前提供的 Watch 模拟器不够直观?Bezel 是一个用于视觉预览 WatchKit 所开发程序效果的小工具,前提是你安装了 xScope 软件(Mac端)或 xScopeMirror(iPhone端)。 By [@WatchKit开发](http://weibo.com/twios)” +* [Markdown -> Playground](https://github.com/jas/playground):该开源项目可将内含有 Swift 代码的 Markdown 自动转换为 Xcode Playgrounds 文件。喜欢用 Markdown 编辑的同学很激动吧。P.S. 这款工具写于 NodeJS,原因作者有交待。 +* [iOS/Mac Autolayout Constraints](https://autolayoutconstraints.com):这个工具不错,很直观,布局时可以省不少工夫。推荐者:[@荧星诉语](http://weibo.com/qq184675420) +* [IBM Swift Sandbox](https://swiftlang.ng.bluemix.net/#/repl):IBM的在线Swift网站,需要翻墙。 +* [SwiftStub](http://swiftstub.com/):另外一个Swift在线练习网站。 + +### 2. 代码管理 +* [GitHub](https://github.com/):声望日盛的资源分享之地。 +* [GitHub for Mac](https://desktop.github.com/):一个设计的非常美观的 git 客户端,不能取代你从命令行获得的所有功能,但使用起来非常简单。 +* [GitCafe](https://gitcafe.com/):GitCafe is a source code hosting service based on version control system Git。国内的代码托管服务,基于 Git,值得一提的是最近也推出了和 GitHub Pages 类似的服务 Gitcafe Pages。因为是在国内,所以相比较 GitHub 有速度优势,在网络环境差的情况下也许可以作为 GitHub 的备用。 +* [Bitbucket](https://bitbucket.org/):国外的代码托管服务,不同于 GitHub 的是,Bitbucket 可以免费建立 private 项目。 +* [Git](https://git-scm.com/):分布式版本控制系统和源码管理系统,其优点是:快和简单易用。对于新手来说,可在此查看免费电子书籍。 +* [SourceTree](https://www.sourcetreeapp.com/):A free Git & Mercurial client for Windows or Mac.免费的Git和Mercurial客户端,当然也可以配合Bitbucket使用。 + +### 3. Xcode 插件 +* [CocoaPods](http://beta.cocoapods.org/):第三方库的管理利器,允许你简单地把第三方库整合进自己的应用中。对我个人来说,我基本上每个项目都使用 CocoaPods。 +* [CocoaPods Xcode Plugin](https://github.com/kattrali/cocoapods-xcode-plugin):一款 Xcode 插件,允许你直接从 Xcode 管理 CocoaPod 依赖。 +* [onevcat/VVDocumenter-Xcode](https://github.com/onevcat/VVDocumenter-Xcode):快捷注释 Xcode 插件。By [@onevcat](http://weibo.com/onevcat) +* [ColorSense](https://github.com/omz/ColorSense-for-Xcode):一款显示颜色数值的插件,还可以直接通过系统的ColorPicker来自动生成对应颜色代码 +* [Xcode 优秀插件整理](https://github.com/sopig/DeepIniOS):持续保持整理更新的 Xcode 插件整理 By [@ddapps](https://github.com/ddapps) +* [CodeEagle/SwiftCodeSnippets](https://github.com/CodeEagle/SwiftCodeSnippets):自动下载指定 Xcode Snippet 源的 Xcode Plugin。项目缺省提供 Snippet 代码源 [burczyk/XcodeSwiftSnippets](https://github.com/burczyk/XcodeSwiftSnippets/tree/master/plist) 。 +* [realm/SwiftLint](https://github.com/realm/SwiftLint):Realm 采用 Swift 编写的基于 GitHub's Swift Style Guide 规则的检查工具。除了命令行运行方式,也提供集成 Xcode 的方法。对于新团队,这样的工具可以自动约束大家遵循编程规范。 +* [XCode 升级后插件失效的原理与修复办法](http://joeshang.github.io/2015/04/10/fix-xcode-upgrade-plugin-invalid/):由一条命令引发的分析文章。[@_TongJZ](http://weibo.com/u/2068840121) +* [feinstruktur/CoPilot](https://github.com/feinstruktur/CoPilot):通过此插件,Xcode 可以协同编程了(采用 WebSocket 通讯)。如此强大的“黑工具”,不爱它能行吗。[演示视频](https://vimeo.com/128713880) +* [Carthage](https://github.com/Carthage/Carthage):新兴起的去中心化的依赖管理器,目标是用最简单的方式来管理Cocoa第三方框架。优势很明显,但是也有不足,看后面的发展吧。 + +### 4. 管理工具 +* [swiftenv](https://github.com/kylef/swiftenv):Swift 版本管理器。类似 rvm(Ruby), nvm(Node.js)。 +* [HomeBrew](http://brew.sh/index_zh-cn.html):OS X 上非常出色的包管理工具。 +* [Transmit ($)](http://panic.com/transmit/):一个Mac OS X 上 FTP 客户端,有着非常漂亮的用户界面和有用的功能。 + +### 5. 调试工具 +* [mattt/fuckingclangwarnings.com](http://fuckingclangwarnings.com/):警告与语义对照表。以后再也不用为 Xcode 各种警告纠结啦!By [@foogry](http://weibo.com/foogry) + +### 6. 设计工具 +* [sketch](http://www.sketchapp.com/):更适合开发应用的矢量设计工具。通过插件还支持与代码协同工作。推荐书籍:[Learn Sketch 3](https://designcode.io/sketch) +* [PaintCode](http://www.paintcodeapp.com/) +:PaintCode是Apple Designer入门APP开发最合适的辅助工具之一,她可以把你绘制的矢量UI自动转化为适用于iOS/OS X的Objective-C代码。 + +## [媒体报道](https://github.com/ipader/SwiftGuide/tree/master/archive/news.md) +## [开放平台](https://github.com/ipader/SwiftGuide/tree/master/archive/platforms.md) +## [Apple Watch 指南](https://github.com/ipader/SwiftGuide/blob/master/Apple%20Watch/README.md) diff --git a/archive/v2ray-linux-64.zip b/archive/v2ray-linux-64.zip new file mode 100644 index 00000000..1a5b2fde Binary files /dev/null and b/archive/v2ray-linux-64.zip differ diff --git a/open_deep_researcher.ipynb b/open_deep_researcher.ipynb new file mode 100644 index 00000000..62b88876 --- /dev/null +++ b/open_deep_researcher.ipynb @@ -0,0 +1,430 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "code", + "source": [ + "!pip install nest_asyncio\n", + "import nest_asyncio\n", + "nest_asyncio.apply()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "y7cTpP9rDZW-", + "outputId": "7d1689dc-8af6-4ce4-cd53-f5d3c0765582" + }, + "execution_count": 1, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: nest_asyncio in /usr/local/lib/python3.11/dist-packages (1.6.0)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "46Q5XpapDJZT" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "GJTo96a7DGUz", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "22fef2d5-1bb9-4d1f-a5fc-289a919af3a7" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Enter your research query/topic: DeepSeek R1 推理能力排名\n", + "Enter maximum number of iterations (default 10): \n", + "OpenRouter API error: 401 - {\"error\":{\"message\":\"No auth credentials found\",\"code\":401}}\n", + "No search queries were generated by the LLM. Exiting.\n" + ] + } + ], + "source": [ + "import asyncio\n", + "import aiohttp\n", + "import json\n", + "\n", + "# =======================\n", + "# Configuration Constants\n", + "# =======================\n", + "OPENROUTER_API_KEY = \"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\" # Replace with your OpenRouter API key\n", + "SERPAPI_API_KEY = \"accdd5cb9df68cb4ca9df50c584be832d7599a4ce352ceb28053b0b8016b33da\" # Replace with your SERPAPI API key\n", + "JINA_API_KEY = \"jina_2f0d891431594d669247cfd9ecc97d74OlR34JrvYP6rF-3MIs00BleNVlps\" # Replace with your JINA API key\n", + "\n", + "# Endpoints\n", + "OPENROUTER_URL = \"https://openrouter.ai/api/v1/chat/completions/"\n", + "SERPAPI_URL = \"https://serpapi.com/search/"\n", + "JINA_BASE_URL = \"https://r.jina.ai//"\n", + "\n", + "# Default LLM model (can be changed if desired)\n", + "DEFAULT_MODEL = \"deepseek/deepseek-r1:free\"\n", + "\n", + "\n", + "# ============================\n", + "# Asynchronous Helper Functions\n", + "# ============================\n", + "\n", + "async def call_openrouter_async(session, messages, model=DEFAULT_MODEL):\n", + " \"\"\"\n", + " Asynchronously call the OpenRouter chat completion API with the provided messages.\n", + " Returns the content of the assistant’s reply.\n", + " \"\"\"\n", + " headers = {\n", + " \"Authorization\": f\"Bearer {OPENROUTER_API_KEY}\",\n", + " \"X-Title\": \"OpenDeepResearcher, by Matt Shumer\",\n", + " \"Content-Type\": \"application/json\"\n", + " }\n", + " payload = {\n", + " \"model\": model,\n", + " \"messages\": messages\n", + " }\n", + " try:\n", + " async with session.post(OPENROUTER_URL, headers=headers, json=payload) as resp:\n", + " if resp.status == 200:\n", + " result = await resp.json()\n", + " try:\n", + " return result['choices'][0]['message']['content']\n", + " except (KeyError, IndexError) as e:\n", + " print(\"Unexpected OpenRouter response structure:\", result)\n", + " return None\n", + " else:\n", + " text = await resp.text()\n", + " print(f\"OpenRouter API error: {resp.status} - {text}\")\n", + " return None\n", + " except Exception as e:\n", + " print(\"Error calling OpenRouter:\", e)\n", + " return None\n", + "\n", + "\n", + "async def generate_search_queries_async(session, user_query):\n", + " \"\"\"\n", + " Ask the LLM to produce up to four precise search queries (in Python list format)\n", + " based on the user’s query.\n", + " \"\"\"\n", + " prompt = (\n", + " \"You are an expert research assistant. Given the user's query, generate up to four distinct, \"\n", + " \"precise search queries that would help gather comprehensive information on the topic. \"\n", + " \"Return only a Python list of strings, for example: ['query1', 'query2', 'query3'].\"\n", + " )\n", + " messages = [\n", + " {\"role\": \"system\", \"content\": \"You are a helpful and precise research assistant.\"},\n", + " {\"role\": \"user\", \"content\": f\"User Query: {user_query}\\n\\n{prompt}\"}\n", + " ]\n", + " response = await call_openrouter_async(session, messages)\n", + " if response:\n", + " try:\n", + " # Expect exactly a Python list (e.g., \"['query1', 'query2']\")\n", + " search_queries = eval(response)\n", + " if isinstance(search_queries, list):\n", + " return search_queries\n", + " else:\n", + " print(\"LLM did not return a list. Response:\", response)\n", + " return []\n", + " except Exception as e:\n", + " print(\"Error parsing search queries:\", e, \"\\nResponse:\", response)\n", + " return []\n", + " return []\n", + "\n", + "\n", + "async def perform_search_async(session, query):\n", + " \"\"\"\n", + " Asynchronously perform a Google search using SERPAPI for the given query.\n", + " Returns a list of result URLs.\n", + " \"\"\"\n", + " params = {\n", + " \"q\": query,\n", + " \"api_key\": SERPAPI_API_KEY,\n", + " \"engine\": \"google\"\n", + " }\n", + " try:\n", + " async with session.get(SERPAPI_URL, params=params) as resp:\n", + " if resp.status == 200:\n", + " results = await resp.json()\n", + " if \"organic_results\" in results:\n", + " links = [item.get(\"link\") for item in results[\"organic_results\"] if \"link\" in item]\n", + " return links\n", + " else:\n", + " print(\"No organic results in SERPAPI response.\")\n", + " return []\n", + " else:\n", + " text = await resp.text()\n", + " print(f\"SERPAPI error: {resp.status} - {text}\")\n", + " return []\n", + " except Exception as e:\n", + " print(\"Error performing SERPAPI search:\", e)\n", + " return []\n", + "\n", + "\n", + "async def fetch_webpage_text_async(session, url):\n", + " \"\"\"\n", + " Asynchronously retrieve the text content of a webpage using Jina.\n", + " The URL is appended to the Jina endpoint.\n", + " \"\"\"\n", + " full_url = f\"{JINA_BASE_URL}{url}\"\n", + " headers = {\n", + " \"Authorization\": f\"Bearer {JINA_API_KEY}\"\n", + " }\n", + " try:\n", + " async with session.get(full_url, headers=headers) as resp:\n", + " if resp.status == 200:\n", + " return await resp.text()\n", + " else:\n", + " text = await resp.text()\n", + " print(f\"Jina fetch error for {url}: {resp.status} - {text}\")\n", + " return \"\"\n", + " except Exception as e:\n", + " print(\"Error fetching webpage text with Jina:\", e)\n", + " return \"\"\n", + "\n", + "\n", + "async def is_page_useful_async(session, user_query, page_text):\n", + " \"\"\"\n", + " Ask the LLM if the provided webpage content is useful for answering the user's query.\n", + " The LLM must reply with exactly \"Yes\" or \"No\".\n", + " \"\"\"\n", + " prompt = (\n", + " \"You are a critical research evaluator. Given the user's query and the content of a webpage, \"\n", + " \"determine if the webpage contains information relevant and useful for addressing the query. \"\n", + " \"Respond with exactly one word: 'Yes' if the page is useful, or 'No' if it is not. Do not include any extra text.\"\n", + " )\n", + " messages = [\n", + " {\"role\": \"system\", \"content\": \"You are a strict and concise evaluator of research relevance.\"},\n", + " {\"role\": \"user\", \"content\": f\"User Query: {user_query}\\n\\nWebpage Content (first 20000 characters):\\n{page_text[:20000]}\\n\\n{prompt}\"}\n", + " ]\n", + " response = await call_openrouter_async(session, messages)\n", + " if response:\n", + " answer = response.strip()\n", + " if answer in [\"Yes\", \"No\"]:\n", + " return answer\n", + " else:\n", + " # Fallback: try to extract Yes/No from the response.\n", + " if \"Yes\" in answer:\n", + " return \"Yes\"\n", + " elif \"No\" in answer:\n", + " return \"No\"\n", + " return \"No\"\n", + "\n", + "\n", + "async def extract_relevant_context_async(session, user_query, search_query, page_text):\n", + " \"\"\"\n", + " Given the original query, the search query used, and the page content,\n", + " have the LLM extract all information relevant for answering the query.\n", + " \"\"\"\n", + " prompt = (\n", + " \"You are an expert information extractor. Given the user's query, the search query that led to this page, \"\n", + " \"and the webpage content, extract all pieces of information that are relevant to answering the user's query. \"\n", + " \"Return only the relevant context as plain text without commentary.\"\n", + " )\n", + " messages = [\n", + " {\"role\": \"system\", \"content\": \"You are an expert in extracting and summarizing relevant information.\"},\n", + " {\"role\": \"user\", \"content\": f\"User Query: {user_query}\\nSearch Query: {search_query}\\n\\nWebpage Content (first 20000 characters):\\n{page_text[:20000]}\\n\\n{prompt}\"}\n", + " ]\n", + " response = await call_openrouter_async(session, messages)\n", + " if response:\n", + " return response.strip()\n", + " return \"\"\n", + "\n", + "\n", + "async def get_new_search_queries_async(session, user_query, previous_search_queries, all_contexts):\n", + " \"\"\"\n", + " Based on the original query, the previously used search queries, and all the extracted contexts,\n", + " ask the LLM whether additional search queries are needed. If yes, return a Python list of up to four queries;\n", + " if the LLM thinks research is complete, it should return \"\".\n", + " \"\"\"\n", + " context_combined = \"\\n\".join(all_contexts)\n", + " prompt = (\n", + " \"You are an analytical research assistant. Based on the original query, the search queries performed so far, \"\n", + " \"and the extracted contexts from webpages, determine if further research is needed. \"\n", + " \"If further research is needed, provide up to four new search queries as a Python list (for example, \"\n", + " \"['new query1', 'new query2']). If you believe no further research is needed, respond with exactly .\"\n", + " \"\\nOutput only a Python list or the token without any additional text.\"\n", + " )\n", + " messages = [\n", + " {\"role\": \"system\", \"content\": \"You are a systematic research planner.\"},\n", + " {\"role\": \"user\", \"content\": f\"User Query: {user_query}\\nPrevious Search Queries: {previous_search_queries}\\n\\nExtracted Relevant Contexts:\\n{context_combined}\\n\\n{prompt}\"}\n", + " ]\n", + " response = await call_openrouter_async(session, messages)\n", + " if response:\n", + " cleaned = response.strip()\n", + " if cleaned == \"\":\n", + " return \"\"\n", + " try:\n", + " new_queries = eval(cleaned)\n", + " if isinstance(new_queries, list):\n", + " return new_queries\n", + " else:\n", + " print(\"LLM did not return a list for new search queries. Response:\", response)\n", + " return []\n", + " except Exception as e:\n", + " print(\"Error parsing new search queries:\", e, \"\\nResponse:\", response)\n", + " return []\n", + " return []\n", + "\n", + "\n", + "async def generate_final_report_async(session, user_query, all_contexts):\n", + " \"\"\"\n", + " Generate the final comprehensive report using all gathered contexts.\n", + " \"\"\"\n", + " context_combined = \"\\n\".join(all_contexts)\n", + " prompt = (\n", + " \"You are an expert researcher and report writer. Based on the gathered contexts below and the original query, \"\n", + " \"write a comprehensive, well-structured, and detailed report that addresses the query thoroughly. \"\n", + " \"Include all relevant insights and conclusions without extraneous commentary.\"\n", + " )\n", + " messages = [\n", + " {\"role\": \"system\", \"content\": \"You are a skilled report writer.\"},\n", + " {\"role\": \"user\", \"content\": f\"User Query: {user_query}\\n\\nGathered Relevant Contexts:\\n{context_combined}\\n\\n{prompt}\"}\n", + " ]\n", + " report = await call_openrouter_async(session, messages)\n", + " return report\n", + "\n", + "\n", + "async def process_link(session, link, user_query, search_query):\n", + " \"\"\"\n", + " Process a single link: fetch its content, judge its usefulness, and if useful, extract the relevant context.\n", + " \"\"\"\n", + " print(f\"Fetching content from: {link}\")\n", + " page_text = await fetch_webpage_text_async(session, link)\n", + " if not page_text:\n", + " return None\n", + " usefulness = await is_page_useful_async(session, user_query, page_text)\n", + " print(f\"Page usefulness for {link}: {usefulness}\")\n", + " if usefulness == \"Yes\":\n", + " context = await extract_relevant_context_async(session, user_query, search_query, page_text)\n", + " if context:\n", + " print(f\"Extracted context from {link} (first 200 chars): {context[:200]}\")\n", + " return context\n", + " return None\n", + "\n", + "\n", + "# =========================\n", + "# Main Asynchronous Routine\n", + "# =========================\n", + "\n", + "async def async_main():\n", + " user_query = input(\"Enter your research query/topic: \").strip()\n", + " iter_limit_input = input(\"Enter maximum number of iterations (default 10): \").strip()\n", + " iteration_limit = int(iter_limit_input) if iter_limit_input.isdigit() else 10\n", + "\n", + " aggregated_contexts = [] # All useful contexts from every iteration\n", + " all_search_queries = [] # Every search query used across iterations\n", + " iteration = 0\n", + "\n", + " async with aiohttp.ClientSession() as session:\n", + " # ----- INITIAL SEARCH QUERIES -----\n", + " new_search_queries = await generate_search_queries_async(session, user_query)\n", + " if not new_search_queries:\n", + " print(\"No search queries were generated by the LLM. Exiting.\")\n", + " return\n", + " all_search_queries.extend(new_search_queries)\n", + "\n", + " # ----- ITERATIVE RESEARCH LOOP -----\n", + " while iteration < iteration_limit:\n", + " print(f\"\\n=== Iteration {iteration + 1} ===\")\n", + " iteration_contexts = []\n", + "\n", + " # For each search query, perform SERPAPI searches concurrently.\n", + " search_tasks = [perform_search_async(session, query) for query in new_search_queries]\n", + " search_results = await asyncio.gather(*search_tasks)\n", + "\n", + " # Aggregate all unique links from all search queries of this iteration.\n", + " # Map each unique link to the search query that produced it.\n", + " unique_links = {}\n", + " for idx, links in enumerate(search_results):\n", + " query = new_search_queries[idx]\n", + " for link in links:\n", + " if link not in unique_links:\n", + " unique_links[link] = query\n", + "\n", + " print(f\"Aggregated {len(unique_links)} unique links from this iteration.\")\n", + "\n", + " # Process each link concurrently: fetch, judge, and extract context.\n", + " link_tasks = [\n", + " process_link(session, link, user_query, unique_links[link])\n", + " for link in unique_links\n", + " ]\n", + " link_results = await asyncio.gather(*link_tasks)\n", + "\n", + " # Collect non-None contexts.\n", + " for res in link_results:\n", + " if res:\n", + " iteration_contexts.append(res)\n", + "\n", + " if iteration_contexts:\n", + " aggregated_contexts.extend(iteration_contexts)\n", + " else:\n", + " print(\"No useful contexts were found in this iteration.\")\n", + "\n", + " # ----- ASK THE LLM IF MORE SEARCHES ARE NEEDED -----\n", + " new_search_queries = await get_new_search_queries_async(session, user_query, all_search_queries, aggregated_contexts)\n", + " if new_search_queries == \"\":\n", + " print(\"LLM indicated that no further research is needed.\")\n", + " break\n", + " elif new_search_queries:\n", + " print(\"LLM provided new search queries:\", new_search_queries)\n", + " all_search_queries.extend(new_search_queries)\n", + " else:\n", + " print(\"LLM did not provide any new search queries. Ending the loop.\")\n", + " break\n", + "\n", + " iteration += 1\n", + "\n", + " # ----- FINAL REPORT -----\n", + " print(\"\\nGenerating final report...\")\n", + " final_report = await generate_final_report_async(session, user_query, aggregated_contexts)\n", + " print(\"\\n==== FINAL REPORT ====\\n\")\n", + " print(final_report)\n", + "\n", + "\n", + "def main():\n", + " asyncio.run(async_main())\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " main()\n" + ] + } + ] +} \ No newline at end of file