Skip to content

๐Ÿš€ Lightweight desktop app framework using Tauri - Run HTML/CSS/JS as native Windows applications without browser or extra installation

License

Notifications You must be signed in to change notification settings

siriz/tauri_webview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TauriWebview

Languages: ํ•œ๊ตญ์–ด | English | ๆ—ฅๆœฌ่ชž

GitHub Version

Tauri๋ฅผ ์ด์šฉํ•œ ๊ฐ€๋ฒผ์šด ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ, ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„๋ฅผ ํ†ตํ•ด html/ ํด๋”์˜ HTML/CSS/JS ํŒŒ์ผ์„ ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜•ํƒœ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

GitHub Repository: https://github.com/siriz/tauri_webview

๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

๋นŒ๋“œ ์—†์ด ๋ฐ”๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?

๐Ÿ‘‰ GitHub Releases์—์„œ ์ตœ์‹  ๋ฒ„์ „์˜ tauriwebview-v{version}-windows-x64.zip ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์••์ถ• ํ•ด์ œ ํ›„ tauriwebview.exe๋ฅผ ์‹คํ–‰ํ•ด๋ณด์„ธ์š”!

  • ์••์ถ• ํŒŒ์ผ์—๋Š” ์‹คํ–‰ ํŒŒ์ผ, ์„ค์ • ํŒŒ์ผ, ์ƒ˜ํ”Œ HTML, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ๊ฐ€์ด๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ• ์—†์ด ์ฆ‰์‹œ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Windows x64 ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ญ์ƒ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ฃผ์š” ํŠน์ง•

  • ๋ธŒ๋ผ์šฐ์ € ๋ถˆํ•„์š”: Windows ๋‚ด์žฅ WebView2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„ ๋ธŒ๋ผ์šฐ์ € ์—†์ด HTML์„ ๋ฐ์Šคํฌํƒ‘ ์•ฑ์œผ๋กœ ์‹คํ–‰
  • ์ถ”๊ฐ€ ์„ค์น˜ ๋ถˆํ•„์š”: ์™ธ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ์—†์ด exe๋งŒ์œผ๋กœ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„: Rust ๊ธฐ๋ฐ˜ HTTP ์„œ๋ฒ„(tiny_http)๋กœ ๋™์  ํŒŒ์ผ ์ œ๊ณต ๋ฐ ํฌํŠธ ์„ค์ • ์ง€์›
  • ์‹ค์‹œ๊ฐ„ ์ˆ˜์ •: ์‹คํ–‰ ์ค‘์—๋„ html/ ํด๋” ํŒŒ์ผ ์ˆ˜์ • ํ›„ F5๋กœ ์ฆ‰์‹œ ๋ฐ˜์˜ (์žฌ๋นŒ๋“œ ๋ถˆํ•„์š”)
  • ๊ฐ„ํŽธํ•œ ์„ค์ •: config.ini๋กœ ์ฐฝ ํฌ๊ธฐ, ํฌํŠธ, ํ•ญ์ƒ ์œ„ ํ‘œ์‹œ ๋“ฑ ์†์‰ฝ๊ฒŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•
  • Drag & Drop ์ง€์›: ํŒŒ์ผ์„ ์ฐฝ์— ๋“œ๋ž˜๊ทธํ•˜์—ฌ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ (์ƒ˜ํ”Œ ์ฝ”๋“œ ํฌํ•จ)
  • ์ž๋™ ๋ฒ„์ „ ๊ด€๋ฆฌ: Git ์ปค๋ฐ‹ ์นด์šดํŠธ ๊ธฐ๋ฐ˜ ์ž๋™ ๋ฒ„์ „ ๋ฒˆํ˜ธ ์ƒ์„ฑ
  • Single Instance ๋ชจ๋“œ: ์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€ ์˜ต์…˜
  • ํ™•์žฅ์„ฑ: ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์šฉ์ด

์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ

  • Windows 10 ์ด์ƒ
  • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถˆํ•„์š”
  • ์™ธ๋ถ€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ๋ถˆํ•„์š”

์„ค์น˜ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

  1. Rust ์„ค์น˜: https://www.rust-lang.org/tools/install
  2. Node.js ์„ค์น˜: https://nodejs.org/
  3. Tauri CLI ์„ค์น˜: cargo install tauri-cli

ํ”„๋กœ์ ํŠธ ์„ค์ •

# ์ €์žฅ์†Œ ํด๋ก 
git clone <repository-url>
cd TauriWebview

# dev ํด๋”์—์„œ ์˜์กด์„ฑ ์„ค์น˜
cd dev
npm install

# ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰
npm run dev

# ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ
npm run build

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

TauriWebview/
โ”œโ”€โ”€ dev/                              # ๋ชจ๋“  ๊ฐœ๋ฐœ ์†Œ์Šค์ฝ”๋“œ
โ”‚   โ”œโ”€โ”€ src-tauri/                   # Rust ๋ฐฑ์—”๋“œ ์†Œ์Šค
โ”‚   โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ main.rs              # ๋ฉ”์ธ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ lib.rs               # ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„ ๋ฐ ํ•ต์‹ฌ ๋กœ์ง
โ”‚   โ”‚   โ”œโ”€โ”€ html/                    # ๊ฐœ๋ฐœ์šฉ ์›น ์ฝ˜ํ…์ธ  (์†Œ์Šค)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ index.html           # Drag & Drop ์ƒ˜ํ”Œ ํฌํ•จ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ styles.css
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ main.js
โ”‚   โ”‚   โ”œโ”€โ”€ icons/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ icon.ico             # ๋ฉ€ํ‹ฐ ์‚ฌ์ด์ฆˆ ์•„์ด์ฝ˜ (157KB)
โ”‚   โ”‚   โ”œโ”€โ”€ Cargo.toml               # Rust ์˜์กด์„ฑ (tauri, tiny_http, configparser ๋“ฑ)
โ”‚   โ”‚   โ”œโ”€โ”€ tauri.conf.json          # Tauri ์„ค์ • (dragDropEnabled: false)
โ”‚   โ”‚   โ”œโ”€โ”€ build.rs                 # ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ (Git ๋ฒ„์ „ ์ž๋™ ์ƒ์„ฑ)
โ”‚   โ”‚   โ””โ”€โ”€ .cargo/
โ”‚   โ”‚       โ””โ”€โ”€ config.toml          # ๋นŒ๋“œ ์ถœ๋ ฅ ๊ฒฝ๋กœ (../../build)
โ”‚   โ”œโ”€โ”€ readme/                      # ์‚ฌ์šฉ์ž์šฉ ๊ฐ€์ด๋“œ (TXT ํ˜•์‹)
โ”‚   โ”‚   โ”œโ”€โ”€ README_KO.txt
โ”‚   โ”‚   โ”œโ”€โ”€ README_EN.txt
โ”‚   โ”‚   โ””โ”€โ”€ README_JA.txt
โ”‚   โ”œโ”€โ”€ scripts/                     # ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ update-version.js        # Git ๊ธฐ๋ฐ˜ ์ž๋™ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ copy-contents.js         # HTML ๋ฐ README ๋ณต์‚ฌ
โ”‚   โ”‚   โ”œโ”€โ”€ create-dist.js           # ๋ฐฐํฌ ํŒจํ‚ค์ง€ ์ƒ์„ฑ
โ”‚   โ”‚   โ””โ”€โ”€ create-release-zip.js    # ๋ฒ„์ „๋ณ„ zip ํŒŒ์ผ ์ƒ์„ฑ
โ”‚   โ”œโ”€โ”€ package.json                 # npm ์Šคํฌ๋ฆฝํŠธ (prebuild/postbuild)
โ”‚   โ””โ”€โ”€ node_modules/                # npm ์˜์กด์„ฑ
โ”œโ”€โ”€ build/                           # ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ (์ž๋™ ์ƒ์„ฑ, Git ์ œ์™ธ)
โ”‚   โ””โ”€โ”€ dist/                        # ์ตœ์ข… ๋ฐฐํฌ ํŒจํ‚ค์ง€
โ”‚       โ”œโ”€โ”€ tauriwebview.exe         # ์‹คํ–‰ํŒŒ์ผ (~9MB)
โ”‚       โ”œโ”€โ”€ config.ini               # ์‚ฌ์šฉ์ž ์„ค์ • ํŒŒ์ผ
โ”‚       โ”œโ”€โ”€ html/                    # ์‚ฌ์šฉ์ž ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ์›น ์ฝ˜ํ…์ธ 
โ”‚       โ”‚   โ”œโ”€โ”€ index.html
โ”‚       โ”‚   โ”œโ”€โ”€ styles.css
โ”‚       โ”‚   โ””โ”€โ”€ main.js
โ”‚       โ”œโ”€โ”€ README_KO.txt            # ํ•œ๊ตญ์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ
โ”‚       โ”œโ”€โ”€ README_EN.txt            # ์˜์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ
โ”‚       โ””โ”€โ”€ README_JA.txt            # ์ผ๋ณธ์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ
โ”œโ”€โ”€ config.ini                       # ์•ฑ ์„ค์ • ํŒŒ์ผ (๊ฐœ๋ฐœ์šฉ ํ…œํ”Œ๋ฆฟ)
โ”œโ”€โ”€ LICENSE                          # MIT ๋ผ์ด์„ผ์Šค
โ”œโ”€โ”€ README.md                        # ๊ฐœ๋ฐœ์ž์šฉ ํ•œ๊ตญ์–ด ๋ฌธ์„œ
โ”œโ”€โ”€ README_EN.md                     # ๊ฐœ๋ฐœ์ž์šฉ ์˜์–ด ๋ฌธ์„œ
โ”œโ”€โ”€ README_JA.md                     # ๊ฐœ๋ฐœ์ž์šฉ ์ผ๋ณธ์–ด ๋ฌธ์„œ
โ””โ”€โ”€ tauriwebview-v0.2.16-windows-x64.zip  # ๋ฐฐํฌ์šฉ ์••์ถ• ํŒŒ์ผ (~3MB)

๋ฐฐํฌ

๋นŒ๋“œ ์™„๋ฃŒ ํ›„ ๋ฐฐํฌ์šฉ ํŒจํ‚ค์ง€๋Š” build/dist/ ํด๋”์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:

build/dist/
โ”œโ”€โ”€ tauriwebview.exe       # ์‹คํ–‰ํŒŒ์ผ (9.2MB, ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„ ํฌํ•จ)
โ”œโ”€โ”€ config.ini             # ์„ค์ •ํŒŒ์ผ (ํฌํŠธ, ์ฐฝ ํฌ๊ธฐ ๋“ฑ)
โ”œโ”€โ”€ html/                  # ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์›น ์ฝ˜ํ…์ธ 
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ”œโ”€โ”€ styles.css
โ”‚   โ””โ”€โ”€ main.js
โ”œโ”€โ”€ README_KO.txt          # ํ•œ๊ตญ์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ
โ”œโ”€โ”€ README_EN.txt          # ์˜์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ
โ””โ”€โ”€ README_JA.txt          # ์ผ๋ณธ์–ด ์‚ฌ์šฉ ๊ฐ€์ด๋“œ

๋ฐฐํฌ ๋ฐฉ๋ฒ•:

  • ๋นŒ๋“œ ์‹œ ์ž๋™์œผ๋กœ tauriwebview-v{version}-windows-x64.zip ์ƒ์„ฑ๋จ
  • GitHub Releases์— ์—…๋กœ๋“œํ•˜์—ฌ ๋ฐฐํฌ
  • ๋˜๋Š” build/dist/ ํด๋”๋ฅผ ์ง์ ‘ ๋ฐฐํฌ

์‚ฌ์šฉ์ž ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. tauriwebview.exe ์‹คํ–‰
  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด http://localhost:8000์—์„œ ์ž๋™์œผ๋กœ ์›น์„œ๋ฒ„ ์‹œ์ž‘
  3. html/ ํด๋”์˜ ํŒŒ์ผ์„ ์›ํ•˜๋Š” ๋Œ€๋กœ ์ˆ˜์ •
  4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ F5(์ƒˆ๋กœ๊ณ ์นจ)๋ฅผ ๋ˆŒ๋Ÿฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ฆ‰์‹œ ํ™•์ธ
  5. ํ•„์š”์‹œ config.ini์—์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋‚˜ ์ฐฝ ํฌ๊ธฐ ๋ณ€๊ฒฝ

๋‹จ์ถ•ํ‚ค

  • F5: ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ (์ˆ˜์ •๋œ HTML/CSS/JS ๋ฐ˜์˜)
  • F11: ์ „์ฒดํ™”๋ฉด ํ† ๊ธ€ (์ „์ฒดํ™”๋ฉด โ†” ์ฐฝ ๋ชจ๋“œ)

์„ค์ • ํŒŒ์ผ (config.ini)

config.ini ํŒŒ์ผ๋กœ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

[window]
width=800              # ์ฐฝ ๋„ˆ๋น„ (๊ธฐ๋ณธ๊ฐ’: 800)
height=600             # ์ฐฝ ๋†’์ด (๊ธฐ๋ณธ๊ฐ’: 600)
center=true            # ํ™”๋ฉด ์ค‘์•™์— ๋ฐฐ์น˜ (true/false)
x=100                  # ์ฐฝ X ์ขŒํ‘œ (center=false์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ)
y=100                  # ์ฐฝ Y ์ขŒํ‘œ (center=false์ผ ๋•Œ๋งŒ ์‚ฌ์šฉ)
always_on_top=false    # ํ•ญ์ƒ ์œ„์— ํ‘œ์‹œ ์—ฌ๋ถ€
resizable=true         # ์ฐฝ ๋ฆฌ์‚ฌ์ด์ฆˆ ๊ฐ€๋Šฅ ์—ฌ๋ถ€

[app]
name=TauriWebview      # ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„ (์ฐฝ ์ œ๋ชฉ์— ํ‘œ์‹œ)
version=0.2.16          # ๋ฒ„์ „ (๋นŒ๋“œ ์‹œ ์ž๋™์œผ๋กœ Git ์ปค๋ฐ‹ ์นด์šดํŠธ ๊ธฐ๋ฐ˜ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ)
port=8000              # ์›น์„œ๋ฒ„ ํฌํŠธ ๋ฒˆํ˜ธ (๊ธฐ๋ณธ๊ฐ’: 8000)
single_instance=true   # ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ๋ชจ๋“œ (์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€)

์ฐธ๊ณ :

  • ์ฐฝ ์ œ๋ชฉ์€ {name} v{version} ({git-hash}) ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค
  • version์€ ๋นŒ๋“œ ์‹œ ์ž๋™์œผ๋กœ Git ์ปค๋ฐ‹ ์นด์šดํŠธ ๊ธฐ๋ฐ˜ ๋ฒ„์ „(์˜ˆ: 0.2.16)์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค

ํฌํŠธ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•

๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํฌํŠธ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ:

  1. config.ini ํŒŒ์ผ์„ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋กœ ์—ด๊ธฐ
  2. [app] ์„น์…˜์˜ port ๊ฐ’ ๋ณ€๊ฒฝ (์˜ˆ: port=8080)
  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์žฌ์‹œ์ž‘

์ตœ์‹  ์—…๋ฐ์ดํŠธ (v0.2.16)

โšก ๋™์  ํฌํŠธ ์„ค์ •

  • config.ini์—์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฆ‰์‹œ ์ ์šฉ๋จ
  • ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํฌํŠธ ์ถฉ๋Œ ์‹œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ
  • ํ•˜๋“œ์ฝ”๋”ฉ๋œ URL ์ œ๊ฑฐ๋กœ ์œ ์—ฐํ•œ ์„ค์ • ๊ฐ€๋Šฅ

๐Ÿ“ฆ Git ์ €์žฅ์†Œ ์ตœ์ ํ™”

  • ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ(zip ํŒŒ์ผ)์„ Git ์ €์žฅ์†Œ์—์„œ ์ œ์™ธ
  • GitHub Releases๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ ํŒŒ์ผ ๊ด€๋ฆฌ
  • README์—์„œ ํ•ญ์ƒ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋กœ ์ž๋™ ๋งํฌ

๐Ÿ”ข ์œ ์—ฐํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ

  • config.ini์—์„œ ๋ฉ”์ด์ €/๋งˆ์ด๋„ˆ ๋ฒ„์ „ ์ง์ ‘ ์„ค์ • ๊ฐ€๋Šฅ
  • Git ์ปค๋ฐ‹ ์นด์šดํŠธ๋กœ ํŒจ์น˜ ๋ฒ„์ „ ์ž๋™ ์ƒ์„ฑ
  • ๋ฒ„์ „ ํ˜•์‹: {major}.{minor}.{commits} (์˜ˆ: 0.2.16)

๐ŸŽจ ์ตœ์†Œํ™”๋œ ์ดˆ๊ธฐ UI

  • ์ดˆ๊ธฐ ์ฐฝ ์ œ๋ชฉ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๊น”๋”ํ•œ ์‹œ์ž‘
  • config.ini ๋กœ๋“œ ํ›„ ์ฆ‰์‹œ ์‚ฌ์šฉ์ž ์ •์˜ ์ œ๋ชฉ์œผ๋กœ ๋ณ€๊ฒฝ

๐Ÿ“ Drag & Drop ์ง€์›

์ƒ˜ํ”Œ HTML์— ํŒŒ์ผ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํŒŒ์ผ์„ ์ฐฝ์— ๋“œ๋ž˜๊ทธํ•˜๋ฉด ํŒŒ์ผ ์ •๋ณด(์ด๋ฆ„, ํฌ๊ธฐ, ํƒ€์ž…) ํ‘œ์‹œ
  • ์—ฌ๋Ÿฌ ํŒŒ์ผ ๋™์‹œ ๋“œ๋กญ ๊ฐ€๋Šฅ
  • ํŒŒ์ผ ํƒ€์ž…๋ณ„ ์•„์ด์ฝ˜ ์ž๋™ ํ‘œ์‹œ
  • Remove ๋ฒ„ํŠผ์œผ๋กœ ๋ชฉ๋ก์—์„œ ์ œ๊ฑฐ

์‚ฌ์šฉ ๋ฐฉ๋ฒ•:

// HTML5 drag and drop ์ด๋ฒคํŠธ ์‚ฌ์šฉ
dropzone.addEventListener('drop', (e) => {
  e.preventDefault();
  const files = e.dataTransfer.files;
  // ํŒŒ์ผ ์ฒ˜๋ฆฌ
});

๐ŸŽฏ Single Instance ๋ชจ๋“œ

config.ini์—์„œ single_instance=true๋กœ ์„ค์ •ํ•˜๋ฉด:

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ผ ๋•Œ ์ƒˆ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ์กด ์ฐฝ์ด ํ™œ์„ฑํ™”๋จ
  • ์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€๋กœ ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ

๐Ÿ“ ํ™”๋ฉด ์ค‘์•™ ๋ฐฐ์น˜

config.ini์—์„œ center=true๋กœ ์„ค์ •ํ•˜๋ฉด:

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž๋™์œผ๋กœ ํ™”๋ฉด ์ค‘์•™์— ๋ฐฐ์น˜๋จ
  • x, y ์ขŒํ‘œ ์„ค์ • ๋ถˆํ•„์š”

์•„์ด์ฝ˜ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„์ด์ฝ˜์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด:

Windows ํ‘œ์ค€ ์•„์ด์ฝ˜ ํ•ด์ƒ๋„

ํ•ด์ƒ๋„ ์šฉ๋„ ์„ค๋ช…
16x16 ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ๋ชฉ๋ก ๋ณด๊ธฐ ๋ฐ ์ž‘์€ ์•„์ด์ฝ˜
32x32 ๋ฐ”ํƒ•ํ™”๋ฉด, ์ž‘์—… ํ‘œ์‹œ์ค„ ์ผ๋ฐ˜์ ์ธ ํ‘œ์‹œ์šฉ
48x48 ์ค‘๊ฐ„ ์•„์ด์ฝ˜ ์ œ์–ดํŒ ๋ฐ ์ค‘๊ฐ„ ํฌ๊ธฐ
64x64 ํƒ€์ผ ๋ณด๊ธฐ Windows 10/11 ํƒ€์ผ
128x128 ์„ฌ๋„ค์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํŒŒ์ผ ์†์„ฑ ๋ฐ ํฐ ๋ณด๊ธฐ
256x256 High DPI ๋””์Šคํ”Œ๋ ˆ์ด 4K ํ•ด์ƒ๋„ ๋ฐ ๊ณ ํ•ด์ƒ๋„

์•„์ด์ฝ˜ ์ œ์ž‘ ๋‹จ๊ณ„

  1. ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„์˜ ์ด๋ฏธ์ง€ ์ค€๋น„

    • ๊ถŒ์žฅ ํ•ด์ƒ๋„: 16x16, 32x32, 48x48, 64x64, 128x128, 256x256
    • ํ˜•์‹: PNG (ํˆฌ๋ช… ๋ฐฐ๊ฒฝ ๊ถŒ์žฅ)
  2. ICO ํŒŒ์ผ๋กœ ๋ณ€ํ™˜

    • ์˜จ๋ผ์ธ ๋„๊ตฌ: https://convertio.co/png-ico/
    • ๋˜๋Š” ImageMagick ์„ค์น˜ ํ›„:
      magick convert icon-16.png icon-32.png icon-48.png icon-64.png icon-128.png icon-256.png icon.ico
  3. ์•„์ด์ฝ˜ ํŒŒ์ผ ์ €์žฅ

    • dev/src-tauri/icons/icon.ico ์— ์ €์žฅ
    • ๊ธฐ์กด ํŒŒ์ผ์„ ๋ฎ์–ด์“ฐ๊ธฐ
  4. ๋นŒ๋“œ

    cd dev
    npm run build

๊ธฐ์ˆ  ์Šคํƒ

  • ๋ฐฑ์—”๋“œ: Rust
    • Tauri 2.0 - ๋ฐ์Šคํฌํƒ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
    • tiny_http - ์ž„๋ฒ ๋””๋“œ HTTP ์›น์„œ๋ฒ„
    • configparser - INI ํŒŒ์ผ ํŒŒ์‹ฑ
  • ํ”„๋ก ํŠธ์—”๋“œ: HTML5, CSS3, JavaScript
  • ๋นŒ๋“œ ๋„๊ตฌ: Cargo, npm
  • WebView: Windows WebView2 (Chromium ๊ธฐ๋ฐ˜)

์•„ํ‚คํ…์ฒ˜

์‹คํ–‰ ํ๋ฆ„:
1. tauriwebview.exe ์‹คํ–‰
2. config.ini ์ฝ๊ธฐ (ํฌํŠธ, ์ฐฝ ํฌ๊ธฐ ๋“ฑ)
3. Rust ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„ ์‹œ์ž‘ (localhost:8000)
   - exe์™€ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์˜ html/ ํด๋” ์„œ๋น™
   - MIME ํƒ€์ž… ์ž๋™ ์„ค์ • (html, css, js, json, ์ด๋ฏธ์ง€ ๋“ฑ)
4. Tauri ์œˆ๋„์šฐ ์ƒ์„ฑ ๋ฐ http://localhost:8000 ์—ด๊ธฐ
5. ์‚ฌ์šฉ์ž๊ฐ€ html/ ํŒŒ์ผ ์ˆ˜์ • โ†’ F5๋กœ ์ƒˆ๋กœ๊ณ ์นจ โ†’ ์ฆ‰์‹œ ๋ฐ˜์˜

๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

๊ฐœ๋ฐœ ์ค‘ ํŒŒ์ผ ์ˆ˜์ •

  • ์œ„์น˜: dev/src-tauri/html/ ํด๋”์—์„œ ์ž‘์—…
  • ํ…Œ์ŠคํŠธ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ›„ F5๋กœ ์ƒˆ๋กœ๊ณ ์นจ
  • ๋นŒ๋“œ: npm run build๋กœ build/dist/html/์— ์ž๋™ ๋ณต์‚ฌ

์˜์กด์„ฑ

Rust (Cargo.toml):

[dependencies]
tauri = "2"
tiny_http = "0.12"        # ์ž„๋ฒ ๋””๋“œ ์›น์„œ๋ฒ„
configparser = "3"        # INI ํŒŒ์ผ ํŒŒ์‹ฑ

[build-dependencies]
tauri-build = "2"
embed-resource = "3"      # ์•„์ด์ฝ˜ ์ž„๋ฒ ๋”ฉ

๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ

  • copy-contents.js: src-tauri/html/ โ†’ build/dist/html/ ๋ณต์‚ฌ
  • create-dist.js: ์ตœ์ข… ๋ฐฐํฌ ํŒจํ‚ค์ง€ ์ƒ์„ฑ
  • build.rs: ์•„์ด์ฝ˜ ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ

๋ผ์ด์„ผ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ผ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

MIT ๋ผ์ด์„ผ์Šค์˜ ์ฃผ์š” ํŠน์ง•

  • โœ… ์ƒ์—…์  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • โœ… ์ˆ˜์ • ๊ฐ€๋Šฅ
  • โœ… ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • โœ… ๊ฐœ์ธ/์‚ฌ์  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • โš ๏ธ ๋ผ์ด์„ ์Šค ๋ฐ ์ €์ž‘๊ถŒ ํ‘œ์‹œ ํ•„์ˆ˜

์ฐธ๊ณ  ์ž๋ฃŒ

About

๐Ÿš€ Lightweight desktop app framework using Tauri - Run HTML/CSS/JS as native Windows applications without browser or extra installation

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published