iOS SDK開發二三事

2021-10-05 09:14:15 字數 2171 閱讀 5879

1、清晰解決的問題和要求

​ 一般而言,新起乙個sdk必然有其深刻的業務背景;研發同學對sdk要解決的問題和sdk的特殊要求,了解地越詳細越好;常見的要求有:

2、選擇合適的開發語言

3、選擇合適的技術方案

4、確立基本**規範

​ sdk可能長期維護 或 多人開發,確立好基本**規範,能保障sdk的**質量;這些規範本質上是一些共識和約束,如:

1、多模組設計

2、sdk目錄層級

3、公開介面設計

4、**和狀態碼

5、sdk的版本號

6、sdk安全需求

**混淆後,混淆前後的符號間對映一定要保留,否則線上問題堆疊資訊中,出現的sdk混淆後的符號會讓定位問題非常迷惑;可以做成轉化工具,匯入堆疊符號資訊,輸出混淆前正常的符號資訊;

1、提供sdk文件

2、提供demo

demo中不僅有sdk引入辦法、使用辦法;還可以寫一些簡單ui,幫助展示sdk功能;每次sdk公升級,都通過demo自動出包,提供給測試人員和產品去驗證(功能驗證和裝置相容性驗證);

sdk的自動化測試這塊,暫未嘗試;但在是demo中,定義對sdk介面的單元測試是必要的;單元測試要關注:非法傳參case,非主線程呼叫case。

3、規範sdk開發流程

4、幫助業務排查問題

5、溝通plus

建立sdk和業務溝通機制;及時同步sdk最新資訊;sdk的bugfix版本,要及時同步,並幫助業務公升級,儘量減少損失;

為sdk增加**reviewer:sdk重大公升級,最好involve主要業務方的研發進行技術評審和code review;其實這對業務方是個很高的要求,需要業務方至少有乙個人對sdk有比較全面的了解;

1、注意多執行緒使用

2、使用快取要克制

3、記憶體使用要注意

了解記憶體方面知識可以看:ios記憶體二三事

4、使用單例要注意

在sdk中,一定要保證外部訪問到的是單例物件;除了提供讓外部訪問的類方法,還要重寫+(instancetype)allocwithzone-(instancetype)copywithzone-(instancetype)mutablecopywithzone方法,保證永遠都只會分配一次記憶體空間,實現真正的單例;

ios中,乙個物件有且只能有乙個**;如果你的單例物件有需要業務方實現的**方法,根據實際情況判斷,是否需要實現多**

5、注意巨集定義和條件編譯1、weak symbol

sdk可以用weak symbol提供預設實現,然後業務中利用strong symbol把業務實現注入進來,以此來實現依賴注入

weak symbol 不做標準方案推薦; 遇到要臨時適配某些業務的特殊case,時間緊急情況下,可以"劍走偏鋒";

2、預定義符號

3、section()函式

4、pre-main和after_main

使用這兩個屬性定義函式示範如下:

__attribute__((constructor)) void before_main_***x()

__attribute__((destructor)) void after_main_***x()

dyld載入過程分四步:load dylibs imagerebase/bind imageobjc setupinitializers;其中+load()__attribute__((constructor))之前,他們都在initializers階段內完成;initializers之後就是main函式執行了;

5、method swizzling

申請即送:如何編寫乙個(不)受歡迎的 ios sdk

聽阿里雲工程師談談如何開發乙個優秀的sdk

埠二三事

最近在看0 1024熟知埠所對應的內容,然後寫了指令碼對iana資料庫所提供的埠和服務對應的關係進行了歸類,發現如下的埠是值得注意的地方。就在處理0 1024埠的時候,出現的值得注意的地方列舉如下。總的來說,有些埠已經加入了對sctp以及dccp的支援。sctp和dccp可以看成分別是對tcp和ud...

今日二三事

上午早起去辦租賃備案,辦完了回來啟用了信用卡並稍微摸索了下,中午和室友一起訂烤魚和小龍蝦,吃完都十二點多,午睡未睡著看了一會漫畫和 去書房三點多,買了一杯咖啡,看看一些前端文章,狀態好的情況下還是可以看進去一些英文文件的。晚飯後繼續看,邊看邊跟老弟聊天,他最近要學python,我打算也學一學,順便帶...

生活二三事

今天遭遇了一系列的事情,這些事情用當前的我個人的認知來說算是衰事吧,乙個倒也見怪不怪,但今天的接憧而至的架勢的的確確給我挫折感。然後呢我不得不散了會步,按照平時的狀態我是極其不喜歡乙個人散步的,因為那樣會感覺很孤獨,畢竟大學校園三五成群,兩兩相依的情景隨處可見,總以別人的眼光來看待自己很是累,恩。路...