不用透過工程師,一週完成一支APP- CMoney PAGEs- low-code APP開發解決方案
CMoney為何需要做到APP大量快速開發?
你覺得,做一支股票看盤APP要多久?一季?半年?還是一年?……
如果我說只要一周呢?
___________________________________________________________________
CMoney的主力產品一直是股市相關的資訊軟體,從法人系統到PC端的應用程式,再到近年大量流行的手機APP,不乏許多知名的APP (諸如 籌碼K線、股市爆料同學會、艾蜜莉定存股、權證小哥全方位獨門監控 以及大大小小超過50支作者APP)
做了那麼多APP我們發現了幾個痛點:
1. 工程師會需要設定許多股市相關的參數,需要跟PM有很多來回溝通本
2. 工程師老是在重複做類似的功能,造成重工
3. 不同工程師做同一種功能有N種寫法,造成維護困難
4. 每次有重大BUG或功能要更新(例如更新登入模組),每一支APP都要做一遍
因此我們會想要達到幾個效果
1. 因為有些參數資料設定的工不能省,所想讓PM代替工程師,降低溝通成本
2. 類似的功能我們想要重複使用,並讓PM自由的決定長相與參數
3. 修復或重大更新只需要做一次
而我們想到的解決方案就是:設計一套元件化的APP組裝系統,並用low-code/no-code的概念讓PM自行設定APP內的參數。
至於為什麼不是做一支超級APP包含所有功能而是要做哪麼多支APP呢?
簡單一句話就是:「投資沒有最好的方法,只有適合你的方法。」
所以我們會需要打造各種適合不同用戶的APP,做到體驗極大化。
延伸閱讀:吃力不討好的做了超過100支APP ? 為什麼不集中資源做一個APP就好? 談從使命延伸出的CMoney產品方法論。
low-code/no-code是什麼概念,為什麼我們會需要用它?
低代碼(Low-Code)和無代碼(No-Code)是兩種軟體開發的方法論,旨在降低開發應用程式的複雜度,使非開發人員也能參與應用程式的創建。以下是對這兩個概念的理解:
- 低代碼(Low-Code):
定義: 低代碼開發是一種軟體開發方法,其中使用者可以透過視覺化的介面和少量的手寫程式碼,快速搭建應用程式。
特點:視覺化開發: 低代碼平台通常提供圖形化的拖放式介面,用戶可以透過拖放元件來設計應用程式。
- 少量手寫程式碼: 開發者仍然可以使用一些程式碼,但量通常較少,主要用於自訂特定功能或業務邏輯。
- 加速開發: 這種方法的目的是加速應用程式開發過程,降低技術門檻,使更多人能參與開發。
無代碼(No-Code):
定義: 無代碼開發是一種更極端的方法,允許使用者創建應用程式而無需撰寫任何程式碼。
特點:
- 完全視覺化: 無代碼平台提供全視覺化的開發環境,用戶僅需透過拖放和配置,無需了解或寫任何程式碼。
- 極簡化: 這種方法的目的是極大地簡化開發流程,使非技術人員也能參與和理解。
- 快速原型: 無代碼平台通常適用於快速原型開發,尤其是對於一些簡單的業務應用。
總的來說,低代碼和無代碼的共同目標是提高應用程式開發的效率,使更多的人能夠參與和貢獻,從而滿足不同技術水平和背景的用戶需求。這兩種方法在當今快速發展的數位轉型環境中變得越來越受歡迎。
用一個更好理解的例子,就如目前大家常用來製作網頁的WordPress、WIX,就是一種low-code/no-code概念的網頁設計平台,用戶只要透過拖曳編輯文字選擇功能,就能夠快速地設計出自己的專屬的網頁,達到銷售、展示的目的。
PAGEs-一套 low-code開發的最佳解決方案
經過幾番討論,團隊提出了一個新的解決方案,並將它命名為PAGEs
PAGEs全名Portable Apps Gen & Edit system (可攜式APP建構與編輯系統)
他是一套透過GUITool來把元件組裝到BluePrint上然後生成APP的系統,PM或其他非工程職能,只要透過 low-code的GUITool,就能做到不動用工程師,一周產出一支APP!
接下來就讓我們一一拆解PAGEs怎麼運作
如果用蓋房子來比喻,Blueprint就是房子的設計藍圖,而繪圖工具就是GUI Tool,而元件就是蓋房子的材料,所以最終房子就會根據設計圖與工程師提供的材料(元件)興建完成
而要做到高效開發,有三個關鍵
1. Blueprint的繪製要足夠簡單
2. APP的建立流程要快速流暢
3. 元件的數量要夠豐富、變化性要夠多
GUI Tool-以low code方式組裝APP 降低工程成本
為了讓Blueprint的繪製足夠簡單,我們設計了一套圖像化界面工具(Graphical User Interface Tool,如下圖),讓PM可以透過拖曳圖像的方式來組裝APP,並再透過設定參數與跳轉等功能(low-code的部分),最終達到由非工程人員來實作APP的目的。
目前的複雜度在於有些程式碼轉GUI的過程,有些部分需要很細緻的規劃與網頁工程成本,因此在還沒完全優化之前,使用者可能還是要寫低度的程式碼。
BluePrint-建構APP的建築藍圖
目前的BluePrint會是以Json格式來記載整支APP會用的元件有哪些,包含他們要接哪些資料,元件的位置、高度等等,如此一來就可以建構出如藍圖設定的APP。
現況是在建APP時會把Blueprint壓到APP中,為了解決APP壓版的流程問題,後續會推進Blueprint上雲端的功能,就能夠達到更新Blueprint即更新APP,免透過商店的熱更新功能。
PAGEs 開發飛輪-關鍵是複用性高元件的數量
最後一個問題,如何讓元件的數量豐富、變化性高? 答案很簡單,就是設計一套完整的開發流程,其中最重要的,就是每次實作元件如何提高其覆用性,並且考慮各種可能不斷壯大PAGEs元件群,以及優化系統架構。(如下圖)
有了上述的流程,如果所有APP都透過PAGEs建構,就能達到我們想要的更新一次全體APP受惠的效果,而且同樣的元件透過變化參數就能滿足不同的需求,加上有了GUI Tool降低來回的時間成本,撇除規劃與準備資料,目前實務上由PM組裝APP大約只需要1~2周的時間。(呼應第一段要解決的問題)
另外,幾個迷思還是要破除一下:
1. 因為要考慮到覆用性,用PAGEs開發就不能客製化了嗎?
答:這是錯誤的概念,即便是不能覆用的功能也能應該用PAGEs開發,原因是還是有大量的系統架構會重複使用,例如登入、購買、推播、埋點等等,這些如果有需要改動,不用統一的架構,就會有大量的維護成本。
2. PAGEs開發會不會反而變慢
答:短期會,但長期是變快,因為短期如果有較多不足的元件,確實會多花時間來建置,不過一旦累積足夠的覆用元件,就可以快速的滿足各種需求有一個先決條件是:你會有大量的覆用性元件會重複使用,只要元件量一累積起來,開發的速度就會飛快。
PAGEs開發的未來發展與隱憂
未來CMoney還是會持續推行PAGEs,並將其擴展到更多金融商品,並開始發展需要高度覆用性APP的市場(例如:學校、醫院、商家…)
短期內可能會花費較多時間製作元件,但長期而言,我們可能會覆蓋市面上所有可能的功能。
而目前CMoney仍致力與把各種常用的模塊都元件化,以達到需求滿足率最佳化,雖然發展元件是眼前目前看起來相對優的解決方案,但其實還是會有幾個風險-
1. 為了要使用Blueprint的開發邏輯,對於不熟悉的人還是會有額外的學習成本
2. 目前PM學習GUITool的成本還是較高,需要持續優化與製作教學
這些風險都是團隊需要一起克服與進化的,我相信都能一一克服。
投資不是只有錢,人生的每個決定背後都是一種投資
聽到投資大家想到的都是錢、股市等等,但我們認為在人生路上,你的每一個選擇造就了人生的結果,就如同投資股市一樣,你為什麼想買某一檔股票的背後都是經過分析後的決定,買了之後的後果也都由你承受,最有挑戰的是,投資股市並沒有所謂的標準答案,人生也是如此。
所以我們將我們的使命從解決大家財務投資的問題,延伸到人生重要的其他面向: 健康、工作、家庭與人際關係 ,形成了我們公司新的使命,擴大公司的服務邊界,我們也會把在財務領域的成功方法論拓展到這新領域,打造出真正能幫助用戶的產品。如果你對打造產品幫助別人的生活變得更好,歡迎你加入我們產品團隊 !