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
Multi-platform Mobile with Calatrava - May 2013
Search
Pete Hodgson
May 23, 2013
Programming
570
2
Share
Multi-platform Mobile with Calatrava - May 2013
Pete Hodgson
May 23, 2013
More Decks by Pete Hodgson
See All by Pete Hodgson
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
1
270
Migratory Patterns - KubeCon Salt Lake City, 2024
phodgson
0
210
A Journey Into Feature Toggles - OSCON Austin 2017
phodgson
5
710
Test-driven Client-side JS
phodgson
5
910
Functional Reactive JavaScript
phodgson
8
850
different.js - Forward JS 2014
phodgson
4
880
Railsconf2014
phodgson
7
1.5k
Building Your Own Lightsaber
phodgson
104
6.5k
iOS Unit Testing Workshop
phodgson
3
580
Other Decks in Programming
See All in Programming
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
420
【26新卒研修資料】TDD実装演習
dip_tech
PRO
0
160
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
130
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
170
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.4k
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
120
[RubyKaigi 2026] Require Hooks
palkan
1
280
空間オーディオの活用
objectiveaudio
0
120
Back to the roots of date
jinroq
0
670
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
0
960
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
27
19k
GoogleCloudとterraform完全に理解した
terisuke
1
180
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Chasing Engaging Ingredients in Design
codingconduct
0
180
Embracing the Ebb and Flow
colly
88
5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
400
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
290
Odyssey Design
rkendrick25
PRO
2
610
Crafting Experiences
bethany
1
140
The untapped power of vector embeddings
frankvandijk
2
1.7k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
Cross-platform Mobile
Pete Hodgson @ph1
Portable Body
http://martinfowler.com/articles/multiMobile/
mobile app
UI the rest
UI portable body
UI portable body
UI portable body JavaScript
UI portable body iOS JavaScript
portable body UI
portable body
portable body iPhone mobile web Android
portable body iPhone mobile web Android
iPhone mobile web Android
http://calatrava.github.io/
- controllers - domain objs. - services <html> views
- controllers - domain objs. - services <html> views
kernel UI
update UI respond to user input kernel UI
show me
None
updating the UI
updating the UI
updating the UI
updating the UI
someView.render( aViewMessage ) updating the UI
someView.render( aViewMessage ) updating the UI {...}
someView.render( aViewMessage ) updating the UI {...}
reading the UI
` reading the UI
someView.get( ‘field_id’, callbackFn ) ` reading the UI
someView.get( ‘field_id’, callbackFn ) ` reading the UI
responding to events
responding to events
responding to events `
someView.bind( ‘event_id’, callbackFn ) responding to events `
None
calatrava is HTML first
native <html> <html> <html> HTML first
native <html> <html> <html> native HTML first
native <html> <html> <html> native HTML first native
Testing Acceptance Tests
Testing Acceptance Tests app logic
where’s your logic? mobile app mobile services
shared mobile services app HTML
app shared mobile services app app iPhone HTML Android
thanks!
thanks! @ph1 for slides
www.thoughtworks.com/radar