2014年6月4日 星期三

Let’s Learning Swift

iOS App學習筆記











WWDC 2014剛於昨日落幕,會中除了發表令人驚豔的OS X Yosemite以及iOS8之外,整場的最大高潮大概就是Craig Federighi說出「We have new programming language.」的時候。今天,就帶各位初步地認識一下「Swift」這個新語言吧。
Swift兼備Procedure Language的效能與Scripting Language的簡潔,「FastModernSafeInteractive」是它的四種特性。同樣對一個複雜的物件進行排序,Objective-C的速度是Python2.8倍,而Swift的速度是Python3.9(如圖一)。

圖一

使用RC4演算法進行加密,Objective-C的速度是Python127倍,Swift的速度是Python220(如圖二)!

圖二

Swift除了可以取代Objective-CMac AppiOS App的開發語言外,也可相容CObjective-C。此外,在互動性方面,Swift支援Xcode6的一個全新功能「Playground」,開發者能在編寫程式的同時,在Playground上看到程式執行的結果,還能透過拖拉時間軸來監看每一個時間點。
不免俗地,我們用Swift來寫一段「Hello world!」看看:

Swift透過var來宣告變數、let宣告常數,由於具備Type Inference,在宣告時不一定需要型別:

若需宣告型別則如下寫法:

Swift不支援隱式型態轉換,因此切記必要時要手動轉型:

但有一個比較簡單的方法可以進行字串格式化(使用反斜線加上小括號):

使用中括號來產生陣列與字典:

Swift是一個融合各家語法精髓的程式語言,目前我也正在閱讀階段,這篇文章希望能夠拋磚引玉,各位有興趣的可以至Apple Developer網站下載「The Swift Programming Language」,它是一本厚達五百多頁、不折不扣的程式書,非常歡迎大家一同學習討教。

2014年5月8日 星期四

Xcode強大的Source Control

iOS App學習筆記





相信剛從PC轉移到Mac上的開發者都擁有相同的困擾──找不到一套好用的Source Control工具!到底有沒有像小烏龜(TortoiseSVN)一樣強大的軟體呢?經過搜尋的結果,找到了像「SmartSVN」或「Versions」這樣的答案,雖然免費,但功能遠不及小烏龜;另有一款「Cornerstone」號稱能與小烏龜匹敵,然而一套要價NT$1,790令人望之卻步。在與長官的一次談話中,偶然得知Xcode似乎有內建Source Control,激起了我對它的興趣,一試之下驚為天人,原來這麼強大的工具近在咫尺,接下來就由我替各位一一介紹它的各項功能。

1.   Check Out


如果第一次使用XcodeCheck Out,有些人可能會無法成功,甚至使得Xcode不斷Crash,因此我建議可以先用Command LineCheck Out(圖一),然後記得要Source Control的功能打開(圖二),就能享受Xcode強大的功能囉!

圖一

圖二

2.   Update
同一般的Update功能,故略。

3.   Commit

與小烏龜相同,可以選擇自己想要Commit的檔案,在左方列中勾選與反勾選,名稱後面有「M」字的是修改過的檔案,刪除、新增的檔案則標註「D」和「A」,點選該檔就可以看到前後版本改了什麼東西,預設會跳到第一個修改處,倘若不小心跑掉了或者想看第二個修改處該怎麼辦呢?別擔心、只需滑鼠點擊中間灰色長條,然後利用「上」、「下」方向鍵就能輕鬆切換了,連WinMerge都整合進去了,是不是很方便呢!(這裡有個小提醒,左邊視窗是修改後的結果,右邊視窗才是原檔,與WinMerge正好相反,大家千萬別搞錯喔)

4.   History

提供瀏覽Log的功能,每則Log都有該Revision詳細的修改內容。
接下來要介紹的三種View,可以讓你在Programming的同時開啟,開啟方式為點選右上角的「Show the Version Editor」按鈕(圖三),順帶一提,對於Xcode有任何功能不明白該如何開啟,請在「Help」上搜尋關鍵字(圖四),會有動畫提示,非常貼心。


圖三

圖四

1.   Comparison View


如同WinMerge的「Diff」功能,讓你在修改檔案的同時與原始檔作比較。

2.   Blame View


重點功能!透過Blame View,你能夠看到這行程式碼是誰改的、改在哪個RevisionLog的內容以及改動了那些檔案。

3.   Log View


顯示所有更改過這個檔案的Log,同樣地、所有細節都能清楚看到。

結束本篇的介紹,大家有沒有對Xcode更感興趣了呢?其實Source Control除了以上介紹的一些大功能外,在Programming時也能發覺到一些方便的小設計,讓你維護SVN上的程式碼更加得心應手,這些就留給各位慢慢去體會了,我們下次見!

2014年4月21日 星期一

認識開發者帳號

iOS App學習筆記





  哈囉、我是Racing本身也是初出茅廬,希望在學習的過程中作些紀錄,持續將有用的資訊整理並分享給大家,還請各位前輩先進不吝指教。
所謂工欲善其事,必先利其器,在我們正式開發iOS App之前,必須得先知曉開發一個iOS App究竟需要哪些東西──以下為你一一列出:
1.   一台Mac電腦…
2.   註冊一個Apple ID
3.   安裝XcodeIDE for Mac OS X/iOS App
4.   申請iOS 開發者帳號
第四點是我們本次欲討論的主題。當你開發了一款App後,可以在模擬器上執行它,但是最終還是得在iPhone/iPad裝置上運行,此時你就必須擁有一個開發者帳號。開發者帳號主要有三種:
1.   iOS Developer—App上架到Store供個體戶下載(B2C),或是發佈給企業使用(B2B),大部分的開發者皆屬於此類,又分為兩種:
l  Individual—以個人名義發佈,只能有一位開發者存取該開發者帳號。
l  Company—以公司名義發佈,可以有多位開發者共用一個開發者帳號。需提供商業文件(公司章程、營利事業憑證……等),經過Apple審核過後方能使用。
2.   iOS Developer EnterpriseApp僅開發給企業內部使用,申請此類帳號一樣需要商業文件供Apple審核,最後會打電話與申請者確認。
3.   iOS Developer University-只能在自己的裝置上測試,無法發佈給其他人使用。
下表取自Apple官網,比較三種開發者帳號的能力。

前兩者除了費用不同外,主要的差異在於發佈方式,最後我針對四種發佈方式作簡單的介紹:
1.   Ad Hoc—當完成一個App後,可能會希望身邊朋友能利用他們的裝置測試(或者你想測試手邊的所有裝置時),但又不可能一個一個去借來安裝,此時可以將他們的裝置註冊至開發者帳號底下(最多100台),透過線上發佈的方式讓他們安裝。
2.   App Store—大家最熟悉的方式,將App放在Store供人下載。
3.   Custom B2B App—若你開發的是一款替特定企業客製化的App(不會在App Store中出現),則需要利用這種方式發佈。企業須申請一個VPPVolume Purchase Program)帳號,透過此帳號便可批量購買App,並享有折扣
4.   In-house—相較於第一種發佈方式,In-house不需要將裝置登記在開發者帳號中,同樣透過線上發佈的方式,可以在任意一台裝置上安裝,且沒有數量限制。

經過以上介紹,相信大家對於開發者帳號已經有了概略的了解,將來開發App時也較清楚該如何選擇了吧!