Mobile

๐Ÿ“ฑ Framework7๋กœ ๋งŒ๋“  ์•ฑ์„ Android APK๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•


Framework7์€ Vue, React, Svelte ๋“ฑ๊ณผ ํ†ตํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ชจ๋ฐ”์ผ UI ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Framework7 + Vue + Vite ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ Android์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ APK ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ์ „ ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


โœ… 1. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์ค€๋น„

๋จผ์ € ํ”„๋กœ์ ํŠธ ๋‚ด ์›น ์ž์‚ฐ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. Vite ๊ธฐ๋ฐ˜์ด๋ผ๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ๋นŒ๋“œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

npm run build

์ด ์ž‘์—…์„ ํ†ตํ•ด www ๋˜๋Š” dist ํด๋”์— index.html๊ณผ ๋ฒˆ๋“ค๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.


โœ… 2. Capacitor ์„ค์ • ๋ฐ Android ํ”Œ๋žซํผ ์ถ”๊ฐ€

์›น ์•ฑ์„ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์œผ๋กœ ๊ฐ์‹ธ๊ธฐ ์œ„ํ•ด Capacitor๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

npx cap init

์งˆ๋ฌธ์— ๋‹ตํ•˜๋ฉฐ ์•ฑ ์ด๋ฆ„๊ณผ ID (com.yourcompany.app)์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ Android ํ”Œ๋žซํผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

npx cap add android

์ด ๋ช…๋ น์€ android/ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Android Studio ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.


โœ… 3. Capacitor ์„ค์ • ํ™•์ธ (capacitor.config.ts)

capacitor.config.ts ๋˜๋Š” capacitor.config.json ํŒŒ์ผ์—์„œ webDir ๊ฒฝ๋กœ๊ฐ€ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ ํด๋”์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

const config = {
  webDir: 'www', // ๋˜๋Š” 'dist'
  ...
};

โœ… 4. ๋นŒ๋“œ ๊ฒฐ๊ณผ ๋ณต์‚ฌ

npx cap copy

์ด ๋ช…๋ น์€ ์›น ์ž์‚ฐ์„ Android ํ”„๋กœ์ ํŠธ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.


โœ… 5. Android Studio์—์„œ ์—ด๊ธฐ

npx cap open android

Android Studio๊ฐ€ ์—ด๋ฆฌ๋ฉด ์ž๋™์œผ๋กœ Gradle Sync๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


โœ… 6. ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” ์‹ค๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰

Android Studio์—์„œ:

  • ์ƒ๋‹จ ํˆด๋ฐ” โ–ถ๏ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฑฐ๋‚˜
  • ๋ฉ”๋‰ด: Run > Run โ€˜appโ€™

Device Manager์—์„œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์‹ค๊ธฐ๊ธฐ๋ฅผ USB๋กœ ์—ฐ๊ฒฐํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.


โœ… 7. APK ํŒจํ‚ค์ง•

๊ฐœ๋ฐœ์šฉ APK ๋งŒ๋“ค๊ธฐ

Build > Build Bundle(s) / APK(s) > Build APK(s)

๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ฒฝ๋กœ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ , [locate] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด APK ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

android/app/build/outputs/apk/debug/app-debug.apk

๋ฆด๋ฆฌ์ฆˆ์šฉ APK ๋งŒ๋“ค๊ธฐ

๋ฆด๋ฆฌ์ฆˆ์šฉ ํ‚ค์Šคํ† ์–ด๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋ช…ํ•œ ํ›„, ์•„๋ž˜๋กœ ๋นŒ๋“œ:

Build > Generate Signed Bundle / APK > APK

๐Ÿงช ์‹ค๊ธฐ๊ธฐ์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

APK ํŒŒ์ผ์„ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•˜๋ ค๋ฉด:

adb install path/to/app-debug.apk

๋””๋ฐ”์ด์Šค์—์„œ โ€œ์ถœ์ฒ˜๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์•ฑ ์„ค์น˜ ํ—ˆ์šฉโ€ ์˜ต์…˜์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด์ œ Framework7๋กœ ๋งŒ๋“  ์›น ์•ฑ์„ Android์—์„œ ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ๋„ค์ดํ‹ฐ๋ธŒ APK๋กœ ํŒจํ‚ค์ง•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ iOS ์•ฑ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ, iOS๋Š” macOS์™€ Xcode ํ™˜๊ฒฝ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.


๐Ÿ”— ๊ด€๋ จ ์ž๋ฃŒ


๐Ÿ“Œ ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๋น ๋ฅด๊ฒŒ ๋‹ต๋ณ€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!