Swift 開源項目精選 - 應用架構角度

基於Swift 開源項目精選導圖,以應用架構角度出發繼續甄選並「精分」。篩選、介定方法更偏重於構建應用時,項目在分類中起到的做用權重,可持續性權重,並部分算上開發者影響力。嘗試持續地完善一份不那麼雜亂無章(也許還比較好用)的 Swift 開源子集。內容將依然以導圖和 myMindNode 形式呈現(持續更新中……)node

myMindNode瀏覽及導圖原文檔下載……ios

附:MindNode 格式導圖導出的文本內容(瀏覽 PDF 版本


Learning & Advanced

<algorithms> raywenderlich/swift-algorithm-club ➟ Swift Playgrounds

Swift 算法俱樂部,最全、最活躍,最具學習價值的算法庫。git

<useful Swift snippets> elizabethsiegle/30-seconds-of-swift-code ➟ Swift Playgrounds

精選的 30 秒或更短期即能理解的實用 Swift 代碼片斷。(高效學習 swift 語言語法利器。思路來源於 知名 JavaScript 項目 github.com/30-seconds/…github

<video series & programming> pointfreeco/episode-code-samples ➟ Swift Playgrounds

專一於學習 Swift 編程的視頻聊天系列。web

<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

XCTest

<testing framework> Quick/Quick & Quick/Nimble ➟ iOS | macOS

單元測試框架庫swift

<snapshot testing> pointfreeco/swift-snapshot-testing ➟ iOS | macOS

經過快照記錄方式進行自動化測試。很是直觀方便的一種方式。api

<code generator> mac-cain13/R.swift ➟ macOS

經常使用資源(images,fonts, ,colors 等)經過更易用的強類型方式在 Xcode 編輯器輸入並自動轉換。

<Code Diagnostics> realm/SwiftLint ➟ macOS

Realm 採用 Swift 編寫的基於 GitHub's Swift Style Guide 規則的檢查及轉換工具。除了命令行運行方式,也提供集成 Xcode 的方法。對於新團隊,這樣的工具能夠自動約束你們遵循編程規範。

<design & prototype> IBAnimatable/IBAnimatable ➟ iOS | macOS

IBAnimatable 是一個幫助咱們在 Interface Builder 和 Swift Playground 裏面設計 UI, 交互, 導航模式, 換場和動畫的開源庫。 github.com/IBAnimatabl…

<App Store Connect API> AvdLee/appstoreconnect-swift-sdk ➟ macOS

「藉助 App Store Connect API 實現工做流程自動化」,這個庫是對整套工做流程 Swift 版的易用化封裝。 REST API:https://developer.apple.com/documentati… APP STORE CONNECT 使用入門(官方中、英、日文版)help.apple.com/app-store-c…

Package Manager

<Package Manager> apple/swift-package-manager ➟ macOS

蘋果官方 Swift 包管理

<dependency manager> Carthage/Carthage ➟ macOS

簡單,去中心化庫依賴管理框架。 入門指南:www.raywenderlich.com/416-carthag…

<Git Hooks> orta/Komondor ➟ macOS

在 Swift 項目中支持 Git hooks。 配置實例:github.com/orta/Komond…

Programming Framework ➟ iOS | macOS | watchOS | Linux

<Reactive Programming> ReactiveX/RxSwift

簡單、高效,活潑的函數反應式編程框架。
何爲反應式編程?面向數據流和變化傳播(時間和事件非代碼順序)的編程範式。

<Promises> mxcl/PromiseKit

Promise 的 Swift 實現類庫,簡化異步編程代碼實現。 RxSwift vs PromiseKit blog.dianqk.org/2016/08/22/…

<state management> ReSwift/ReSwift

該框架主要針對單頁面應用狀態及單向數據流管理。

……

Server ➟ macOS | Linux

<web framework> vapor/vapor

最活躍的 Web 服務器框架。
推薦理由:純 Swift 開發,引導開發者採用簡潔、乾淨的 Swift 語法。
主要缺點:犧牲部分性能換取未使用 C 語言基礎庫爲代價

Vapor, Perfect, Kitura 比較:www.jianshu.com/p/a9ca47e84…

<web framework> PerfectlySoft/Perfect

功能更強大,性能更好的 Web 服務器框架。有完整的中文開發文檔支持。
github.com/PerfectlySo…

<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

App Services

Cache

  • <cache> hyperoslo/Cache ➟ iOS | macOS | watchOS

    多類型數據混合緩存庫。

  • <UserDefaults wrapper> radex/SwiftyUserDefaults ➟ iOS | macOS

    輕量級數據存儲類 NSUserDefaults 擴展類,它使類型數據訪問和存儲更爲便捷、直觀。

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 上架的開源文本編輯器(幾乎支持全部主流格式語法高亮顯示,且能夠擴展及自定義)

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)功能富文本瀏覽視圖。

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 掃描、過濾不雅圖片。

System

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

    檢測網絡連通性實用工具庫。

  • <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 更簡潔地封裝使用。

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 開源項目彙總列表。

Core Graphics

  • <image processing> gavinbunney/Toucan ➟ iOS | macOS

    小而美的圖片變換及處理類。

  • <size of PNG, GIF, JPEG, BMP> malcommac/ImageSizeFetcher ➟ iOS | macOS | watchOS

    經過 URL 獲取圖像類型或尺寸。

  • <dominant & prominent colors> jathu/UIImageColors ➟ 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 類庫。

UIKit & AppKit

View and Controls

  • <Form> xmartlabs/Eureka ➟ iOS

    「由XMARTLABS精心編寫,是XLForm的Swift版本。」github.com/xmartlabs/E…

  • <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

    高可定製信息彈窗組件

  • <Calendar> patchthecode/JTAppleCalendar ➟ iOS

    功能強大、高可定製日曆組件。

  • <UILabel morphing> lexrus/LTMorphingLabel ➟ iOS

    特讚的文字飄入飄出效果。

  • <skeleton loading> Juanpe/SkeletonView ➟ iOS

    等待加載信息前,預先優雅的顯示內容骨架。

  • <UITextFields> raulriera/TextFieldEffects ➟ iOS

    定製的不一樣風格 UITextFields 輸入框。

  • <UINavigationController> andreamazz/AMScrollingNavbar ➟ iOS

    可滾動的(顯示或隱藏 UINavigationBar

View Layout

  • <Autolayout> SnapKit/SnapKit ➟ iOS | macOS

    自動佈局 DSL 框架庫。 snapkit.io/docs/

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 佈局及動畫切換。

IoT ➟ Ubuntu | Raspain

<Swift on ARM devices> uraimo/buildSwiftOnARM ➟ Shell

<hardward projects> uraimo/SwiftyGPIO ➟ Linux

經過 Swift 語言去控制基於 Linux/ARM 主板(好比:C.H.I.P. 和 樹莓派) 的 GPIO(General Purpose Input Output ),去完成簡單的工控功能(好比 LED 燈的顯示)。

……

Foundation ➟ iOS | macOS | watchOS | Linux

Utility

<extensions> SwifterSwift/SwifterSwift

一套超過 500 個本地庫擴展的生產力工具庫。

<JSON parser> SwiftyJSON/SwiftyJSON

GitHub 上最爲開發者承認的 JSON 解析庫。

<JSON parser & object mapping> tristanhimmelman/ObjectMapper

簡介:對象與JSON互轉實用類庫。 推薦理由:面向對象模型,易於開發集成。有更完善的與 Alamofire 的集成方案。

<Date> malcommac/SwiftDate

幾乎涵蓋了已知開源日期類庫全部優秀特性

<file paths> kylef/PathKit

極易用的文件路徑操做類庫

Security

<cryptographic algorithms> krzyzanowskim/CryptoSwift

Crypto 算法及相關功能類庫集合

<Keychain Services wrapper> kishikawakatsumi/KeychainAccess

鑰匙串存儲管理封裝

Database & Client

<SQLite> stephencelis/SQLite.swift

簡單、輕量,使用上最 SQL 的 SQLite 封裝庫。

Networking Framework

<event-driven network framework> apple/swift-nio

事件驅動網絡應用框架。

<SwiftNIO-based server-side> amzn/smoke-framework

事件驅動網絡應用框架。

GitHub

<GitHub client API> nerdishbynature/octokit.swift

同時支持 GitHub 和 GitHub 企業版 Swift API 客戶端類庫。

Cognitive Computing

<IBM Watson> watson-developer-cloud/swift-sdk ➟ iOS | Linux

讓開發者在本身的應用內快速應用 IBM Watson Cognitive Computing 服務。

……

Database Server

(cross platform)

➟ Shell

<Realm Platform> realm/realm-object-server

Realm 平臺目標實現可交互的移動數據庫

……

iCloud & Remote

(iCloud, On-drive, Dropbox, Webdav, ftp/ftps, Samba...)

IBM Watson Services

(AI)

TensorFlow

(pre-trained model)

<TensorFlow to CoreML Converter> tf-coreml/tf-coreml ➟ Python

Caffe

(Neural networks model)


整理過程當中八卦過的兩位傳奇人物:

  1. GitHub 上曾經最具影響力的 iOS 獨立博主及開發者 Mattt 就曾於 2015年加入蘋果後,幾乎消聲匿跡(不管在其我的網站、博客、 GitHub 社區仍是 Twitter 都少有活動,緣由又不爲人知)。不少不太瞭解開發者多詫異他怎麼了?大部分人都是在 Mattt 本人在 Twitter 上於2018年3月再次發聲後,才知道他過去三年原來一直爲蘋果工做(作爲一位資深技術做者爲 The Swift Programming Language,Swift Package Manager 和 swift.org 等寫開發文檔)。而且,迴歸社區後的活躍度顯示爆發式增長,並開闢了一個新的領域( Swift 基礎教育系列課程項目 Flight School)。固然,奠基其「江湖」地位的幾款知名開源項目的後續,也基本不用擔憂將來發展。
  1. 此外,Swift 「教父」 Chris Lattner 於 2016 年下半年後在開源社區貢獻大幅度減小,自從 2017年初閃電離職蘋果公司,短暫加入特斯拉擔任自動駕駛(Tesla Autopilot)項目軟件副總裁,因爲工做性質變動,Swift 及 開源社區貢獻更加稀少。可喜的是不到六個月後即又離職特斯拉,並迅速加入了谷歌大腦(Google Brain)項目組,負責推進 TensorFlow 平臺開發者體驗及接入Swift 語言基礎構架工做等工做後,逐漸恢復了開源社區活躍度及貢獻。目前看來,他不會輕易地撒手無論 Swift 語言的發展、建設。這一點對於熱衷於 iOS 開發和開源項目的同窗們都是很大的鼓舞。 坦率地講,以上內容只是在整理過程當中,閒着無聊順便「八卦」解悶,也能夠認爲純粹湊字數。😂
相關文章
相關標籤/搜索