2014-07-08 40 views
1

Im新的iOS和新的SWIFT,沒有以前的經驗與Obj-C。但是,我不是Ruby的新手。我在heroku上有一個基於web的應用程序,並開始學習SWIFT,因此我可以構建一個iOS應用程序。在我開始之前,我需要將自己的頭圍繞在更大的圖片上,我無法弄清楚這些應用程序如何連接到數據庫。蘋果swift - 應用程序如何連接到現有的heroku/S3數據庫

iOS應用程序可以連接到S3數據庫...並與網站共享該數據庫?有關於這個過程的文檔,我已經看過。

回答

10

將iOS應用程序連接到公共數據庫確實是一個壞主意 - 所有服務器邏輯都應該在客戶端上實現,並且還需要在應用程序中對數據庫用戶名和密碼進行硬編碼。

更好的方法是創建一個服務器應用程序,公開一組REST API並負責處理數據庫。這樣,您可以更好地控制服務器端應用程序客戶端能夠在數據庫上執行的操作。

如果你有一個訂單錄入應用程序,例如,你可以創建API來:

  • 登錄
  • 寄存器
  • 創建訂單
  • 修改訂單
  • 添加聯繫人
  • 刪除聯繫人
  • 等...

一些優點是:

  • 的情況下,你需要更新邏輯(而不是API接口),你只需要更新服務器,而在你的情況下,你會需要發佈移動應用
  • 你控制的新版本,並限制客戶端應用程式如何訪問數據(例如防止用戶訪問其他用戶的訂單)
  • ,如果你想開發在其他平臺上相同的應用程序( android,...),你可以重複使用相同的API

要開始,我建議你閱讀raywenderlch.com的AFNetworking tutorial,集中了IOS網絡庫,但談論JSON,REST,遠程的API等

接下來你要選擇一個服務器端技術 - 時下最爲流行的是Node.js的 - 上手就可以讀取同一網站上的其他教程:

如果你不想使用node.js和/或mongodb ...應用相同的架構,只是語言和技術不同。只需轉換你從那裏學到的東西。

如果你想了解其他語言在服務器端的使用,只是谷歌它 - 如果你想使用紅寶石,請嘗試ios rest api server ruby

注意:我沒有提及swift,因爲您的問題看起來更像是一個架構問題而不是語言特定的問題。我在這裏提到的教程使用了Objective-C,一旦您設計了架構並在服務器端選擇了語言,就可以開始研究如何從swift調用REST API。

+0

「將iOS應用程序連接到公共數據庫實在是一個壞主意 - 所有服務器邏輯都應在客戶端上實現,並且還需要在應用程序中對數據庫用戶名和密碼進行硬編碼。」 - 我想爲我運行的測試做到這一點,不會被客戶端暴露。我怎樣才能做到這一點?我讀過的所有東西都只是說這是個壞主意,但沒人說如何去做。它甚至有可能嗎? – cakes88

+0

@Konnor如果你可以找到一個iOS庫來連接這個數據庫,你可以這樣做。嘗試谷歌搜索「s3數據庫ios」,我發現了一些結果,但我不能說他們的「質量」的任何內容。不幸的是,你想要做的事情很少被大多數開發者完成,所以除了數據庫提供者(即亞馬遜)提供的幫助之外,你不會找到太多幫助, – Antonio

相關問題