ํผ์ ์ฐ๋ ค๊ณ ๋ง๋ macOS ๋ฝ๋ชจ๋๋ก ์์ ฏ ์ฑ (์น์ฑ: https://domado.younggeun0.dev)
4.0.0๋ถํฐ Electron ๋์ Tauri๋ก ๋ง๋ ๋ค (dmg ์ฝ 134MB โ 9MB).
- ์์ ์์ ฏ ์ฐฝ์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ค๋ ๊ฐ์์ ๋ฒํผ(๊ฐ์ ์ฆ๊ฐยทํด์ ์คํตยท์๋ก๊ณ ์นจยท์ค์ )์ด ๋ณด์ธ๋ค
- ์ค๋ ๊ฐ์๋ฅผ ๋๋ฅด๋ฉด ์ผ๋ณ ๊ธฐ๋ก ํํธ๋งต ์ฐฝ, ์ค์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ค์ ์ฐฝ์ด ๋ฐ๋ก ์ด๋ฆฐ๋ค
- ๊ธฐ๋ก ์ฐฝ์์ ๊ธฐ๋ก์ JSON์ผ๋ก ๋ด๋ณด๋ด๊ณ ๋ถ๋ฌ์ฌ ์ ์๋ค (์น์ฑ๊ณผ ๊ฐ์ ํ์, ๋ถ๋ฌ์ค๋ฉด ๋ ์ง๋ณ๋ก ๋ ํฐ ๊ฐ์ ๋จ๊น)
- ์ค์ ์ฐฝ์์ ์์ ฏ ๋ถํฌ๋ช ๋๋ฅผ ๋ฐ๋ก ์กฐ์ ํ ์ ์๋ค
- ์์ ฏ ์๋จ์ ๋์ด ์ฐฝ์ ์ฎ๊ธฐ๊ณ , ์ฐํ๋จ ์์ก์ด๋ก ํฌ๊ธฐ๋ฅผ ๋ฐ๊พผ๋ค (์ต์ 100ร200 โ ํ์ด๋จธยท๋ฒํผยท3D ๋ชจ๋ธ์ด ์๋ฆฌ๊ฑฐ๋ ๊ฒน์น์ง ์๋ ํฌ๊ธฐ)
- ๋ฝ๋ชจ๋๋ก๊ฐ ๋๋๋ฉด ํด์ ๋์ ์ ์ฒดํ๋ฉด์ผ๋ก ๋ฐ๋๋ค (์ค์ ์์ "ํด์ ์์ด ๋ฐ๋ก ๋ค์ ๋ฝ๋ชจ๋๋ก"๋ฅผ ์ผ๋ฉด ํด์ ์์ด ๋ค์ ๋ฝ๋ชจ๋๋ก ๋๊ธฐ ์ํ๊ฐ ๋๋ค)
- ์๋ฆผ์ผํฐ ์์ ฏ(์ํ)์ ํ์ฌ ๋จ๊ณ(์ง์คยทํด์), ๋จ์ ์๊ฐ, ์ผ์์ ์ง ์ฌ๋ถ, ์ค๋ ๊ฐ์๊ฐ ๋ณด์ธ๋ค
| ๋จ์ถํค | ์ค๋ช |
|---|---|
Space or cmd + shift + d |
๋ฝ๋ชจ๋๋ก ์์/์ค์ง |
a |
๋ฝ๋ชจ๋๋ก ๊ฐ์ ์ฆ๊ฐ |
s |
ํด์ ์คํต(ํด์ ๋๊ธฐ ์ค์ผ ๋) |
r |
์๋ก๊ณ ์นจ |
Rust(rustup), Node 22 ์ด์, Xcode, XcodeGen(brew install xcodegen)์ด ํ์ํ๋ค. Xcode์ XcodeGen์ ์๋ฆผ์ผํฐ ์์ ฏ์ ๋น๋ํ ๋ ์ด๋ค.
npm install
npm run dev # tauri dev (ํ์ด๋จธ๊ฐ 3์ด์ฉ ๋๋ค)
npm test # vitest (๋จ์)
npm run test:e2e # e2e feature๋ก ์ฑ์ ๋น๋ํด 3D ๋ ๋๋งยท์ฐฝ ์ํ ๊ฒ์ฌ (macOS, ๋ฆด๋ฆฌ์ค ์ ์คํ)
npm run build # src-tauri/target/release/bundle์ ์ฑยทdmgยท์
๋ฐ์ดํธ ํ์ผ ์์ฑ
npm run build:web # ์น์ฑ์ dist์ ๋น๋ (Vercel์ด ์คํ, npx vite preview๋ก ํ์ธ)์น์ฑ์ ๊ฐ์ renderer๋ฅผ Tauri ๋ธ๋ฆฌ์ง ์์ด ๋์ด๋ค. window.domado๊ฐ ์์ผ๋ฉด ์ค์ ยท๊ธฐ๋ก์ ๋ณ๋ ์ฐฝ ๋์ ์์ ฏ ์ ๋ชจ๋ฌ๋ก ์ด๊ณ , ์๋ฆผ์ ๋ธ๋ผ์ฐ์ Notification, ์์
์ค์๋ ํ๋ฉด ๊บผ์ง ๋ฐฉ์ง(Wake Lock)๋ฅผ ์ด๋ค. ๋ถํฌ๋ช
๋ยทํญ์ ์ ์ค์ ์ ๋ฐ์คํฌํฑ์๋ง, ์ฑ ์ค์น ์๋ด๋ ์น์๋ง ์๋ค.
์๋ฆผ์ผํฐ ์์ ฏ์ src-tauri/widget์ WidgetKit ํ์ฅ์ด๋ค. npm run build:widget์ด XcodeGen์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ xcodebuild๋ก ๋น๋ํ๋ฉฐ, tauri build๊ฐ ๋ฒ๋ค ์ง์ ์ ์๋์ผ๋ก ์คํํด Contents/PlugIns์ ๋ฃ๋๋ค. ์ฑ์ ํ์ด๋จธ ์ํ๊ฐ ๋ฐ๋ ๋๋ง App Group(TFLHLW3C9D.domado) ํด๋์ widget.json์ ์ํ๋ฅผ ์ฐ๊ณ ์์ ฏ์ ์๋ก๊ณ ์นจํ๋ค. ์คํ ์ค์๋ ์ข
๋ฃ ์๊ฐ์ ๋๊ฒจ ์์ ฏ์ด ์ค์ค๋ก ์นด์ดํธ๋ค์ดํ๋ค. ์๋ก ๊ณ ์น ์์ ฏ์ด ์ค์น ๋ค์๋ ์ ํ๋ฉด์ด๋ฉด ์ด์ ํ์ฅ ํ๋ก์ธ์ค๊ฐ ๋จ์ ์๋ ๊ฒ์ด๋ pkill -x DomadoWidget ํ ์ฑ์ ๋ค์ ์คํํ๋ค.
Node 25 ์ด์์์ npm test๋ฅผ ๋๋ฆฌ๋ฉด Node ๋ด์ฅ localStorage๊ฐ jsdom ๊ฒ์ ๊ฐ๋ ค ์คํจํ๋ค. NODE_OPTIONS=--no-experimental-webstorage npm test๋ก ๋๋ฆฐ๋ค.
- ์๋ ์
๋ฐ์ดํธ๋ GitHub ์ต์ ๋ฆด๋ฆฌ์ค์
latest.json์ ๋ณธ๋ค. ์ ๋ฐ์ดํธ ํ์ผ(domado.app.tar.gz)์~/.tauri/domado-updater.key๋ก ์๋ช ํ๋ค (TAURI_SIGNING_PRIVATE_KEY). ์ด ํค๋ฅผ ์์ผ๋ฉด ์ด๋ฏธ ์ค์น๋ ์ฑ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ณด๋ผ ์ ์๋ค. - ์์ ฏ์ App Group์ ํ ID๋ก ์์ํ๋ฏ๋ก Developer ID(ํ
TFLHLW3C9D)๋ก ์๋ช ํด์ผ ์์ ฏ์ด ์ฑ ์ํ๋ฅผ ์ฝ๋๋ค. - ์๋ช
์
APPLE_SIGNING_IDENTITY๋ก ์ง์ ํ Developer ID๋ก ํ๊ณ , ๊ณต์ฆ์xcrun notarytool submit --keychain-profile <ํ๋กํ>ํxcrun stapler staple๋ก ํ๋ค.