Upgrade to Pro — share decks privately, control downloads, hide ads and more …

從 APP 到雲端:物聯網產品的軟體設計該如何規劃

從 APP 到雲端:物聯網產品的軟體設計該如何規劃

影片:https://youtu.be/5r8WSaII4_k
---
物聯網產品設計本質為跨領域的結合。除了硬體及外觀機構的挑戰之外,考量到用戶媒介(網頁、APP 及雲端等)的多元,如何在有限資源做出最大價值是很困難的議題。

舉幾個過往常碰觸到的問題:
「我該做APP 嗎?該如何挑選技術呢?」
「哪些部分該做在APP 內?哪些該設計在硬體上?」
「軟體跟硬體該如何協同設計?」
「時程規劃要怎麼做才能避免失敗?」
「產品上線之後該怎樣安排開發資源?」
如果沒有好好的規劃,可能會讓整體開發功虧一簣。

講者於此次講座中將以自身過往經歷出發,分享物聯網軟體設計該如何規劃才能降低產品開發風險並順利上線。

Sam Huang

May 06, 2022
Tweet

More Decks by Sam Huang

Other Decks in Technology

Transcript

  1. Sam Huang 軟體開發 / 技術顧問 / 商務營運 • 參與超過 10

    個領域開發系統 • 軟體架構規劃及數位升級、轉型協作 • 偶爾會做技術及相關規劃的分享 • https://sam-huang.info https://www.revtel.tech https://www.eculture.tech/
  2. 流水十年間 - 軟硬整合漫漫路 PC → NB → Smart Phone →

    Tablet → IoT → AIoT → ? 碩士班 → 創業 個人經驗的拋磚引玉 / 心得分享 2008 2018
  3. 學生時代:臺大嵌入式系統暨無線網路實驗室 Projects PAC DUO • 模擬器 • virtual NIC QoS

    control 中華電信服務不中斷 • os virtualization • queueing theory
  4. 學生時代:臺大嵌入式系統暨無線網路實驗室 系統程式 / 作業系統 / Compiler / ... 學到的東西會在某時間點匯流 processing

    migration / Virtualization ... 看技術從其發展歷史看起 many-core vs. cloud-computing 對技術應用的想像 c
  5. Garmin 時期:Android 工程師 主要內容圍繞 android / linux 工作內容 • sensors:

    G sensor / M sensor / gyroscope / Pressure sensor / UV sensor • audio system • others: uboot / utility / touch / 開板子 / …
  6. Garmin 時期:Android 工程師 硬體其實沒那麼簡單 • const 變數的浮動 • 超過 4

    根 gpio 能表示的硬體版本 (第八版之後量產!) 軟體工具很重要 • 大量的 auto git checkout + symbolic link • 適度引入 wrapper
  7. 創業時期:技術顧問 / 產品設計 / 產品開發 做過蠻多不同開發 • 逆向工程一個日本設備 • 智能鎖

    / 智能灑水器 / 智能畫框 / 健康手環 / 智能工廠 • 區塊鏈冷錢包 心得:理論 ≠ 產品 ≠ 專案 ≠ 商務 https://medium.com/revtel-tech
  8. 物聯網:不只是軟硬整合,還包含整體環境的設計! IDC 預計 2025 年亞太地區物聯網支出將達到 4370 億美元 • 年複合成長率為 12.1%

    • 製造業成為亞太地區物聯網支出的最大來源, 2021 年佔整體市場的三分之一以 上,其次是消費者和政府 • 製造營運 / 生產資產管理 / 全通路營運 / 智慧電網(電力)/ 智慧家居和貨運監控 工業 4.0 / AIoT:滲透進各種技術及領域
  9. 軟體 vs. 硬體 vs. 韌體 硬體:物理世界 軟體 / 韌體:根據與硬體的距離 •

    有視角的差異 • 是否有硬體限制及硬體控制 重要:軟體正在吞噬世界 • 想想 Android
  10. 網頁 / 網站:可以做到的事超乎你的想像 基於 HTML / CSS / Javascript 的文件,可被瀏覽器執行

    • 開放且可快速部署 • 使用者易於取得 開發要點 • 注意框架,如 React / Vue / Angular • 注意差異化,如各家廠商差異及 Webview • 注意實驗性功能,如推播 → 產品可以盡量先走網頁版本
  11. APP:更深入在各平台的體驗 單機版軟體,跑在手機或電腦上 • 較為封閉,Android / iOS 不能互通 開發要點 • 斟酌是否使用跨平台技術

    ◦ Cordova / React Native / Flutter • 注意上架細節 • 注意平台規範,如金流 • 注意維運成本 → 要有搭配的行銷資源
  12. 先說在前頭 … 真實世界的物聯網開發是以下的結合 • 商業模式 • 領域知識 • 開發技術 •

    成本管理 • 內部流程 此外還有隱性的挑戰 • 軟硬開發人員思維方式不同
  13. 多維度思考:架構設計需要納入資源限制的資訊 案例:APP 挑什麼技術做? • 你接受只有 Android 沒有 iOS 嗎? •

    要考慮商模及資源成本 開發是一個連續性行為,唯一貫串的是全局資源管理 • 組隊 / 需求釐清 / 解法設計 / 開發 / 測試 / 上線 / 維護
  14. 資源配置要注意:不要過早想要省錢 案例:一開始就在規劃省亞馬遜 (AWS) 雲端費用 premature optimization is the root of

    all evil(過早最佳化是萬惡的根源) • 不只是功能也在成本 • 會失去對全局的掌握以及改善的可能 • 不一定真的有省到!
  15. 時程規劃:反向推估 時程規劃才是所有開發中最重要的部分 • 「已知的已知」「已知的未知」都好處理,「未知的未知」才難 • 考慮當時的組合 ◦ 得先經過 POC 再到

    Production ◦ Waterfall → Scrum (Developing / Operation / Enhancement) • 該走過的路是不會少的,重點在於盡量斬斷相依性 ◦ 斬斷相依性不在於互補而在於獨立運作及負責 → 軟體 POC • 一個月訪談 / 一個月前置 / 三個月開發 / 一個月測試 / 半個月上線 • 每階段可跟次階段部分疊,但每階段的產出要確定
  16. 系統概述:用軟體測試貫串一切 以 React Native 開發(要研究好藍牙模組)。雲端走 AWS 方案 韌體:物理控制及離線行為 • 切分出「硬體層」「邏輯層」及「通訊協定層」

    APP:負責互動控制鎖,重要業務邏輯放在雲端 • 切分出「通訊協定層」「用戶互動層」及「雲端介接層」 雲端:負責重要商務邏輯及資料庫 • 好的 Dashboard 很重要
  17. Q&A