iOS 廣告SDK總結(jié)(二),ios 15正式版耗電,ios15.4小組件bugiOS廣告SDK概要(2)最后一部分是廣告SDK的設(shè)計(jì)。SDK接口設(shè)計(jì)一個(gè)好的SDK至少應(yīng)該包含三個(gè)部分:SDK庫(kù)訪問(wèn)文檔演示SDK??课募夸?。API和注釋根據(jù)以往的經(jīng)驗(yàn),API接口越簡(jiǎn)單越好。最好的外觀是初始化接口、調(diào)用接口和關(guān)閉接口......
最后一部分是廣告SDK的設(shè)計(jì)。
SDK接口設(shè)計(jì)
一個(gè)好的SDK至少應(yīng)該包含三個(gè)部分:
SDK庫(kù)
訪問(wèn)文檔
演示
SDK??课募夸?/p>
1。API和注釋
根據(jù)以往的經(jīng)驗(yàn),API接口越簡(jiǎn)單越好。最好的外觀是初始化接口、調(diào)用接口和關(guān)閉接口。搞定;打電話的人不想再花一秒鐘看你的API。
簡(jiǎn)單合理;
如果一種方法能實(shí)現(xiàn),兩種方法都不會(huì)采用;
該方法應(yīng)該具有盡可能少的參數(shù)。如果方法中有三個(gè)以上的參數(shù),它將被打包成一個(gè)參數(shù)模型。SDK內(nèi)部能獲取的,內(nèi)部獲取就好。
不得實(shí)現(xiàn)的協(xié)議用optional關(guān)鍵字明確標(biāo)記。
內(nèi)部變量不對(duì)外公開(kāi)。如果需要公開(kāi)它們,readonly屬性
如果有類(lèi)似的廣告形式,比如直播和視頻貼片,功能差不多,就分兩類(lèi)分別開(kāi)發(fā)。
盡量用同步接口代替異步接口。
記得提供一個(gè)版本號(hào)接口。
命名規(guī)范
類(lèi)名統(tǒng)一以平臺(tái)為前綴,方便開(kāi)發(fā)者區(qū)分,比如YXAdSDKXXX類(lèi)。
采用駝峰命名,類(lèi)名、方法名、字段名都可以明確表示其用途。
多個(gè)值是枚舉值。
詳細(xì)注釋
明確指出當(dāng)前方法調(diào)用線程、參數(shù)范圍、參數(shù)類(lèi)型、默認(rèn)值等信息。
必要的內(nèi)部邏輯通知開(kāi)發(fā)者,比如開(kāi)屏請(qǐng)求,內(nèi)部保證2s內(nèi)回?fù)?,開(kāi)發(fā)者不需要添加倒計(jì)時(shí)定時(shí)器。
新版本增加了接口、屬性等。,并添加相應(yīng)的版本標(biāo)識(shí)符。
可擴(kuò)展
界面設(shè)計(jì)要能考慮到未來(lái)可預(yù)見(jiàn)的變化,這也是區(qū)分等級(jí)的點(diǎn);比如原來(lái)的廣告請(qǐng)求參數(shù),設(shè)計(jì)一個(gè)ext參數(shù),以后有需要可以直接傳到這里。
回調(diào)協(xié)議盡量詳細(xì),最好是UI全流程開(kāi)放;比如視頻補(bǔ)丁的回調(diào),加入開(kāi)始的回調(diào),當(dāng)前播放時(shí)間等。如果開(kāi)發(fā)者臨時(shí)需要,沒(méi)必要換SDK。
隱私
SDK要有自我保護(hù)意識(shí),也就是說(shuō)開(kāi)發(fā)者不能改變一些外部的參數(shù)和數(shù)值,這樣會(huì)影響SDK的內(nèi)部邏輯。比如原生廣告會(huì)將素材模型回調(diào)給開(kāi)發(fā)者,不要在模型中添加上報(bào)url等字段,而是保留在SDK內(nèi)部。
每一個(gè)暴露給開(kāi)發(fā)者的字段,都要先暴露后曝光,所以開(kāi)發(fā)的時(shí)候要慎重考慮。
2。文檔
好的文檔會(huì)讓開(kāi)發(fā)者舒服的對(duì)接,后面的麻煩會(huì)少一些。
文檔至少應(yīng)該包含以下幾個(gè)部分,基本都是各大SDK做的:
圖中還有千言萬(wàn)語(yǔ):
廣告SDK訪問(wèn)文檔目錄
3 .演示
demo的作用是讓開(kāi)發(fā)者了解調(diào)用過(guò)程,降低學(xué)習(xí)的成本;也就是說(shuō),方便他們復(fù)制代碼。
向開(kāi)發(fā)人員展示所有暴露的類(lèi)和方法,有時(shí)還會(huì)添加一些特例,為開(kāi)發(fā)人員提供一些便利。
SDK架構(gòu)設(shè)計(jì)
好的外部接口+好的內(nèi)部設(shè)計(jì)才是好的SDK。
SDK的架構(gòu)和App相差不大。其實(shí)都是MVC的變種,只不過(guò)SDK沒(méi)有C,所以應(yīng)該還有一個(gè)容器來(lái)處理UI和數(shù)據(jù)交互邏輯。
按照層級(jí),從上到下可以分為:API層gt;服務(wù)層gt;模塊層
API層,提供開(kāi)發(fā)者調(diào)用接口,內(nèi)部調(diào)用服務(wù)層,封裝一些邏輯和數(shù)據(jù)等。
服務(wù)層、業(yè)務(wù)層、調(diào)用模塊層功能塊、組合數(shù)據(jù)、創(chuàng)建UI、處理業(yè)務(wù)邏輯等。,是SDK的核心層。
模塊層是底層功能塊,通常包括
網(wǎng)絡(luò)(客戶端)
緩存(模型緩存、圖片視頻緩存、報(bào)表信息緩存等。)
實(shí)用工具(已提供)
數(shù)據(jù)中心(提供全局配置信息、型號(hào)信息、沙盒目錄等。)
記錄器(提供日志和報(bào)告服務(wù))
庫(kù)(可及性、編碼/解碼、一些擴(kuò)展)
個(gè)人對(duì)建筑的感受
初始的底層模塊要設(shè)計(jì)好,設(shè)計(jì)不好就要重構(gòu)。
尤其是模塊之間的接口,大多是上層考慮的,是考驗(yàn)經(jīng)驗(yàn)水平的地方,只懂理論做不到。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問(wèn)題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問(wèn)
微信掃一掃
馬上聯(lián)系在線顧問(wèn)
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部