Author Archives: zonble

About zonble

iOS Developer at KKBOX.

The Issue About Using MPChangeRepeatModeCommand

Apple’s MediaPlayer framework has two APIs in iOS 10 to let you control your player’s repeat mode (to repeat a song, or a list, and so on) and shuffle mode (sequential or shuffle play) with CarPlay. They are MPChangeRepeatModeCommand and … Continue reading

Posted in Code, iOS | Tagged , | Leave a comment

使用 Slather 產生 iOS/Mac 專案的單元測試覆蓋率報告

在 Xcode 6 以及之前的版本中,如果你使用蘋果內建在 Xcode 當中的 OCUnit/XCUnit 等測試框架撰寫單元測試的話,Xcode 會在測試的過程中產生 gcc 格式的覆蓋率(coverage)報告,叫做 gcda (意思是 gcov data file)檔案;如果我們想將產生測試覆蓋率的流程整合到 Jenkins 等持續整合系統中,我們可以用 gonvr 等工具,將測試報告轉換成 XML 或 HTML 格式,這將我們就可以在系統中,看到每個 build 的覆蓋圖表,以及覆蓋率變化的趨勢。 但是在 Xcode 7 之後,蘋果將 gcc 的工具換成 llvm 的工具,這種幾年前的方案便變得不敷使用。在 Xcode 7 中,雖然我們可以指定要求產生 gcc 格式的覆蓋率檔案,似乎可以與我們過去的工作流程相容,但是產生出來的結果非常不準確;而蘋果的立場大概是,反正 Xcode … Continue reading

Posted in Code, iOS, Mac | Tagged , , , , , | Leave a comment

使用 Groovy 語言自動操作 Jenkins

有時候我們會發現,當我們想要做一些事情的時候,光透過 Jenkins 的 Web GUI 介面很難做到,而會想知道 Jenkins 是不是有 API 可以讓我們操作,比方說。 我們在一個 Jenkins 主機上面跑了很多 build job,然後我們享用另外一個頁面 / app,彙整每個 build 的狀況,像是列出我們指定範圍內的 job 中失敗的 job。 或是,我們有好幾個單元測試的 job,我們想要知道這些 job 最近幾次 build 的覆蓋率是多少。 批次刪除:因為某個緣故,我們可能一次失敗了好幾次,我們想把這些失敗的 build 全部刪掉,但如果只從 Jenkins 的 Web GUI,卻只能夠一筆一筆刪除,這點再 Jenkins 的官方論壇上經常有人討論,但是 Jenkins 官方並沒有加入這個功能的計畫。 Jenkins … Continue reading

Posted in Uncategorized | Leave a comment

Your Delegation Methods Might Not Be Called In Swift 3

One of the most obvious changes in Swift 3 is its naming convention. Apple also renamed lots of methods when releasing Xcode 8. To make new Swift APIs to be compatible with existing Objective-C APIs, Swift compiler converts Swift 3 … Continue reading

Posted in Code, iOS, Mac | Tagged , , , , , | Leave a comment

Upgrade to Xcode 8

Xcode 8 was out along with iOS 10, watchOS 3, tvOS 10 and macOS 10.12 Sierra last month. We spent a couple of days to upgrade our development environment and build machines of our continuous integration system to Xcode 8, … Continue reading

Posted in Code, iOS, Mac | Tagged , , , , | Leave a comment

KKBOX 的 WWDC 2016 讀書會影片

KKBOX 今年也舉辦了 WWDC 影片的讀書會,我們挑選了一些我們比較有興趣的主題,在公司內分享。您可以從下方找到我們的讀書會錄影,以及每場讀書會對應的 WWDC 官方影片。

Posted in Code, iOS, Mac | Tagged , , , | 2 Comments

在 KKBOX 中使用 Python 的經驗

KKStream 的工程師 Drake Guan 上個月在台北的 Python 聚會—Taipei.py—當中,分享了 KKBOX 過去幾年如何導入 Python 程式語言的經驗。您可以在 slide share 網站中找到這份分享的投影片。

Posted in Events, Uncategorized | Tagged , | Leave a comment

Apple TV Tech Talks 東京場

蘋果在 2015 年十二月到 2016 年一月,在世界幾個主要都市舉辦一系列名為 Apple TV Tech Talks 的官方技術講座,主題為去年十月推出的第四代 Apple TV 上的 App 開發。 KKBOX 派出兩員參加 2016/1/21 在東京新宿舉辦的場次。在早上八點,冒著低溫趕到大樓林立的東京都廳對面的活動場地希爾頓飯店後,開始一整天的活動。蘋果派出三名 envanglist,進行總共九場、每場約三十分鐘的英文技術演講,也就是除休息時間外的連續五的小時的課程,除了與開發本身的議程之外,也包含部分設計與市場行銷的議題。 此外也有一個 Q&A Lounge 供開發者詢問開發過程中所遇到的問題。我們之前遇到了一些問題,也在現場獲得解決,不過我們現在還不方便透露我們遇到了怎樣的問題,先就當天的內容做一摘要。 本文也刊於 Rocket Café。

Posted in Events | Tagged , , | Leave a comment

KKBOX 的 iOS 開發訓練教材

相信一些朋友已經知道了這個消息:我們在上週公開了我們在 KKBOX 內部使用的 iOS 訓練教材。 這是一本在 Gitbook 服務上發行的電子書,除了可以在網站上閱讀之外,也提供 EPUB、MOBI 等格式的電子書,可以在各種行動或平板裝置上閱讀。KKBOX 從 2011 年起,開始在內部訓練 iOS 開發人員,這本教材蒐集了我們認為在新人訓練期間所需要的必要開發知識。 我們希望這份教材可以對台灣在開發 iOS 的朋友有一些幫助。由於這份教材的初衷就是訓練可以參與 KKBOX 專案的開發人才,所以在內容的選擇上,未必可以滿足所有朋友的需要,像遊戲開發、上架流程等,根本隻字未提。 而一般在開發 iOS App 的時候,不見得需要了解底層的 audio API,但畢竟 KKBOX 是一家以音樂服務為主的公司,我們勢必要處理 audio,而在中文世界中,關於如何在 iOS 上處理 audio 的資料更是少之又少,我們期望可以在這塊領域中有所貢獻。 其實裡頭的錯漏不少,如果您發現這份教材裡頭有什麼問題,我們在 Github 上提供了教材原始的 Mark Down 格式的文件,您可以對 Github … Continue reading

Posted in Uncategorized | Tagged , , | Leave a comment

KKBOX 獨家贊助 Hitcon 台灣駭客年會下午茶

一年一度的 Hitcon 台灣駭客年會在這個週末舉辦,KKBOX 也參與了這項盛事,並且獨家贊助下午茶,提供了特別訂製的手工餅乾!

Posted in Events | Leave a comment