跳到主要內容

精選

《十分鐘學程式》Firebase Push Notification - iOS Swift

現在已經是手機不離身的年代了,每天少則幾十通 推播通知 (Push Notification) ,多則上百通,大家是否思考過這些推播是怎麼作業的嗎?好吧!我自己也沒想過,因為一切都是這麼的自然XD。 推播對一個 App 來說是不可缺少的,畢竟不可能要求使用者一直開著 App,那如何要在使用者在未開啟 App 時來達到傳遞訊息呢?這時就可以用飛鴿傳書,或是請刺客來幫忙傳遞...,如果這些方法都不喜歡的話,那可以考慮用用費時又浪費資源的推播 Push Notification 來達到這個目的。 說到這邊,是否想到如果要做到推播就需要自己先建一個 Server 才能做到,答案是否定的,因為我們有強大的 Google 幫大家都已經架設好了,而且是『免費的』這才是最重要的,因此 Firebase 就這樣產生了!!這次就要教大家如何使用 Firebase 來做到 iOS Push Notification。 在開始教學前需要做一些準備: 一台裝好 Xcode 的 Mac 一個付費的 Apple developer account,沒錯就是那個每年要繳 99美元的帳號 一個 Google 帳號 一杯夠大杯的咖啡 (What?) 上面這些東西都準備好的話!我們就開始上課嚕~~ 這堂課會分 12 小節: ・Xcode 建立一個 Swift 專案 ・設定 Apple Developer Account ・產生 CSR 檔 ・上傳 CSR 檔 ・準備 APNs (Apple Push Notifications) 認證 ・Firebase 建立新專案 ・Firebase Push Notification 設定 ・撰寫設計一個支援 Firebase Push Notification 的 iOS App ・開啟 Push Notification 功能 ・匯入 GoogleService-Info.plist ・初始化 Push Notification 設定 ・測試 Firebase Push Notification Xcode 建立一個 Swift 專案 1. 開啟 Xcode,選擇『 Create a new Xcode project 』來建立一個新的專案 2. 選擇『 Singl...

《十分鐘學程式》CocoaPods 使用第三方資料庫教學

上一堂課已經教大家如何安裝 CocoaPods,如果還沒有看的人趕快去上課呦!『《十分鐘學程式》CocoaPods 安裝教學』。那這一堂課就是要教大家如何使用啦!相信大家學習完後就會拍一下桌子,然後大喊一聲『原來如此!』(如果沒有不要來打我嘿!) 廢話不要太多,直接進入主要話題吧!

這堂課分四個小節:
・CocoaPods 初始化
・CocoaPods 第三方庫更新
・CocoaPods 刪除部分第三方庫
・把 CocoaPods 從 project 

CocoaPods 初始化
1. 首先必須要有一個 Xcode project,如果不知道怎麼建立 Xcode project,那我就....之後再開一堂課吧XD。這邊我新建了一個 project 來做教學,名稱是『Use CocoaPods Test Project』。
2. 然後開啟 Terminal,(如果不知道如何開啟 Terminal 的人可以在 Spotlight 搜尋,按下 command+space 即可叫出 Spotlight,然後輸入 Terminal,就可以叫出來嚕!!)
3. 在 Terminal 開啟 Xcode project 的位置,最簡單的方式就是把 project 直接拉到 Terminal,當然前面要先打 cd。如果還是不懂的人,就....照個圖片做嚕!(我已經盡量用得清楚了,不懂的再留言問我唄!)
4. 按下 Enter 後,檢查一下 Terminal 是否已經指向 project 資料夾。(如果你 project 名稱和我不一樣,資料夾名稱當然會和我不一樣喔!)
5. 確認 Terminal 的確在 project 之後,輸入以下指令(輸入完記得按下 Enter 嘿!):
 pod init

6. 此時會發現 project 資料夾內會產生一個『Podfile』的文字檔,這個檔案是要給 CocoaPods 看的,簡單來說就是 CocoaPods 的 Profile。
7. 接著我們要開始編輯 Podfile,編輯的方法有很多種,可以用 mac 內建的 vim,或是連點兩下用文字編輯器,還是要安裝其他編輯器都可以。這邊我們用 vim 來做編輯,為何要用 vim 呢?原因很簡單,因為 vim 全是文字介面,可以讓旁人覺得你很厲害>///<。輸入以下指令:
 vim Podfile

8. Podfile 初始的內容就像這樣
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Use CocoaPods Test Project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Use CocoaPods Test Project

end

9. 這邊我們利用很熱門的 Firebase 這個第三方庫來做範例。不過這時候應該很多人會納悶,我們怎麼知道有哪些第三方庫呢?可以去 CocoaPods (https://cocoapods.org/) 的網頁去查詢有哪些第三方庫,或是可以上谷歌查都有很多喔!

10. 回到編輯 Podfile,我們在 # Pods for Use CocoaPods Test Project 後加入一行『pod 'Firebase'』,這代表我們要使用 Firebase 這個第三方庫。
*使用 vim 小提示:
  ・如果要輸入需要先按下『 i 』,左下角變成『-- INSERT--』才有辦法輸入喔!
  ・輸入完要存檔,要先按下『 esc 』,左下角的『-- INSERT--』不見,然後輸入『 :wq 』(會顯示在左下角),按下 Enter 即可。

Podfile 內容就會變成這樣:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Use CocoaPods Test Project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Use CocoaPods Test Project
  pod 'Firebase'

end

11. Podfile 都編輯完後,在 Terminal 輸入以下指令:
 pod install

12. 等待貼心的 CocoaPods 安裝完後,他會顯示『[!] Please close any current Xcode sessions and use `Use CocoaPods Test Project.xcworkspace` for this project from now on.』,意思就是要我們把原先開啟的 xcodeproj 關閉,然後開啟 CocoaPods 建好的『xcworkspcae 檔』。
13. 再次打開 project 資料夾,會發現多了很多東西。找到 CocoaPods 所說的『xcworkspcae 檔』,用力的把它打開吧!

14. 開啟 Xcode 之後會發現,除了有我們之前的 project 之外多了一個 Pods project,CocoaPods 就是利用這個專案來幫我們管理以及連結第三方庫。

15. 接下來我們就可以輕鬆快樂的使用這些第三方庫嚕!但是別忘了還是要自己 import 這些函式庫喔!不然 Xcode 會找不到你要使用的 API 喔!像是這次我就要 import Firebase,程式碼如下:
import UIKit
import Firebase

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

}

CocoaPods 第三方庫更新
1. 之前說過,CocoaPods 可以用一行指令更新所有第三方庫,如果我沒有在這邊教大家,一定都會覺得我在唬爛。一樣要開啟 Terminal,然後把 Terminal 指向 project 資料夾,然後輸入以下指令:
 pod update
CocoaPods 刪除部分第三方庫
1. 刪除已經匯入的第三方庫其實很簡單,開啟 Podfile,把要刪掉的第三方庫刪除。這邊我們要把 Firebase 刪掉,所以就要把 pod 'Firebase' 這行刪掉。
原先 Podfile:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Use CocoaPods Test Project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Use CocoaPods Test Project
  pod 'Firebase'

end

刪除後:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Use CocoaPods Test Project' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Use CocoaPods Test Project

end

2. 在 Terminal 輸入以下指令 (注意: Terminal 一樣要指向 project 資料夾):
 pod install

3. 會發現 CocoaPods 就會把不要的第三方庫移除了。
4. 刪除完第三方庫後,記得要把程式碼有使用到這些第三方庫的 API 刪掉喔!不然和下圖一樣出現找不到 API 的窘境。

把 CocoaPods 從 project 全部移除
如果哪天看不爽 CocoaPods,不想要讓它來管理第三方庫,要把整個 CocoaPods 從 project 移除其實是比較多步驟的。這一定是 CocoaPods 的陰謀,不想要我們移除 CocoaPods,因為其實這些步驟如果它有心,也可以寫一個指令讓我們呼叫就好...((這個世界真的太險惡了!!

1. 開啟 project 資料夾,把 Podfile、Profile.lock、Use CocoaPods Test Project.xcworkspace(這跟據 project name 不同會有所不同) 這三個檔案刪掉,再把 Pods 這個資料夾刪掉。
2. 開啟 .xcodeproj檔
3. 刪除 Pods 資料夾和 Frameworks 資料夾內報紅的 framework,不要傻傻的把 Frameworks資料夾整個刪掉呀!(因為網路上有人教把 Pods 和 Frameworks 這兩個資料夾都刪掉),Framework 資料夾內不是只有放 CocoaPods 管理的第三方庫,還會放使用了哪些 apple 內建的 framework,像是這邊就有使用 apple 所提供的 AVKit.framework。


4. 開啟 Build Phases
5. 刪除 [CP] Check Pods Manifest.lock

6. 這樣就成功的把 CocoaPods 全部從 project 移除掉啦!!((放煙火~ 咻~~嘣!!

〖總結〗
CocoaPods 真的是一個很好用的第三方庫管理工具,只要大概學一下,就可以很輕鬆地上手。雖然說移除 CocoaPods 並不是那麼人性化,不過其實也不難,幾個步驟即可搞定。所以剛開始接觸 iOS 開發的人可以多多學時如何使用 CocoaPods。

雖然有很多人說,盡量不要使用第三方庫,因為如果哪天他們不維護了會很困擾,這麼說是沒有錯,不過分工是現在工作的趨勢,如果人手不夠沒有時間自己寫那麼多別人已經整理好的 API,還是可以使用這些第三方庫,這方面就看個人怎麼思考了。

那麼應該會有人說,現在都是使用別人的函式庫,那我們可不可以自己寫函式庫丟在 CocoaPods 上面提供給別人使用呢?答案是:『可以的!!』。所以之後會教大家如何把自己寫的函式庫傳到 CocoaPods 來造福大家喔~~

留言

  1. Do this hack to drop 2lb of fat in 8 hours

    More than 160k women and men are trying a easy and SECRET "water hack" to drop 2lbs each night while they sleep.

    It is effective and works with anybody.

    This is how you can do it yourself:

    1) Take a drinking glass and fill it with water half the way

    2) And then use this awesome HACK

    you'll become 2lbs thinner when you wake up!

    回覆刪除

張貼留言

熱門文章