1. [스벨트킷모바일앱개발] capacitor Ionic SvelteKit 실행해보기

Computer 관심/Svelte|2023. 4. 23. 18:58
반응형

2. [스벨트킷모바일앱개발] 사인된 apk 만들기

 

 

 

이전에 스벨트에 capacitor를 설치하여 모바일 앱을 만들때는 설정해야 할 것들이 좀 있어서 귀찮았다.

https://infocentre.tistory.com/147

 

하지만 ionic-svelte 프로젝트를 사용하면 이미 설정이 되어있어서 편하다.

 

 

아이오닉 스벨트 설치부터 안드로이드 폰에 APK설치 해보기

 

1. 설치하기 

 npm create ionic-svelte-app@latest 프로젝트이름

위처럼 아이오닉스벨트를 설치하면 수동으로 세팅해야 할 것들이 이미 설정이 되있어서 좋음. 만약 기존 프로젝트에 추가하려면 아래의 깃 문서의 설치 방법을 따라야함.

 https://github.com/Tommertom/svelte-ionic-app

 

 

2. 설치할 패키지고르기 

안드로이드로 실행해보기

 

3. 안드로이드 플랫폼 설치 및 추가

  (3-1)안드로이드 플랫폼 설치

npm i @capacitor/android

  (3-2)안드로이드 플랫폼 추가

npx cap add android

 

4. 빌드하기 

npm run build

 

5. 안드로이드 폰에 설치하기

npx cap run android

 

ios는 위의 명령어들을 android를 ios로 대체함

 

 

 

------------------------------

 

위 처럼 하는 방법은 빌드가 된것을 폰에 옮길때 사용하는 방법이다. 하지만 개발할때는 실시간으로 코드가 변경함에 따라, 화면도 바뀌는 것을 볼 수 있어야 한다.  이를 '라이브리로드' 라고 한다.  (플러터에서는 Hot reload)

 

 

라이브리로드 사용하기 (개발모드)

 

1. 개발모드로 클라이언트 서버키기 

npm run dev -- --host

2. (-hmr:hot module replacement 플래그를 추하가여) 안드로이드로 폰에 설치하기

 

npx cap run adroid -hmr

: 아래의 코드를 보듯이 -hmr이 있으면 url값과 cleartext값을 전달함으로서 앱화면을 url주소와 연결 시킴

 

import { CapacitorConfig } from '@capacitor/cli';

const appId = 'ionic-sveltekit-ssr-demo.ionic.io'; // 이것에 따라 빌드될때 안드로이드 앱아이디 생성
const appName = 'ionic-sveltekit-ssr-demo';
const server = process.argv.includes('-hmr') ? {
  'url': 'http://192.168.5.67:5173',   // always have http:// in url
  'cleartext': true
} : {};
const webDir = 'build';

const config: CapacitorConfig = {
  appId,
  appName,
  webDir,
  server
};

if (process.argv.includes('-hmr')) console.log('WARNING: running capacitor with livereload config', config);

export default config;

※만약 안된다면 위와 코드중 'url': http:// ... " 부분이 개발모드 클라이언트 로컬아이피 주소랑 같은지 확인한다.

 

좌:스벨트킷서버가 켜 있을때 / 우: 스벨트킷서버가 꺼지면

 

 

 

참조

https://ionic.io/blog/pwas-using-sveltekit-and-ionic

 

Blazing fast PWAs with SEO power using SvelteKit and Ionic - Ionic Blog

Learn how to utilize SvelteKit and Ionic’s UI components to deliver blazing-fast web apps that support SEO out of the box.

ionic.io

 

댓글()

[SVELTEKIT] capacitor 사용하여 안드로이드 앱 만들기

Computer 관심/Svelte|2022. 2. 20. 00:40
반응형

아이오닉사용해서 sveltekit 안드로이드 앱만들기

 

이미 스벨트로 만들어 놓은 코드가 있어서, 굳이 플러터 flutter를 사용하지 않고 기존 코드를 이용하여 앱을 만들어 보고 싶었다. 처음 앱으로 빌드할 때 좀 느렸지만 이후엔 빠르게 빌드가 됬다. 

오래 사용해보지 않아 얼마나 좋은지 나쁜지는 잘 모르겠지만 가벼운앱을 만들땐 괜찮을 않을까 싶다.

 

 

1. 기존에 있던 프로젝트에 capacitor 설치하기

npm install @capacitor/core @capacitor/cli

 

2. capacitor init 하기

capacitor를 init할때 스벨트킷의 빌드할 폴더는 build이기 때문에 기본값 www대신 build로 적어 준다..

(혹시라도 init 때 www로 설정해놓더라도 capacitor.config.ts의 webDir에서 나중에 바꿀 수 있으니 걱정할 필요 없다.)

npx cap init

 

3. 안드로이드나 IOS 플랫폼 설치

npm i @capacitor/ios @capacitor/android
npx cap add android //안드로이드 추가
npx cap add ios //ios 추가

 

4. 싱글페이지 빌드용 어뎁터 설치하기

npm i -D @sveltejs/adapter-static

https://github.com/sveltejs/kit/tree/master/packages/adapter-static

 

5.  싱글페이지로 빌드하기 위해 svelte.config에 아래와 같은 코드를 넣어준다. 

import adapter from '@sveltejs/adapter-static';

 

아래 코드를 보듯 기존 import adapter from '@sveltejs/adapter-auto'; 를 대체하였다.

// import adapter from '@sveltejs/adapter-auto';
import adapter from '@sveltejs/adapter-static';
import preprocess from 'svelte-preprocess';

/** @type {import('@sveltejs/kit').Config} */
const config = {
	// Consult https://github.com/sveltejs/svelte-preprocess
	// for more information about preprocessors
	preprocess: preprocess(),

	kit: {
		adapter: adapter(
        {fallback: 'index.html'}
        )
	}
};

export default config;

6. routes/+layout.js 파일 만들고 

export const prerender = true

 

 

 

7. 스벨트 빌드하기

npm run build

 

 

 

8.실행시키기

//안드로이드 스튜디오에서 실행
npx cap open android 

//실기기 실행
npx cap run android

 

 

 

 

-----------------------------------------------------

 

 

라이브 리로드

1. capacitor.config.ts의 내용을 아래로 대체함

import { CapacitorConfig } from '@capacitor/cli';

const appId = '앱.아이.디';
const appName = '앱이름';
const server = process.argv.includes('-hmr') ? {
  'url': 'http://192.168.5.67:5173',   // always have http:// in url
  'cleartext': true
} : {};
console.log(server);
const webDir = 'build';

const config: CapacitorConfig = {
  appId,
  appName,
  webDir,
  server
};

if (process.argv.includes('-hmr')) console.log('WARNING: running capacitor with livereload config', config);

export default config;

 

2. svelte를 디버깅 모드로 실행

npm run dev -- --host //호스트를 넣어서 아이피를 오픈해줘야함

 

3. 실기기에서 실행

cmd창을 하나 더 열고 아래의 명령어를 입력함

npx cap run android

 

 

 

 

참조

https://capacitorjs.com/docs/cli

 

Capacitor: Cross-platform native runtime for web apps

Build iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript

capacitorjs.com

 

 

댓글()