「PM甘苦談」-是警訊還是喜訊,從產品視野了解“版本”升級的顧慮
今天星期五,要跟版發布新版本嗎?如果你仔細想過,就不會落到假日沒了的慘況。
不論是iOS還是Android,每當有新的OS版本發佈釋出,粉絲津津樂道的同時,往往讓不少PM為之頭痛,除了必須要安排工程師調研新版本的功能,並思考可否在自家產品上做出支援外,更必須考慮在現有功能的開發上,是否也需要因應新OS的行為模式改變,來做出調整。
而這些顧慮,即所謂的版本向上/下兼容問題,不只是在OS系統,在使用第三方SDK時,也是一個經常碰見的課題,從一個PM及產品維運的角度來看,儘管版本升級屬必然趨勢,但從維運面上,無論是SDK或是OS升級,是否影響現有的產品行為,才是優先需要考慮的課題。今天小編將舉Android OS 與Android SDK 為例,來了解Google是怎麼在SDK與作業系統中保持兼容性。
但進入正題前,鑑於許多PM們可能未必了解API與SDK間的呼應關係,所以容小編在此先做一下名詞解釋:
先介紹API (Application Programming Interface,應用程式介面),當你的系統想要跟其他的系統(或服務)做調用時,所使用的一種溝通介面,例如當我的Web想要使用Google定位的功能時,只要開一個API接口和Google Map 的定位功能API串接,就可以使用該功能。
然而當需要使用的API 數量越多,且功能需要交錯使用後,產品開發商就會把這些API做出整理和組合,來讓外部使用者有共同的使用方式和體驗,並加上多種工具提供給開發端使用,讓API的調用從多功複雜,變成一種套組。
而這樣的套組就稱作SDK(Software Development Kit,中文稱作軟體開發工具組),裡面包含了各種API、開發工具、Debug除錯工具及模擬器等,甚至還包含到不同平台/裝置,所相應的開發環境等。
就像你只是需要單純的定位功能,可以選擇開發API接口去串接GoogleMap的API,但如果今天你還需要導航、街景..等等其他功能的輔助使用,Google也提供了一個打包好的SDK,讓你省去不少開發上的麻煩。同理可得,在許多PaaS服務中,他們也針對了開發者的需求及目的,個別提供了API與SDK供串接使用,讓你少了開發上的煩惱,像相簿服務佼佼者的Flickr,除了提供了完整的 API外,在說明頁面下方也附上了 “API 開發工具” 專區。
然而當使用到他人提供的SDK版本時,就必須特別關注版本更新和升級的問題,舉例Android來說,每一個版本號都會對應到一個固定的API Level,詳情可參考https://source.android.com/setup/start/build-numbers,例如當你是Android O 8.0時,對應到的API Level就是27。
但隨著Android OS新版本的釋出,內含的API的呼叫行為也會隨著OS升級而改變本身的邏輯。所以在Android APP中,會設定自己的targetSdkVersion,例如你目前的APP targetSdkVersion是 25,一但下載你APP的User的作業系統是27時,而其中API Level 27的OS對,就會向下兼容,套用成API Level 25原本的邏輯,來確保你的APP可仍然在他的手機上正常執行。
但正常執行是一回事,也許其中有許多SDK並不支援如此新的API Level,以及為了提供使用者更好的體驗,則必須提高targetSdkVersion,這也是讓自己的Android APP朝向支援更多元的OS唯一的方式。
所以當有OS有新版號釋出的同時,注意自己的API Level以及相關連的SDK,並在公開新版本的OS前後緊接測試,就變成APP 品質穩定中相當重要的一個環節,但唯有跟這樣的環境與時俱進,才是讓自己的產品多了更多競爭的機會,也許一開始都會有陣痛期,但痛過後穩紮穩打的更新,才是面對痛楚的不二法門。
最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!