Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JSCore on iOS
Search
Kenny Tang
October 27, 2015
Technology
1
180
JSCore on iOS
Lightning talk at Flipconf 2.0, Oct 2015.
Credits to @romaonthego for awesome code and inspiration.
Kenny Tang
October 27, 2015
Tweet
Share
More Decks by Kenny Tang
See All by Kenny Tang
Open Source Swift
kenshin03
0
51
Other Decks in Technology
See All in Technology
CLIPでマルチモーダル画像検索 →とても良い
wm3
1
590
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
14
82k
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
200
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
160
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
360
Observability — Extending Into Incident Response
nari_ex
1
580
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
150
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
220
実践マルチモーダル検索!
shibuiwilliam
1
360
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
170
.NET 10のBlazorの期待の新機能
htkym
0
150
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
160
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Writing Fast Ruby
sferik
630
62k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
The Language of Interfaces
destraynor
162
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Transcript
Kenny Tang JSCore on iOS
JSCore on iOS JSCore
JSCore on iOS Web
None
loadRequest: to load a web page
loadRequest: to load a web page stringByEvaluatingJavaScriptFromString: @"alert('hello') to execute
javascript
loadRequest: to load a web page stringByEvaluatingJavaScriptFromString: @"alert('hello') to execute
javascript runtime invokes callback methods on your delegate class on link click events
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
None
resource intensive SLOW APPS must run on main thread synchronous
same process #1 cause of crashes
WKWebview iOS 8
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
what it is + why we should care JSCore on
iOS
JSCore on iOS Safari’s nitro JS engine exposed as a
framework No webviews needed, multi-threaded What makes React Native possible
None
None
None
None
None
None
None
None
None
None
60 FPS 100 cells 20 cells
60 FPS 100 cells 20 cells
http://kalapun.com/posts/more-javascriptcore-benchmarking/
http://kalapun.com/posts/more-javascriptcore-benchmarking/
Write JS from now on?
Write JS from now on? Effort of writing binding classes
Debuggability Perf Overhead
Practical Applications Code Sharing: Web & Native Update client runtime
behavior - no binary resubmission
WWDC 2013 Session 615 WWDC 2014 Session 206 nshipster.com/javascriptcore/