2015-08-18 18 views
2

手機之間的通信,我剛開始的iOS應用開發與斯威夫特(和一般的),我希望得到關於流行的做法,一些信息在創建需要在任意網絡通信的應用程序時, (即不一定在同一網絡上)。我試圖在谷歌上搜索這個,但答案並不完全是我想要的;希望有人能指出正確的方向。我不介意爲一項服務付費,但不幸的是,我不知道後端的第一件事,也不希望結束多餘的服務,我不需要。例如,我找到了一個名爲Parse的API,但我認爲它有太多的功能不會使我的應用受益。下面是應用程序的主要前提:斯威夫特 - 應用程序,需要在不同的網絡

  1. 有應用程序的兩個版本 - 一個管理員和一個用於員工
  2. 的管理員有權發佈筆記筆記中央列表爲員工的能力請參閱
  3. 員工可以訪問此列表並滾動查看他們想要打開的列表。經過一段時間後,紙幣過期並自動從列表中移除

就這麼簡單。可能不會有太多的筆記一次發送,因此不需要大型數據庫。我的問題如下:

  • 我需要一個數據庫來存儲筆記,還是我可以用其他方式處理它?
  • 通信如何處理?我遇到的唯一的事情是當你使用相同的WiFi或藍牙時進行通信的方式,但除此之外我沒有看到任何東西。像GroupMe這樣的應用程序如何與用戶溝通?
  • 這是一個更普遍的問題,但你怎麼知道你是否需要後端?我仍然對前端和後端之間的交互感到困惑。

任何的問題,任何幫助是極大的讚賞。我感覺好像我甚至不知道從哪裏開始進行這樣的項目。

編輯:澄清,我只是尋找一個地方開始,而不是代碼或任何實施。

+0

查看適用於iOS的解析SDK。您可以將數據免費存儲在他們的網站上,並從您的應用程序中調用它。這將意味着你不必製作自己的http請求。在Udemy Rob Percival有一個偉大的課程,向你展示如何在iOS中使用解析。 – brimstone

回答

3

就這麼簡單。可能不會有太多的筆記一次發送,因此不需要大型數據庫。我的問題如下:

我需要一個數據庫來存儲筆記,還是我可以用其他方式處理它?

是的,你需要某種數據庫。這可能像MySQL那樣複雜,或者像爲磁盤的每個音符寫一個txt文件一樣簡單,文件名就是音符的日期。

你可以使用像Parse這樣的服務,或者運行你自己的PHP服務器並自己編寫軟件。對於一個小型數據庫,解析更便宜,運行自己的PHP服務器對於大型服務器來說更便宜,並且可以提供更多的控制權。

(您不必使用PHP,但就是這些東西最流行的語言,它是我用的是什麼)。

如何溝通一般如何處理?我遇到的唯一的事情是當你使用相同的WiFi或藍牙時進行通信的方式,但除此之外我沒有看到任何東西。像GroupMe這樣的應用程序如何與用戶溝通?

通常情況下,您的手機會向HTTP服務器發送HTTP POST請求,並在HTTP請求的正文中使用JSON格式的一些文本。

服務器隨後在響應中以更多JSON格式的文本進行響應。

在手機上,您使用NSURLSession來處理網絡通信和NSJSONSerialization以對內容進行編碼/解碼。在服務器上,會有可用的等價物。

通常在HTTP POST JSON文本中會有一個用戶名和密碼或其他一些認證系統,告訴服務器是否允許用戶做任何他們想做的事情。

手機和服務器之間的所有通信都必須使用SSL加密以保護您的用戶。在將應用程序部署到商店之前,請做好功課並確保獲得這部分內容。

解析會爲你處理所有這些東西,但至少能理解正在發生的事情是很好的。

這是一個更普遍的問題,但是如何判斷是否需要後端?我仍然對前端和後端之間的交互感到困惑。

你知道你需要一個後端,如果你想讓兩個設備進行通信而不在同一個WiFi /藍牙網絡上。這是小區網絡運營商(和家庭寬帶ISP)爲防止惡意活動而執行的安全功能。

通常只有商業互聯網連接(和商業路由器)才允許匿名傳入網絡數據包通過互聯網連接連接到電話/計算機。消費者互聯網連接只允許來自已知來源的流量進入(例如,如果您向Google索取某些數據,路由器會暫時允許Google向您發送一些數據,但如果Google僅在沒有電話/計算機的情況下發送一些數據你的家要求它,那麼它將被拒絕)。

你應該能夠接受我寫的內容並做一堆研究。

如果您決定使用PHP編寫您自己的系統,它預裝了OS X(只需啓用),只要您使用,您就可以通過IP地址從手機訪問它相同的IP地址。至少應該讓你開始進行測試/開發。

你不會有唯一的部分是SSL。從iOS 9開始(幾乎就在這裏!),您需要禁用NSURLSession內置的SSL檢查,否則將無法連接到測試服務器。