3. About Me
•
•
•
•
•
단말 플랫폼 개발 Specialist
웹 플랫폼 개발 Specialist
Android 보안 시스템 개발 Specialist
Android/HTML5/Hybrid App Framework/...
현) SK planet / Mobile SW 개발 1팀 / 팀장
8. • A Part of Android
Fr
ag
m
en
Framework
• Different from Web
Browser (Chrome)
• Less Powerful Than Web
Browser (Chrome...)
• Web Standard
Compatibility
- Depend On Android OS
Version
ta
tio
n
WebView Is ...
• A Part of iOS
• Different from Web
Browser (Safari)
• Less Powerful Than Web
Browser (Safari)
• Web Standard
Compatibility
- Depend On iOS Version
9. Web Standard Compatibility for
WebView
Web
Audio/Vi
Web
Canvas
Worker
deo
Sockets
s
Web
Audio
Web
Notificat WebGL
ion
GB
O
△
X
X
X
X
X
ICS
O
△
X
X
X
X
X
JB
O
△
△
X
X
X
X
10. Web Standard Compatibility for
WebView
Web
Audio/Vi
Web
Canvas
Worker
deo
Sockets
s
Web
Audio
Web
Notificat WebGL
ion
5.0
O
△
O
△
X
X
X
6.0
O
△
O
O
O
X
X
7.0
O
△
O
O
O
X
X
11. Hybrid App’s Problems Are ...
“We have to make several versions of in-app
web contents for each android/iOS version.”
Fragmentation
“We need Web Worker feature for our
Performance can support
contents. But because only iOS
Web Worker spec at this time, we can’s
support android devices.”
12. We Need To Have Special
WebView
Provide The Same Web Standards
Independent of OS version and Manufacturers
Should Be Faster Than Native
20. Web Sockets and Canvas 2D
• Web Sockets
- Android WebView Does Not Support
- Add Web Sockets Features Into WebView
• Canvas 2D
- Android WebView’s Canvas 2D Is Extremely Slow
- Replace Canvas 2D Features With My Own
Implementation (with SurfaceView)
35. General Lessons
• Do as many implementations as possible in
javascript world
• Minimize Javascript ⬌ Native
communications
• Watch out threads (PostMessage)
36. Android Specific Lessons
• We Can’t Override Native Properties In
WebView
- Object.defineProperty Doesn’t Work for Native
Properties
• Object Instance Mixin
- Add Getter/Setter into CanvasRendering2DContext’s
Instance
• Object.defineProperty bugs
- Use __defineGetter__, __defineSetter__ instead