老鐵記得 轉發 ,貓哥會呈現更多 Flutter 好文~~~~
微信 flutter 研修群 ducafecat
貓哥說
這篇文章很硬,如果你正在架構一個 APP,或者你正在寫 flutter 技術論文,可以參考下。
原文
正文
為企業應用程式開發做好準備了嗎?長期以來,這一直是開發者提出的最多的問題之一。但是在 Beta 釋出之後,這個平臺展示了很多前景,並且提供了大量的本地化特性,使得本地化應用程式的開發變得更加容易。
雖然移動應用開發市場的確正在向強大的應用開發過程體驗轉變,但主要障礙之一是 iOS 和安卓應用開發之間的分工。由於這兩種作業系統的使用者遍佈全球,企業在鎖定受眾時必須注意這一點,以確保自己的品牌不會遺漏任何市場。
本文將幫助您瞭解為什麼顫振是準備授權企業。
當谷歌在 2018 年宣佈 Flutter 的第一個穩定版本(1.0)時,人們很想知道它是否是一個很好的企業級移動應用程式開發工具。
快進到今天,我很自豪我決定嘗試 Flutter 為企業應用程式開發。
我知道你們很多人都想知道為什麼 Flutter 在應用程式開發方面獲得了廣泛的關注,因為它的定位與其他跨平臺開發工具沒有什麼不同,這些跨平臺開發工具提供了原生的 iOS 和 Android 應用程式。建立一次,部署到每個地方!
不像其他人,我避免陷入這些陳述!
在一年的時間裡,現在有超過 4000 個外掛支援 Flutter 應用程式。媒體,YouTube,Stack Overflow,以及更多的網站都充斥著建議 Flutter 可以幫助你為不同的商業領域建立各種各樣的應用程式的內容。
Flutter 是王道ーー至少在企業應用程式開發解決方案方面是如此。這不僅僅是我的觀點,也是來自移動應用開發行業的壓倒性的聲音。
根據谷歌的統計,每月有 50 萬開發者使用谷歌軟體開發工具包。
另外,Flutter 的 SDK 是 GitHub 上增長第二快的專案,它使得它在業界的競爭對手中脫穎而出。所有這一切都指向一個欣欣向榮的社群,渴望分享,成長,並提高 Flutter!
所有這些事實,現在是時候來決定 Flutter 和它的庫是否準備好在 2021 年開發企業移動應用程式了。
在我們直接進入你可能需要開發特定的企業安卓應用程式的需求之前,我的簡單目標是為每個需求找到至少一個 Flutter 解決方案,讓你相信 Flutter 現在已經準備好開發幾乎沒有混合程式碼需求的企業應用程式。
當然,業務應用程式的需求因專案而異,因此最終的結果可能會有所不同。
讓我們先簡單介紹一下 Flutter。
框架概述
Flutter 是一個開源的 UI 軟體開發工具包,廣泛用於跨平臺應用程式開發。通過使用單一的程式碼庫,移動應用程式開發公司可以建立各種型別的應用程式,從簡單的聊天應用程式到按需購物應用程式。它與其他框架的不同之處在於 Flutter 應用程式是用 Google 的物件導向程式設計語言 Dart 編寫的。
谷歌選擇了 Dart,同時考慮了以下四點:
- Productivity 生產力
- Faster allocation 更快的分配
- Object orientation 物件導向
- High performance 高效能
有了這些事實,Flutter 可以幫助開發者為 iOS、 Android 和網路平臺開發本地應用程式,這些應用程式可以在多個平臺上無縫執行。
UI 效能、原始碼成熟度、安全測試和功能是開發人員在為不同平臺設計應用程式時遇到的主要挑戰。顫振應用程式開發可以幫助您解決這樣的問題,以極其輕鬆。
現在,企業應用程式到底是什麼,構建它的主要需求是什麼,Flutter 是如何對過程做出貢獻的?
企業級移動應用
首先,企業應用程式是否僅僅意味著領先品牌的發展。
無論你是一個進步的創業公司還是一個領先的組織,企業應用程式都是為所有人服務的。這些應用程式是專門為企業勞動力的有限和受保護的使用而設計和開發的。對於企業應用程式,管理員可以集中處理資料,實現大規模的自動化,並維護流暢的工作流。但是為了使其功能化,企業應用程式需要許多特性、高安全性和具有健壯框架的無縫 UI 設計,以確保高效能。
讓我們瞭解一下構建企業應用程式的具體要求,看看 Flutter 和它的庫包生態系統是否已經為這項任務做好了準備。
以下是我選擇的基本要求。在每一個需求類別中都有很多需要覆蓋的內容,儘管我已經試圖簡要地假設讀者已經熟悉 Flutter 的基本特性。
- Layered architecture 分層結構
- Development environment 發展環境
- User interface 使用者介面
- Hardware features 硬體特性
- App security 應用程式安全性
- Miscellaneous requirements 雜項需求
分層架構,確保更好的功能性
在開發企業應用程式時,確保它具有分層架構,以確保無縫功能,並通過不同開發團隊的各種技能提高生產率。
當 layers 被插入時,開發者必須想辦法提供以下功能:
- 更好地訪問文件完整的設計模式
- 大量的開發人員同時處理程式碼庫
- 很容易理解各種各樣的應用程式功能
通過為網路資源、本地儲存、 SQLite 資料庫以及通過外掛外掛訪問硬體提供簡單而安全的網路,Flutter 在這裡大放異彩。
讓我們來看看如何:
- State management : 當前位置 Flutter 的應用程式架構的核心,而 Google 最近的建議是使用 Provider 框架,這個框架更容易理解和構建。同時其他狀態管理如 Redux、 BLoC、,InheritedWidget 繼承的 widget, setState, etc., they coexist within reason. 、 setState 等,它們在合理範圍內共存
- RxDart : 如果 Dart 的流和非同步包不能滿足您的非同步程式設計需求,那麼考慮 RxDart 是一個明智的決定。它與 Flutter 和狀態管理框架無縫整合
- Background processing 後臺處理: 它允許計算密集的工作,以執行在應用程式,同時保持使用者介面的響應在同一時間。根據後臺處理需求的複雜程度,您可能需要採用純 Dart 實現之外的本地平臺特性
- Dependency injection: 依賴注入: 為了使你的應用程式程式碼單元獨立和可重用,移動應用程式開發人員可以使用 依賴注入.這是一種使程式碼更容易測試的設計模式。GetIT 定位器是一個簡單易用的 DI 庫,它與狀態管理框架無縫地協同工作,以確保應用程式層的分離
- JSON serialization/deserialization JSON 序列化/反序列化: 對於任何 RESTful 客戶機都很重要,在大多數企業應用程式中也很常見
- Deep linking 深度連線: 它提供正確的導航從一個網站或推送通知啟動應用程式內的特定領域
- Local storage 本地儲存: 提供本地儲存的少量鍵/值資料,然後幫助您的應用程式工作,即使應用程式是背景或停止
- SQLite: 可用於處理大量的結構化資料
- Push notifications 推送式通知 : 對於企業級應用程式,通常需要後端整合,以幫助您向使用者通知到期日期、關於服務的提醒等。對於此,firebasmessaging 是一站式解決方案
本地安卓和 iOS 應用的開發環境
對於開發環境,開發人員可以在 Android Studio/IntelliJ 和 Visual Studio Code 之間選擇他們的 Flutter IDE。所有這些都在 Mac,PC,Linux 和 Chromebook 上得到了很好的支援。所有你需要的是採用 Flutter 應用程式開發與正確的經驗。
在這些 ide 中,開發人員可以實現構建、裝置部署、除錯和效能分析。但是要為本地 iOS 建立一個開發環境/部署,需要在 Mac 上使用 Xcode。
- Scalability 可伸縮性: 顫振應用程式很容易擴充套件,因為它基於 Dart 生態系統,引入 Dart 包來提供外部庫的功能。顫振專案可以重構成顫振飛鏢軟體包,提供了另一種方式來分割大型團隊的工作,使其更容易擴大應用程式
- Testability 可測試性: 是否正在使用 unit tests 單元測試, widget tests 小部件測試, or ,或 integration tests 整合測試, 每一個 Flutter 小工具可以很容易地測試。所有這些測試工具都允許最大的測試覆蓋率,並且僅受可用時間和資源的限制
- Continuous integration/continuous delivery 持續整合/持續交付: 使用卓越的安卓和 iOS 工具集將應用程式部署到 Google Play 商店或蘋果商店,使它們可以在任何現有的企業移動 CI/CD 設定中使用
與 Flutter 合作的移動應用程式開發公司可以將大部分時間花在 Flutter/Dart 環境中,同時將 Flutter 應用程式部署到安卓和 iOS 裝置上。知識如何建立和簽署應用程式和供應配置檔案,等是必不可少的實施一個成功的撲動應用程式。
使用者介面
應用程式介面在使用者體驗中扮演著重要角色。企業移動應用程式努力專注於提供優秀的使用者介面。為了滿足這個需求,Flutter 提供了一套全面的 Android 和 iOS 的高精度演示。
為了讓你的使用者介面更有吸引力,你可以整合:
- Animations 動畫: 很容易開始學習動畫,他們可以擴充套件到任何複雜性。對於廣泛使用的 Flutter,你可以包括耀斑,這是一個完整的 2D 向量動畫庫。應用程式開發公司正在廣泛使用這個工具來定製具有無縫介面的企業應用程式
- Page transitions 頁面轉換: 他們可以是一個完美的例子,學習如何導航之間的應用程式頁面與動畫可以實現
- Paging 分頁或無限滾動列表檢視: 當需要在不佔用大量裝置記憶體的情況下向使用者顯示大量資料時,這是一個常見的需求。這是年的最新趨勢移動應用開發服務,因為 Flutter 提供了豐富的內容儲存庫的無限滾動
- Image loading/caching library 影像載入/快取庫: 它提供了一種快速、簡單的方法來處理許多影像,包括在基本影像或 SVG 影像不夠好的情況下進行快取。因此,Flutter 應用程式開發人員可以很容易地通過載入和快取庫管理影像
最後,你可以在 Flutter 移動應用程式上提供谷歌和蘋果地圖。
硬體特性需求
無論你是如何出色地定製了你的應用程式,並提供了一系列廣泛的功能,沒有一個應用程式是完全可以在沒有硬體功能支援的情況下工作的。
因此,當你僱傭應用程式開發人員為企業員工/使用者/員工開發企業應用程式時,你需要硬體和軟體支援:
- Camera 相機
- Accelerometer 加速度計
- GPS 全球定位系統
- Biometric authentication, including fingerprint and face ID 生物計量學,包括指紋和臉部識別碼
- Microphone 麥克風
移動應用安全
安全是一個企業無法破壞的領域ーー無論是基本的企業應用程式還是高階應用程式。保護應用程式資料安全是企業最關心的問題之一。因此,在建立企業應用程式時需要注意各種各樣的事情。毫無疑問,這是一個非常廣泛的話題,但我將把它縮小到幾個具體點,使之易於理解。
假設 Flutter 應用程式是建立在安卓和 iOS 沙箱環境之上的,所以每個 Flutter 應用程式對於本地 iOS 和安卓應用程式都有固有的安全方面。
最基本的要求,如身份驗證(生物統計學,拇指指紋,兩級密碼)很好地迎合了 Flutter 的簡單認證。
以下是你可以考慮的其他認證提供商:
- Amazon 亞馬遜
- GitHub
- Dropbox
- Azure Active Directory Azure 活動目錄
- Instagram 圖片分享
- Microsoft Live Connect 微軟 Live Connect
SSL 證書固定也很重要,因為它減少了由於共享伺服器而發生攻擊的可能性。它確保 web (HTTPS)請求的安全,並且受到支援。
安全儲存提供了一種在裝置上安全地儲存少量金鑰或有價值資訊的方法,即使在沒有網際網路連線的情況下也能讓你的應用程式工作。
雜項要求
除了以上所有的要求,這裡還有一些在開發企業應用程式時需要考慮的多重要求:
- Analytics 分析: 分析庫可在 Flutter 上滿足這一要求
- Error reporting 錯誤報告: 開發人員可以使用 Flutter’s Sentry library 外掛.
- Third-party 第三方或開放原始碼庫: 這份第三方外掛的清單 在你開始在你的應用裡隨機挑選和使用一個之前
- Generating QR codes: 生成二維碼: 無論是為了應用程式的高階功能還是為了安全目的,二維碼掃描很重要
考慮一下這個:
- 分享應用程式細節 社交媒體賬號
- 訪問個人接觸名單
- 允許相機或位置,而使用的應用程式
- 傳送簡訊或多媒體資訊或接收簡訊 一次性密碼
- 在應用程式內使用應用內購買 SDK.
Flutter 的跨平臺支援超越 iOS 和 Android
我們只討論了 Flutter 對本地 iOS 和 Android 應用程式的支援,但是 Flutter 正在極大地擴充套件對 web、 macOS、 Windows 和 Linux 的支援。開發一個可以在所有這些平臺上無縫部署和執行的應用程式,只需要使用一段程式碼,這是您一直以來努力的目標。
與此同時,您必須接受這樣一個事實,即並非所有平臺都支援所有相同的特性。例如,谷歌地圖現在只支援安卓、 iOS 和網路。另一方面,這些都是目前使用者操作的主要平臺。
通過利用 Flutter 的潛力和它廣泛的小部件選擇,你可以針對移動裝置和網路。此外,它是更好的有響應螢幕與 Flutter 內建的應用程式,看起來不同的裝置和適合使用者的螢幕。所有這些都可以很容易地通過一個程式碼庫實現。
總結
在應用程式開發中,Flutter 已經越來越受歡迎,但隨著圖書館的廣泛支援,它已經迅速成為企業在短時間內建立企業應用程式的可行選擇。
最好的部分是任何行業利基中的企業、科技公司、創業公司和個人開發者都可以通過僱傭合適的移動應用開發公司來發揮其潛力並建立一個應用程式。隨著一個健康和成長的顫振庫包裝生態系統的正確使用,也許是時候讓企業閃耀在競爭的市場,並建立自己的立足點在行業的未來十年。
感謝 Anupam Chugh。
© 貓哥
往期
開源
GetX Quick Start
新聞客戶端
strapi 手冊譯文
微信討論群 ducafecat
系列集合
譯文
開源專案
Dart 程式語言基礎
space.bilibili.com/404904528/c…
Flutter 零基礎入門
space.bilibili.com/404904528/c…
Flutter 實戰從零開始 新聞客戶端
space.bilibili.com/404904528/c…
Flutter 元件開發
space.bilibili.com/404904528/c…
Flutter Bloc
space.bilibili.com/404904528/c…
Flutter Getx4
space.bilibili.com/404904528/c…