# APP 說明事項
---
索引
[TOC]
---
## 註冊表單
- [註冊表單連結](https://docs.google.com/spreadsheets/d/1SxLJT4GZXf3PEnGJlNAsc3291ljcsgpNGrJuNWp_OAs/edit?usp=sharing)
## 資料庫版本驗證流程
```graphviz
digraph G {
graph [fontname = "MingLiU", compound = true];
node [fontname = "MingLiU"];
edge [fontname = "MingLiU"];
label = "資料庫版本比對流程";
Start [shape=box, label="Start\l前提:\l 手機安裝過兩個版本(A,B版)的APP\l此時手機狀態\l1. 手機APP 為 B版\l2. 資料庫可能狀況\l - 無資料庫(未執行過APP)\l - 既有資料庫 為 A版\lAPK [B版] 含有 APK資料庫, 及 SQL建構語法\l1. [B] APK資料庫\l2. [B] SQL建構語法\l"];
subgraph clusterServer{
OLDDBExist [shape=diamond, label="'手機資料庫'是否存在",style=filled,color=lightblue];
APP_DB_Copy [shape=box, label="[B]APK資料庫\n至手機內部作為\n'手機資料庫'",style=filled,color=lightblue];
DBVerCheck [shape=diamond, label="'手機資料庫'版本\n是否與\n(B版本)程式碼版本一致",style=filled,color=lightblue];
APP_Start [shape=box, label="APP 啟動",style=filled,color=lightblue];
subgraph clusterServer_1{
label = "資料庫重建對流程";
DBSQLReset_0 [shape=box, label="SQL Reset\n資料庫刷新",style=filled,color=lightblue];
DBSQLReset_1 [shape=box, label="備份前一版 'table'\n至 佔存空間 \n[backup_tb]",style=filled,color=lightblue];
DBSQLReset_2 [shape=box, label="移除 手機內部資料庫 所有\n(table,view,trigger)",style=filled,color=lightblue];
DBSQLReset_3 [shape=box, label="以 APP內部SQL 建置\n(table,view,trigger)\n[B] SQL建構語法",style=filled,color=lightblue];
DBSQLReset_4 [shape=box, label="倒回 [backup_tb] \n至 APP 資料庫",style=filled,color=lightblue];
}
Start -> OLDDBExist;
OLDDBExist -> DBVerCheck [label="Y"];
OLDDBExist -> APP_DB_Copy[label="N"];
DBVerCheck -> APP_Start [label="Y"];
DBVerCheck -> DBSQLReset_0[label="N"];
DBSQLReset_0 -> DBSQLReset_1 -> DBSQLReset_2 -> DBSQLReset_3-> DBSQLReset_4 -> APP_Start;
APP_DB_Copy -> APP_Start;
}
}
```
## APK 及 資料庫 版本差異
| APK 差異 | 除錯(debug) | 釋出(release)|
| -------- | -------- | -------- |
| 除錯資訊| V ||
| 檔案大小| 大 | 小 |
| 監控開發者模式 ||V|
## 發佈版之功能差
| 功能差異 | 試用(trial)| 正式(standard)|
| -------- | -------- | -------- |
| 資料庫清空(間隔10天) |V||
| 安裝後自動流程[3] |V|V|
| 註冊流程 | |▲[2]|
| 匯出Excel 報表 ||V|
| 寄發Excel Mail ||V|
| APP 自動更新 ||▲|
| -------- | -------- | -------- |
| UI - 是否顯示 excel 匯出按鈕 ||V|
| Code - 是否包含 excel 匯出程式 ||V|
note:
* ? 待確認
* ▲ 還未實做
* V 已實現
[1] 試用版無法轉移到正式版
[2] 正式版啟動後 ,內含有 "註冊/確認" 的功能
一旦沒有輸入註冊 就關閉正式版 APP
[3] 安裝 APP 後
* trial -- 自動清除前一次安裝所留下的資料
* standard -- 比對資料庫版本, 升級既有資料庫
[4] 依照檔名區隔
* 開發階段
* app-debug.apk -- 除錯版
* app-release.apk -- 發佈版
* 可對外散佈階段
* app-release_standard.apk -- 發佈-正式版
* app-release_trial.apk -- 發佈-試用版
## 資料庫版本號碼
- 版本號碼格式 A.B
A 為 table 版本號
B 為 view 版本號
例如: 1.81, A=1, B=81