<!-- description[Flutter 跨平台能力強、性能優惠、文檔豐富外,是目前最熱門app開發框架之一。] --> # 關於 Flutter ## 構建APP 先來簡單說明一下,在手機APP開發中,會選擇的幾種開發方式 第一種是Native原生開發 大家都知道手機有分IOS與Android兩大平台,平台會分別推出自己的開發工具使用不同的語言開發,而且各自有自己的生態環境。 第二種是使用製作網頁的方式 把需要的功能打包好成一個APP,透過內置的瀏覽器在手機上呈現,那網頁會用甚麼語言撰寫呢?網頁開發是競爭非常激烈的領域,除了基礎的HTML/CSS/JS外,會搭配各種前端框架,加速開發的過程。 第三種 是使用專門為跨平台開發而生的框架,都各自有自己完整的系統,Flutter使用Dart語言而React Native用JS開發。 ## 跨平台 對於小型的開發專案,要維護兩套程式,是不太可能的任務,想要快速的完成專案,選擇跨平台框架是最好的選擇,對於網頁開發與JS非常熟悉的人React Native是個好選擇,其開發的流程與網頁相似,如果你從沒接觸過網頁,那我推薦你試試Flutter。 ## 為什麼選擇 Flutter 為什麼會選擇Flutter呢?除了他跨平台能力強、性能優惠、文檔豐富外,對於剛接觸手機開發來說,他是目前最熱門app開發框架之一,所以無倫是中文與英文都能找到,最新且系統性的教學資源,以原生Android開發為例,他出現的時間很長,在不同版本之間的差異很大,在學習初期找資料的時候,很難去分辨哪些用法是過時的,對於想開發一個小型應用的新人來說,這樣的環境很不友善,容易造成學習的無力感。 ## Flutter 學習門檻 Dart 既保有像 Java 一樣注重型別安全且保有相似的物件導向特性,但語法卻JavaScript 與 Python 一樣簡潔直觀,對於學過 Java、JavaScript、Python 的人來說,你一定能快速上手。 如果你從沒學過程式語言,從零開始本來就不是一件簡單的事,但選擇 Dart 作為你的入門磚,我覺得是一項很好的決定,Dart 規範的語法方式,可以幫助你熟悉物件導向等重要的程式觀念,這些知識一旦掌握,未來想學其他語言,你會更輕鬆。 ## Material Design 說了這麼多特性,大家一定很好奇,用 Flutter 寫出來的 APP 會長怎樣呢? 每款 APP 都會有自己的 UI 風格,如果你對於設計不太擅長,也不排斥原生 Android 的設計樣式,你可以採用 Material Design 這套設計標準作為你 UI 的主要風格 Material Design 為 Google 在設計上的一種規範,注重卡片式的設計與強烈的色彩對比,區分訊息間的邏輯,許多主流的APP都採用這種設計風格,如果你使用 Flutter 開發,所有的 UI 組件預設就是 Material 的風格,只要在排版與顏色上用心 ,就可以設計出外觀專業的帶有現代感的APP。 ## 我要如何開始 如果你有開發經驗透過官方的文檔與我們整理的資源(我會把資源分享在Discord),你會知道該如何開始。 對於無開發經驗的夥伴,不用擔心除了自學外,我們安排了幾次關於分享Flutter技術的讀書會,將帶領大家實作一些小作品,在學習上有任何問題,都歡迎在Discord上發問,我們一直都在。 https://niiuu.notion.site/niiuu/Flutter-e623d577622a4013916e42723e40fdcf