跳到主要內容

精選

《十分鐘學程式》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

《十分鐘學程式》iOS(Swift) VS Android(Java) 新學者該從何系統著手,該從何語言學起 -- 妹妹廢話時間

iOS(Swift) VS Android(Java) 新學者該從何系統著手,該從何語言學起

-- 妹妹廢話時間

說現在的社會是人手一機的世界已經無法凸顯目前資訊爆炸的程度了,應該要用『人手多機』來形容這個世界。相信很多人都會認同這個論點,但應該也有人抱持著懷疑的態度來看待,但是我非常相信這樣說一點都不誇張。也因為如此,有不少人在學程式語言的初期,都想從 Mobile APP 著手,這個方向是沒有錯的,畢竟寫 Mobile APP 的門檻真的小很多

不過妹妹勸大家還是別學寫程式呀!因為這樣我就沒有工作啦~(被揍死...),我也只是混口飯吃呀~越來越多人會寫程式,我就真的只能出去賣...啦!

相信每個人腦子裡有想學 Mobile APP 的念頭的下一秒,就是在思考要學 Android 還是 iOS。放心接下來妹妹我不會有任何個人色彩來評論這件事情,頂多加一點點黃色(閃~),當然也不會給一個結論是該學哪一個,因為這個結論需要各位自己抉擇,畢竟每個人的角度不同,需求也不同。

接下來先來說明 Android 和 iOS 各是用什麼語言來撰寫編輯的。


Android 雖然是一個基於 Linux 的作業系統,不過開發 Android 的應用程式 APP 卻是用 JAVA,神奇吧!更神奇的事 Android 本身是不自帶 JAVA 虛擬器的,所以是轉成 Dalvik executables 檔案在 Dalvik 虛擬器上執行。這些不是這次要討論的重點,重點是 Android APP 是用 JAVA 撰寫的。

iOS 在最一開始是利用一個非常奇怪的語言 Objective-C (喜好 Objective-C 的朋友們別來打我呀!),Objective-C 不只難學,而且程式碼裡面常常會看到 + - 出現,重點這些加減符號不是用來當運算子來做運算的,厲害了吧!還好 Apple 有發現自己使用的語言真的莫名的難懂,所以在 2014 年宣佈新語言『Swift』。Swift 字面上的意思是雨燕,聽說是因為雨燕是飛行速度上最快的鳥類,而且身形巧小,果然 Apple 在 Logo 上就想說明 Swift 是一個輕巧又快速的語言。

接著再說 Android 和 iOS 是利用什麼開發工具來開發的。

Android 在一開始是沒有自己的開發工具的,都是在 eclipse 裝上 Android 開發套件來開發。老實說,eclipse 真的輕便很多,而且有很多較資深的工程師前輩們還是都習慣在 eclipse 上開發。不過在 2013 年 Android 發展出自己的開發工具 Android Studio,這也宣告著利用 eclipse 開發 Android 將慢慢走向歷史。雖然 Android Studio 比較大隻,但是好處其實真的蠻多的,除了不用自幾設定那些該死的參數,也不用自己下載安裝開發套件外,他編輯 UI 的介面也更為乾淨明確。因此現在大家幾乎都用 Android Studio 在開發了。

iOS 不論是寫古怪的 Objective-C 還是小巧輕快的 Swift 都是用 Xcode。Xcode 就沒有什麼歷史的包袱了,因為這是唯一可以開發 iOS 的開發工具,而且只能在 macOS 上運行,這招 Apple 真的太厲害了,不過我相信目前應該也只有他們有這個能力可以這樣做了 。

介紹了那麼多,該是來比較兩者優缺點的時候了。

Android優點其實很多,我就大概列出我認為比較代表性的優點。
1. 在任何作業系統都可以安裝開發工具 (Android Studio/eclipse),意味著學習 Android 可以說是完全沒有門檻。現在沒有電腦的人應該是幾乎比較少吧!?當然有些國家真的比較...沒有那麼...發達的就真的比較可惜了 (說到這真的有點難過,現在貧富差距真的太大了...)。我認為這是 Android 最大的優勢。

2. 可以客製化硬體。Android 並不局限在特定平台上運作,所以只要有能力大家都可以製作出屬於自己的 Android board,然後再把 Android po 在上面就可以運行 Android 系統了。現在有很多產品其實都藏著 Android 的影子,仔細觀察其實不難察覺出來。

3. 使用人數較多。現在手機還是 Android 佔多數,當然兩者各有有缺點,但是我自己認為 Android 手機的價格從低到高都有,可以符合大眾的需求。而且 Android 的裝置有很多家公司在生產,像是大家耳熟的 HTC、三星、SONY 等,而且現在中國超多興起的公司在生產手機,小米、OPPO、華為等等,真的太多太多人在做啦。

4. 使用 JAVA 撰寫。因為 JAVA 是一個跨平台的語言,而且他並不是專為 Android 所開發出來的語言,因此幾乎有念過程式設計的人都有學過。因此要寫 Android 的門檻又降更低了。

有優點當然也是有缺點的,Android 的缺點我也大約列幾項。
1. Android 的裝置版本真的多到不像話。這些多元的裝置絕對是對 Android 工程師一個頭痛的議題,因為我們不可能所有設備都測試過一遍,即使有那個時間也沒有那些設備,因此常常會遇到哪些設備跑哪些 APP 會當掉啦!或是行為不一樣啦!又或是 UI 排版不一樣啦!一堆問題。在這邊真的要呼籲大家不要再罵 Android 工程師了,他們絕對也想寫出一個所有裝置跑起來都非常順,而且所有功能都一模一樣的 APP,無奈 Android 裝置真的太多了。

2. Android 的 Apk 太容易被取得了。只要被安裝在 Android 的 APP 都可以利用特殊方法得到 Apk,而且這些 Apk 可以經過反組譯看到程式碼,這跟變態的行為根本一模一樣呀!一般 APP 被這樣窺探當然沒有關係,但是如果是一些機密的東西,又或是有經過加密傳出的資料,有心人士完全可以看出是如何加密的。

接下來輪到 iOS 了,這邊是針對 Swift 的優缺點。
Swift 也不甘示弱,優點也是波濤洶湧 (是這樣用的嗎?我才不管哩!)
1. iOS 的裝置相對單純。我認為這是 iOS 最強悍的地方,iOS 工程師超級好做測試 (咦?奇怪測試是工程師的事情嗎?)。UI 也相對單純很多,不過 UI 這部分在該死的 iPhone X 問世後,就有點麻煩,不過和 Android 來比還是單純不少。

2. iOS 需要一台 macbook 才能開發。也許很多人認為這是一個缺點,但是我卻認為這更是另一個優點,就是因為這樣所以才讓開發 iOS 的門檻大大提升。簡單來說就是比較少人會寫 iOS 啦!在更簡單一點就是 iOS 工程師比較值錢啦XD

3. Swift 容易學習。雖然說 Swift 是一個專為 iOS 系統產生的語言,但是不得不說,他真的很容易學習,除了語法乾淨之外,還是乾淨簡潔。之前大家對 JAVA 的印象就是容易學習,那麼 Swift 完全可以超越 JAVA 簡單的程度。

4. Storyboard 強大的 UI 設計介面。真的不得不說 Storyboard 很好用,再加上 Auto Layout,相信不會寫程式的人也可以完成漂亮的 UI。

5. iOS 的原始碼不容易取得。iOS 安全方面是大家眾所皆知的,這對開發上有很大的安全感,這就和隨時都會被看到裸體沒有安全感是一樣的道理啦~

把 iOS 說的和神一樣,不過 iOS 也不是沒有缺點的。
1. iOS 需要一台 macbook 才能開發。當然啦~這也還是一個麻大的缺點啦!因為一台 macbook 也是貴貴的誒!雖然說便宜一點的 macbook air 也是可以開發,但是也是要好幾萬塊的。

2. Swift 的 Library 還沒有很齊全。雖然說 Apple 目前都主推 Swift,但是其實他還是有殘缺的地方。有些 Library 是只有 Objective-C 才有的,雖然說 Swift 還是可以透過第三方資料庫來達到目的,但是如果原生資料庫就有了當然會希望用原生的呀~畢竟是 Apple 自己包出來的,如果有問題很容易被大家審視出來,也比較有保險。

聽了妹妹說了那麼多廢話。也大略的整理出 Android 和 iOS 的優缺點,至於要選擇哪一種來學習當然是自己抉擇嚕!當然有會有人問,兩種都學不就好了!?沒有錯~但是相信我,Android iOS 兩邊跳來跳去的寫絕對會瘋掉,也許是因為我自己資質不好啦!

還是希望大家找到最適合自己的平台和語言嚕!!

留言

熱門文章