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

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

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

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

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

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

Avatar for Sam Huang

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