---
# System prepended metadata

title: sync

---

{%hackmd DfWYF9cYREebVNN1eEOz-w %}

# sync
https://www.figma.com/file/dFfZDHidb6VsHIAecRr8zT/%E8%89%B2%E5%BD%A9%E7%AE%A1%E7%90%86app-ui-prototype?node-id=0%3A1

## MacOS
- finder 中顯示隱藏檔案：shift + cmd + .
- 純文字貼上：Shift + Option + Command + V
- 搜尋文字定義（⌘ + Control + D）
- 螢幕擷圖（⌘ + Shift + 4）
- 最小化當前視窗, alt + tab 不會被切換出來: cmd + M 
    - 如何叫出來？ alt + tab 後切換到指定應用，按下 option 後放開
- 最小化所有視窗 （⌘ + Option + M）
- 隱藏當前視窗，alt + tab 會被切換出來: cmd + H
- 顯示最常用應用程式（⌘ + Shift + Tab）
- 放大/縮小
    - 系統偏好設定 => 輔助使用 => 勾選使用鍵盤來縮放
    - option + cmd + = / option + cmd + "-"
- 微調音量（Option + Shift + F11/F12）
- 直接捲動到最上方或最下方（⌘ + 上/下）
- 呈現所有app: ctrl + 上
- 叫出選單列: ctrl + 下
- 切分多個桌面, 可透過 ctrl 快速切換不同桌面: 
	- Ctrl + 上, 拖曳指定視窗到上方
	- 選遠單中點選windows
- Spotlight 快捷鍵: cmd + space ｜ 前往應用程式檔案夾：選到應用程式 + Ctrl + Enter
- Finder 開啟時 
    - 開新視窗：cmd + N ｜ 開新分頁：cmd + T
    - 捷徑，(⌘ + Shift + 英文字母)  ex: A 是應用程式，U 是工具程式，D 是桌面，O 是文件
    - 檔案瀏覽：空白鍵/space
    - 切換瀏覽資料夾的方式 (cmd + 數字鍵)：1 大圖模式，2 列表清單，3 Mac 獨有的模式
- **text editor**
	⁃	回到行頭/尾: cmd + <= / cmd + =>
	⁃	整行刪除: cmd + 回退鍵
	⁃	段落刪除: option + 回退鍵
- **Safari**
	- 加入書籤: command + D
	- 開新瀏覽器: cmd + Home
	- 關閉 Safari 分頁（⌘ + W）
	- 結束 Safari (⌘ + Q )
	- 切換分頁 (⌘ + 1, 2, 3 ...)
	- History: ⌘ + Y
	- openBlank: ⌘ + T
	- 開啟上一次關閉的分頁：cmd + shift + T
	- 網址列直接輸入文字 （⌘ + L）
	- 閱讀模式: cmd + shit + R
	- cmd + click: 以新標籤頁打開建結
	- cmd + Shift + click: 在新標筑頁中打開建結，並使其成為啟用的標籤頁
	- cmd + option + click: 在新視窗中打開建結
	- cmd + Option + Shift + click：在新視窗中打明建結，並使其成為作用中的視窗
- move to the Dock: Ctrl + F3
- hidden/show Dock: cmd + option + D

## Xcode
- 中間只保留編輯器: cmd + enter
- 開啟設定: cmd + ,
- 隱藏左側 nav: cmd + 0
    - 切換左側選單：cmd + 1~9
- 隱藏右側 inspector: cmd + option + 0
    - 切換右側緩單：cmd + 1~7
- 隱藏下方debug: cmd + shift + Y
- 設計視窗 
	- resume: cmd + option + p
	- cmd + shift + L
	    - Design UI => view object
	    - Coding => code snippet
- 檔案重新命名: cmd + shift + enter
- Quick find/open : ⇧ + ⌘ + O
- 開新 tab 在 navbar 上，並包含當前工作區所有 view: cmd + T
- 縮起區塊/展開區塊：
	- indent: cmd + option + <-
	- extend: cmd + option + ->
- 增加方法的說明註釋: cmd + option + /
- 增加或刪除該行的中斷點: cmd + \
- 啟動或關閉所有的中斷點: cmd + Y
- Building
	- Build : ⌘ + B
	- Run & Build if necessary :⌘ + R
	- Stop the current build/run/testing : ⌘ + .
	- Run tests & Build if necessary: ⌘ + U
	- Clean : ⌘ + K
	- Clean All files and build folder : ⇧ + ⌘ + K
	- Profile (Instruments): ⌘ + I
	- Choose scheme : ⌃ + 0
	- Choose Destination : ⌃ + ⇧ + 0
	- Re-run the last run tests : ⇧ + ⌘ + ⌥ + G
- 重新命名區塊內的變數：
    - 快速：ctrl + cmd + E
    - 用十字游標匡選：option + cmd (持續按著去 匡選/點選)
- 快速找到方法： ctrl + 6
- 跳到定義：ctrl + cmd + J
- 跳到行數：cmd + L
- go forward： ctrl + cmd + ->
- go back： ctrl + cmd + <-
- reveal in project navigator: shift + cmd + J
- 切換不同專案：cmd + ~
- 切換同一個 editor 中的不同 tab 
    - 往前：cmd + shift + {
    - 往後：cmd + shift + }
- 切換不同的大 tab
    - ctrl + tab
- 切換不同的 editor
    - ctrl + J
    - ctrl + ~
- 當有多個頁面時，focus 其中一個：shift + ctrl + cmd + enter
- 顯示方法說明：
    - 簡易說明：ctrl + .
    - 詳細說明：ctrl + alt + D
- 將當前游標整行上下移動：
    - UP: cmd + option + \[
    - Down: cmd + potion + \]
- git diff 跳到：ctrl + \
- 找類別繼承的介面: ctrl + cmd + up arrow
- 選擇多行同時進行修改：ctrl + shift + up/down arrow

## Safari JS 偵錯

- [須先進行設定，設定參考網站](https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html)

**第一次使用 APP 需在 safari debug console 中打下面兩行程式，模擬登入**  
var params = {"name": "Kevin","token": "token token"};
window.webkit.messageHandlers.currentUserToken.postMessage(params);

## postman APP API collection export file

色彩管理 app 所規劃的所有 api，可在 postman import [json file](https://drive.google.com/file/d/1vgIkoNyOBWJpRkviY4AvE9TnG6rrPaL-/view?usp=sharing) 這個檔案。再透過 postman 建立 mock server，可參考 [官網](https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/)。就能在後台API尚未完成前，先在 app 上進行互動

## 郭老師
- BD 上色彩學
- Lab 當傳統濃度計: 是拿 L & ab(ch) 來跟 i1 的濃度計做比較，並且做 ML 得出濃度
- 單點的三點修正/追色: 當客人拿一份自己的樣搞說要印，如何印出相似的顏色會是個難題
    - 流程: 
        - 透過得到目標的三個灰(亮中暗)，在量當前印出來的三個灰
        - 得到修正圖檔的檔案
    - 議題: 圖稿上沒有灰 設計師有觀念後都會設計三個灰色色塊 印刷師傅看到色塊後做什麼
- 展望色彩未來: 工具 => 普及化 => 工作流程/色彩價值觀提生 => 色彩認證平台
- 期望: 提供好的流程給設計師與製造商，並提高大家對於色管的知識。讓世界由黑白變彩色


## pbn 未完成項目

- 討論目標:
	- 一周能有多少時間執行，如何執行
	- mvp 還差多少?  5~6
- APP (3)
	- 啟用序號
	- 訂閱資訊查詢 - 序號清單
	- 限制登入裝置數量: 登入時裝置已滿跳轉到登出設備
	- 優化 連接光譜儀畫面
	- warninig

### @

優化：  
- 整理第一次審核需要哪些資訊
- Lab 與 濃度切開, 初步想法：入口傳送設定, segmented view ＆ Child view 走流程
    - Scroll view 有個屬性可移動 contentOffset = scrollview.bounds.x | 0
    - scrollView.isScrollEnabled
- 平板畫面優化
    - 嘗試 container 中的 child view 大於 container 時會發生什麼事情
    - 如果會有自動縮放, 再個手機型號看一下
    - 上述可行的話. 是否只接調整 ipad 版本就好

## 恭麟打螺絲
**啟動序號**  
畫面都已經完成了，接下來要請別人在既有的架構下完成啟動序號的流程

**使用者流程**  
- 看到沒有使用權限，進到輸入序號的畫面
- 輸入使用序號 => 按下一步
- 輸入序號是錯的則呈現相關訊息: 如非法、已使用
- 輸入正確序號則進行到正式啟用序號的畫面
- 呈現序號資訊，並詢問使用者是否要啟動，取消則回到上一頁
- 使用者確認啟動，不成功時需提示，若成功時則反入口頁

**系統流程**  
- 進到輸入序號的畫面
- 輸入使用序號 => 按下一步
    - API 到後台詢問，當 serialStatus 為 
        - 0 時代表成功、1 序號已啟用、2 無效序號
    - 畫面互動
        - 網路請求失敗：提示網路異常
        - 1、2 輸入序號是錯的則呈現相關訊息，並停留在此畫面
        - 0 將序號資訊帶往下一流程，並切換畫面呈現序號資訊
- 呈現序號資訊 與 啟動序號
    - 等待使用者點選啟動取消
        - 取消返回上頁
        - 啟動，
            - API 到後台詢問
                - 失敗原因，
                    - 網路請求失敗：提示網路異常
                    - 啟用序號 NG：提示啟用失敗
                - 成功 
                    - 更新使用者資訊 app storage，更新 
                        - subscriptionStatus 訂閱狀態
                        - resource 可用功能 
                    - 結束啟動序號流程
                    - 跳轉回入口頁

**TestCase**  
- 使用者在等待網路請求時，不能操作畫面且要知道應用程式在忙碌中
- 使用者未輸入序號時無法點選下一步
- 使用者手機無網路點選 下一步｜啟用 時，提示網路異常
- 使用者輸入錯誤序號時：無法下一步、呈現錯誤資訊
- 使用者輸入正確序號時：切換到啟用序號並呈現序號資訊
- 使用者按下取消返回上一步
- 使用者按下啟用失敗時呈現提示
- 使用者按下啟用成功時: 結束序號啟動流程、回入口頁、能使用進階功能、到設定頁訂閱狀態要是 pro


## xcode 與 iphone
用 xcode 無法將 app 裝到 ipone 上，錯誤訊息會導致我向開發者帳號新增 device 的方向去找。這次進而得知開發者帳號、IOS裝置與發佈之間的關聯性，且必須透過 Certificates 來做驗證與綁定。

## IOS NFC writter
看了好多篇，每個人要使用的情境都不同。最多範例是 uri 但在 nfc metadata 大多寫入的不明確，雖然不明確還是可讀取。但就是要額外再寫個讀取邏輯，為了避免這點所以我想用跟 android 相同方法。除了官方的資源外下面的參考也幫助許多

https://stackoverflow.com/questions/47094314/nfc-tag-writer-sample-or-tutorial-for-ios  
https://www.appcoda.com/corenfc-introduction/  
https://stackoverflow.com/questions/58115985/nfc-ndef-writing-on-ios-encoding  

### NDEF specifications and regulations
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v12.0.0%2Fnfc_ndef_format_dox.html  

https://weirenxue.github.io/2022/03/08/nfc_ndef/  

https://austinblackstoneengineering.com/nfc-p2p-basics/  


## NFC 讀取 bug
- Ndef Payload 標準統一則是不需修改
- 若標準無法統一，android & ios 處理邏輯不同
    - android 用 null 來判斷
    - ios 用 "\0" 判斷

## ??
- NFC tag: https://www.youtube.com/watch?v=37Cgbdusml0
- 工具組總攬 濃度計 灰平衡 兩個圖能轉成圖檔嗎？
- 使用者功能權限判斷 api
- android keystore password: https://cloud.tencent.com/developer/ask/sof/90409