[Zeplin] Objective C 語法
愛寫iOS App的我,總是要看設計圖,來跟設計師的美學溝通。近年來設計師能透過Sketch與Zeplin合作無間,Zeplin更是能讓工程師立馬上手,就能輕易「看穿」設計師「別有用心」。
除了可以透過鼠標來查看元件相對應位置,還能透過外掛產生Objective C語法,當然還有其他語法如Swift、XML、CSS等等,大大方便工程師不必再自己打code囉~
愛寫iOS App的我,總是要看設計圖,來跟設計師的美學溝通。近年來設計師能透過Sketch與Zeplin合作無間,Zeplin更是能讓工程師立馬上手,就能輕易「看穿」設計師「別有用心」。
除了可以透過鼠標來查看元件相對應位置,還能透過外掛產生Objective C語法,當然還有其他語法如Swift、XML、CSS等等,大大方便工程師不必再自己打code囉~
隨著Swift發展日益盛行,以Objective C為主開發的我要開始與Swift「交互作用」,這次主題是在Objective C使用Swift的Singleton,這看似很容易達成的用法,卻在我又多了C語言來混用,就變得複雜啊~
在Swift剛釋出沒多久,我就研究過如何在同專案整合Objective C和Swift。文章:
儘管還是傾向以Objective C來開發產品,然而Swift的發展日趨重要,不過我大膽推測,就算Apple再怎麼強推Swift,十年內Objective C領導地位依然屹立不搖!為什麼呢?實際接觸4年Swift後,發現Swift變化多端,若猶豫要學Swift還是Objective C可以參考:要學Objective-C還是Swift?。
現在想要混編Objective C、Swift、C/C++,應也不是問題~
在Xcode中使用Breakpoint來debug是非常平常的事情,優秀的我們都能從Breakpoint來得知上下文狀態,如各個變數值。有時候崩潰(Crash)來得突然,Xcode沒有提供詳細的Crash訊息,像是我這個例子是:存取Empty Array。
此時例外中斷點 (Exception Breakpoint)就非常好用!
Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~
舉一個例子,當我要使用Open Source Charts,Xcode會偵測是否相容,否則就無法編譯成功,如圖:
好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者!
怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件。
先前有提到在Swift專案使用Objective C第三方套件,現在想要反過來該怎麼做呢?目前我主要還是以Objective C來開發iOS App,然而有些超級好用的套件是用最潮的程式語言Swift打造,為了方便開發起見,還是來學著怎麼「橋接 (Bridging)」吧!
在這裡我是使用Cocoapods來下載Charts這個超過15000人使用開源做範例。
target ‘HappyChartTest’ do
# Uncomment the next line if you’re using Swift or would like to use dynamic frameworks
use_frameworks!
pod ‘Charts’
# Pods for HappyChartTest
end
程式寫久了,一定會面臨到要去維護他人寫的程式碼,尤其是在專案已經持續好幾年,每隔一段時間就要增加全新的功能,同時還要修改舊有的功能。
看到下面標頭檔截圖,就知道至少有幾個人來改過程式囉XD~
光是看到命名方式就有三種風格:
看來每個工程師素質參差不齊,照理說每種程式語言都有其既定的規則,而不是照著先前學的程式語言來寫新的語言。
我在專案中也看到有四個API版本,我目前要改動的部分就是第四版。我實在不太會想要動他人的「技術債」,儘管Xcode有提供各種Refactor的功能,但卻也不能保證全域式改名完全沒有問題。
在介面實作方面,一開始的工程師是使用StoryBoard,然後有工程師改用Xib。我到現在還是偏好使用Xib。
有時候我們在評斷他人時,同時就是在評斷自己,我們有過去的生澀,所以才會有進步。同樣都是在工作,然而我們可以選擇喜歡的工作來做。
我們總希望親手打造的成果,能讓使用它的人都有美好的體驗。祝大家都能樂在工作:)~
App和Web雙向溝通:
一直是我們想要達成的目標,而先前的兩篇文章:
也就分別實現雙向溝通,只是過程不夠直接,且會衍生一些毛問題。以至於有開源WebViewJavascriptBridge已有6000多顆星,儘管我沒用過XD~
這套件自我介紹:
An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews
iOS 7以後,SDK發展出JavaScriptCore Framework,Objective C與Javascript的溝通變得更便利!
該是好好學習Swift 2.0的時候囉~上週Apple才宣布Swift開源化!趁著棘手的專案告一段落,我要利用時間學習iOS新的開發語言,讓公司的戰力可以延續下去。
首先我們會遇到,以Swift為主的專案想使用Objective C的類別,因為我們可能沒啥時間去重刻,於是想要Objective C直接轉生為Swift來使用。
在此我們建立一個Swift專案名為HappyTest8,接著新增Cocoa Touch Class語言為Objective C,並名為HTMainViewController。
學寫iOS App已經滿三年,回想那時候還是iOS 6,而如今再過兩個月就要邁入iOS 9,這個作業系統隨著時間持續進化,多數基礎機制沿用至今。儘管已會獨立寫出一個App,然而在Objective C技術上還是有待精進,比如用來傳遞訊息或資料的溝通模式 (Communication Patterns),我也僅熟悉某幾種,其機制的概念與優劣尚未明朗,於是想趁著昌鴻颱風給放假的時候,來瞭解一下這五種溝通模式:
HappyMan・迴響