Skip to content
younggeun0Public

About

๐Ÿ… ๋ฝ€๋ชจ๋„๋กœ ์•ฑ

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

221 Commits

Folders and files

Repository files navigation

domado ๐Ÿ…

ํ˜ผ์ž ์“ฐ๋ ค๊ณ  ๋งŒ๋“  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๋กœ ํ•œ๋‹ค.

About

๐Ÿ… ๋ฝ€๋ชจ๋„๋กœ ์•ฑ

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages