하이브리드앱 성능 극복

33
하이브리드앱 성능 극복 리스트잇 앱 개발 경험

Upload: mu-ik-jeon

Post on 20-Dec-2014

5.233 views

Category:

Technology


4 download

DESCRIPTION

http://thinkreals.com/1167

TRANSCRIPT

Page 1: 하이브리드앱 성능 극복

하이브리드앱 성능 극복

리스트잇 앱 개발 경험

Page 2: 하이브리드앱 성능 극복

쿠폰모아, 포켓스타일, ..

앱 개발하며 느끼는 건

Page 3: 하이브리드앱 성능 극복

하이브리드앱 필요하다!

Page 4: 하이브리드앱 성능 극복

보다 빠르기 위해

Page 5: 하이브리드앱 성능 극복

아이폰, 안드로이드 앱동일한 부분을 웹으로 개발

개발기간 단축!

Page 6: 하이브리드앱 성능 극복

웹 변경은 앱스토어 통하지 않고

바로 업데이트!

Page 7: 하이브리드앱 성능 극복

하이브리드앱 필요성

1. 개발기간 단축

2. 빠른 업데이트

Page 8: 하이브리드앱 성능 극복

그렇다면.. one source

하이브리드앱 개발 플랫폼?

Page 9: 하이브리드앱 성능 극복

각 앱 특성에 맞게!

No No.. Android <> iOS적지 않은 다른점

Page 10: 하이브리드앱 성능 극복

단지..

공통된 부분만 웹으로 개발

페이스북 앱 처럼..

Page 11: 하이브리드앱 성능 극복

문제는 성능ㅠㅠ

Page 12: 하이브리드앱 성능 극복

많은 네트워크 커넥션 때문

GET html, css, js, img, ...

웹페이지 로딩 시

Page 13: 하이브리드앱 성능 극복

모바일에선 속도에 큰 영향

Page 14: 하이브리드앱 성능 극복

네이티브 구현 동작

로딩

화면뷰 그리기

단일 커넥션

.json

<App> <Web Server>

Page 15: 하이브리드앱 성능 극복

웹 구현 동작

url 접속

화면뷰 그리기

많은 커넥션

.

.

.화면뷰 그리기

.css

.html

.js

<App> <Web Server>

Page 16: 하이브리드앱 성능 극복

변경 확인을 위한 연결

캐시되어 있어도

302 Not Modified

Page 17: 하이브리드앱 성능 극복

HTML5 Offline AppCache

많은 커넥션 문제 해결은

Page 18: 하이브리드앱 성능 극복

manifest 앱캐시 정의

exam.html<html manifest="exam.appcache" ...>... exam.appcacheCACHE:app.jsapp.css...

Page 19: 하이브리드앱 성능 극복

캐시 변경 확인은 한번

manifest 파일에서만

Page 20: 하이브리드앱 성능 극복

AppCache 웹 구현 동작

url manifest 확인

html, css, ... 로드

단일 커넥션

화면뷰 그리기

.appcache

<App> <Web Server>

Page 21: 하이브리드앱 성능 극복

웹 구조 변경 필요

AppCache에 따른

Page 22: 하이브리드앱 성능 극복

/shops/1.html<html><script src="/js/shops.css">...<h1>상점1</h1><p>상점 소개1</p>...</html>

뷰와 데이터 혼합된 html

/shops/2.html<html><script src="/js/shops.css">...<h1>상점2</h1><p>상점 소개2</p>...</html>

Page 23: 하이브리드앱 성능 극복

HTML의 뷰와 데이터 분리

데이터를 제외한 뷰 캐시를 위해

Page 24: 하이브리드앱 성능 극복

/shops/#1<html><script src="/js/shops.js">...<h1></h1><p></p>...</html> /js/shops.jsvar id = location.hash;$.getJSON('/shops/' + id,...

뷰와 데이터 분리

/shops/1.json{

"name": "상점1",

"description: "상점소개1",

...}

Page 25: 하이브리드앱 성능 극복

서버 -> 클라이언트

html 템플릿 랜더링

Page 26: 하이브리드앱 성능 극복

Hogan.js

자바스크립트 템플릿 랜더링 엔진

● open source from twitter● lightweight / fast

Page 27: 하이브리드앱 성능 극복

/shops/#1<html>...<script src="/js/hogan.js"></script> <script id="tpl" type="text/template"><h1>{{name}}</h1><p>{{description}}</p></script></html>

html 랜더링

/js/shops.js...tpl = $('#tpl').html();template = Hogan.compile(tpl);html = template.render(data);...

Page 28: 하이브리드앱 성능 극복

AppCache를 위한 웹 구현

1. manifest 정의

2. 뷰/데이터 분리

3. 자바스크립트 템플릿 랜더링

Page 29: 하이브리드앱 성능 극복

남은 성능 문제

one more thing..

Page 30: 하이브리드앱 성능 극복

웹뷰 터치 후 0.3초 후 반응

Page 31: 하이브리드앱 성능 극복

Tappable: tab event library

Page 32: 하이브리드앱 성능 극복

참고

HTML5 Offline AppCache Tutorialhttp://www.html5rocks.com/en/tutorials/appcache/beginner/ Hogan.jshttp://twitter.github.com/hogan.js/ Tappablehttps://github.com/cheeaun/tappable

Page 33: 하이브리드앱 성능 극복

문의

http://twitter.com/[email protected]