Transcript 하이브리드앱
HybridApp 자료 조사 knight76.tistory.com Background Background of Application 플랫폼별 이슈 (iOS, Android) Device 별 이슈 (삼성, LG …) 버전 별 이슈 (Android 2.3.3, 3.1 iOS 3, 4) 모든 버전에서 동작 가능한 어플 또는 여러 벌의 어플을 개발 - Porting Cost 증가 - 유지보수 Cost 증가 • iOS, Android 발생 이전의 기존 핸드폰/TV시장과 똑같은 상황이 벌어지고 있음 대안 플랫폼별 이슈 (iOS, Android) Device 별 이슈 (삼성, LG …) 버전 별 이슈 (Android 2.3.3, 3.1 iOS 3, 4) One Source, Multi-platform Web 과 Native 기반에서 동작하는 어플 HybridApp (Hybrid Mobile WebApp) Porting 관점 기존 App App Android 2.3.3 iOS 4 Device 넷플릭스 Web App Device App App Android 3.1 iOS 5 Device Device 각 플랫폼 별로 신경 써야할 내용이 너무 많음 배포 단위 WebKit Porting Glue Device Device Device 오픈 소스인 Webkit 엔진이 동작되도 록 Porting Layer에 새로운 Device만 포팅만 해서 사용하도록 함 * 참고 : 블루레이, DVD는 DTV java 플 랫폼을 이용하고 있음 Porting 관점 HybridApp (Hybrid Mobile WebApp) = NativeApp + 모바일 Web HTML5 + JavaScript + CSS WebKit WebKit Native Code (Object C) Native Code (Java) iOS App Android App 1. Device API나 비공유 부분은 각각의 플랫폼 별로 개발해야 함 2. WebKit을 사용하여 모바일 Web을 NativeApp에 적재함 모바일 Web 부분은 HTML5 기반으로 개발되므로, 모든 플랫폼에서 공유 가능 Porting 관점 Mobile WebApp 개발 - NativeApp으로 어플리케이션을 개발하는 것이 어려움 - 모바일 Web Browser에서는 HTML5를 비교적 많이 지원하고 있음 - 단점 : Mobile WebApp은 카메라, 마이크, 파일 등 Device 접근에 제약이 있음 HybridApp (Hybrid Mobile WebApp) = NativeApp + 모바일 Web - 아직 표준화된 Device API 부재로 인해서 모바일 Web의 Device 접근성 제약 극복 - HTML5 + CSS3 + JavaScript을 이용하여 쉽고, 플랫폼 독립적으로 개발 - 단점 : WebKit 및 HybridApp Framework의 구조적 문제로 속도가 매우 느림 WebKit Porting 관점 WebKit Project : 웹 컨텐트를 렌더링하고, 자바스크립트 오류를 검증 툴을 포함 - Not Brower, Just Engine - BSD-style and LGPL licenses. - 포팅된 플랫폼 : iOS, 심비안, Google chrome, Safari , Adobe AIR , Android , Amazon Kindle , QT … - MAC OS X system framework version of the engine - Cross Platform C++, 1.8 Million line - Component - WebCore : HTML와 SVG에 대해서 Layout, 렌더링, DOM 파싱 - JavaScriptCore : 자바스크립트 프레임웍 - Drosera : 자바스크립트 오류 확인 툴 - Sunspider : 자바스크립트 성능 측정 툴 - WebKit 포팅시에는 WebCore와 JavaScriptCore만 사용 History KDE Konqueror Browser (Linux) Safari Browser KHTML library WebCore KJS library JavascriptCore Mac OS 로 포팅 오픈 소스화 Architecture QT MAC Windows WebKit API WebCore (HTML 파싱, 렌더링) WebKit Project /platforms Porting Glue graphics, network OS JavascriptCore (프레임웍) Hybrid App 개발 - HybridApp Framework 이용 - NativeApp에 WebKit 적재 Hybrid App Framework - MobileWeb을 NativeApp처럼 만들어 주는 Framework - Mobile Web을 위한 WebKit 제공 - Device에 접근 가능한 JavaScript 기반 Device API 제공 - NativeApp과 같이 배포 가능하도록 Packaging 제공 - HTML5 + CSS3 + JavaScript를 사용하여 App 개발 - One Source, Multi Platform 적용 가능 - JavaScript를 통하여 MobileWeb이 접근하지 못하던 Device에 접근 가능 - 카메라, 마이크, 파일 등 - NativeApp 만큼 Deivce 연동이 매끄럽지 못함 - Device 연동 UI에도 제약이 많음 - PhoneGap, Titanium, Appspresso 등이 유명함 Hybrid App Framework PhoneGap (http://www.phonegap.com/) - 많이 유명 - WebKit과 자체 Device API 제공 - iPhone, Android, Blackberry, Palm, Microsoft, Symbian) 지원 Titanium Mobile (http://www.appcelerator.com/) - JavaScript를 Cross-Compiler를 통해 Native Code(Objective-C나 Java)로 변환해 주는 Framework - Javascript가 Native Code로 Invoke - iPhone, Android, BlackBerry 지원 Hybrid App Framework Appspresso (http://www.appspresso.com/) - 국내사인 KTH에서 개발 - KTH의 푸딩얼굴인식이 Appspresso로 개발됨 - WebKit과 Device API 지원 - Device API는 WAC의 Waikiki 2.0 beta 지원 - 2개 플랫폼(iPhone, Android) 지원 NativeApp에 WebKit 적재 HTML5 + JavaScript + CSS WebKit WebKit Native Code Native Code Platform A Platform B WAC WAC WAC (Wholesale Applications Community) - 세계적인 이동통신사와 제조사들이 통합 AppStore 구축을 위해 만든 커뮤니티 - WAC Spec을 통해 Device API 표준화를 진행중에 있음(WAC 2.0 나옴 2011년 6월) - Waikiki : WAC에서 개발중인 OS 독립적인 WebApp 플랫폼 개발 프로 젝트 http://public.wholesaleappcommunity.com/redmine/ Thank You End of Document