Just My Life & My Work

Posts tagged ‘objective c’

[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的溝通變得更便利!

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: