【專訪】Writemoo 犢創:靈感捕手隨時創作 App
捕捉每個轉瞬即逝的靈感,變成你的獨創故事。
當你享受著美食、去上班的路途、在捷運中通勤,每分每秒隨都有靈光乍現的瞬間。你可能是個全職作家、可能正走在成為作家的路上又或者單純喜歡寫作,在文字世界裡遨遊。
創作,是一種心理解壓的管道。
創作,是將腦海中,大膽、狂野、奇幻的點子說故事的說書人
靈感這東西,不單單只是坐在電腦面前而立馬湧上。
它,不是說來就來,但來的時候也突如其來。
Writemoo 犢創
Writemoo 犢創是個專為行動創作設計的 App,你可以隨時隨地開始創作,利用每個零碎片刻延續創作,將自己的創作透過 App 即時發表,閱讀其他創作者最新的進度。快速、方便地將作品轉為標準規格的電子書,直接在電子書通路上架販售。
特色
1. 可在 App 上直接創作,隨時記錄靈感
2. 行動版+桌機版,創作無縫接軌
3. 隨時更新其他創作者進度
4. 與讀者直接互動
5. 直接在社群網站宣傳自己的作品
6. 行動閱讀
快速、方便閱讀
App 的主畫面中,可以看到許多創作者的作品。當你在閱讀作品時,同時能夠留下你的評論,作者知道你對作品的感受和鼓勵!除了閱讀之外,你也可以方便地下載作品!
隨時隨地創作
還在每天想著時間不夠,朝九晚五又加班、忙著準備考試跟三五好友聚會好滿檔,但心裡總有顆創作的心不安份地跳動著。
「啊!就是這個…」
「啊!這個好這個好,要趕快寫下來才行…」
開啟 Writemoo,簡單地一按,把靈感寫下來。
犢創技術 Q&A
1. 為什麼決定採用 Flutter 技術來開發呢?大約花多久時間評估決定使用的技術?
因為原本的 App 很久沒更新,而 App 本身的功能不會太複雜,很適合用來嘗試跨平台的技術。加 上 Flutter 的社群茁壯與相關資源多,也有前輩已上架 App 的例子,所以沒花太多時間便決定使用 了。
2. 可以跟我們分享團隊 1 年半大家一起研究 Flutter 的過程和方式嗎 ?
固定每週五有 Code Review 時間會聚在一起討論。
常利用到的資源,主要是:
- 官網文件
- Youtube 頻道
- 關注 Flutter 相關的 Twitter 帳號
- 加入 Facebook 社群
- 中國的闲鱼技术等等。
對於方便了解 Widget 功能的工具:
3. 有多少人一起投入開發?大家是什麼樣的背景?
主要由一個人開發程式(iOS 背景),一位 UI/UX 設計師重新設計 App,公司原本就有 Android/iOS 工程師,若遇到各平台的問題,都能互相支援。
4. 團隊花了多少時間時間開發?
從評估開發到正式上架,大約八個月。
5. 團隊的 Flutter App 使用的後端是第三方服務還是自架後端?並還有用到哪些第三方服務?
目前是用 Parse 。使用這個的原因,是因為歷史的包袱 XD,之後有時間的話會換;目前在使用這個 SDK 上還 算簡單,主要操作 ParseObject、ParseResponse、ParseUser,用 ParseACL 管理 Write/Read 權限,有碰到幾個地方,要注意的是:
1. 無法轉型 nest custom object,需要 workaround
2. 寫測試時用到 ParseObject,需初始化一些設定,不然會報錯,記得直接去參考他們的範例
6. 團隊之前有使用非 Flutter 的技術開發 App 的經驗嗎?使用 Flutter 後,在團隊協作或產出方面, 有想分享的經驗嗎?
沒有耶,不過在產出方面,後來有看到像 Android Studio 有許多 shortcut還蠻方便的,是增進生產力的小幫手 !
7. 決定使用 Flutter 技術時有什麼擔憂嗎?
像是怕遇到各平台發生不一致的行為或 bug,或是沒有相關資源去解決遇到的問題。
8. 如何評估適合的架構模式,並取得共識並決定採用呢?
主要先認識幾個比較常見的架構,然後看 BLoC 的概念還滿簡單的,且是 Google 推薦過的,也有很多相關資源可以參考,也易於測試,最後就採用這個來實作。
9. 承上題,團隊在 Flutter App 使用的架構模式,以你們的實際經驗來說,有什麼樣的優缺點嗎?
使用相關的套件有:
1. flutter_bloc:使用它已實作好的 Bloc Widgets
2. equatable:用來判斷相同的 Event 和 State
3. bloc_test:用來作 Bloc 相關測試
缺點的話,像是在簡單的場景就不會使用 bloc,不然都要產生對應的 bloc, event, state 等,這時就會考慮改用 cubit,或是單純 setState { }、FutureBuilder 等就能解決。
另外,有遇到跟切換 UI 有關的邏輯,一開始用 bloc 去控制,但會有時間差的問題,這時候分開處理會比較好,不然使用者快速點擊的情況下,畫面會沒有這麼即時反應。
10. 用 Flutter 開發時,什麼事讓你們覺得最有挑戰性/最困難?
應該就是遇到不同平台、機器發生不一致的行為,而且也沒有找到相關問題的資源。
11. 在 Flutter 與 Native 之間跨平台溝通有沒有踩到什麼坑或是經驗分享呢?
在使用 webview_flutter 處理 webView 點擊事件時,發現在兩個平台有不同行為,像是在 iOS 裝置上遇到點擊特定區域後,畫面變磚的問題,最後是透過監聽 js click 事件來解決。
還有遇到 webView 載入時會有畫面閃爍的問題,目前是用 Opacity workaround。
12. 你們的 Flutter App之中有想特別介紹的技術嗎?
簡單介紹幾個有使用的套件:
1. device_preview:用來方便切換,檢查在不同螢幕尺寸下的畫面 UI
2. flutter_stetho:用來看 network response,等官方 DevTools 的 Network 支援能看到 response 內容,就會考慮拿掉了
3. logger:讓 console log 更易讀與把 log 分級別,但要注意在有些 IDE 出現色碼的問題
13. 有使用任何 CI/CD 工具嗎?可以跟我們分享使用的工具嗎?為什麼選擇該工具?
目前有用 Bitrise,操作介面很直覺,而且目前使用免費的方案就夠用了。
14. 如果可以重新選擇開發技術,還是會選擇用 Flutter 嗎?
會,尤其在刻 UI 方面,熟悉常用的 widget 後,開發起來真的很方便又迅速。
15. 推薦什麼樣的 App 使用 Flutter?如果團隊決定使用 Flutter 來開發,有什麼建議想給大家嗎?
像是可以先從單純呈現畫面、不會需要使用各平台最新 API 的功能的 App 切入,並可以嘗試做 package、plugin、module。如果團隊原本就有 iOS/Android 工程師就再好不過了,最後能在社群多多分享踩坑經驗,造福大家
16. 團隊現在或未來打算招募 Flutter 工程師嗎?
目前還沒有,但歡迎大家使用 Readmoo 相關服務!
工程師資訊
想說的話…
因為在寫 swift 時已習慣 optional 的概念,所以很期待 Dart 的 Null Safety,並希望 enum 也能和 swift 的一樣強大。
如果你想跟工程師討論…
歡迎直接到 Dan 的 Twitter 討論技術!
團隊 & 產品資訊
文章都看了,手拍了嗎?
還沒拍呀?!拍手鼓勵支持,小編們才用動力繼續寫下去哦!此計畫也才得以繼續 :) 以上文章感謝 犢創 Writemoo 熱情參與 Flutter Taipei「App 蒐集企劃」,也謝謝你讀完這篇文章!希望這篇文章和此企劃讓你更了解 Flutter 在商業化產品上的應用與導入。
歡迎隨時加入 Flutter Taipei 臉書社團與大家一起互動,告訴我們更多你的想法!如果你也有興趣參與「App蒐集企劃」聊聊你們團隊/獨立開發者如何開發 Flutter App,想跟大家分享用到了怎麼樣的相關技術,歡迎直接填寫表單,我們將與你聯絡!
歡迎閱讀「台灣 Flutter App 蒐集企劃」以了解完整計畫資訊哦!