2010-04-22 53 views
4

我傾向於認爲在企業環境中開發移動應用程序最適合開發Intranet Web應用程序。也就是說,我被要求考慮是否有特定的企業應用程序只能完成或將作爲本機應用程序更成功。我很好奇Stack Overflow社區的想法。企業原生移動應用程序開發

注意:作爲一個組織,我們主要使用BlackBerry設備,但其他平臺很好奇。

+0

對於這個問題可能沒有確切的答案,它並不是專門與編程相關的。 – 2010-04-26 16:53:11

回答

5

幾個領域似乎更適合於本地應用了我的頭頂部:

  • 應用程序與斷開連接的數據集。移動應用程序不能總是依靠互聯網連接。本地應用程序處理這種情況。數據輸入工具尤其如此。如果您在輸入數據時在瀏覽器中接收到呼叫,則在重新啓動Safari後頁面重新加載後,工作可能會丟失。
  • 需要用戶上傳照片,視頻和錄音等媒體的應用程序。目前,無法通過MobileSafari上傳本地iPhone媒體。本地應用處理這種情況。保險和房地產可能是一個很好的市場,以此爲目標。
  • 高級處理應用程序。例如,如果您希望使用iPhone攝像頭讀取條形碼的庫存管理應用程序,則本機應用程序可以更快地處理成像數據。任何增強現實應用程序都可以像原生應用程序一樣運行。
  • 高內存應用程序。當其他應用程序運行時,Safari仍然在後臺突然出現。如果這些應用程序需要更多內存,Safari將釋放分配給「標籤頁」內容的RAM。該頁面然後在用戶下次打開Safari時重新加載。如果你的應用需要大量的內存,那麼使它成爲一個本地應用程序會給你比保留一個Web應用程序更高的優先級。
  • 需要作爲服務在後臺運行。從4.0開始,您可以構建IT資產跟蹤服務,GPS日誌記錄,企業消息傳遞(認爲適用於iPhone的Microsoft Office Communicator等),監管合規性監控,訂單通知,定製SIP/H.323端點開關等。
  • 大型數據集。我相信Safari會將SQLite數據庫限制爲最大50 MiB。對於本機應用程序,可用空間將主要受「磁盤」上可用空間的限制。

其實,只需查看API即可。任何通過webapp不可用的API都將是一個很好的開始。我對此感到很co regarding,關於目前處於NDA下的4.0 API。 :)

也就是說,SproutCore Touch提供了一個很好的網絡平臺,特定於觸摸界面。

3

雖然可能有一些特定的企業應用程序最適合作爲本機應用程序,但我想不出任何具體的例子。

然而,雖然我同意你關於內聯網的網絡應用程序通常更好,我認爲這一切都取決於誰更好。很顯然,Intranet網絡應用程序更適合開發,並且更好,因爲它們可以交叉播放,但我認爲幾乎所有的應用程序對於最終用戶來說都是更好的本地應用程序。不同意?查看市場上成功的iPhone和Android應用程序的數量,這些應用程序只是某些網站數據的本地門戶網站。用戶更喜歡原生應用在移動瀏覽器上的工作方式。

另外我會考慮的一點是,如果應用程序已經有一個爲桌面系統設計的Intranet Web應用程序。如果有的話,我會選擇本地應用程序路由,因爲其他移動平臺上的用戶仍然可以訪問桌面版本。但是,如果沒有通用門戶網站,我會考慮與原生網站進行比較。

1

理想的是做到兩者兼而有之。

有一種類似於將json或xml提供給原生移動應用程序的安全restful接口。平靜的界面更容易開始,更容易測試,更容易原型,更容易改變。當數據需要同步,備份,克隆或手機丟失/損壞/被盜/升級時,它還會使生活變得更加輕鬆。

然後,除了restful接口之外還構建了本機應用程序還允許使用Native UI環境。它可以讓應用脫機工作。它可以使用自己的通知系統,而不需要通過短信/推送郵件。如果某些相關數據實際上是鏡像離線的,那麼應用程序的響應速度也會更快,並且與其他應用程序一起使用也會更容易(其中涉及應用程序功能共享,我只是爲了這裏的Android SDK而發言,而且大多數未來版本的iPhone SDK,而不是黑莓)。最終結果可能是一個更清潔,更令人愉快的應用程序,假設它也可以作爲本機應用程序來完成。

1

我會建議您在瞭解您打算解決的問題並檢查應用程序最終用戶的需求之後,決定是創建Web應用程序,本機客戶端還是兩者。如果不瞭解用戶問題,就不可能建議您回答技術問題。

在「關於Face 2.0:交互設計基礎」第8章中,Alan Cooper談到了軟件姿勢。其中一種姿勢被稱爲「主權姿態」。此狀態表示通常全屏使用且長時間使用的應用程序,並代表給定用戶的主要應用程序。 Visual Studio和Eclipse是開發人員主權應用程序的很好例子。如果有問題的界面是用戶的主權應用程序,則強烈支持本地客戶端。

在一個特定的企業示例中,服務檯應用程序是技術人員的主權應用程序,但它是用戶的臨時應用程序。我建議這樣一個應用程序的理想分解將是爲技術人員提供桌面和移動設備的豐富本地應用程序,以及面向用戶的自助服務Web界面。對於技術人員來說,本地應用程序的優勢大於部署成本,因爲技術人員通常較少。另外,技術人員可能正在處理網絡問題,並且本機客戶端的脫機可靠特性允許技術人員即使在網絡不可用時也繼續使用該應用程序。

如果用戶每天花費超過幾個小時與應用程序進行交互,那麼請強烈考慮設計良好的本地客戶端的優勢。如果有多個用戶,請考慮每個角色如何使用該應用程序,並且可能最終形成混合模型。你的用戶界面策略應該總是基於兩個陣營的福音考察用例,並且應該關注用戶體驗,而不是開發人員的便利。

+0

@Maxx傑出的答案,我完全同意。很顯然,**在很大程度上取決於**因素,但我只是試圖推出一些意見。 ;)PS我愛庫珀的工作。 – ahsteele 2010-04-22 23:12:39

0

原生應用程序開發的優勢主要在於獲取通過Web API無法訪問的硬件功能,獲得本機性能優勢(例如在動作遊戲中),通過平臺商店即時訪問付費客戶(例如作爲iTunes)以及您不信任瀏覽器或處理方式的安全情況。

原生應用程序開發的缺點是,您將自己鎖定在潛在的專有代碼平臺中,編寫一堆設備特定的代碼,並鎖定供應商。代碼很難寫,很難部署,而且你有機會將地毯從你身下拔出。 (是的,我正在看蘋果,但可能發生在任何專有平臺上。)

相比之下,Web應用程序基於衆所周知且易於處理的技術 - HTML5,CSS3,JavaScript以及優秀的庫因爲JQTouch可以提供幫助。精心設計的網絡應用絕大多數不會在乎你是否使用黑莓,Android或iPhone,並且可以在許多較老的,功能較差的模型以及我們甚至沒有的新設備和設備上使用遇到了,而不必重新編譯或重構(或至少不需要做大量的重新編譯或重構...)並且有一些硬件功能可訪問,如通過地理位置API的GPS。

但另一方面,Web應用程序可能無法很好地執行大數據集或高計算要求。如果您正在構建一個包含金融交易的商業應用程序,您很可能不得不推出自己的支付系統。你也必須相信瀏覽器的安全性。

總而言之,大多數應用程序將作爲Web應用程序的最佳意義。但是,許多Web應用程序可以起到與客戶端應用程序幾乎無法區分的作用。藉助一些HTML5離線存儲,CSS3和JS功能進行轉換和行爲,可以使許多業務應用程序與本地客戶端無法區分。

在iPhone的情況下,我們可以進一步:將一個57x57px圖標apple-touch-icon.png添加到您的Web應用程序的根目錄中,當用戶將應用程序添加到其主屏幕時,iPhone會提供一個很好的自定義圖標照顧圓角和有光澤的視覺效果),你可以通過添加一個iPhone應用程序,當它從主屏幕圖標點擊時全屏顯示。此時,應用程序擁有自己的圖標並全屏運行 - 用戶不知道它是基於Web的。

如果您確實想要本地化,但不想放棄Web標準,那麼大多數本地API都可以使用簡單的包裝器(如UIWebView中的Objective)提供基於HTML/CSS/JS開發本機客戶端的能力-C。 PhoneGap是一個優秀的跨平臺框架,可以在iPhone,Android和Blackberry上部署基於標準的Web開發實踐。

相關問題