Swift語言指南

jopen 10年前發布 | 126K 次閱讀 Swift Apple Swift開發

這份指南匯集了Swift語言主流學習資源,并以開發者的視角整理編排。

GitHub: ipader/SwiftGuide | 網站:http://dev.swiftguide.cn歡迎開發者一起維護,或反饋/投稿

Swift文檔

1. Welcome to Swift

蘋果針對Swift開發者官方文檔入口。其中包括:Swift概括,Swift Programming Language,Using Swift with Cocoa and Objective-C

2. Swift Programming Language

3. Using Swift with Cocoa and Objective-C

4. 快速入門

5. 相關文檔

常用工具

  • 開發工具

    1. Xcode 6 beta 2: 蘋果應用集成開發環境。支持C/C++, Objective C, Swift等。沒有開發者帳號的在百度網盤(提取碼:va1y)下載。
    2. Textmate:Mac OS X上一個可高度自定義的編輯器,尤其在我想做出一個快速改變但又不想等待Xcode加載的時候。該工具目前已經開源
    3. Mou):OS X上一款Markdown的編輯器。非常適用于編寫自述文件、變更日志以及其他方面的內容。作者:羅晨
    4. Sublime Text ($):Mac OS X上另一款非常受歡迎的輕量級,可高度自定義的編輯器。
  • 代碼管理

    1. GitHub:聲望日盛的資源分享之地。
    2. GitHub for Mac:一個設計的非常美觀的git客戶端,不能取代你從命令行獲得的所有功能,但使用起來非常簡單。
    3. Git:分布式版本控制系統和源碼管理系統,其優點是:快和簡單易用。對于新手來說,可在此查看免費電子書籍。
  • Xcode插件

    1. CocoaPods:第三方庫的管理利器,允許你簡單地把第三方庫整合進自己的應用中。對我個人來說,我基本上每個項目都使用CocoaPods。
    2. CocoaPods Xcode Plugin:一款Xcode插件,允許你直接從Xcode管理CocoaPod依賴。
  • 管理工具

    1. HomeBrew:OS X上非常出色的包管理工具。
    2. Transmit ($):一個Mac OS X 上FTP客戶端,有著非常漂亮的用戶界面和有用的功能。
  • 參考文章

    1. iOS開發工具: "這是我們多篇iOS開發工具系列篇中的一篇,此前的文章比如:那些不能錯過的Xcode插件,iOS開發者有價值的工具集,iOS/OS X開發:各種工具快到碗里來!,App原型設計工具使用心得(上)& App原型設計工具使用心得(下),你用哪種工具進行iOS app自動化功能測試?,iOS 開發者必知的 75 個工具" By @CocoaChina

Swift教程

  • 蘋果官方
    1. 示例代碼: "比起GitHub上的開源項目來說,官方的代碼我覺得是更有參考價值的,比如Session 406的代碼,Lister,就用一個Swift實現的包含OSX和iOS的" By @晨鈺Lancy
    2. Swift入門(視頻翻譯 By @趙哲A): A001.01, A001.02, A001.03, A001.04: WWDC 2014官方Session 402視頻翻譯。講得很細致,口齒清晰,英語發音準確,聲音非常好聽。
  • nettlep/learn-swift: 學習《Swift Programming Language》的同時,配合運行這些playgrounds,對于快速掌握Swift最合適不過了.
  • The Swift Programming Language: Solutions to Experiments (譯文): "讀了它的第一章節“Swift初見(A Swift Tour)”,有各種各樣的試驗需要你去“解決”用來闡述指南中示例的代碼問題。蘋果并沒有給我們提供相關的實際解決方案,所以在此列出了我們想到的一些。"
  • Swift Reference Playground/Swift Operators Playground: "Swift Reference is a handy playground file that can be used when you are starting to learn swift.It covers the basic syntax definitions and different ways to use" 初學Swift語言的同學一定先玩玩這個,可以讓您更快感性的了解Swift語言語法、操作符及語言新特點(代碼涵蓋地比較完整)。
  • VirtualGS教程 (By @林泰前): 幾十年的老程序員,資深的iOS開發工程師,把自己兒子培養成蘋果應用商店最年少的應用開發者,哪里能找到這樣優質的編程老師? 教程包括《How to》系列連載和《圖形編程》示例項目
  • Swift Weather APP: “林永堅老師將帶領大家使用Swift語言開發一個完整的天氣 iOS APP。同時大家能夠學習到Interface Builder、CocoaPods、Core Location、AFNetworking的使用,以及如何通過Swift調用Objective-C組件”
  • Developing iOS 8 Apps Using Swift (I) – Animations, Audio, and Custom Table View Cells: "這個教程大概7篇blog,一步步講解了一個『itunes music search app』的制作對于async http, api delegate, 異步圖片,動畫,代碼分層,interface builder都做了清晰的介紹。" By gaohailang
  • Replicating 推ter’s bird zoom startup animation (in Swift!) (源代碼): 這是一個有關用Swift開發簡單動畫效果的編程示例,示例開發靈感來源于近期的推ter iOS版小鳥啟動動畫。
  • WWDC2014 詳解OSX/iOS8/Swift語言: "極客學院全國首發課程,詳解OSX/iOS8新特性/嶄新編程語言Swift!極客學院團隊通宵錄制、上傳,只為在這一刻把最新最實戰的課程呈現給開發者"
  • Swift中的延遲加載(譯文 By @Swiftist): 文章講解步聚清晰。@lazy 很實用的特性:"延遲加載是一種將對象的創建或其它高負荷操作延遲到真正需要時才執行的機制。當為iOS進行編程時,僅在需要時才分配內存,對小內存的手機而言(相對于電腦)非常實用。"
  • WWDC14 Session 402 學習筆記 By @糖炒小蝦_txx
  • Swift與Objective-C混編高級教程之混編框架的創建和調用
  • Swift中下劃線的妙用: "在Swift中,下劃線有很多妙用,這里將已經看到的妙用進行總結,希望可以幫助更多學習Swift的朋友。..." By @twlkyao
  • SwiftSingleton: 三種方法介紹了Swift中Singleton的寫法
  • LTBouncyPlaceholder代碼解讀: "我希望你已經下載了 LTBouncyPlaceholder 的 Demo ,用 Xcode 6 打開并編譯、運行,然后在界面中顯示的幾個 UITextField 里輸入一些文字來體驗這個擴展。看到 Placeholder 的動畫了嗎?" By nixzhu
  • 從零開始學Swift計時器App開發源代碼): "通過完成此教程,我對Swift語言的理解也更進了一步。Swift是一門全新的語言,作為開發者,我們需要不斷加深對這門語言的理解,并靈活使用語言提供的特性來編程。..." by @李潔信
  • 使用 Swift 和 AVOSCloud 構建 iOS 應用:"使用 AVOSCloud SDK 和 Swift 構建 iOS 應用 | AVOS Cloud Blog" By @AVOS江宏 | 這就是業界的速度,先機才是致勝法寶。

Swift項目

1. 實用類庫

以下實用類庫僅做為快速參考,更多實用類庫需求,可以去這里(Swift toolbox is a community-supported catalog of iOS and OSX libraries) (By Adam Leonard from swiftcast.tv), 這個網站收藏了GitHub開源社區中優質Swift資源庫,并提供了分類及查詢服務。

  • Dollar: 尤其在Array和Dictionary的支持上(實現類庫僅一個Dollar.swift文件)。用過Javascript版的Lo-Dash或underscore就知道其實用程度。它是一套函數化編程的工具庫。另一個類似的更完整的版本是ExSwift,它的實現基于對象化擴展的。
  • ExSwift: 實用類擴展庫。另一個Lo-Dash或underscore的Swift版本實現,相對于Dollar.swift,此版本有更完整的API實現。包括了 對Array, Int, String, Float, Range, Dictionary, NSArray的擴展及其它實用方法。完全遵循面向對象的擴展原則。
  • SQLiteDB in Swift: "This is a basic SQLite wrapper for Swift. It is very simple at the moment and does not provide any advanced functionality. Additionally, it's not pure Swift at the moment due to some difficulties in making all of the necessary sqlite C API calls from Swift."
  • Minimalistic Swift HTTP request agent for iOS and OS X: 一個簡單、小巧、實用的HTTP請求Swift語言實現類(僅一個Agent.swift類)
  • lingoer/SwiftyJSON:這是解析JSON字符串封裝類。實現功能與Javascript中的JSON.parse相近,使用方便。
  • lingoer/GRequest:"@李潔信:個人認為AFNetworking這種較重的第三方網絡庫將逐漸淡出舞臺,而像樓主這種基于NSURLSession并充分利用Swift特性寫出來的小而美的庫會受到更多人的青睞!" 作者解讀《GRequest for HTTP Request》
  • lingoer/SwiftWeiboKit: "封裝了整個OAuth2.0的授權流程,并提供了幾個簡便易用的請求方法"
  • owensd/json-swift: 功能與Swifty幾乎一致,使用上要更方便。
  • A 推ter framework for iOS & OS X written in Swift: 一套很完整的推ter訪問框架類庫,支持iOS/OS X
  • RSBarcodes_Swift: "RSBarcodes allows you to read 1D and 2D barcodes using metadata scanning capabilities introduced with iOS 7 and generate the same set of barcode images for displaying and sharing." By @yeahdongcn Swift語言版二維碼識別及生成類庫。
  • robb/Cartography: Set up your Auto Layout constraints declaratively. 這是有關自動布局約束一個實用的Swift項目,代碼看似簡單清晰,不過由于設計巧妙,還是邀請一位有經驗iOS的程序員解讀一下吧,該任務認領來這里
  • vikmeup/SCLAlertView-Swift: 動畫效果彈出框封裝庫(管理于CocoaPods),使用也足夠方便。試著運行了一下,效果還不錯。

2. 示例項目

  • VirtualGS教程示例: 以下示例程序來源于林泰前老師微博博客發布,為方便大家學習Swift編程,有幸獲得林老師的準許在這里發布。
  • Easy-Cal-Swift: "實在忍不了Swift的數字計算時候的好麻煩的強制轉換了,重載了一下加減乘除之類的操作符,這樣就不用顯式地轉換類型了...(對于像我這樣現在連補全都沒有的孩子來說,能省好多時間啊- -)" By @onevcat
  • An app to list the available fonts on iOS: 用Swift語言調用UIKit,列出設備內所有字體名稱的小程序。
  • Swift版的知乎日報: 學習一門新語言,光看是沒有用的,想要快速的掌握它,就得投入到真實項目的開發中,仿照@YANGReal 的糗事百科,做了一個Swift版的知乎日報
  • Swift RSS Sample: 用Swift語言開發的RSS閱讀器
  • Swift版PM2.5的例子: 一個很好的Swift與Objective C協同工作GitHub開源項目。用到的開源類庫有TFHpple: 以XPath方式解析HTML,SCLAlertView: 使用Swift寫的AlertView SVProgressHUD 進度條 By @熒星訴語
  • lexrus/LTMorphingLabel: 實現文字飄入飄出的效果。效果非常贊!
  • rafaelconde/ios8-ui-kit: IOS 8 UI KIT + FOR SKETCH — 最新IOS8免費設計資源

3. 完整項目


推薦網站


資源合集

以下是其它開發者社區或Swift愛好者整理的有關Swift語言學習的資源列表,供參考:


開放平臺

開放平臺相對于Swift語言更具戰略意義,這是開發者不得不面對的挑戰。也是蘋果新一代創新應用的催化劑。通過Extension達成應 用之間的協同及通訊,這是對生態內應用開放的基礎。讓我更期待的是,Extension在Safari Action上實現及支持,這是實現平臺開放及跨平臺應用最簡單直接的方案。 __

1. 文章精選

  • 談談 iOS 8 和 OS X 10.10 的 Extension: "我個人認為這是 iOS 和 OS X 發展至今非常具有里程碑意義的一處改進,甚至比 UI 上的改變重要的多。我想簡單地談一下為何 Extensions 這么重要。" By @圖拉鼎
  • App Extensions學習筆記: "系統中支持extension的區域,extension的類別也是據此區分的,iOS上共有 Today,Share,Action,Photo,Editing,Storage Provider,Custom keyboard幾種,其中Today中的extension又被稱為widget" By @foogry

2. 示例項目


媒體文章

  • WWDC 2014給開發者帶來了什么?: "蘋果向第三方開發者開放了大量的可調用特性和4000個新API——指紋識別、云存儲、智能家居平臺、相機控制、健康數據平臺、3D圖形API、對iOS 8可擴展程序的調用,以及新的編程語言Swift。PingWest制作了一種信息圖帶你一覽這些新特性"
  • 編程語言進化鏈的頂端:為什么說Swift正在顛覆整個互聯網生態?(36Kr): "Swift 代表的程序猿先進生產力的發展要求(提高編程效率),代表了計算機先進文化的發展方向(語法簡潔,現代),代表了廣大人民的根本利益(寫起來爽,學起來快)。"
  • 蘋果編程語言Swift解析:將推動應用開發巨變(CNET): "如果編程語言更加易學易用,那么應用開發的門檻將會降低,導致更多新手開發者參與這一行業。"
  • 外媒評論:蘋果公司Swift語言將改變一切: 美國財經網站Motley Fool針對Swift比較中性的一篇評論文章,因此目標讀者是非技術人員,可讀性還不錯。
  • 蘋果新貴 Swift 之前世今生(池建強): 這篇文章故事性很強,不過,的確把前世今生、來龍去脈交待了一遍,適合剛開始了解swift語言的程序員。
  • WWDC 2014: 給第三方開發者的情書(Qdaily 李如一): "iOS 和 Mac 上的御用語言 Objective-C 可以追溯至 NeXT 時代,換言之,它已經有超過二十年的歷史。Swift 作為蘋果發明的編程語言,也繼承了蘋果產品的傳統"
  • Swift中文翻譯組: 近30人9天協作完成翻譯近670頁的英文文檔
    1. 協同寫作的力量——中國開發者9天完成《Swift語言》中文版: "詳細介紹了GitHub上開源翻譯《Swift語言》這個開完項目,發起者是一個90后的大學生,整個翻譯團隊在9天內完成了近670頁的Swift語言文檔翻譯工作。" By 36Kr
    2. 翻譯暫時告一段落 寫點感想吧 : "現在翻譯已經告一段落,感覺這段時間的效率真是高的可怕,也許是因為一種成就感,或許帶了那么一點功利心(我想每個人或多或少的都會有一點吧)。" By @CoverXiT
    3. Apple的Swift語言: "哥也無意中在Github上看到這個翻譯項目,并有幸參與了翻譯,算是親身體驗了一把多人協作的開源項目,感覺很贊也很有成就感……" By @TimothyYe
    4. 雨燕Swift: "...我做翻譯這件事的目的其實挺自私的,沒想改變世界,沒想著跟世界同步,沒想干什么轟轟烈烈的大事。... 我是Aminby,和大多數程序員一樣默默無聞地用國內外先進的技術或解決方案為工作忙活著的普通人。" By @老白經aminby
  • 蒂姆·庫克的蘋果: "當庫克走向舞臺左側的暗處時,氣氛一時變得神秘起來。這時蘋果軟件工程負責人克萊格·費德里西(Craig Federighi)快步走上臺。他和庫克插肩而過,走到聚光燈下,向大家介紹這款新品。它不是一款新的消費產品,而是一套名為“開發工具包”的軟件工 具,可以幫助開發人員開發出更好的應用。這個世界上的其他人可能會對此打哈欠,但開發者們站起身,興奮地叫嚷起來。"

其它相關

  • VM10裝Mac OS X 10.9.3及更新到Mac OS X 10.10: "嗯,我寫的。屌絲學生黨買不起Mac,只能在黑蘋果和虛擬機上先折騰會了。" By @Vong_HUST

  • Origami: 快速原型動畫開發工具。Origami由非死book開發Quartz Composer工具庫,它使原型開發更容易。參考文章:

    1. 次時代交互原型神器Origami檔案: "隨著iOS 7的推出,扁平化和極簡主義設計風格在移動互聯網領域流行起來,App動效越來越成為了決定App氣質的重要因素,原型的動態保真度似乎成為了阻礙設計師 發揮想象力的一道門檻。傳統的以點按為主的App設計,逐漸演變成為大量手勢交互,這使得Axure類工具表現手勢交互顯得心有余而力不足。基于QC的 Origami應運而生。"
    2. 用 Quartz Composer 和 Origami 制作一個簡單的按鈕動畫(譯文): "結識了 QC 和 Origami 之后,我就能用很短的時間制作出這個動畫的原型。我愛上了 QC 和 Origami —— 我希望你在使用它們之后,也會愛上它們。同時,我十二分地感謝 非死book 創造了 Origami,以及 Apple 創造了 Quartz Composer。" By @nixzhu
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!