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
Adventures in Cross Platform
Search
Jason Kneen
May 11, 2014
Technology
2
460
Adventures in Cross Platform
My Talk from Day 2 of TiConf US 2014 on cross-platform lessons learnt.
Jason Kneen
May 11, 2014
Tweet
Share
More Decks by Jason Kneen
See All by Jason Kneen
Adventures in Cross Platform TiConf EU 2014
jasonkneen
3
1.1k
Dynamic Styles with Widgets and Alloy 1.2
jasonkneen
0
690
URL Schemes and Titanium - Redux
jasonkneen
1
400
Introduction to Titanium from DMC13
jasonkneen
1
170
Titanium and URL Schemes
jasonkneen
14
6.6k
Other Decks in Technology
See All in Technology
改竄して学ぶコンテナサプライチェーンセキュリティ ~コンテナイメージの完全性を目指して~/tampering-container-supplychain-security
mochizuki875
1
220
【M3】攻めのセキュリティの実践!プロアクティブなセキュリティ対策の実践事例
axelmizu
0
160
自己的售票系統自己做!
eddie
0
450
Flutter DevToolsで発見! 本番アプリのパフォーマンス問題と改善の実践
goto_tsl
1
690
明日から真似してOk!NOT A HOTELで実践している入社手続きの自動化
nkajihara
1
730
Capitole du Libre 2025 - Keynote - Cloud du Coeur
ju_hnny5
0
110
[CV勉強会@関東 ICCV2025] WoTE: End-to-End Driving with Online Trajectory Evaluation via BEV World Model
shinkyoto
0
270
Quarkusで作るInteractive Stream Application
joker1007
0
140
大規模モノレポの秩序管理 失速しない多言語化フロントエンドの運用 / JSConf JP 2025
shoota
0
140
ググるより、AIに聞こう - Don’t Google it, ask AI
oikon48
0
910
CodexでもAgent Skillsを使いたい
gotalab555
9
4.8k
Flutterにしてよかった?出前館アプリを2年運用して気づいたことを全部話します
demaecan
0
190
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
How STYLIGHT went responsive
nonsquared
100
5.9k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Context Engineering - Making Every Token Count
addyosmani
10
380
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Gamification - CAS2011
davidbonilla
81
5.5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
24
1.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Transcript
Adventures in cross platform Jason Kneen
+BTPO,OFFO http://twitter/jasonkneen http://github.com/jasonkneen http://jasonified.com http://bouncingfish.com App Developer, TCE Certified Titanium
“Titan”
• Breakdown pricing; Core, iOS, Android • Factor in platform,
form factors • Include costs for AppStore submissions, re-submissions Pricing
Design Retina Dimensions No font details Designed for iOS
• Acknowledge OS differences (Nav, back buttons) • Educate the
client / designer • Give examples / links to tools • Send them images folder structure Design
• Real devices • hdpi, ldpi, etc • Multiple OSs
• Don’t forget 2.3.x Testing
• TestFlight • Installrapp Delivery
• Free, easy • Fast • Google APIs, Play support,
simple “hack” • Great GPS, Mapping tools • Android first! Genymotion
Android development before Genymotion
Android development after Genymotion
• See changes (almost) instantly • Works on simulator, emulator,
device • Instantly resolve platform differences as you go • Don’t get “locked in” to one platform • But, there be dragons! Use TiShadow / Liveview
• Separation of business logic & UI • Isolate code
with OS_IOS, OS_ANDROID • Platform, formfactor specific elements • Only relevant code / files are included in a build • Makes cross-plaform easier Alloy
• Separate business logic • APIs, Social, GPS etc •
Better memory management • Easier to re-use commonJS
• Define granular classes • Test layouts on both platforms
• app.tss for global classes • “reset” for Android • Platform specific overrides app.tss, classes
• Use dp/dip (ti.ui.defaultunit) • Avoid fixed widths / heights,
unless.. • Top, Left, Bottom, Right is the same on all devices • %age and fluid layouts • Dynamic buttons Flexible layouts
• Very granular • Long, NotLong, Landscape, Portrait • Keep
it simple • Retina images and Android ! ! Density Images
• iOS style stretchable images • Splash screens • Android
version of leftCap, topCap • Editor built-in to Android SDK • http://9patch.fokkezb.nl/ ! 9-Patch images
• Reduce “over the bridge” calls • TableViews - classname
• ImageViews vs Views • ListViews over TableViews • Reduce views, especially in tables Android Performance
• Views = screens • Swipe between (great for prototyping
/ demos) • Disable manual swiping • Simple view stack management • Super-fast and smooth animation on Android ScrollableView Navigation
• Simple “inheritance” for Alloy Controllers • Re-use controllers, views
• Create cross-platform template wrappers Base Controllers
• <require src=“controllerName”/> • Latest Alloy supports require/widgets with children
• Create a wrapper template controller Require templates
• Little-known feature of Alloy • Override Alloy Tags to
provide per-platform support • Create your own tags! • Not a replacement for Widgets, just different The “module” attribute
None
Thank you!
+BTPO,OFFO http://twitter/jasonkneen http://github.com/jasonkneen http://jasonified.com http://bouncingfish.com