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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
830
Refactoring with Science
pengwynn
11
2k
> hubot deploy GitHub
pengwynn
26
3k
API Realtalk
pengwynn
6
650
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
数百円から始めるRuby電子工作
tarosay
0
150
Foundation Models frameworkで画像分析
ryodeveloper
1
610
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.7k
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
230
React本体のコードリーディング
high_g_engineer
1
140
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
230
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
Flow は今どうなっているか
mizdra
PRO
0
500
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
400
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Embracing the Ebb and Flow
colly
88
5.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
490
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
The Invisible Side of Design
smashingmag
301
52k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
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