PWA(Progressive Web App)를 이용한 Web App 빌드 및 패키징
Progressive Web App |
PWA는 웹과 앱의 장점을 살린 프레임워크(?)라고 할수 있을거 같다. 여기서 말하는 장점이란 웹 기술인(React.js Vue.js, Javascript 등)으로 개발하여 웹사이트를 만들고, 이걸 그대로 이용하여 몇가지 설정을 통해 설치형 앱을 만들수 있다라고 정리해 볼수 있을거 같다.
일단 가장 큰 장점은 웹으로 만들고 앱으로 패키징하여 배포할수 있다. 그런데 여기서 의문은 여러분도 알고 있다시피 그럼 기존의 웹앱 프레임워크인 Coradova 등과는 뭐가 다르지 라고 말할수 의문을 가질수도 있다.
가장큰 차이점은 일단 설치형이라고 설명했지만 기존에 알고 있는 방식의 설치형이 아니다. 즉 안드로이드 또는 애플 마켓에 등록하기 위해 개발자 등록을하고 패키징을 만들고 패키징을 등록하고 검증받고 등등등 처음 해보는 분들이라면 아마도 수많이 시간과 노력을 투자해야 할지 모르는 이런 절차가 필요없다는 말이다.
즉, 결론은 그냥 PWA로 만들어서 웹 서비스로 오픈하면 설치형 프로그램과 비슷한 설치형 앱을 제공하다는 말이다. 무슨 말인지 잘 모르겠다면 검색을 통해 보다 상세히 살펴보시길 권장합니다.
여기에서는 이미 작업된 Vue 프로젝트를 웹앱으로 배포 및 패키징하기 위한 방법을 설명하는 것에 초점이 맞춰져 있다.
먼저 프로젝트 root 디렉토리에서 아래의 명령어를 입력하자.
vue add pwa
이 파일에 대하여 간략히 설명하자면 아래와 같다
- 캐시를 저장할 수 있는 공간
- Cookie의 Proxy 역할을 수행
- Client -> ServiceWorker -> Server로 요청
- 캐싱되어 있다면 오프라인에서도 정적 파일을 받을 수 있음
PWA에서 사용하는 주요 기술에 대하여
Service Worker
- 웹사이트 백그라운드에서 실행되는 요소
- 푸시기능
- Asset 들을 캐싱(오프라인 등 활용)
- https://developers.google.com/web/fundamentals/primers/service-workers/
Web App Manifest
화면의 구성요소 선언
manifest.json
{
"short_name": "Weather",
"name": "Weather: Do I need an umbrella?",
"description": "Weather forecast information",
"icons": [
{
"src": "/images/icons-192.png",
"type": "image/png",
"sizes": "192x192"
},
],
"start_url": "/?source=pwa",
"background_color": "#3367D6",
"display": "standalone",
"scope": "/",
"theme_color": "#3367D6"
}
옵션 설명
- short_name: 사용자 홈 화면에서 아이콘 이름으로 사용
- name: 웹앱 설치 배너에 사용
- icons: 홈 화면에 추가할때 사용할 이미지
- start_url: 웹앱 실행시 시작되는 URL 주소
- display: 디스플레이 유형(
- fullscreen : 전체 화면
- standalone : 브라우저의 요소들을 감춘 Native Application처럼 보이는 화면
- minimal-ui : 일부 브라우저 기능 제공 (크롬 모바일만 지원)
- browser : 브라우저와 동일한 화면
- theme_color: 상단 툴바의 색상
- background_color: 스플래시 화면 배경 색상
- orientation: 특정 방향을 강제로 지정(landscape, portrait 중 설정)
manifest.json import
<link rel="manifest" href="/manifest.json">
HTTPS
- https 만 제공
- 단,
localhost
,127.0.0.1
은 제공함.(Chrome에서 확인가능)
- 단,
- Certbot 사용하면 쉽게 확인 가능
- 또는 Github Page 를 사용하는 것도 방법
Lighthouse
- 구글에서 개발한 크롬 개발자도구
- PWA 요소들을 손쉽게 확인해줌
PWA 설정후 웹접속시 주소표시줄 우측에 앱설치를위한 아이콘은 HTTPS를 설정을 포함한 아래의 조건들이 만족해야 앱 설치 기능이 표시된다.
start_url
, short_name
, name
이 설정되어 있어야 함.192px
크기 이상의 앱 아이콘이 설정되어 있어야 함.Service Worker
의 fetch
이벤트가 구현되어 있어야 함.HTTPS
로 보안 서비스 되어야 함.PWA 설정시 Manifest에 대한 상세한 내용은 다른분이 상세하게 작성한 여기를(Manifest 만들기)를 참조하시기 바랍니다.
댓글
댓글 쓰기