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
Accelerated Native Mobile Development with the ...
Search
Wynn Netherland
September 17, 2011
Programming
530
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Accelerated Native Mobile Development with the Ti gem
Wynn Netherland
September 17, 2011
More Decks by Wynn Netherland
See All by Wynn Netherland
Building a Resilient API with open source
pengwynn
10
820
Refactoring with Science
pengwynn
11
2k
> hubot deploy GitHub
pengwynn
26
3k
API Realtalk
pengwynn
6
640
Hypermedia APIs - less hype more media, please
pengwynn
18
2k
User Experience Patterns for APIs
pengwynn
24
930
A Spree Themer's Toolkit
pengwynn
7
1.6k
Accelerating Titanium Development with CoffeeScript, Compass, and Sass
pengwynn
13
2.8k
Ten Things We Learned Building TweetCongress
pengwynn
2
390
Other Decks in Programming
See All in Programming
Agentic UI
manfredsteyer
PRO
0
180
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
270
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
710
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
200
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
6
1.4k
Contextとはなにか
chiroruxx
1
330
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.3k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
350
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.3k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
800
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Google's AI Overviews - The New Search
badams
0
1k
Scaling GitHub
holman
464
140k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Are puppies a ranking factor?
jonoalderson
1
3.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
Agile that works and the tools we love
rasmusluckow
331
21k
Automating Front-end Workflow
addyosmani
1370
210k
Transcript
MOBILE APP DEVELOPMENT WITH Ti Accelerated WYNNNETHERLAND
None
D'oh! Sorry, will have to blind you with science.
None
Isn’t she Sassy, folks? GET THE BOOK.
sass40 Save 40% and get early access! Sadly, sass100 is
not a valid code.
And you are?
So you wanna build a mobile app?
None
Native vs. Web
Why native?
None
None
None
None
None
None
None
Obj C Java
Titanium
None
SINGLE JAVASCRIPT API
COMPILES TO NATIVE CODE
None
OPEN SOURCE! http://github.com/appcelerator/titanium_mobile
Development options
None
I’d rather not use your IDE. After fleeing .NET for
the joys of Ruby
Fortunately, there’s a CLI.
DEMO A quick
Fortunately, there’s a CLI. Unfortunately, it’s written in Python.
Why should I care? I’m a Rubyist
You'll still need a server API Rails, Sinatra, etc.
Embrace your inner polyglot.
COFFEESCRIPT
var foo = function () { } foo = ()
-> I’d rather write this.
var button = Titanium.UI.createButton({ title: 'I am a Button', height:
40, width: 200, top: 10 }); button.addEventListener('click', function(e) { alert("Oooh, that tickles!"); }); JavaScript
button = Titanium.UI.createButton title: 'I am a Button' height: 40
width: 200 top: 10 button.addEventListener 'click', (e) -> alert "Oooh, that tickles!" CoffeeScript
JavaScript Frameworks
Underscore.js https://github.com/documentcloud/underscore
STYLESHEETS
var buttonOne = Titanium.UI.createButton({ title:'I am a Button', height:40, width:200,
top:10 }); var buttonTwo = Titanium.UI.createButton({ title:'I am also a Button', image:'../images/chat.png', width:200, height:40, top:60 });
// js var buttonOne = Titanium.UI.createButton({ id: "buttonOne", className: "button"
}); var buttonTwo = Titanium.UI.createButton({ id: "buttonTwo", className: "button" }); // jss #buttonOne { title:'I am a Button'; width:200; height:40; top:10 } #buttonTwo { title:'I am also a Button'; image:'../images/chat.png'; width:200; height:40; top:60 } .button { height: 40; width: 200; }
JSS work like CSS.
But I don't even like CSS.
SASS & COMPASS Fortunately, there's
#buttonOne { title: 'I am a Button'; width: 200; height:
40; top: 10 } #buttonTwo { title: 'I am also a Button'; image: '../images/chat.png'; width: 200; height: 40; top: 60 } .button { height: 40; width: 200; }
#buttonOne title: 'I am a Button' width: 200 height: 40
top: 10 #buttonTwo title: 'I am also a Button' image: '../images/chat.png' width: 200 height: 40 top: 60 .button height: 40 width: 200
=button height: 40 width: 200 #buttonOne +button title: 'I am
a Button' top: 10 #buttonTwo +button title: 'I am also a Button' image: '../images/chat.png' top: 60
Ruby Oh yeah, and there's
CODE DEEP DIVE
Ti GEM
gem install ti
Generate.
ti new <name> <id> <platform>
ti new lsrc com.lonestarrubyconf.v iphone
├── Coffeefile ├── Guardfile ├── LICENSE ├── Rakefile ├── Readme.mkd
├── Resources │ ├── app.js │ ├── app.jss │ ├── images │ │ ├── KS_nav_ui.png │ │ └── KS_nav_views.png │ ├── lsrc.js │ └── vendor ├── app │ ├── app.coffee │ └── lsrc │ ├── api.coffee │ ├── app.coffee │ ├── helpers │ │ └── application.coffee │ ├── models │ ├── stylesheets │ │ ├── app.sass │ │ └── partials │ └── views ├── build ├── config │ └── config.rb ├── docs ├── spec │ ├── app_spec.coffee │ ├── helpers │ ├── models
ti generate <model/controller/view> <name>
Golf.Views.GamePlay.createScoreCardView = (options) -> view = Ti.UI.createView (options) view
ti scaffold <window/tabgroup/view> <domain> <name>
Compile.
ti compile <all/coffee/sass>
Build.
ti build <all/iphone/android/ipad/desktop/>
Ti GEM @revans @baldrailers @rupakg
Get involved!
Testing.
Jasmine
Jasmine https://github.com/akahigeg/jasmine-titanium
XIB
xib2js https://github.com/daoki2/xib2js
js2coffee http://ricostacruz.com/js2coffee/
QUESTIONS?
None
@pengwynn