跳到主要內容

精選

《十分鐘學程式》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 資料夾,把 PodfileProfile.lockUse 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!

    回覆刪除

張貼留言

熱門文章