最新 iOS 框架整體梳理(一)

MrRisingSun發表於2020-06-03

前言


 

      這段話其實是我差不多寫完文章之後再回過頭來寫的,原本在寫文章之前想寫一下寫的初衷的,但當我寫完之後感覺初衷沒有收穫更真切一些。其實到這篇為止總結出來的也就三十多個,有些是比較新的框架,有些是我們開發者一直在使用接觸的框架,我感覺收穫還是很多。 很多東西你要不是一個一直在瞭解跟進WWDC內容的開發者可能時間一長你就不知道最近都出了些什麼新的框架,但這樣你走一遍之後你就會把許多遺漏掉的東西找回來,我的想法一直都沒有變,作為一個移動端的開發者,不僅要“向下深挖” ,“向上學習”也是最基本的條件,就算你不清楚每一個框架具體的使用細節, 至少你一定要知道框架可以用來幹什麼!下面總結出來的框架有些也需要我自己去學習,果然欠了的遲早是要還的?

    

Part - 1


 

      下面的框架我們按照我們的圖一個一個的說:

 

                                            

 

1、Accelerate: 一個大規模的數學計算和影像計算的框架,它的作用和使用推薦下面兩篇文章

    Swift-Accelerate 框架介紹

    Introduction to the Accelerate Framework in Swift

    官方文件 Accelerate

2、Accounts: 它是iOS原生提供的一套賬戶管理框架,其支援Facebook,新浪微博,騰訊微博,Twitter和領英賬戶管理的功能。需要注意,在iOS 11 及以上系統中,將此功能已經刪除,因此Accounts.framework實際上已經沒有太大的意義,其只在iOS 11之前的系統上可用!所以這裡我們就不在仔細說它了,簡單的提一下就好。

3、AddressBook、AddressBookUI   通訊錄相關的框架,我們獲取聯絡人通訊錄先關的都是咋這兩個框架裡面。 

     AddressBook、AddressBookUI 使用

     AddressBook 官方文件

     AddressBookUI 官方文件

4、AdSupport

     AdSupport 從字面意思上理解是用來進行廣告支援,這個框架十分簡單,裡面只有一個類,類中只有一個方法和兩個屬性。

     AdSupport 的唯一用途是用來獲取裝置唯一的一個廣告識別符號。可以使用此識別符號用來標記使用者是否來源於某個廣告推廣,裝置重啟,重灌應用程式都不會使廣告識別符號修改。

5、ARKit

     ARKit 這個我就不用多說了,它是做什麼的相信每個iOS開發者度清楚,它具體的使用以及學習大家可以上網去搜尋,一大把資料的,也正是因為龐大,官網的說明反而很簡單的幾句話。

6、AssetsLibrary

    The Assets Library framework is deprecated as of iOS 9.0. Instead, use the PhotoKit framework, which in iOS 8.0 and later provides more features and better performance for working with a user’s photo library. 

    上面這句話就總結了這可框架了,具體的內容就不在介紹了,關注的點應該轉移到 PhotoKit 框架!

7、AudioToolbox、AudioUnit

    AudioToolbox 是專門處理聲音的一個框架,AudioToolbox 這個庫是C的介面,偏向於底層,用於線上流媒體音樂的播放。AudioUnit 其實是最底層的,我們在使用的像 AVFoundation,Media Player ,AudioToolbox 等都是基於AudioUnit進行的封裝。


 

      具體的可以參考這篇文章:Audio Unit 基礎

8、AuthenticationServices: 一個讓使用者輕鬆登入應用程式和服務的框架,我們在iOS13基礎上新增的蘋果登入就是出自這個框架。 在官方文件介紹它的功能點時候是這麼說的:

    1. 允許使用者從應用程式的登入流中查詢儲存的密碼。

    2. 在應用程式和web瀏覽器之間共享資料,使用OAuth等技術來利用應用程式中現有的基於web的登入。

    3. 在企業應用程式中建立單點登入(SSO)體驗。

    4. 簡單明瞭的註冊和登入流程減少了使用者記住密碼

    官方文件 AuthenticationServices

9、AVFoundation  AVKit 

     AVFoundation 這個框架我在以前做過一個專題專門有說過它,這裡也就不再多做介紹了。需要的可以翻一下我以前的部落格。 AVKit框架基於AVFoundation框架,提供了一個用於播放視訊內容的高階介面,建立用於媒體播放的檢視級服務。主要包含兩個類:AVPictureInPictureController 、 AVPlayViewController  兩個類。

     關於AVKit 這裡有一個大概的介紹: AVKit框架
     AVKit的官方文件

10、BackgroundTasks
 
      這個框架相信單從字面意思就能大致瞭解到它是作什麼的,這裡我們就不在具體的闡述它裡面的內容,可以看這兩文章對它有一個具體的瞭解 iOS 後臺任務 BackgroundTask - 簡書

11、BusinessChat

      BusinessChat是iOS11.3後引入的新框架,這個框架配合iMessage應用將商家與使用者更加緊密的結合起來,並且為商家提供了另外一種非常方便的客服系統。關於它的資料我找到的還真的不是特別多,但官方對這一塊介紹的比較詳細。

      iOS開發之BusinessChat框架使用 這篇文章有介紹它的一個大致的使用 

      官方的介紹

12、CallKit

      它是一個很有意思的框架,它是蘋果 iOS 10 新發布的一個的框架。CallKit 框架能讓我們把 自己APP語音或視訊電話的UI 介面整合在 iPhone 原生的電話 App 中。下面是官方文件對它的一個概述:

      CallKit允許您將您的呼叫服務與系統上其他與呼叫相關的應用程式整合在一起。CallKit提供呼叫介面,您可以使用VoIP服務處理後端通訊。對於呼入和撥出的電話,CallKit顯示與電話應用程式相同的介面,使您的應用程式具有更本機的外觀和感覺。CallKit會對系統級的行為做出適當的響應,比如不進行干擾。除了處理呼叫之外,您還可以提供一個呼叫目錄應用程式擴充套件,以提供來電顯示資訊和與您的服務相關的被阻止的號碼列表。下面的這些文章內容能幫助我們瞭解這個框架:

      iOS10--CallKit的簡單應用

      iOS Call Kit for VOIP

      官方文件

13、CarPlay

      CarPlay 是一個手機車機互聯絡統,可以把iPhone上的地圖、音樂、電話等功能對映到車載螢幕上使用。這句話概括了這個框架是用來幹什麼的。

      iOS應用接入CarPlay初探

14、CFNetwork

      CFNetwork 這個框架還是有必要了解一下的,我們經常使用到的API的請求基本都是NSURL的,CFNetwork是一個比較底層的框架,C語言編寫的,NSURL也肯定就沒有CFNetwork那麼定製性更好了,官方文件對它的描述是 訪問網路服務並處理網路配置中的更改。基於網路協議的抽象來簡化任務,例如使用BSD套接字、管理HTTP和FTP伺服器以及管理Bonjour服務。我的建議是要是對網路處理這塊有想更好的一個瞭解的話有必要看安這個框架的使用以及它裡面具體的東西,畢竟它很接近 Socket 。

       CFNetwork的介紹和使用  

       官方文件

15、ClassKit 

      這也是一個新的框架,在11.4中加入的,也很有趣,但關於它的資料我找到的也很少,但通過官方的介紹你也能瞭解到一些資訊,官方介紹的也比較詳細。

      官方文件

16、CloudKit

      這個框架我們首先能聯想到肯定是 iCloud了,的確這個框架也是專門用來給它服務的,每當我們看到一個新框架的時候我們腦袋裡想的肯定是這框架是用來幹什麼的,具體我們該怎樣使用它。

      iOS CloudKit的使用  這篇文章也就了兩個問題,它是什麼,它是用來幹嘛的。

17、Combine

      Combine是Apple在2019年WWDC上推出的一個新框架。該框架提供了一個宣告性的Swift API,用於隨時間處理值。這些值可以表示多種非同步事件

      Swift Combine

      Combine框架詳細解析

18、Contacts  ContactsUI

      這兩個框架我相信很多人還是比較熟悉了,以前的很多應用都喜歡獲取使用者的通訊錄,不過現在的APP我感覺在慢慢減少這方面的許可權獲取,也可能和人們的生活方式有關吧,慢慢的很多人聯絡也就不再考通訊錄的手機號碼,這兩個框架我們也就不再細緻的介紹了。

19、CoreAudio  CoreAudioKit  CoreAudioTypes

      Core Audio 提供了數字音訊服務為iOS與OS X, 它提供了一系列框架去處理音訊。Core Audio 中也包含我們最常用的前面也有說過的 AudioToolbox和AudioUnit 框架。要具體的說它裡面的內容我們也能寫一本書了。想要大致的瞭解它和它的使用,下面的文章能做到。

      Core Audio音訊基礎概述

      官方文件 Core Audio

      官方文件 Core Audio Types

20、CoreBluetooth

      這個框架也是比較重要的一個框架,在我們的開發中也是經常使用到的一個框架 藍芽

      iOS中的藍芽 CoreBluetooth藍芽系列

      官方文件

21、CoreData

      這個我就一句話帶過,他就蘋果提供的資料庫,CoreData我以前也有寫過關於它的文章,有需要的也可以往前面翻翻。

22、CoreFoundation

      說到 CoreFoundation 我們就不可避免的的說活 Foundation ,這個框架和Foundation有什麼區別和聯絡,他們之間使用的時候我們需要注意什麼,他們之間的橋接等等這些都是我們需要注意的東西。具體的我們就不在說了,下面的這文章能幫助到我們。這個框架我們還是有必要進行一個具體的瞭解的!

      提高效能之——Core Foundation

      官方文件

23、CoreGraphices

      這個按照字面我們能把它接成“圖形核心”,其實它和我們常看到的 QuartzCore、Quartz2D等會很容易混淆,我以前在說Quartz2D的時候有提過關於他們之間的一些基本的區分以及關係,QuartzCore 這裡可以看,然後關於CoreGraphices具體的內容的確也是比較的龐大,需要我們花時間去弄清除。然後我們在這裡也沒法具體的再談了,還是下面的文章幫助我們理解。

      iOS影像處理之Core Graphics和OpenGL ES小析

      iOS繪圖框架CoreGraphics分析

      CoreGraphic框架解析(一)—— 基本概覽 這篇後續還有具體的使用,這裡就不一一列表,可以通過它找到的。

24、CoreHaptics

      CoreHaptics 是 iOS13 中的新API,同時只有 iPhone 8 及之後的機型支援。CoreHaptics 提供了更加細膩,可控的震動表達方式,可以令APP產生一種全新的體驗。下面是一些簡單的文章和官方文件。

      CoreHaptics

      官方文件

25、CoreImage

      CoreImage 框架是iOS處理影像的框架,主要用處可以給圖片新增濾鏡效果和影像識別功能(人臉、條形碼等等)。

      CoreImage和GPUImage的結合使用  這篇文章是一個很好的使用介紹

      Core Image 官方文件

26、CoreLocation   

      在移動網際網路時代,移動app能解決使用者的很多生活瑣事,比如導航:去任意陌生的地方 周邊:找餐館、找酒店、找銀行、找電影院 。在上述應用中,都用到了地圖和定位功能,在iOS開發中,要想加入這2大功能,必須基於2個框架進行開發 MapKit :用於地圖展示  CoreLocation :用於地理定位。所以CoreLocation和MapKit也是經常在一起使用的,也就是定位和地圖。

 
      官方文件

27、CoreMedia

      它是屬於比較底層的一套音視訊C語言介面,提供對媒體檔案操作的底層介面。它的具體的使用我們基礎到的比較多的是基於它的AVFoundation。

      官方文件

28、CoreMIDI  這個我基本上是不想說了的,因為好像我們基本上都沒什麼使用,而且關於它的資料特別的少,MIDI是一套樂器數字介面,這個框架也是用來連線裝置的 像MIDI 鍵盤,有興趣的自己再去了解吧。

29、CoreML

       CoreML 是一個機器學習框架,藉助 Core ML,您可以將已訓練好的機器學習模型,整合到自己的應用當中。

       Core ML介紹 (Apple機器學習框架)

       官方文件

30、CoreMotion

      Core Motion 可以讓開發者從各個內建感測器那裡獲取未經修改的感測資料,並觀測或響應裝置各種運動和角度變化。通過這些感測器可以獲取加速度值,陀螺儀值等。

      iOS CoreMotion的使用

      官方文件

31、CoreNFC

      NFC(近場通訊)就是當兩臺硬體裝置相距4cm以內時可以實現互相通訊 

      iOS11中使用CoreNFC

      官方文件

32、CoreServices

      Core Services層為所有的應用程式提供基礎系統服務。可能應用程式並不直接使用這些服務,但它們是系統很多部分賴以建構的基礎。這麼去理解的時候就發現其實他是一個很少我們具體需要我們使用的框架,但真的是一個無處不在的框架。

      官方文件

33、CoreSpotLight

      這也是一個很有趣的框架,它可以讓你 App 中的內容在 Spolite 中搜尋到, 並且將相關的搜尋結果展現給使用者, 並且允許使用者和搜尋的結果進行互動. 當使用者選擇了其中一個搜尋的結果後, 不但可以自動的開啟你的應用程式, 同時還可以跳轉到指定的頁面來檢視詳細的內容。

      如何使用 Core Spotlight

      官方文件

 

 

相關文章