使用 Flutter 構(gòu)建可擴(kuò)展應(yīng)用程序:Nubank、BMW 和 ByteDance 的成功案例
為什么需要構(gòu)建可擴(kuò)展的應(yīng)用程序?
在這個(gè)世界幾乎以數(shù)字方式運(yùn)作的時(shí)代,可擴(kuò)展的應(yīng)用程序不是奢侈品,而是應(yīng)該成為企業(yè)的一種生活方式??蓴U(kuò)展應(yīng)用程序的最常見特征是:
? 足夠高效以應(yīng)對不斷擴(kuò)大的最終用戶
? 足夠高效以支持新功能而不會(huì)出現(xiàn)任何故障
? 由相對較小的獨(dú)立包或模塊組成。
在開發(fā)移動(dòng)應(yīng)用程序時(shí),考慮可擴(kuò)展架構(gòu)是一項(xiàng)明智的業(yè)務(wù)和技術(shù)策略。一些專家還將其稱為應(yīng)用程序代碼的“保險(xiǎn)單”。
企業(yè)需要考慮部署可擴(kuò)展架構(gòu)的基本原因之一是它的可訪問性和可用性。行業(yè)內(nèi)幾乎沒有哪家企業(yè)沒有遇到過應(yīng)用程序基礎(chǔ)設(shè)施崩潰的情況,一個(gè)工程師的退出就是她的全部!
可擴(kuò)展架構(gòu)解決了集中知識(shí)及其可訪問性和可用性的問題。在可擴(kuò)展的架構(gòu)中,一切都被詳細(xì)記錄并且所有利益相關(guān)者都容易理解,以至于每個(gè)團(tuán)隊(duì)成員都知道如何在不破壞現(xiàn)有基礎(chǔ)架構(gòu)的情況下構(gòu)建新的應(yīng)用程序功能。因此,用于開發(fā)移動(dòng)應(yīng)用程序的可擴(kuò)展架構(gòu)也有助于所有團(tuán)隊(duì)擴(kuò)展他們在開發(fā)移動(dòng)應(yīng)用程序方面的知識(shí)。
使用可擴(kuò)展架構(gòu)開發(fā)的可擴(kuò)展代碼也是意大利面條代碼的絕佳替代品。在部署新代碼時(shí),遺留代碼庫可能已完全損壞的情況有很多。
可擴(kuò)展架構(gòu)完美地解決了這個(gè)問題,因?yàn)樗鼮殚_發(fā)人員提供了足夠的空間來向應(yīng)用程序添加新功能,而不會(huì)破壞或中斷整個(gè)應(yīng)用程序。
在可擴(kuò)展代碼中,打開拉取請求及其合并變得順暢,因?yàn)榭蓴U(kuò)展架構(gòu)足夠強(qiáng)大,可以讓工程師擴(kuò)展新功能而不會(huì)對整體造成任何干擾。
為什么你應(yīng)該使用 Flutter 構(gòu)建可擴(kuò)展的應(yīng)用程序?
最近,開發(fā)可擴(kuò)展應(yīng)用程序的需求急劇增加。在我們之前的帖子中,我們討論了為什么選擇Flutter 進(jìn)行應(yīng)用程序開發(fā)以及它如何徹底改變跨平臺(tái)應(yīng)用程序開發(fā)!在我們之前的帖子中,我們討論了閑魚——一家專注于電子商務(wù)、零售、互聯(lián)網(wǎng)和技術(shù)的中國跨國科技公司正在使用 Flutter。
讓我們詳細(xì)了解為什么您也應(yīng)該選擇 Flutter 來構(gòu)建可擴(kuò)展的應(yīng)用程序。
? Flutter 框架允許開發(fā)人員在他們的應(yīng)用程序開發(fā)過程中創(chuàng)造更多價(jià)值、更具創(chuàng)造力和生產(chǎn)力。
? 從長遠(yuǎn)來看,它肯定是可行的,因?yàn)楣雀璺浅V铝τ陂L期支持該平臺(tái)。
? Flutter 框架是與平臺(tái)無關(guān)的框架。使用 Flutter 開發(fā)的可擴(kuò)展應(yīng)用程序在 Android 和 iOS 上運(yùn)行良好。
? 在采用任何新技術(shù)時(shí),企業(yè)通常會(huì)考慮增量抽象成本。與其他平臺(tái)相比,F(xiàn)lutter 也證明了自己是一個(gè)更明智的財(cái)務(wù)決策。
? 使用 Flutter 框架還允許開發(fā)人員對整個(gè)代碼庫進(jìn)行一些重大更改,最終可以支持新組件。
? 單元、集成和端到端測試可以利用Flutter 的固有測試功能。這也消除了渲染到屏幕的過程。
? 對于開發(fā)人員來說,使用 Flutter 總是一種愉快的體驗(yàn),因?yàn)樗峁┝藷嶂剌d、正式文檔和更好更穩(wěn)定的 API 等功能。
讓我們來看看一些使用 Flutter 成功開發(fā)可擴(kuò)展應(yīng)用程序的全球公司。
正在尋找熟練的專家在 Flutter 中構(gòu)建可擴(kuò)展的應(yīng)用程序結(jié)構(gòu)?
從我們這里聘請 Flutter Developer來構(gòu)建一個(gè)可擴(kuò)展的應(yīng)用程序,該應(yīng)用程序可以處理新用戶的涌入并支持新功能而不會(huì)中斷。
Nubank 使用 Flutter 開發(fā)可擴(kuò)展應(yīng)用程序的旅程
總部位于巴西的 Nubank 是一家 Neobank,也是拉丁美洲最大的金融科技公司。當(dāng) Nubank 成為亞洲以外最大的獨(dú)立數(shù)字銀行時(shí),除了其標(biāo)志性產(chǎn)品信用卡之外,它還專注于開發(fā)其他新產(chǎn)品。
2019年初,其業(yè)務(wù)賬戶和貸款部門不得不選擇開發(fā)這些產(chǎn)品。當(dāng)時(shí),移動(dòng)技術(shù)的世界充斥著許多技術(shù),而 Flutter 仍被認(rèn)為是一個(gè)新生事物。因此,要從眾多技術(shù)的叢林中做出選擇是一個(gè)艱難的決定。
經(jīng)過大量的思考和爭論,直到最后一刻,Nubank 決定將 Flutter 作為其移動(dòng)開發(fā)的主要技術(shù)。從那時(shí)起,Nubank 一直在 Flutter 中編寫其所有功能。Nubank 確實(shí)稱自己是一家擁有 100% Flutter 文化的公司!
以下是這家金融科技公司在采用 Flutter 后經(jīng)歷的一些重大變化:
? Nubank 在采用 Flutter 后僅三個(gè)月內(nèi)就推出了人壽保險(xiǎn)。在遷移到 Flutter 之前,任何新產(chǎn)品的發(fā)布過去都需要幾個(gè)月甚至一年的時(shí)間。
? 試驗(yàn)Flutter web帶來了更好的開發(fā)者體驗(yàn)。
? Flutter 桌面促進(jìn)了創(chuàng)新的內(nèi)部開發(fā)人員工具的使用,允許消除模擬器,從而減少筆記本電腦的電池電量并加快跨設(shè)備的測試。
? 移動(dòng)基礎(chǔ)設(shè)施和開發(fā)效率的改進(jìn)導(dǎo)致了這一年中開發(fā)專用功能的創(chuàng)新。
? Flutter 具有內(nèi)置的更快的學(xué)習(xí)曲線。因此,將 Flutter 作為主要技術(shù)縮短了公司的構(gòu)建時(shí)間,因?yàn)槿魏稳硕伎梢酝ㄟ^官方文檔更快地學(xué)習(xí)該過程。
? 與原生框架相比,合并成功率提高了 30%,因?yàn)?Flutter PR 需要 9.9 分鐘才能合并所有平臺(tái)上的總體平均 70.45 分鐘。
寶馬如何使用 Flutter 開發(fā)可擴(kuò)展應(yīng)用程序
2018 年,寶馬意識(shí)到他們需要一個(gè)平臺(tái)來解決 iOS 和 Android 產(chǎn)品之間存在差異的難題。
對他們而言,重要的是開發(fā)能夠?yàn)橄M(fèi)者提供相同體驗(yàn)和功能的應(yīng)用程序,而不管他們必須使用何種移動(dòng)操作系統(tǒng)。同樣重要的是在不增加太多成本或降低功能開發(fā)速度的情況下進(jìn)行。
正是為了應(yīng)對這一業(yè)務(wù)挑戰(zhàn),他們決定使用跨平臺(tái)框架。他們進(jìn)行了嚴(yán)格的評(píng)估過程,并為所有框架設(shè)計(jì)了許多“概念驗(yàn)證”。有趣的是,F(xiàn)lutter 確實(shí)成為了贏家,并且在 2019 年 10 月,一組選定的 BMW 工程師準(zhǔn)備了推進(jìn) Flutter 的戰(zhàn)略。
該戰(zhàn)略包括采用更靈活的、基于領(lǐng)域的組織結(jié)構(gòu),不再受特定平臺(tái)的限制。他們創(chuàng)建了一個(gè)專注于連接狀態(tài)和通信抽象的團(tuán)隊(duì);另一個(gè)將專注于應(yīng)用程序的跨平臺(tái)方面,而其他人則致力于為最終用戶創(chuàng)建新的創(chuàng)新功能。
這樣,BMW 的開發(fā)團(tuán)隊(duì)開始使用單一代碼庫為分布在全球 45 個(gè)國家/地區(qū)的最終用戶重寫所有應(yīng)用程序變體。
2020 年 7 月,該公司推出了My BMW App。該應(yīng)用程序是面向五大洲 47 個(gè)國家/地區(qū)的消費(fèi)者的通用界面。它為他們提供了手機(jī)、車輛和數(shù)字世界之間的無縫體驗(yàn)。它也是駕駛員與其車輛之間的直接接口,也是與公司經(jīng)銷商和品牌本身的直接溝通渠道。
用 BMW Group 副總裁 Offboard Platform Nicolai Kraemer 博士的話來說:“新的應(yīng)用程序平臺(tái)建立在三大支柱之上:用戶友好性、安全性和可靠性。它根據(jù)反饋和我們客戶的使用行為,提供了一套涵蓋所有品牌的統(tǒng)一設(shè)計(jì)的功能。”
以下是 BMW 在使用 Flutter開發(fā)可擴(kuò)展應(yīng)用程序后實(shí)現(xiàn)的一些主要業(yè)務(wù)目標(biāo):
? 開發(fā)人員友好的平臺(tái)
? 開發(fā)人員可擴(kuò)展且功能良好的平臺(tái)
? 提供安全實(shí)驗(yàn)和持續(xù)部署的平臺(tái)
? 每天觸發(fā)多個(gè)應(yīng)用程序構(gòu)建的平臺(tái),可自動(dòng)構(gòu)建、測試和部署 96 個(gè)變體每個(gè)應(yīng)用程序構(gòu)建。
? 截至 2021 年,每個(gè)應(yīng)用程序變體都有 10,000 多個(gè)版本
? 能夠更快地移動(dòng)并保持一致性
? 不再依賴最終解決功能差異問題的多個(gè)代碼庫。
? 與用于訪問應(yīng)用程序的平臺(tái)無關(guān)的單一用戶體驗(yàn)
? 改進(jìn)了用戶反饋,尤其是對于Android 用戶。
想要為您的企業(yè)開發(fā)可擴(kuò)展的應(yīng)用程序?
聯(lián)系知名的Flutter 應(yīng)用程序開發(fā)公司,他們可以以實(shí)惠的價(jià)格為您提供最好的 Flutter 開發(fā)。
字節(jié)跳動(dòng)使用 Flutter 的進(jìn)化與創(chuàng)新
字節(jié)跳動(dòng)也是從使用 Flutter 中獲益匪淺的公司之一。在 2019 年,公司意識(shí)到需要?jiǎng)?chuàng)建大量跨平臺(tái)應(yīng)用程序。現(xiàn)有的框架并沒有達(dá)到這個(gè)目的,因?yàn)樗婕按罅康臅r(shí)間和金錢。
在評(píng)估了 Flutter 框架的功能后,字節(jié)跳動(dòng)了解到,使用 Flutter,他們只需要開發(fā)一次每個(gè)應(yīng)用程序。它消除了為每個(gè) Android、iOS 和 Web 操作系統(tǒng)創(chuàng)建不同應(yīng)用程序的需要。
此外,F(xiàn)lutter 自己的渲染引擎將使他們的應(yīng)用程序能夠在所有平臺(tái)上一致地執(zhí)行。此外,借助 Flutter,可以使應(yīng)用程序的 Android、iOS 和 Web 版本保持同步。這反過來又減少了應(yīng)用程序的必要更新次數(shù)。
Flutter 的所有這些特性激發(fā)了字節(jié)跳動(dòng)推出他們的第一個(gè)基于 Flutter 的教育應(yīng)用程序,旨在幫助孩子們學(xué)習(xí)書寫具有筆畫跟蹤功能的漢字。該公司利用 SVG 格式來創(chuàng)建這些筆畫。
現(xiàn)在,這個(gè) Flutter 內(nèi)置的功能支持超過 9,000 個(gè)字符,包括最常見的字符。它已經(jīng)在各種平臺(tái)上非常成功地運(yùn)行。
以下是字節(jié)跳動(dòng)在使用 Flutter 開發(fā)可擴(kuò)展應(yīng)用程序后體驗(yàn)到的一些好處:
? 幸福里、極客、大力加長、小禾、火山和西瓜視頻等旗艦應(yīng)用的團(tuán)隊(duì)生產(chǎn)力提高了 33%。
? 它見證了包大小減少 5%
? 對團(tuán)隊(duì)進(jìn)行了有價(jià)值的優(yōu)化并提高了性能
? 字節(jié)跳動(dòng)的 700 名 Flutter 開發(fā)人員組成的團(tuán)隊(duì),其中 200 名是活躍的 Flutter 開發(fā)人員
? Flutter 廣泛用于移動(dòng)應(yīng)用程序和運(yùn)行在他們的網(wǎng)絡(luò)、桌面和其他嵌入式平臺(tái)。
使用 Flutter Framework 開發(fā)可擴(kuò)展應(yīng)用程序的主要優(yōu)勢
雖然我們在這里只探索了三個(gè)公司的旅程,但像阿里巴巴、Google Pay、eBay 和許多其他類似的巨頭已經(jīng)成功采用了 Flutter 并將其作為他們的主要技術(shù)。所有這些公司都從使用 Flutter 框架開發(fā)可擴(kuò)展應(yīng)用程序中獲益匪淺。
這些好處可以總結(jié)如下:
? 產(chǎn)品開發(fā)的一致性更高
? 擴(kuò)展和自定義 UI 組件的靈活性更高
? 以“Flutter 熱重載”功能的形式提供更好的后端驅(qū)動(dòng)工具 ?
更好地支持本地化
? 更好的基礎(chǔ)設(shè)施可以幫助企業(yè)衡量可觀察性
? 使開發(fā)人員能夠?qū)⒏嘀笜?biāo)與其他系統(tǒng)相關(guān)聯(lián)
? 使用功能或包來衡量應(yīng)用程序的大小
? 直接向相關(guān)團(tuán)隊(duì)發(fā)送警報(bào)
? 甚至可以幫助非技術(shù)工程師在短短幾周內(nèi)提高工作效率
? 幫助順利和標(biāo)準(zhǔn)化代碼庫有效率的。
2022 年 Flutter 的前進(jìn)之路
采用任何新事物總是會(huì)帶來一系列挑戰(zhàn),即使它是為了最高利益。因此,重要的是根據(jù)具體要求和過程中涉及的固有風(fēng)險(xiǎn)做出明智的決定。
2022 年選擇 Flutter 確實(shí)是在做主,甚至?xí)^續(xù)做下去。Nubank 是關(guān)于如何遷移到 Flutter 或任何其他新框架的一個(gè)很好的案例研究。有趣的是,Nubank 如何主要使用其內(nèi)部解決方案來調(diào)整其構(gòu)建、測試和持續(xù)部署管道,以適應(yīng)其用于應(yīng)用程序開發(fā)過程的新構(gòu)建工具。這些工具類似于 CLI,是用 Dart 語言編寫的。
最重要的收獲是擁有一個(gè)平臺(tái)團(tuán)隊(duì),在企業(yè)遷移到 Flutter 時(shí)完全專注于支持產(chǎn)品團(tuán)隊(duì)。向參與使用 Flutter 開發(fā)可擴(kuò)展應(yīng)用程序的所有利益相關(guān)者提供廣泛的培訓(xùn)也很重要。
當(dāng)現(xiàn)有應(yīng)用程序進(jìn)行框架更改時(shí),所有這些措施都有助于防止錯(cuò)誤和其他復(fù)雜的性能問題。明智的決策可以讓使用 Flutter 構(gòu)建可擴(kuò)展應(yīng)用程序的過程變得順暢,并有助于簡化整個(gè)產(chǎn)品生態(tài)系統(tǒng)。