Just My Life & My Work

Posts tagged ‘objective c’

[Zeplin] Objective C 語法

愛寫iOS App的我,總是要看設計圖,來跟設計師的美學溝通。近年來設計師能透過SketchZeplin合作無間,Zeplin更是能讓工程師立馬上手,就能輕易「看穿」設計師「別有用心」。

除了可以透過鼠標來查看元件相對應位置,還能透過外掛產生Objective C語法,當然還有其他語法如Swift、XML、CSS等等,大大方便工程師不必再自己打code囉~

參考:Zeplin, 跨越工程師與設計師的鴻溝

[iOS] 在Objective C使用Swift的Singleton

隨著Swift發展日益盛行,以Objective C為主開發的我要開始與Swift「交互作用」,這次主題是在Objective C使用Swift的Singleton,這看似很容易達成的用法,卻在我又多了C語言來混用,就變得複雜啊~

[iOS] 在Objective C使用Swift的Singleton.png

(繼續閱讀…)

[iOS] 混編Objective C、Swift、C/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++,應也不是問題~

[iOS] 混編Objective C、Swift、C:C++.png

(繼續閱讀…)

[Xcode] 例外中斷點 (Exception Breakpoint)

Xcode中使用Breakpoint來debug是非常平常的事情,優秀的我們都能從Breakpoint來得知上下文狀態,如各個變數值。有時候崩潰(Crash)來得突然,Xcode沒有提供詳細的Crash訊息,像是我這個例子是:存取Empty Array

[Xcode] 例外中斷點 (Exception Breakpoint)2

此時例外中斷點 (Exception Breakpoint)就非常好用!

(繼續閱讀…)

Swift 第4版本

Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~

舉一個例子,當我要使用Open Source ChartsXcode會偵測是否相容,否則就無法編譯成功,如圖:

Swift 第4版本.png

好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者

怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件

[iOS] 在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

(繼續閱讀…)

[iOS] 多人維護程式碼

程式寫久了,一定會面臨到要去維護他人寫的程式碼,尤其是在專案已經持續好幾年,每隔一段時間就要增加全新的功能,同時還要修改舊有的功能。

看到下面標頭檔截圖,就知道至少有幾個人來改過程式囉XD~

ios-%e5%a4%9a%e4%ba%ba%e7%b6%ad%e8%ad%b7%e7%a8%8b%e5%bc%8f%e7%a2%bc

光是看到命名方式就有三種風格:

  • 底線式
  • 駝峰式・型態在前,名稱在後
  • 駝峰式・名稱在前,型態在後

看來每個工程師素質參差不齊,照理說每種程式語言都有其既定的規則,而不是照著先前學的程式語言來寫新的語言。

我在專案中也看到有四個API版本,我目前要改動的部分就是第四版。我實在不太會想要動他人的「技術債」,儘管Xcode有提供各種Refactor的功能,但卻也不能保證全域式改名完全沒有問題。

在介面實作方面,一開始的工程師是使用StoryBoard,然後有工程師改用Xib。我到現在還是偏好使用Xib。

有時候我們在評斷他人時,同時就是在評斷自己,我們有過去的生澀,所以才會有進步。同樣都是在工作,然而我們可以選擇喜歡的工作來做。

我們總希望親手打造的成果,能讓使用它的人都有美好的體驗。祝大家都能樂在工作:)~

[iOS] Objective C與Javascript的溝通

App和Web雙向溝通:

  • Call Javascript function from Objective-C
  • Call Objective-C function from Javascript

一直是我們想要達成的目標,而先前的兩篇文章:

也就分別實現雙向溝通,只是過程不夠直接,且會衍生一些毛問題。以至於有開源WebViewJavascriptBridge已有6000多顆星,儘管我沒用過XD~

這套件自我介紹:

An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews

iOS 7以後,SDK發展出JavaScriptCore FrameworkObjective C與Javascript的溝通變得更便利!

(繼續閱讀…)

[iOS][Swift] 在Swift專案使用Objective C類別

該是好好學習Swift 2.0的時候囉~上週Apple才宣布Swift開源化!趁著棘手的專案告一段落,我要利用時間學習iOS新的開發語言,讓公司的戰力可以延續下去。

首先我們會遇到,以Swift為主的專案想使用Objective C的類別,因為我們可能沒啥時間去重刻,於是想要Objective C直接轉生為Swift來使用。

Swift using Objective C class

在此我們建立一個Swift專案名為HappyTest8,接著新增Cocoa Touch Class語言為Objective C,並名為HTMainViewController。

(繼續閱讀…)

[Objective C] 溝通模式 (Communication Patterns)

學寫iOS App已經滿三年,回想那時候還是iOS 6,而如今再過兩個月就要邁入iOS 9,這個作業系統隨著時間持續進化,多數基礎機制沿用至今。儘管已會獨立寫出一個App,然而在Objective C技術上還是有待精進,比如用來傳遞訊息或資料的溝通模式 (Communication Patterns),我也僅熟悉某幾種,其機制的概念與優劣尚未明朗,於是想趁著昌鴻颱風給放假的時候,來瞭解一下這五種溝通模式:

  • KVO (Key-Value Observing)
  • Notifications
  • Delegation
  • Blocks
  • Target-Action

Communication Patterns

(繼續閱讀…)

標籤雲