Slide 1

Slide 1 text

Kenny Tang JSCore on iOS

Slide 2

Slide 2 text

JSCore on iOS JSCore

Slide 3

Slide 3 text

JSCore on iOS Web

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

loadRequest: to load a web page

Slide 6

Slide 6 text

loadRequest: to load a web page stringByEvaluatingJavaScriptFromString:
 @"alert('hello') to execute javascript

Slide 7

Slide 7 text

loadRequest: to load a web page stringByEvaluatingJavaScriptFromString:
 @"alert('hello') to execute javascript runtime invokes callback methods on your 
 delegate class on link click events

Slide 8

Slide 8 text

loadRequest: to load a web page stringByEvaluatingJavaScriptFromString:
 @"alert('hello') to execute javascript basis of hybrid apps and frameworks runtime invokes callback methods on your 
 delegate class on link click events

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

resource intensive SLOW APPS must run on main thread synchronous same process #1 cause of crashes

Slide 11

Slide 11 text

WKWebview iOS 8

Slide 12

Slide 12 text

WKWebview iOS 8 separate process message handlers w/ auto-serialization script injection on doc load start/end Nitro JS engine 3x faster Sunspider benchmarks Designed for displaying web content

Slide 13

Slide 13 text

what it is + why we should care JSCore on iOS

Slide 14

Slide 14 text

JSCore on iOS Safari’s nitro JS engine exposed as a framework No webviews needed, multi-threaded What makes React Native possible

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

60 FPS 100 cells 20 cells

Slide 26

Slide 26 text

60 FPS 100 cells 20 cells

Slide 27

Slide 27 text

http://kalapun.com/posts/more-javascriptcore-benchmarking/

Slide 28

Slide 28 text

http://kalapun.com/posts/more-javascriptcore-benchmarking/

Slide 29

Slide 29 text

Write JS from now on?

Slide 30

Slide 30 text

Write JS from now on? Effort of writing binding classes Debuggability Perf Overhead

Slide 31

Slide 31 text

Practical Applications Code Sharing: Web & Native Update client runtime behavior - no binary resubmission

Slide 32

Slide 32 text

WWDC 2013 Session 615 WWDC 2014 Session 206 nshipster.com/javascriptcore/