免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

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

聯(lián)系客服