Skip to content

Latest commit

 

History

2,163 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DPIP — 防災資訊整合平台:災害天氣與地震速報

臺灣的防災資訊整合平台 —— 地震速報、即時震度、天氣與災害示警,都在同一個 App 裡。

正式版 測試版 CI 翻譯進度 Discord

官網更新日誌開發文件

下載 Google Play 版 下載 App Store 版

DPIP 是什麼

DPIP(Disaster Prevention Information Platform)是臺灣本土團隊開發的行動應用程式,整合強震即時警報、地震資訊、天氣與各類災害示警。

地震發生時,地震波從震央傳到你所在的位置需要數秒到數十秒。強震即時警報就是在這段時間差裡送出通知 —— 讓你在搖晃抵達之前,還有時間趴下、掩護、穩住。

能做什麼

地震速報 地震發生時推播你所在地的預估震度,以及距離搖晃還有幾秒
即時震度 地圖上即時顯示 TREM-Net 各觀測站的實測震度
地震報告 查詢歷史地震的震度分布、規模與深度
天氣與雨量 你所在鄉鎮的天氣、雨量趨勢與雷達回波
颱風 路徑預報、暴風圈範圍與警戒資訊
災害示警 中央氣象署與國家災害防救科技中心的各類示警,疊在同一張地圖上
多語言 介面支援 10 種語言

Note

這個儲存庫正在進行架構重寫(feature-first 分層,見 ARCHITECTURE.md)。main 上的每一次提交都會發布一個快照版本,快照未經完整審查。想要穩定版本請從商店安裝。

資料來源

地震

資料 來源
強震即時警報 交通部中央氣象署(CWA)
緊急地震速報(可選) 日本氣象廳(JMA、気象庁)
地震報告 交通部中央氣象署
即時震度 TREM-Net

氣象

資料 來源
天氣、雨量、閃電 交通部中央氣象署
颱風路徑、暴風圈、警報 交通部中央氣象署
雷達回波 交通部中央氣象署
未來一小時降水(QPESUMS) 交通部中央氣象署
衛星雲圖 日本氣象廳向日葵 8/9 號(Himawari),16 個觀測波段

防災

資料 來源
各類災害示警 國家災害防救科技中心(NCDR)
避難收容處所、AED、公廁 政府開放資料

關於 TREM-Net

TREM-Net 由 ExpTech Studio 建置與維運,自 2022 年 6 月起在全臺部署,由兩個子系統組成:SE-Net(強震觀測網,加速度儀)與 MS-Net(微震觀測網,速度儀),共同記錄地震發生時的完整波形。

下載

從商店安裝(建議):

也可以從 Release 頁面取得 Android 安裝檔手動安裝。請注意 Release 頁面同時包含快照版本,那些未經完整審查。

想搶先體驗新功能?加入測試版

測試版可能包含尚未完整審查的功能,遇到問題歡迎到 Issues 回報。

翻譯

DPIP 介面目前有 10 種語言,翻譯在 Crowdin 上進行,挑一個你熟悉的語言就能開始。

清單裡沒有你的語言,就到 Issues 開一則,我們會加上去。

參與開發

工具鏈由 mise 釘選版本:

git clone https://github.com/ExpTechTW/DPIP.git
cd DPIP
mise install          # 安裝 mise.toml 釘選的 Flutter
tool/dev/deps.sh      # 取得套件

git hooks 由 tool/run.sh 第一次啟動時自動裝好,不用另外做。只想建置不想跑的話,tool/dev/setup.sh 可以單獨裝。

啟動:

系統 指令
macOS、Linux tool/run.sh -d <裝置>
Windows tool\run.ps1 -d <裝置>(或用 Git Bash/WSL 跑 bash tool/run.sh,日誌會上色)

一定要用這個腳本。 debug 版本偵測到不是這樣啟動會拒絕執行並印出正確指令 —— 直接跑起來的話,用到的是你 shell 快取的那個 Flutter 而不是 mise.toml 釘選的那個,而且當下不會有任何徵兆。

建置成安裝檔:

tool/dev/build.sh android    # APK
tool/dev/build.sh bundle     # AAB(Play 實際收的格式)
tool/dev/build.sh ios        # iOS(不含簽章)

其餘每件事也都有腳本,tool/ 底下分類放好:

要做什麼 指令
跑測試 tool/dev/test.sh
格式化 + 靜態分析 tool/dev/analyze.sh
只格式化 tool/dev/format.sh
重新產生 l10n tool/dev/l10n.sh
重新產生 codegen tool/dev/codegen.sh
砍掉重建 tool/dev/clean.sh
跑完 CI 會跑的每一道關卡 tool/check.sh

mise 是必要條件,不是建議。 沒有 mise 就不能建置這個專案 —— 腳本會直接拒絕執行並告訴你怎麼裝。

絕對不要自己打 flutterdartmise exec 工具鏈只在 tool/dev/_lib.sh 一個地方指定。理由不是整潔:shell 的 PATH 只解析一次,mise activate 會把它快取起來,所以升級工具鏈之後舊的 SDK 還留在 PATH 上 —— 而用錯 SDK 一樣建得起來、跑得起來、測試也會過,差別要到幾天後變成一個沒人重現得出來的失敗才浮現。

三道防線:

擋什麼
tool/dev/_lib.shrequire_mise 沒裝 mise、沒有 mise.toml、或 flutter 解析到 mise 以外的路徑,一律拒絕執行
tool/check/tooling.sh 文件與 CI 裡出現裸指令;tool/ 裡任何腳本語法錯、沒有執行權限、或直接呼叫 flutter / dart / mise exec
tool/run.sh 啟動前把上面兩項都跑一次(0.34 秒)

Note

Android 需要 JDK 17 以上(Android Studio 內建的即可)。iOS 已改用 Swift Package Manager,不需要 CocoaPods。

其餘所有事情都寫在別的地方,這裡不重複 —— 重複的文件一定會走鐘:

想找
工具鏈、執行、推送前的驗證清單、版本規則 AGENTS.md
資料夾結構、分層規則、各子系統的契約 ARCHITECTURE.md
設計 token、顏色、間距、動態、圖示、多語言 DESIGN.md
API 端點與區域對照 api.md
Commit 格式(CI 會擋) commit.md

參與方式

  • 回報問題或提出建議:Issues
  • 提交程式碼:Fork 這個儲存庫,開新分支修改,然後送 Pull Request
  • 改進文件:上面那五份都歡迎

送 PR 之前請先讀 commit.md:commit 訊息會直接變成更新日誌,格式不合 CI 會擋下來。

感謝所有讓 DPIP 成為可能的貢獻者:

貢獻者

合作夥伴

巨科資訊有限公司 巨科資訊有限公司 提供開發與測試所需的設備
台灣數位串流有限公司 台灣數位串流有限公司 提供雲端運算資源、網路頻寬與技術諮詢

授權

DPIP Public License這是 source-available 授權,不是開放原始碼授權 —— 原始碼公開可閱讀、可貢獻,但禁止商業使用,也禁止用來做出與 DPIP 競爭的產品。完整條款見 LICENSE

Star History

Star History Chart

About

Disaster Prevention Information Platform (防災資訊整合平台)

Topics

Resources

Stars

260 stars

Watchers

4 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

Generated from ExpTechTW/Example