일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Math.random
- 구글 플레이
- 폐쇄형 SNS
- 구글 이권다툼
- 플로팅 배너
- 클릭몬
- 후기영상
- 샤오미
- 데이터 센터
- 영상 만들기
- 갤럭시 S7
- 안드로이드의 파편화
- 해저 데이터서버
- 총판
- MI5
- 저품질
- 트위터
- 예제
- 안드로이드
- .animate
- Stagefright
- 수익성
- 정보 소유권
- 네이버 포스트
- 화훼이
- jQuery
- 1위 기업
- 크라우드 펀딩
- 인스타그램
- P9
- Today
- Total
IT & CODE 이야기
웹앱의 또 다른 대안, PWA를 경험해보자 본문
PWA란 무엇?
저는 처음 이 단어를 페이스북 광고를 통해서 접하게 되었습니다.
PWA란 Progressive Web App의 줄임말로, 네이티브 앱과 같은 사용자 경험을 주는 웹 앱을 의미합니다
2016년 구글 I/O에서 언급된 기술로, 앱을 직접 깔지 않고, 웹 캐시 + 브라우져의 기능을 통해서 네이티브와 같은 경험을 주기위해 고안되었습니다. 구글이 안드로이드 시장을 잡고 있다고 해도, 결국 그들은 검색엔진으로 성장한 기업이니만큼, 검색이 불가능한 앱이 웹을 모두 삼켜버리는 것 보다는 웹이 앱을 품기를 바라고 있습니다.
그래서 구글이 펼치는 사업을 잘 보면 크롬북이나 크롬 OS 같은 것들로 여러가지 시도들을 했었지만.. 번번히 패러다임은 앱으로 회귀하고 있습니다.
어쨌든 이 PWA를 위해서 구글은 세가지 핵심어를 제시하고 있습니다.
- 신뢰할 수 있는 : https로 구성된 신뢰성 있는 인증서를 가지고 있어야만 (크롬이) PWA로 설치를 유도해줍니다
- 빠른 : 웹 캐싱으로 재방문하는 페이지가 빠르게 로드됍니다
- 접근성이 좋은 : (크롬이) 홈 화면에 추가로 앱과 같이 쉽게 접근가능합니다.
왜 PWA인가?
제가 PWA를 적용한 이유는 웹앱을 만들 시간과 노력이 아까워서였습니다. 웹앱을 싼 값에 효과적으로 만들려면 Cordova의 Phonegap을 전에 한번 써봤지만, 앱이라는게 결국 마켓과 앱스토어에 올려야 한다는 비용이 추가로 들었습니다. 안드로이드의 경우 감내할 수준이었지만, 애플은 심사기간도 오래걸리고 개발자 계정이 필요하더군요.
제 프로젝트가 대학교 축제를 모아놓은 단발성 사이트를 만드는 것이기에 그런 비용은 불필요하다고 판단, PWA를 적용시켜서 보다 효과적으로 재방문율을 높이고자 하였습니다. 그래서 얻어낸 장점과 단점이 명확했습니다
- 장점
- 푸쉬 알림, GPS 외의 네이티브 기능 일부가 사용 가능하다
- 상단에 URL이 없는 전체화면이 구현되고, 집중도와 재방문율을 높여준다.
- 적용하기 매우 쉽다.
- Android, IOS 모두 적용 가능하다.
- 단점
- 페이스북, 카카오톡의 이용량이 워낙 많다보니 in app browser 라서 홈 화면에 추가하기 쉽지 않다.(유도 버튼이 안뜬다ㅠㅠ)
- 처음 한번 설정하는게 익숙하지 않다.
PWA 체험해 보기
제가 실제로 PWA를 한번 대학 축제라는 프로젝트에서 구현을 해 보았는데요, 우선 페이스북 글에 어떻게 홈화면에 추가하는지 적어놓았습니다.
적용은 어떻게?
우선 웹앱 Manifest 파일을 작성해야 합니다.
{
"name": "HackerWeb",
"short_name": "HackerWeb",
"start_url": ".",
"display": "standalone",
"background_color": "#fff",
"description": "A simply readable Hacker News app.",
"icons": [{
"src": "images/touch/homescreen48.png",
"sizes": "48x48",
"type": "image/png"
}, {
"src": "images/touch/homescreen72.png",
"sizes": "72x72",
"type": "image/png"
}, {
"src": "images/touch/homescreen96.png",
"sizes": "96x96",
"type": "image/png"
}, {
"src": "images/touch/homescreen144.png",
"sizes": "144x144",
"type": "image/png"
}, {
"src": "images/touch/homescreen168.png",
"sizes": "168x168",
"type": "image/png"
}, {
"src": "images/touch/homescreen192.png",
"sizes": "192x192",
"type": "image/png"
}],
"related_applications": [{
"platform": "web"
}, {
"platform": "play",
"url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb"
}]
}
위의 예제에서 보듯이 화면 방향, 아이콘 배경 색깔 이름같은 정말 앱에 있어서 기본적인 요소가 적혀있는 json 파일인데 이걸 link 태그로 적어놓아야 합니다. 자세한 내용은 모질라 디벨로퍼 페이지에서 보실 수 있습니다. 여기서 무슨 버그인지는 모르겠으나, head 태그 안에 최 상단에 놓지 않으면 크롬이 인식을 못하는 버그가 있습니다.(2017.05.20)
<link rel="manifest" href="/manifest.json">
다음 태그를 헤드 꼭대기에 적어놓으면 절반의 성공!
이후 serviceworker를 만들어 놓아야합니다. 사실 이 부분은 매우 길어져서 구글의 문서를 참고하시고 따라가시길 바랍니다ㅎㅎㅎ 거의 복붙수준으로 따라가셔도 무방합니다.
마치며
부디 앱 위주로 돌아가는 생태계가 웹에게도 열려서 반복적인 개발이 아니라 한번에 마무리될 수 있는 연계의 길이 PWA로 대중화되기를 기대해봅니다.
'IT > 트렌드IT' 카테고리의 다른 글
UX 참고할 사이트 모음 (0) | 2017.04.24 |
---|---|
색감을 위해 참고할 사진모음 (0) | 2017.04.15 |
프로젝트 Rellat 이해하기 (0) | 2017.02.09 |
사진 보정, 상식과 기본에 대한 모든 것 (0) | 2016.05.10 |
갤럭시 S7 출시일이 하루 앞으로 다가오다 (0) | 2016.03.09 |