• Swift程式設計入門

                                                              博客來排行榜Swift相關書籍第一名

     

    愛瘋一切為蘋果的彼得潘 

     

  • 簡介

     Swift 3.0版和Xcode 8線上修訂補充包

    Swift 1.1版和Xcode 6.2的詳盡介紹

    Swift 1.2版和Xcode 6.3的第一手介紹

    Swift和Objective-C的PK比較

     

    Apple集百家之大成,全新發明Swift程式語言。比起慢半拍的Objective-C,Swift 人如其名,什麼都快,學習快,開發快 ,App效能一流,堪稱程式界的第一快手!

     

    本書以Swift 1.1,Xcode 6.2和iOS 8 SDK為主,以各種簡單有趣的實例帶領讀者由淺入深認識Swift。從初期基本概念的介紹,中期物件導向的研究,一直到後期進階功能的鑽研。並且在本書的最後還提供了Swift標準函式庫的介紹,以及熱騰騰新鮮出爐,Swift 1.2版和Xcode 6.3的第一手介紹。

     

    倘若早已熟悉Objective-C,那麼變心投入新歡Swift的懷抱就像呼吸一樣簡單。一樣的SDK,輔以本書適時補充的差異比較,幫助讀者快速從經濟艙Objective-C升等到商務艙Swift。倘若沒受過火星文般Objective-C的摧殘,現在更是勇敢踏出第一步,學習平易近人Swift 的最佳時機。期待大家都能搶得先機,像Swift代表的小燕子一樣展翅高飛,成為目前地球稀有的Swift App專家!

  • 導讀

    第1章 新時代的App開發語言Swift
    為了說服大家移情別戀,拋棄Objective-C轉投Swift的懷抱,本章我們將一一舉證Swift的好。更令人不敢置信的,Swift心胸像太平洋一樣寬大,她允許我們劈腿, 使用Swift和Objective-C開發同一個App!

    第2章 練功遊樂園 – Playground
    為了幫助開發者更容易地學習Swift,Apple特別重金打造適合練習Swift程式設計的遊樂園 - Playground。在Playground裡我們可以隨心所欲地輸入程式碼,立即見到程式執行的結果,幫助我們更加明白每一行程式得到的善報和惡報。

    第3章 說變就變的變數,始終如一的常數
    變數像雙子座一樣說變就變,常數像水瓶座一樣始終如一,他們倆都是App裡儲存資料的大功臣。在認識他們兄弟倆的同時,我們也將見識Swift可跟柯南比美的型別自動推理奇技和設定初始值的重要性。

    第4章 Swift的基本型別
    再複雜的程式,最常使用的資料型別還是逃不開數字和字串。且讓我們放慢腳步,如同月球漫步般,好好熟悉它們的相關操作,尤其字串的置換和相加更是大大簡化我們開發程式的辛苦,用過後只能說聲 " 可是Objective-C,我回不去了。"

    第5章 控制流程的四大天王
    If else、switch、while、for 號稱Swift界控制流程的四大天王。我們一定要當他們的頭號粉絲,好好地崇拜他們,待他們心花怒放,乖乖聽話後,再好好利用他們。唯有掌握四大天王,才能隨心所欲地控制程式流程,想在App裡叫太陽從西邊升起都不是問題。

    第6章 可有可無的optional
    Swift全新發明的optional即將登場!有了它,無論何種型別的變數常數,都可像莎士比亞說的"To be, or not to be"一樣,可以無值,也可以無值。善用optional,將幫助我們開發更安全更不易閃退的App!

    第7章 程式碼居住的溫暖的家 – function
    我們希望程式做的大小事,全都包含在一個個的function定義裡。有了隨傳隨到的function,我們才能方便地於任何時刻呼叫function,執行其中千言萬語的程式碼。在Swift裡,function 不只一樣重要,還有了全面的進化和升級,本章就讓我們會會function,瞧瞧它的神妙之處。

    第8章 無名卻厲害無比的closure
    Closure,江湖人稱無名function,比起已經消失的無名小站,它可厲害不只一百倍。它的功能跟 function 幾乎一模一樣,但當它化身為function的參數時,卻可幫助我們開發更有彈性的程式碼。closure的模樣千變萬化,它有多種簡化的變型,我們也將張大眼睛看個仔細,才不會將來看到它時,尷尬地變成最熟悉的陌生人。

    第9章 無所不在的物件
    物件是App開發的核心。學習已經進化到一輩子也學不完的iOS SDK,正是學習運用SDK類別建立物件,操控物件實現各種App功能的過程。這個章節,就讓我們好好認識物件,學習關於類別 (class)、方法、屬性、初始化等物件使用的基本功。

    第10章 物件深層探索 - 繼承、權限和型別能力
    物件的能力,豈是一個章節可以說盡!本章且讓我們繼續它的故事,談談免費得到父類別能力的繼承,不需懷胎十月生成物件即可存取的型別方法屬性,以及盡忠職守的權限管理員。

    第11章 模仿天王 - 和class百分之九十雷同的struct
    struct是Swift界臉皮最厚的人。它在一旁偷偷看著class,模仿地唯妙唯俏,幾乎像是同一個模子印出來的。幸好彼得潘很會剝洋蔥,一層一層地剝開struct的心,看出他們本質上全然不同,class 是reference型別,struct是value型別,而且struct還偷藏class沒有的特別功能!

    第12章 全面進化的enum
    期待有一天人類能全面進化,男人生來帥如劉德華,女人生來美如林志玲。想不到enum全面進化的一天比人類還快,在Swift裡enum不再受限整數型別,和Switch成為最佳拍檔,甚至還學會傳說中動態設定相關聯資料的特殊能力。

    第13章 容納眾多資料的array、dictionary和tuple
    容納眾多資料,桃園結義的三兄弟 array、dictionary 和 tuple聞名江湖,array專精排序,
    dictionary擅長搜尋,tuple適合混搭資料,我們可以依不同的需求,不同的情境挑選最合適的對象交往,哦,不是啦,是儲存App裡寶貴的資料。

    第14章 關於型別的兩三事 – 成為最有型的型別大師
    想成為最有型的型男型女,一定得學會型別使用的進階技巧,諸如化身任意型別的Any和AnyObject,轉型變身的as,比較型別的is,型別裡定義型別的nested type等。掌握熟練這些技巧後,未來在程式裡處理任何資料,相信都能迎刃有餘地轉換處理,不再害怕型別處理不當造成的 compile error和可怕crash。

    第15章 擴充型別能力的大補帖 - protocol 和 extension
    protocol和extension乃名醫華陀私藏的擴充型別能力大補帖,不管是class,struct還是enum 通通適用。出一張嘴,只宣告不定義的protocol 方便我們客製化,在型別裡定義方法屬性的行為。
    extension則讓我們擴充原有型別的能力,甚至連內建的型別都可升級。學會這些技巧後,實現擁有強大能力的型別就像呼吸一樣簡單!

    第16章 通吃型別的generic
    平生不識generic,就稱英雄也枉然。同樣是通吃型別的大胃王,比起Any和AnyObject,generic 不只擁有接受任意型別的彈性,還多了許多強大的特點,諸如多個型別條件的設定,不需要轉型,更安全的型別檢查等。

    第17章 自訂能力的operator和ARC記憶體管理
    真是太超過了,連operator行為都能自訂!想要小狗物件+小兔物件,想要發明獨特的五星連線***** operator,全都是小菜一碟。我們還將學習如何成為Swift世界的死神,揭開 ARC 控制物件生死的神秘面紗,了解weak和unowned如何影響物件的存亡,以及reference cycle帶來的可怕記憶體用量災難。

    第18章 Swift App 初體驗 – Swift、Objective-C、iOS SDK 三強合體
    開發App時,前面章節學習的Swift語法只不過是基本功,如何使用iOS SDK,如何跟Objective-C 程式碼相容,才是產出優質App的關鍵心法。掌握這些轉換的小細節,再搭配前面學習的Swift語法,我們終於可以昂首飛翔,正式展開未來開發Swift App的美麗人生!

    附錄 A 值得一探的Swift Standard Library
    很多我們時常用到的基本功能,其實不需要強大的SDK幫忙。俗語說殺雞焉用牛刀,一些簡單的基本功能,Swift本身的Standard Library即可應付,就讓我們好好來學習Standard Library裡知名的五大function,保證學會一輩子受益無窮。

    附錄B 一暝大一寸的Swift1.2和Xcode6.3
    2014年秋天正式推出的Swift和Xcode 6,才經過幾個月的光景,卻像小寶寶般一暝大一寸,Swift 從1.0 版,1.1版一路進化到1.2版,Xcode 也從 6.0、6.1、6.2演進到 6.3 版。相較於不堪回首的舊版,新版的Swift和Xcode多了不少值得大書特書的功能。事不宜遲,趕緊啟動搭配Swift 1.2的Xcode 6.3,瞧瞧它們的成長變化吧。

  • 大綱

    第1章  新時代的App開發語言Swift


    1-1 優點說不盡的Swift     

    1-2 貼心的iOS支援度和Objective-C相容性   

    1-3 開發App的唯一男主角Xcode 6

    1-4  總結

     

    第2章  練功遊樂園 - Playground

    2-1芝麻開門,進入Playground遊樂園

    2-2 Playground主畫面登場

    2-3 建立Playground的其它方法

    2-4 方便練功的dock Playground

    2-5 在純文字的Terminal練功 - REPL

    2-6 總結

     

    第3章 說變就變的變數,始終如一的常數

    3-1 說變就變的變數(Variable)

    3-2 忘了分號吧 

    3-3 國際化的Unicode名稱

    3-4 大眼睛Quick Look 

    3-5 協助偵錯的Console

    3-6 始終如一的常數(Constant)

    3-7 變數常數孰勝孰負

    3-8 如柯南般的型別自動推理 (Type Inference)

    3-9 明明白白我的型別

    3-10 一定要初始化的變數和常數

    3-11 總結
     

    第4章 Swift的基本型別

    4-1 基本型別介紹 

    4-2 爆表的整數檢查

    4-3 運算時的嚴格型別檢查

    4-4 字串的置換和相加

    4-5 總結

     

    第5章 控制流程的四大天王

    5-1 如果有如果的if else

    5-2 比較字串是否一樣

    5-3 全面進化的switch

    5-4 for迴圈大顯神通

    5-5 不只三點式的range

    5-6 少不了的while迴圈

    5-7 解讀程式天書的注解

    5-8 總結

     

    第6章 可有可無的optional

    6-1 optional發明的緣由

    6-2 optional的宣告

    6-3 optional的設定和讀取

    6-4 檢查optional是否有值

    6-5 判斷並取值的optional binding

    6-6 自動取值的Implicitly Unwrapped Optionals

    6-7 無值怎麼辦? 變出預設值的雙重問號

    6-8 總結

     

    第7章  程式碼居住的溫暖的家 - function

    7-1 最單純的無參數function

    7-2 更多彈性,接受參數的function

    7-3 雙重名稱的參數,外部名和內部名

    7-4 不需要外部參數名的第一個參數

    7-5 自動產生同名的參數外部名

    7-6 function參數的預設值 

    7-7 function也有回傳值

    7-8 幫型別取個好聽名字 - typealias

    7-9 你是不是那個重覆的function ?    

    7-10 不限數量的超級參數 - ... (variadic parameter)

    7-11 Swift的兩種型別 - value type和reference type

    7-12 參數怎麼改 - var和inout來幫忙

    7-13  野白合也有春天,function也有型別

    7-14  function界的怪胎 - 回傳function的function

    7-15 擁有capture value魔力的nested function

    7-16  化身參數的function

    7-17  當optional遇上function

    7-18  列印字串的print和println

    7-19  幫程式碼分類的標記語法

    7-20  簡化參數的curried function

    7-21 總結

     

    第8章 無名卻厲害無比的closure

    8-1 從function變身closure

    8-2 最單純的無參數closure

    8-3 化身參數的closure 

    8-4 最後一名的trailing closure

    8-5 全班只有一人的第一名closure

    8-6 接受參數的closure - 用closure記錄和沈佳宜數綿羊的那些年   

    8-7 closure參數型別的省略

    8-8 closure回傳型別的省略

    8-9 closure參數的省略

    8-10 closure return的省略

    8-11 closure和Objective-C block的比較

    8-12 總結
     

    第9章  無所不在的物件

    9-1 構成App世界的主角 – 物件

    9-2 建造物件的藍圖 - 類別

    9-3 物件的誕生 – 不用懷胎十月,也能生出寶寶物件

    9-4 一定要初始化的物件屬性

    9-5 屬性可變的物件常數

    9-6 初始化物件的方法 - initializer

    9-7 自動生成的無參數initializer - default initializer

    9-8 接受參數的彈性initializer

    9-9 失敗的failable initializer 

    9-10 精於算計的computed property

    9-11 偵測屬性變更的property observer

    9-12 讓屬性變懶的lazy咒語

    9-13 定義物件能力的方法(method)

    9-14 optional的物件變數(常數)

    9-15 遇nil即臨陣脫逃的optional chaining

    9-16 總結
     

    第10章  物件深層探索 - 繼承,權限和型別能力

    10-1 青出於藍的繼承 

    10-2 家庭革命!方法和屬性的覆寫(override)

    10-3 不想改變!防止覆寫的final定型夜

    10-4 繼承和龜毛的initializer 

    10-5 防止絕技失傳的required initializer

    10-6 型別方法和屬性

    10-7 權限管理員 - access control

    10-8 總結

     

    第11章 模仿天王 - 和class百分之九十雷同的struct

    11-1 模仿class的學人精 - struct

    11-2 從stored property自動生成memberwise initializer

    11-3 value type和reference type的再次PK

    11-4 改變屬性內容的mutating function

    11-5 常用的字串方法和屬性

    11-6 總結

     

    第12章 全面進化的enum 

    12-1 沒有enum的混亂世界 

    12-2 明明白白表達清單成員的enum

    12-3 enum的最佳拍檔switch

    12-4 enum成員的另一面 - raw value     

    12-5 動態設定的相關聯資料 - associated value

    12-6 和struct百分之八十雷同的enum 

    12-7 總結

     

    第13章  容納眾多資料的array,dictionary和tuple

    13-1 領取號碼牌乖乖排隊的array

    13-2 新手不能不懂的array招式

    13-3 像字典一樣方便搜尋的dictionary

    13-4 自訂subscript施展[ ]咒語 

    13-5 結合資料的輕便tuple

    13-6 以tuple存取dictionary和array的成員

    13-7 用tuple圓function回傳多個資料的夢

    13-8  當switch遇上tuple 

    13-9 總結

     

    第14章 關於型別的兩三事 – 成為最有型的型別大師

    14-1 化身任意型別的變色龍 - Any和AnyObject

    14-2 這就是我要的型!強制轉型的as

    14-3 你是不是O型的人? 型別比較的is

    14-4 繫緊安全帶轉型的as? 

    14-5 as和for,if,switch的合作無間

    14-6 住在型別裡的型別 - nested type

    14-7 總結

     

    第15章  擴充型別能力的大補帖 - protocol和extension

    15-1 出一張嘴,只宣告不定義的protocol

    15-2 升級原有型別能力的extension

    15-3 總結

     

    第16章  通吃型別的generic

    16-1 沒有generic的史前世界

    16-2 通吃型別的低階解法 - Any

    16-3 通吃型別的高階解法 - generic 

    16-4 設定型別條件的特殊能力

    16-5 function也能generic

    16-6 總結

     

    第17章  自訂能力的operator和ARC記憶體管理  

    17-1 亞當+夏娃,自己的operator自己定義

    17-2 作用於單一資料的unary operator

    17-3 愛迪生二世 - 發明新的operator

    17-4 ARC記憶體管理和物件的死亡

    17-5 解決reference cycle災難 的weak和unowned

    17-6 closure的capture list

    17-7 總結

     

    第18章 Swift App初體驗 – Swift,Objective-C,iOS SDK三強合體

    18-1 Swift App面面觀

    18-2 不怕型別同名的namespace 

    18-3 當Swift遇上iOS SDK型別

    18-4 變了模樣的iOS SDK方法

    18-5 iOS SDK物件的建立

    18-6 其它iOS SDK使用說明 

    18-7 相親相愛的Swift和Objective-C

    18-8 總結
     

    附錄A 值得一探的Swift Standard Library

    附錄A-1 專對array成員動手腳的map function    

    附錄A-2 從array成員推算結果的reduce神算 

    附錄A-3 從array成員選妃的filter大大

    附錄A-4 比range更勝一籌的stride

    附錄A-5 排序大師sort & sorted
     

    附錄B  一暝大一寸的Swift 1.2和Xcode 6.3

    附錄B-1 無痛升級到Swift 1.2版 

    附錄B-2 排斥重覆資料的Set

    附錄B-3 火力全開的optional binding

    附錄B-4 附錄B-4 終於放開心胸,使用前初始即可的let 

    附錄B-5 學秦始皇統一貨幣,統一以static宣告型別方法 & 屬性

    附錄B-6 附錄B-6 失敗並不可恥 – 只要以as!轉型

    附錄B-7 不再自動轉型為Swift內建型別的SDK型別

    附錄B-8 Objective-C是否接受nil的提示 

    附錄B-9 穿越寂寞邊界,輸出到Objective-C的Swift enum

    附錄B-10 更直覺更漂亮的Playground

    附錄B-11無心傷害的的App crash回報

     

     

  • WWDC 2014發生了驚天地,泣鬼神的大事情。雖然iOS 8和OS X 10.10展示的新功能都令人耳目一新,但真正讓開發者狂悲狂喜的,卻是橫空出世的程式語言Swift !

    Swift是Apple全新發明,專為開發新時代軟體打造的程式語言。彼得潘聽到消息後,可說是又悲又喜,悲的是多年的Objective-C經驗不再珍貴,又得重頭學習新的語言。喜的是Swift 的確十分強大,幫助我們更快速地開發出效能好又不易閃退的App。

    Swift擁有數不盡的優點和創新,但這一切都比不上它最大的特點:簡潔易懂的語法。因為這項特點,正式宣告大人、小孩、男女、老少都可學習程式設計的時代來臨,而且學的可不是紙上談兵,交交學校作業的無聊語言,而是開發出執行於手機上,熱銷全世界的App。運氣好的話,還有機會在坐捷運時看到對面心儀女孩低頭沉迷於自己開發的App呢!

    Apple也了解工欲善其事,必先利其器的道理,因此除了新的語言,Apple還在Xcode裡重金打造世界上第一座程式遊樂園 Playground,我們在遊樂園裡可以更方便地學習,每輸入一行程式碼,執行結果立即顯示,大幅提升學習的效率。彼得潘將帶著大家盡情地於遊樂園玩耍,在邊玩邊學的過程中,不知不覺地修成正果,練成Swift神功。

    Swift的誕生,對於早已名聞江湖的Objective-C高人和想要投入App開發的新人來說,都是一個全新的契機。現在就好像一個新的時代剛剛開始,大家都站在同一個起跑點,人人有機會,個個沒把握。開船的鐘聲即將響起,請備好點心,擦亮眼鏡,準備翻開下一頁,跟著彼得潘,一起朝向偉大的Swift航道邁進!

  • 排行榜

    博客來

    電腦新書榜Top 2

    博客來

    電腦暢銷榜Top 3

    PChome

    電腦類新書榜Top 2

    PChome

    電腦類週暢銷Top 3

    金石堂

    電腦新書榜Top 3

  • 推薦的話

    • 彼得潘對 iOS 開發的熱情,轉換成這本深入淺出的專業書籍,值得想進入 iOS 開發的所有人參考。
      陶韻智, LINE Taiwan 總經理 
       
    • Peter是我們其中一位長期合作的講師。每次課程的專業水平,學員體驗都有很高的評價。他的新書有著 Peter 一貫的專業。有興趣學習 Swift / iOS 開發的您,這是一本難得的好書。
      Bernard Chan, Founder of ALPHA Camp
       
    • 跟著彼得潘的腳步,探討 Objective-C 與 Swift 技術。台灣人才有的口吻,親切地引導你把開發基礎打穩。你也想快速了解 Swift 嗎?一起來讀讀彼得潘的最新力作吧!
      Ryan Chung, 行動開發學院 MobileDev.TW 負責人
       

    • 彼得潘擅長將艱難的技術轉化為簡單易懂的文字,閱讀他的書,將能讓你在學習的道路上事半功倍!
      林言, 譯智教育訓練中心創辦人
       

    • 彼得潘獨樹一格的文字魅力時常讓人會心一笑,邊學邊玩不知不覺就學會了 Apple的最新技術。無論是你已經在用 Objective-C,或是正要投入 iOS 開發的世界,使用這本書學習 Swift 是你最好的選擇。
      ihower, Technology Advocate of ALPHA Camp、Ruby on Rails 實戰聖經作者

     

    • Peter 是位難得樂於寫作的開發者。在軟體開發工作之餘,Peter 必將開發心得註記下來,尤其在用字遣詞上花了不少功夫,目的就是希望這份有傳承意味的心得筆記易讀易懂。在一份份心得的整理之下,終於有了這本 Swift 書籍,值得讀者來細細品嚐。
      Brian, FUNTEK CEO,《iPhone SDK 3 Programming 應用程式開發》與《iOS SDK 4 /Xcode 4 應用程式開發範例集》作者
       
    • 彼得潘的「Swift 程式設計入門」直覺易懂,可以說是初學者接觸 iOS App 的寶典,也是進階者隨手在身邊的參考書,推薦值得擁有。
      沈志宗老師, MIT MobileIT http://iphone.to/

     

            更多推薦的話

     

     

     

     

     

  • 哪裡買

    博客來

    天瓏

    誠品

    金石堂

    PChome

  • 課程

    只要8個星期,每週2個晚上,即可習得 iOS App 開發的最新技術,Swift ,iOS SDK 和 Xcode,成為酷炫的 iOS App 開發魔法師 ,實現未來App工作、接案、創業的第二人生!

    專為文組生量身訂做,從零開始學程式,開開心心寫 App ! 只要 10 個星期,每週一個晚上,即可學會程式設計的核心概念,成為酷炫的 iOS App 開發魔法師 !

    你的程式開發初體驗 (以 Swift 為例)

    一直想學習程式語言,卻不知道從何下手嗎?想在最短的時間內體驗開發流程,學習最重要的基本概念嗎?「彼得潘的 App異想世界- 你的程式開發初體驗」課程,以淺顯易懂的 Swift 語言介紹程式開發的基本概念,讓你第一次學寫程式就上手!
     

    Swift 2.0 程式設計入門

    Swift是Apple 全新發明的新時代程式語言,簡潔、易懂、快速、安全。經過短短一年,Swift 全面進化成2.0,不只成為開發 iOS App 的最佳利器,更因為 Open Source ,讓人看到它未來開發跨平台軟體的無窮潛力。本課程將以彼得潘生動有趣的著作 “Swift 程式設計入門” 為主,輔以全面進化的 Swift 2.0 ,帶領學員十小時練成 Swift 2.0 神功 ! 

    新時代的iOS App開發語言 - Swift入門

    自2014年6月 Apple 推出全新程式設計語言 Swift 以來 ,Swift 的簡潔,快速,安全與相容性以前所未有的速度成為 iOS 開發者的新寵!想體驗 Swift 魅力何在,快速學習 Swift 程式設計基礎? “新時代的 App 開發語言- Swift 入門” 帶你與世界開發者同步,輕鬆奠定基本功,成為更聰明的新時代 iOS App 程式設計師!

     

    Stanford 2015 iOS課程讀書會

    史丹佛大學的 iOS 開發課程在全世界都享有很大的知名度,雖然 iTunes U 讓每個人都可以從世界的任何角落自行收看,但是全英文的教材+純線上的學習體驗,難免聽一聽就開始放空,或是寫了作業遇到問題,還要一直上 Stack Overflow 發問。 這時候如果有人可以在旁邊互相督促,或是快速解決你的問題該有多好?

     

    為了幫助大家更好地吸收課程的內容,ALPHA Camp 特地邀請到知名 App開發專欄/iOS書籍暢銷作家 彼得潘老師來帶領大家,以創新的授課+mentor + 分組討論發表的讀書會形式,讓你的學習效果輕鬆加倍!

     

    iOS APP 開發工程師實戰營

    以美國史丹佛大學課程為藍圖,自基礎的 Xcode6、Objective-C 及

    Cocoa Touch Framework 出發,重點研究 iOS 使用者介面設計,
    教你一步步做出夢想中 App,進而成為出色的 App 應用程式開發者。 最後,我們也會介紹最新的 Swift,為你未來發展鋪路。

     

  • 相關連結

    Facebook

    LINE

    deeplovepeterpan

    apppeterpan@gmail.com

    Email

  • 聯絡彼得潘