共用方式為


本文章是由機器翻譯。

新式應用程式

設計跨平台新式應用程式架構

Rachel Appel

Rachel Appel是否你設計一個專案從零開始或修改現有的解決方案,它是重要的是要知道現代 app 的景觀。這意味著雪亮的設備、 作業系統和瀏覽器外面有需要加以注意。"設備"不只是智慧手機,— — 這包括平板電腦、 Pc 和大型桌面螢幕。智慧手機的銷量仍然多於銷售的每個其他類型的設備,但是。一些開發商甚至可能必須考慮可穿戴設備作為其跨平臺體系結構的一部分。

底線是編寫這些天的軟體意味著大量的設備的寫作。主要目標是代碼的以跨各種平臺盡可能共用盡可能多的代碼,因此您必須編寫最少。這將説明您得到的產品或應用程式更快地發運。它也將不那麼易於造成的重寫中不同語言的同一邏輯 bug。

跨平臺設備開發

在你接近跨平臺開發的方式將取決於你在的地方已有的軟體的類型。如果你有你想要共用的內容的 Web 網站,一種混合解決方案可能是最好的。如果它是一個成熟的網站,你可以將它轉換為一個作出反應的設計和支援行動裝置。可以放棄手機網站都放在一起,只是提供一個 Web 網站和單獨的同伴的本機應用程式。另一個需要考慮的因素是該應用程式是否只是另一種方式呈現該網站的內容或如果可以單獨作為它自己的想法。

第一,建立您的移動網站,然後生成的本機應用程式。雖然您開發本機應用程式,移動網站可以作為應用程式直到你已經覆蓋所有的平臺。那些與網站已經向上和運行可能需要以本機方式採取該內容和函數將每個設備。您可以繼續增長您移動使用者基礎,而發展中國家的本機應用程式通過這種方式。當你準備開始寫你的本機應用程式,您可能需要確定要使用的語言的説明時,那麼請務必查閱我 2013 年 9 月的專欄,"瞭解您的語言選擇為發展中國家現代應用程式"(msdn.microsoft.com/magazine/dn385713)。

雖然是一個最受歡迎的概念開始發展的最大平臺或一個與最設備銷售,有時它是更好的業務決策入手的平臺,具有功能運行並行與您的要求。例如,日誌食物和運動健身 app 可能有要求,以顯示您的餐飲和活動的摘要 — — myFitnessPal 是一個很好的例子在 Windows Phone 上。這種資料是完美的生活的平鋪,即僅在 Windows 平臺上可用。

你能弄明白如果您的要求相匹配的平臺,其中列出您的所有主要應用程式功能。每個通過驗證它支援每個平臺上,可能到何種程度上的審查。你會看到在分歧,是與特定硬體的功能,如觀景窗或作業系統功能 (如瓷磚或語音辨識。您從 30,000 腳視圖的建築選項設置你進去三個方向之一:本機應用程式、 混合應用程式或 HTML5 移動 Web。

本機這意味著全速推進在一個單獨的應用程式為每個平臺上。可能是 Windows Phone 8、 iOS 和 Android 平臺。對一些人來說黑莓平臺仍然適用。每個應用程式會充分利用每個個別平臺所提供的特定功能。本機應用程式性能是偉大的但是,當然,你必須記住,性能會快速降低時你不認真寫固體和乾淨的代碼。你得至少寫本機應用程式 UI 單獨為每個平臺,所以每個平臺的成本上升是最昂貴的所有這些選項。

混合 ,本機之間的灰色地帶在某個地方和 Web 是混合應用程式。混合應用程式通常將從現有的 Web 網站的內容集成到本機包裝和部署的應用程式。這是快速安全的任何應用程式商店中的插槽和有商業存在,或許是在為該平臺全面本機應用程式工作時尤其有用。混合應用程式通常通過包裝與容器的現有 HTML 構造性能是比與本機和網路應用程式、 臭名遠揚地慢。例如,在 Windows Phone,這是 web 瀏覽器控制項。隨時有這額外的一層,也有潛在的性能問題。

取捨,但是,是在本機平臺上的迅速部署。創建混合應用程式要求您使用的任何下列工具:

  • Apache 科爾多瓦/PhoneGap
  • Visual StudioWindows Phone HTML5 專案範本
  • Telerik AppBuilder (原 Icenium)
  • Xamarin 工作室

由於其性質,混合應用程式換行使用的 web 瀏覽器控制項 (保持與 Windows Phone 示例),是一個 XAML 元素的 Web 內容:

<phone:WebBrowser x:Name="Browser"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Loaded="Browser_Loaded"
NavigationFailed="Browser_NavigationFailed" />

這是所有你需要開始建設一個混合應用程式。 在其他平臺上,概念是相同的雖然這些控制項可能會不同。 謹慎同時建立混合的應用程式,因為他們可能沒有存取權限或特權執行本機應用程式的操作。 這是因為從 Web 的惡意腳本的潛力,在用戶端上執行。 這就是為什麼 HTML 應用程式有很多相同的限制。

混合應用程式生成時,可以使用 Telerik AppBuilder 或 Apache 科爾多瓦,而不是Visual Studio專案。 這些協力廠商工具説明關閉的混合 Web 感覺和本機應用程式的外觀和感覺之間的差距。

HTML5 走這條路線的優點是立即廣泛提供的 HTML5 規範帶來到的表。 移動 Web 網站可能已遠到達,但缺乏本機的外觀和感覺的使用者想要和通常會期望從本機應用程式。 另外,HTML5 應用程式可能無法訪問的一些特定于硬體的功能及其目標平臺如網路攝像機或加速度計。

HTML5 有每平臺,以最低的成本為你應該能夠編寫一次,在大多數瀏覽器上運行。 某些移動瀏覽器,但是,並不是最新的標準支援。 開發 HTML5 應用程式時,這可以是一個主要問題。 如果本機功能重要到您的專案,在這一領域缺乏能確定你完全去與本機應用程式。

雖然 HTML5 擁有廣泛的可用性,請記住在某種意義上,為 Web 開發是類似于發展中國家的本機應用程式。 您需要關心與支援的瀏覽器的一些自己。 像設備開發,Web 開發人員與使用者最目標這些瀏覽器 — — 互聯網瀏覽器、 Chrome、 火狐瀏覽器和歌劇。

你想要設計豐富灌輸在各種設備上,在用戶端上的,不能重用該特定設備代碼。 以下本機功能是不大可能行為一致或可跨平臺:

  • 推式通知
  • 錢包
  • 近距離無線通訊 (NFC)
  • 多工/多執行緒處理
  • 語音
  • 導航方案
  • 對話方塊

在混合動力或 HTML5 用戶端應用程式中,不依賴于對這些本機特定屬性的訪問。 如果像這些功能您的應用程式要求的一部分,你就需要去所有本機路線。

建築師的跨平臺解決方案

確定你會支援哪些平臺是 app 景觀中的只是一項決定。 你還必須設計解決方案,並考慮考慮事情如時間到市場和為哪些平臺開發第一次。 如何盡可能的應用程式之間共用盡可能多的代碼也是一個重要的考慮。

後端 Web 服務和 Api 工作以及在跨­平臺方案中因為每個平臺支援 HTTP。 在後端使用層的服務意味著你只需要一次編寫的代碼對這些服務。

關於增加的體系結構,將重點放在用戶端上,你就會想要共用盡可能多的代碼盡可能。 可以輕鬆地編寫代碼對 Windows 8 和 Windows Phone 與可擕式類庫 (PCLs),但是,離開了 Android 和 iOS 等其他平臺。 您可以通過在 C# 中編寫和使用 Xamarin 工具進行交叉編譯跨 Windows 8、 Windows Phone、 Android 和 iOS 共用代碼。

將本機的點是使使用者可以得到相同的外觀和感覺的本機平臺。 同時工具如 Xamarin 會讓你分享一些代碼在使用者介面層,你就會如果你手工每個 UI 分別獲得最佳 UX 結果。 這通常意味著修改生成的 Xamarin 代碼。 這是添加任何特定于平臺的功能,所以每個平臺上的使用者自訂的體驗的好時機。

應用程式代碼層映射到控制器或 ViewModel 部分的模型-視圖-控制器 (MVC) 或模型-視圖-ViewModel (MVVM) 模式。 UI 層將映射到在 MVC 和使用 MVVM 視圖。 模型中,當然,是資料表示形式。 這可能是 JavaScript 類映射到資料庫物件在本機存放區中,或者它可能映射到遠端架構回到資料庫中。 本地資料不是您通常會共用之間的設備,因為它通常包括設備特定的資訊。

在您的解決方案是開始了建築的阻力最小的路徑的後端層首先,然後創建一個 Web 網站,然後應用程式。 這種方式你獲得範圍最廣的門出來的東西很可能。 在應用程式方面,你會需要來確定哪些首先生成,如果任何應該是您的主平臺。

我喜歡的 Windows 8 Windows RT/Windows Phone 平臺自己和認為它 (具體來說 Windows Phone) 的所有可用設備的最佳使用者體驗。 那不只是因為我為微軟工作了。 我認為 iPhone 也有很好的使用者體驗。 瓷磚和頂線諾基亞相機等功能令人信服原因,使 Windows Phone 您的功能平臺,任何人需要這種功能在應用程式中。 此外,Windows Phone 無縫管理,並將您的連絡人、 日曆和其他重要資料合併跨基於 Windows Phone 的設備具有內置的基於雲計算的人民和日曆應用程式。

總結

隨著帶的你自己在工作場所的設備 (BYOD) 運動到處,本機應用程式開發已成為司空見慣。 正如你所看到的有許多變數,事情要考慮,構建應用程式時可能會影響你的成功。 除非您正在為一家公司,要求標準桌面用戶端,然後我會建議反對它。 這就等於不是在該平臺上的第一個應用程式。

如果您有慷慨的預算和人員,加上一個擴展的時間框架來生成您的解決方案,您可以與移動版和一套完整的本機應用程式創建一個 Web 網站。 這意味著你提供一切可能的方式來訪問您的服務和資料。 當然,這條路線是最多工作和最貴的。

Rachel Appel 是與超過 20 年的 IT 行業經驗的顧問、 作者、 導師和前微軟員工。她在Visual Studio活等行業頂級會議講話!,DevConnections,混合和更多。她的專長在於內發展協調業務和技術側重于 Microsoft dev 堆疊和打開 Web 的解決方案。Appel 有關詳細資訊,請訪問她的網站 rachelappel.com

衷心感謝以下技術專家對本文的審閱:FrankLa 墓葬 (Microsoft) 和沃利 · 麥克盧爾 (可擴展發展)