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
680
URL Schemes and Titanium - Redux
jasonkneen
1
400
Introduction to Titanium from DMC13
jasonkneen
1
170
Titanium and URL Schemes
jasonkneen
14
6.5k
Other Decks in Technology
See All in Technology
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
130
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
2
360
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
280
個人CLAUDE.md紹介と設定から学んだこと/introduce-my-claude-md
shibayu36
0
210
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
460
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
810
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
9.9k
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
19
9.1k
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
4
1.1k
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
120
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
140
Obsidian応用活用術
onikun94
1
400
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Done Done
chrislema
185
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Into the Great Unknown - MozCon
thekraken
40
2k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Designing for humans not robots
tammielis
253
25k
Six Lessons from altMBA
skipperchong
28
4k
The Invisible Side of Design
smashingmag
301
51k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Statistics for Hackers
jakevdp
799
220k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
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