精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
全棧移動開發入門
本文探討了全棧移動開發環境的功能,并介紹了若干個核心的原生和混合移動備選方案以及影響每個平臺選擇的因素。
首先,我們來弄清楚一些概念。看到全棧一詞時,我們很容易聯想到一個人幾乎樣樣精通,既具備系統管理員的技能,也具備數據庫工程師的技能。在某些特殊情況下,可能剛好需要全棧開發者。通常全棧開發者既熟悉前端框架、后端數據庫和服務的業務邏輯和流程,也能自動創建、編輯和配置應用程序和數據。他們制作和編輯媒體的能力相對較弱,因為媒體需要的是展示和交互。
全棧移動應用程序開發是銜接內容與技術的紐帶。現在,全球有數十億人使用智能手機和平板電腦,這些智能手機和平板電腦便構成了全棧應用程序的客戶端。服務器端通常是微服務、認證服務器和 CDN 資產(每次打開應用程序時在運行時進行編譯)的分布式集合。這兩者是通過流程來銜接的,這些流程包括測試、持續集成和持續部署、擴展和容器化以及專有設備要求。
設備正在決定媒體的展示和使用方式。在許多情況下,與傳統電視和廣播相比,人們更傾向在手持式設備上觀看、閱讀或收聽新聞與娛樂資訊。電視本身就是開發者的設備目標。
作為技術的紐帶,移動設備推動了 Apple、Google、Facebook 和 Microsoft? 等大型跨國公司的競爭范式。這些商業巨頭都對搶占設備受眾有極大的興趣。雖然 Apple 和 Google 分別代表 iOS 和 Android 兩大品牌陣營,但您可以使用后兩者公司的 React Native(Facebook)和 Xamarin(Microsoft?)產品來開發在設計和功能上越來越本土化的應用程序。許多科技公司正在竭盡全力地在這個市場中保持持續增長,并且正在積極尋找最先進且最有前景的技術,幫助實現其提供最佳服務的愿景。
全棧移動開發
要成為全棧移動開發者,您需要對應用開發的全局有一個了解。
這包括:
設備界面外觀
可訪問來獲得內容和進行數據處理的服務器和容器
開發流程,如測試和調試
在許多備選方案中選擇解決方案的理由和權衡因素
如果必須要選擇全棧開發者具備的最可取特質,那么將會是領導項目并有效溝通易于理解的流程的能力。全棧開發者必須能夠設置代碼庫、項目管理工具(例如 Jira)、通信應用(例如 Slack),并且必須熟悉各種客戶機框架、數據庫、API 和微服務。總而言之,他們必須能夠支持和影響項目管理決策。全棧開發者除了具備客戶機和服務器堆棧能力外,還與應用程序的架構師或項目經理共享許多特質。
全棧移動開發的客戶端
從廣義上講,客戶端可分為原生和混合兩座孤島。通常,當需要更高的性能時,您希望盡可能都是原生客戶端。混合開發的優勢往往來自使用熟悉的 Web 工具和構造。開發者通常需要選擇是從頭開始學習并使用一種語言,例如 Swift 或 Kotlin,還是沿用已經熟悉的語言(例如 JavaScript 和 CSS)。混合開發的另一個優勢是,可能會對多臺設備使用同一組組件和樣式。每臺設備都有自己特有的外觀品質,但與原生應用程序不同,這些品質可能來自同一個來源。
閱讀"在原生和跨平臺移動前端編程框架之間進行選擇(英文)",以深入了解全棧移動開發的客戶端。
全棧移動開發的服務器端
服務器端的移動應用開發很大程度上類似于桌面或 Web 服務器應用程序開發。不同之處包括:在設備上安裝新應用程序(即 Apple Store 或 Google Play)的方式受限制;服務器端功能都綁定到同一操作系統,以及可使用特定服務(例如 Meteor 或 Ionic)更新設備應用程序的方式有細微差別。相似之處包括:通過 API 調用與數據交互的方式;通過版本控制更新內容,以及確保可擴展性和持久性。在整個項目中,全棧開發者通常會研究如何在構成應用程序服務器端的各個微服務層之間實現處理負載、緩存負載和其他任務負載的最佳平衡。
請閱讀"使用移動后端技術開發全棧移動應用(英文)",以深入了解全棧移動開發的服務器端。
全棧移動開發環境的特性
全棧移動應用開發者可能需要確保其生產環境具備以下特性。與后端或前端問題相比,全棧開發者可能更熟悉這些特性。
自動化:我們通常是通過持續集成和持續部署之類的術語來了解"自動化"概念。對于當前的移動應用開發者而言,使更新不會破壞應用程序或使應用程序脫機,這一點至關重要。
可擴展性:從設計角度講,可擴展性與自動化密切相關,也是處理部署的。這包括容器化(例如 Docker)以及數據庫和磁盤冗余,可確保可靠性并防止數據丟失。如果未正確設計可擴展性,那么開發者的前期工作越成功,后期的擴展工作就越困難。CDN、緩存以及在網絡中添加和移除區塊的能力都會導致這一現象。
反饋環:可以在多個位置提供用戶反饋,以便為開發者提供指導。這可以包括測試框架和構建機制,也可以包括通過界面或會話跟蹤來獲取用戶反饋,以了解用戶通常使用應用程序的方式或者用戶無法使用哪些應用程序功能。
輔助功能選項、國際化和本地化:利用個人增強功能(例如,輔助功能選項、語言和本地化),可以接觸到以前被忽視的群體,從而為更廣泛的受眾提升應用程序的價值。如果使用變量代替文本,那么實現本地化和國際化就毫無意義。輔助功能選項尚未在 Web 內容設計中扎根。例如,與 Internet Explorer 用戶數相比,有更多人可以使用輔助功能。當考慮服務難度不大的市場規模時,移動開發者應承擔起責任并努力解決這些問題。通過平衡對開發時間的影響,可以實現每一個輔助功能的優勢。
選擇移動開發框架
選擇適當的工具組合來構建移動應用取決于多個條件,包括:
工具的易用性及其生態系統
與設備相符的內容外觀,包括字體和圖
用戶體驗和激贊效果
與第三方 API 和網絡服務的集成
社區支持:通過 fork、star、點贊和其他其他評價機制判斷
文檔和當前示例
對于先前已知代碼和構造的熟悉程度(例如,熟悉 React 或 ReactNative 框架)
競爭需求影響軟件選擇的程度取決于多種因素,包括時間、預算和人群目標。通常都沒有最佳答案,但是出于某些原因,對于特定的應用程序和目標受眾來說,某些方法比其他方法更有意義。 表 1 展示移動應用程序開發的六種常用工具。
核心軟件iOSAndroidWeb優點缺點
XCodeX
用于開發 iOS 和 MacOS 應用程序的唯一方法。大型且專有;強制開發者包含它及其 IDE 選項。
Android Studio
X
Android Simulator;大型插件社區。JetBrains 工具(非 Eclipse)或其他 IDE(面向熟悉這些 Java? 工具的用戶)。
Apache CordovaXXX將 WebView 直接移植到原生實現。在線文章和源碼不一定是最新的。
XamarinXX
Visual Studio 和 C#;為 Microsoft 開發者所熟悉。Microsoft 代碼和服務偏差。
React NativeXX
大型社區和生態系統。混合應用程序的速度不如原生應用程序。
IonicXXX區分免費版和專業版;專業版具有包含持續集成和測試的服務器端功能。混合應用程序的速度不如原生應用程序;大小不如社區;Angular 偏差。
乍看起來,您已經可以確定,如果要包含 iOS 目標群體,那么您需要 Apple ID 以及關聯帳戶并安裝 XCode。對于 Android,雖然此處不明確,但是通過 Android Studio 可最輕松地訪問設備模擬器。這通常表明最快速的應用是采用 Apple 或 Google 支持的軟件所編寫。其他四種工具的較大優勢來自將常用代碼集成到原生應用中,這意味著 Web 開發者會由于生產期間的學習曲線損失較少時間。
IDE、CLI 和包裝器
集成開發環境(IDE)的普及時間超過因特網。命令行界面(CLI)雖然早于 IDE,但是通過開源經歷了重生,接納 CLI 作為如今創建應用的最典型方式。移動應用程序引入了包裝器技術的概念:類似 Web頁面上的某個插件,與其周圍的瀏覽器包裝器進行通信。
例如,在 React 中構建應用程序時,在發布該應用程序之前會進行轉換。在該過程中,代碼按照 Webpack 配置文件中的定義,轉換為在所有目標設備和瀏覽器中都適用的內容。如果在設備的包裝技術中融入此過程,那么將涉及類似于將 Babel 或 Typescript 執行的轉換應用于客戶機應用程序整體的操作。包裝器是與其自身(其父代)以及其子代通信的 shell(命令解析器)。
幾種經過審核的軟件包括 IDE、版本控制、部署和 CLI 配套軟件;其他軟件需要包裝技術才能編輯移動應用。例如,Ionic 通常在 Cordova 包裝器中進行編寫,Xamarin 和 React 也可以如此。在 Mac 上使用 XCode 編寫 iOS 非常重要。它是用于為 Apple 設備開發原生應用程序的軟件的唯一必備項。Apache Cordova 因為能夠導出到瀏覽器而脫穎而出。對于希望具有單個適用于移動 Web 和設備應用程序的代碼庫的人員而言,Apache Cordova 由于針對大多數平臺而保持位列首選。請參閱表 2 以獲取每個移動開發框架的 IDE、CLI、操作系統和語言比較。
核心軟件IDECLI操作系統語言
XCodeXCodexcodebuildOSXSwift、ObjectiveC
Android StudioAndroid StudiogradlewOSX、Linux?、Windows?Java、Kotlin
Apache CordovaPhoneGap、Builder 等cordovaOSX、Linux、WindowsNode、JavaScript
XamarinVisual Studiomsbuild 等Windows、OSXC#、F#、VisualBasic
React NativeAtom、Sublime 等react-native、expo 等OSX、Linux、WindowsNode、JavaScript
IonicVisual Studio、Atom 等ionicOSX、Linux、WindowsNode、TypeScript、JavaScript
在編寫本文時(2018 年底),Swift 4 是用于編寫 XCode iOS 應用程序的最新且最常用的語言。對于 Android Studio,Kotlin 語言逐漸超越了 Java 語言。在其余四種工具中,Xamarin 在 C# 和 .net 環境中獨立使用,而其他工具更適合混合開發平臺。Ionic 是從 Angular 根構建的,React Native 是從 React 根構建的,而 Apache Cordova 是所有混合內容的開源不可知中心。它最接近于可以將任何 Web 內容轉換為特定應用程序的組中的瑞士軍刀。
依賴項簡介
將具有大量依賴項的開源應用程序保持穩定可能令人望而生畏。對于許多應用程序,yarn 已將 npm 替換為最常用的軟件包管理器來對其進行處理。二者現在均會生成包含依賴項的版本號的 .lock 文件。.lock 文件將特定版本的庫與項目關聯,在一個或多個庫合作伙伴可能不再支持一個或多個依賴項后,使得項目在未來某個時間點能夠重新編譯。
在線示例通常會混用多種技術,并且很難找到可以精確滿足您需求的現有堆棧。通過StackShare和其他站點,您可以了解其他人員使用的技術堆棧,比較使用情況,并且尋求與技術堆棧盡可能接近的組合。每次發現與您所查找接近的技術堆棧,就需要檢查庫的日期,并確保使用盡可能最新的版本。這可能要求您編輯已經存在但可能過期的堆棧。
開發者和貢獻者社區
選擇適當的軟件進行移動應用開發時要考慮的因素包括開發者和貢獻者社區的規模。技術能捕獲多少心智?支持的可用性如何,訪問或使用它是否有付費? 雖然一項技術在特定時刻聲稱得倒大量支持,但其相對于競爭對手的長期表現如何?
5 年前,最重要的框架是 Angular。如今,Angular 已演變為 Ionic,并且可以包含在 Apache Cordova 包裝的應用程序中。對于 Xamarin 提供的所有功能,其核心產品基于Microsoft 語言,這是許多開發者仍在追隨而同樣數量的開發者正竭力避免的語言。React 和 React Native 是當今最流行的客戶端框架,但是這是一個歷史悠久的市場,眾所周知,它經常會發生變化。
圖 1 來自stackshare.io,這是一個可用于在多條軸線上(多維度)對技術堆棧進行比較的站點,捕獲于 2018 年 5 月。您可以使用 stackshare.io 來幫助制定哪種移動開發框架適合您的解決方案的決策。
圖 1. 比較技術堆棧
最后,Microsoft、Google 和 Apple 每年都會召開開發者大會,他們在會上發布新產品并演示產品路線圖。2018 年,發布了適用于移動應用的 AI、XR 和 IoT 功能。簡而言之,在移動開發中,事物不會一成不變,因此,請通過在開發過程中執行搜索來始終確保信息為最新狀態。
結束語及后續步驟
本文簡要介紹了用于開發全棧移動應用程序的一些最常用的工具(2018 年)。其中只是介紹了一些核心概念、注意事項、依賴項和生態系統,并且將重點內容留在后續文章和教程中進行介紹。
以最有成效和完全受支持的方式混合生態系統和依賴項或工具和技術是一個永無止境的過程。目前有效的內容在不遠的將來不一定有效。全棧移動開發者總是能欣然接受各種變化,因為唯一永恒不變的是變化。
參考資源
為 Android 開發全棧移動應用
響應式設計的未來
本文翻譯自:Getting started with full-stack mobile development(2019-07-02)
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
X5跨端移動開發框架開源項目簡介
讓人驚艷的九款跨平臺移動開發工具、技術與平臺 | 數盟社區
宇宙最強IDE VisualStudio25歲生日快樂(新一代的 Visual Studio 2022 更好地讓你編寫各種跨平臺應用程序)
程序員,你的技術過氣了嗎?
移動開發每周閱讀清單:第七期 | 移動開發前線
移動開發每周閱讀清單:Clang Attributes、Android打包
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 舟山市| 偃师市| 宜宾县| 葫芦岛市| 东光县| 天峻县| 专栏| 巧家县| 东兴市| 静乐县| 达孜县| 上犹县| 东丰县| 甘谷县| 衡阳县| 读书| 弋阳县| 吉木萨尔县| 化德县| 汉寿县| 资讯 | 武鸣县| 仪征市| 察雅县| 彩票| 江西省| 滦南县| 全南县| 深圳市| 山阳县| 城市| 定州市| 大洼县| 普宁市| 米泉市| 鸡东县| 临安市| 菏泽市| 凌云县| 兴文县| 泸溪县|