SlideShare a Scribd company logo
Titanium Alloy Tutorial
Titanium Tutorial
Your instructors
FokkeJason
Titan	
  
Certified	
  Instructor	
  
Self-­‐employed	
  
!
@JasonKneen
Titan	
  
Certified	
  Instructor	
  
Self-­‐employed	
  
!
@FokkeZB
Program
• What is Titanium?!
• Finding resources!
• Setting up!
• What is Alloy?!
• Build your first app!
• Using TiShadow!
• Step by step assignments!
• What’s next?
Titanium
… and what is Appcelerator?
Founded 

In 2007
Mountain View
London

Tokyo

Beijing
150

Employees
$50M
Mayfield,
Translink, Storm, 

Sierra, eBay, Red
Hat
GSMA Global
Mobile Awards
2012 Winner
Gartner 2013
Magic Quadrant
Highest placement in

both vision and

execution thereof.
About

Appcelerator
Titanium Alloy Tutorial
You’ve probably already used Titanium
600K!
Developers
230M!
Devices
70K!
Apps
WappZapp
Native UI
Swift? We have Hyperloop!
OBJECTIVE-C
UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectZero
style:UITableViewStyleGrouped];
SWIFT
let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped)
HYPERLOOP
var myTableView = new UITableView({ frame: CGRectZero(), style: UITableView.Grouped });
TITANIUM
var myTableView = Ti.UI.createTableView({ style: Ti.UI.TableView.GROUPED });
Resources
Where to get your information?
Resources
• tidev.io/resources!
!
• appcelerator.com/developers!
• docs.appcelerator.com!
!
• ticonf.org/#amsterdam

June 28-29th, European conference!
• amsterdam-titanium.nl

July 2nd, every 1st Wednesday / month
• Repeat after me: “Titanium is Native”!
• Bookmark tidev.io/resources!
!
• Get a last-minute ticonf.org/#amsterdam
Assignment
Set-up
Getting Ready!
What makes Titanium?
• NodeJS CLI!
!
• SDK!
!
• Titanium Studio (optional)!
!
• Target platform SDKs
• Sign up and download Studio!
• Install Studio and its dependencies!
• JAVA, NodeJS, CLI, SDK!
• Use the Platform Configuration Tool!
• Create the Classic / Default Project!
• Run in a simulator or device!
• Investigate Resources/app.js
Assignment
Alloy
Conventions vs Chaos
This might be confusing
Classic vs Alloy
CLASSIC: APP.JS
var win = Ti.UI.createWindow({backgroundColor:”white”});

win.open();
ALLOY: INDEX.XML
<Alloy><Window id=“win” /></Alloy>
ALLOY: INDEX.TSS
“#win”: { backgroundColor: ‘white’ }
ALLOY: INDEX.JS
$.win.open();
Few more things
Widgets
Build	
  Configuration	
  File
Built-­‐ins
Moment.js
Backbone.js
Underscore.js
Sync	
  adapters
Themes
Require
Dynamic	
  Styling
Controller-­‐less	
  views
Data-­‐binding
Project	
  Configuration	
  File
Source	
  Maps
Open Source Widgets*!
* And Modules
http://gitt.io
• Create the Two-tabbed Alloy Application!
• Run in a simulator or device!
• Compare index.xml/tss/js with classic!
• Unhide the Resources folder!
!
!
!
!
!
!
• Compare app.js & iphone/alloy/controllers/index.js!
Assignment
Zero to App
What you will build today
tiDev RSS reader
Ingredients
• JSON feed: tidev.io/feed/json!
• Repo: github.com/FokkeZB/Tutorial
VS
• Import a clone of the repository!
• File > Import > Git > .. as New Project!


!
!
!
!
• Run the app!
• Copy @Slides/slides.pdf to your Desktop
Assignment
TiShadow
Rapid Application Development
“If you're not using TiShadow
in your Titanium projects, you
might be wasting hours per
week on builds. Love it.”!
!
@kevinwhinnery
Compile process
• Compiling for Alloy!
• Compiling for Titanium!
• Compiling for Xcode/Android!
• Deploying to simulator/device!
• Starting the app!
• Running your code
Few more things
Express
Automated	
  testing
Rooms
Spies
Jasmine
REPL
Automatic	
  updates
Should.js
Browser	
  interface
Code	
  coverage
Server	
  hosting
Screengrabbing
Dynamic	
  localisation
Appify
• Install TiShadow!
!
!
• Run an app using CLI and TiShadow Express!
!
!
• Change backgroundColor to red and save
Assignment
~ $ [sudo] npm install -g tishadow
~/Tutorial $ ti build -p ios --shadow
Window
Creating a Window
Views
• UI components are name-spaced Ti.UI.*!
• Most UI components extend Ti.UI.View!
• Create components: Ti.UI.create<View>()!
• In Alloy <View> ➤ Ti.UI.create<View>()!
• XML attributes and TSS properties are
merged and passed to the create-method.!
• TSS can select by tag, id or class.!
• JS can refer to $.<id>
Classic vs Alloy
CLASSIC: APP.JS
var win = Ti.UI.createWindow({backgroundColor:”white”});

win.open();
ALLOY: INDEX.XML
<Alloy><Window id=“win” /></Alloy>
ALLOY: INDEX.TSS
“#win”: { backgroundColor: ‘white’ }
ALLOY: INDEX.JS
$.win.open();
• Reset any changes:!
!
!
• Switch to window branch.!
!
!
• Run the app.!
• Add a Label saying Hello world.!
• Give the label a class.!
• Use the class to make the color red.
Assignment
~/Tutorial $ git reset —-hard
~/Tutorial $ git checkout window
ListView
Not the most easy component
ListViews
• Docs > Search: guide: ListViews!
• Docs > Search: UI.ListView!
!
• “Crossing the bridge” has a toll!
• ListView vs TableView!
• Alloy does most of the hard work
• Study the ListViews guide.!
• Compare the API doc classic & Alloy examples.!
• Reset & Switch to the listview branch.!
• Run the app.!
• Try the first API doc Alloy example JS & TSS.!
• Compare Resources/iphone/alloy/
controllers/index.js with the classic examples.!
• Remove the blank icons, align the text left,
reduce the sections to one and remove the
headerTitle of that section.
Assignment
NavigationWindow
Stacking Windows
NavigationWindow
• Docs > Search: NavigationWindow!
• iOS only
Event Handling
• Docs > Search: Alloy XML Markup!
• HTML-like on[Event] attribute!
INDEX.XML
<Button onClick=“talkToMe” />
INDEX.JS
function talkToMe(e) {
alert(“hello world”);
}
Creating Controllers
~/Tutorial $ alloy generate controller detail
Using Controllers
• Use <Require> to create + add in XML!
• Use Alloy.createController in JS
INDEX.XML
<Window id=“win”>
<Require src=“detail” />
</Window>
INDEX.JS
var detailController = Alloy.createController(‘detail’);
var rootView = detailController.getView();
$.win.add(rootView);
• Study the NavigationWindow API docs.!
• Reset & Switch to the navwin branch and run it.!
• Wrap the Window in a NavigationWindow

For Android add module=“xp.ui” attribute.!
• Add an itemclick listener to the ListView.!
• Create a new detail controller and make it a
Window. Give both windows a title.!
• On click, create a detail controller instance and
open the window via NavigationWindow.!
• Study lib/xp.ui.js. What happends on Android?
Assignment
Collections
Models with brains
☁COLLECTIONSYNC	
  ADAPTERSTORAGE BINDINGS VIEWS
Ti.UI
⚡EVENTS
• Docs > Search: Alloy Models!
• Note: Older version (0.9.2)!
• In Titanium JS has no DOM!
!
• Instantiate a global collection:

Collection tag!
• Bind a collection to a loop-able view:

dataCollection attribute!
• Bind a model attribute to a child view property:

{<attribute>} value
• Study the Alloy Data Binding guide.!
• Reset & Switch to the collections branch and
run it.!
• Bind the feed collection to the ListSection so
that the list is populated showing the title and
excerpt of the items.!
• Study models/feed.js and lib/alloy/sync/
json.js. How do they work? And why that
second path?
Assignment
WebView
Titanium > Phonegap
WebView
• Docs > Search: guide: Communication!
• Docs > Search: UI.WebView!
!
• Display local, remote and “inline” HTML!
• Communicate via events and evalJS!
!
• Displaying formatted text native is complex!
• Displaying HTML in WebView is easy :)
• Study the WebView docs.!
• Reset & Switch to webview branch and run it.!
• Study index.xml to see how we expose the id
of the model via itemId.!
• Pass the model to the detail controller.!
• Add a WebView to the detail Window and use
the model to populate it.!
• Use the model to set the title of the detail
Window.
Assignment
SeachBar
Filtering our feed
SearchBar
• Docs > Search: ListViews > Search Text and View!
• Docs > Search: UI.ListView (last examples)!
• Docs > Search: UI.SearchBar!
!
!
!
• ListView.searchView works together with
ListView.searchText & ListItem.searchAbleText!
!
• Study the last two ListView examples.!
• Reset & switch to searchbar and run it.!
• Add a SearchBar (also for Android) to the list
to search on the excerpt.!
• If you have time left, try to search on the
content, after using the dataTransform
attribute to remove HTML tags from it.



HINT: Google is your friend.
Assignment
Artwork
Density Hell
NON-­‐RETINA RETINA	
  (2X)
.75x	
  	
  	
  	
  1x	
  	
  	
  	
  	
  	
  	
  1.5x	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  2x	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  3x	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  4x
Icons & Splashes
Platform & Density specific folders
assets/iphone/images/image@2x.png
assets/images/image.png
assets/android/images/res-mdpi/image.png
assets/android/images/res-xhdpi/image.png
assets/android/images/res-xhdpi/some.file
!
platform/android/res/drawable-xhdpi/some.file
platform/android/res/drawable-nl-port-xhdpi/some.file
assets/some_dir/some.file
assets/android/some_dir/some.file
assets/iphone/some_dir/some.file
BEST	
  
PRACTICE
Android 9-Patch
No more handwork
~ $ [sudo] npm install -g ticons
• Study the Icons and Splash Screens guide!
• Install the ticons CLI or visit the site.!
!
!
• Reset & Switch to artwork branch and run it.!
• Generate icons and splashes using the CLI or
site on the logo.png image.!
• For splashes, find out how to prevent the logo
from being cropped.
Assignment
~ $ [sudo] npm install -g ticons
Company Confidential
You are a TiDev now!
What’s next?
Join the community
Join the community
• Follow @appcelerator & @TiDevIO.!
• Follow @FokkeZB & @JasonKneen.!
• Find a local Titanium Meetup on DevMap.!
• Go to a tiConf on your continent.!
• Find help on the Q&A.!
• Find widgets & modules on gitTio.!
• Share your libraries & widgets on GitHub.
Get certified
training.appcelerator.com/get-­‐certified	
  
Thank you!
• Reset & Switch to master branch and run it.!
• Fine-tune the app! For example:!
• Replace the list title by the tiDev logo.!
• Add the date and category to the list view.!
• Add a button to open a blog in the browser.!
• Add a button for the user to share a blog.!
• Be creative!
Bonus Assignment
Titanium Alloy Tutorial
Ad

More Related Content

What's hot (20)

What is Angular version 4?
What is Angular version 4?What is Angular version 4?
What is Angular version 4?
Troy Miles
 
Alloy backbone
Alloy backboneAlloy backbone
Alloy backbone
Braden Powers
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
An Overview of Angular 4
An Overview of Angular 4 An Overview of Angular 4
An Overview of Angular 4
Cynoteck Technology Solutions Private Limited
 
Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Matt Raible
 
React JS
React JSReact JS
React JS
Software Infrastructure
 
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Matt Raible
 
Titanium Mobile
Titanium MobileTitanium Mobile
Titanium Mobile
Axway Appcelerator
 
Developing a Demo Application with Angular 4 - J2I
Developing a Demo Application with Angular 4 - J2IDeveloping a Demo Application with Angular 4 - J2I
Developing a Demo Application with Angular 4 - J2I
Nader Debbabi
 
Say hello world with angular 5
Say hello world with angular 5Say hello world with angular 5
Say hello world with angular 5
Abhishek Mallick
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
Matt Raible
 
Introduction to angular 4
Introduction to angular 4Introduction to angular 4
Introduction to angular 4
Marwane El Azami
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
Tuan Trung Vo
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
Dhyego Fernando
 
Getting Started with the Angular 2 CLI
Getting Started with the Angular 2 CLIGetting Started with the Angular 2 CLI
Getting Started with the Angular 2 CLI
Jim Lynch
 
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
Azilen Technologies Pvt. Ltd.
 
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
Edureka!
 
ReactJS.NET
ReactJS.NETReactJS.NET
ReactJS.NET
Troy Miles
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 
What is Angular version 4?
What is Angular version 4?What is Angular version 4?
What is Angular version 4?
Troy Miles
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018Bootiful Development with Spring Boot and Vue - RWX 2018
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Matt Raible
 
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Matt Raible
 
Developing a Demo Application with Angular 4 - J2I
Developing a Demo Application with Angular 4 - J2IDeveloping a Demo Application with Angular 4 - J2I
Developing a Demo Application with Angular 4 - J2I
Nader Debbabi
 
Say hello world with angular 5
Say hello world with angular 5Say hello world with angular 5
Say hello world with angular 5
Abhishek Mallick
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
Matt Raible
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
Tuan Trung Vo
 
Introduction to angular 2
Introduction to angular 2Introduction to angular 2
Introduction to angular 2
Dhyego Fernando
 
Getting Started with the Angular 2 CLI
Getting Started with the Angular 2 CLIGetting Started with the Angular 2 CLI
Getting Started with the Angular 2 CLI
Jim Lynch
 
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
How to create an angular 2.0 application in liferay dxp to fetch the ootb adv...
Azilen Technologies Pvt. Ltd.
 
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
What's New in Angular 4 | Angular 4 Features | Angular 4 Changes | Angular Tu...
Edureka!
 
Front End Development for Back End Developers - Devoxx UK 2017
 Front End Development for Back End Developers - Devoxx UK 2017 Front End Development for Back End Developers - Devoxx UK 2017
Front End Development for Back End Developers - Devoxx UK 2017
Matt Raible
 

Viewers also liked (17)

Titanium and its alloys
Titanium and its alloysTitanium and its alloys
Titanium and its alloys
Kedir Beyene
 
titanium and titanium alloys
 titanium and titanium alloys titanium and titanium alloys
titanium and titanium alloys
Ali Zamel
 
Amg amg titanium alloys & coatings presentation may 2013
Amg   amg titanium alloys & coatings presentation may 2013Amg   amg titanium alloys & coatings presentation may 2013
Amg amg titanium alloys & coatings presentation may 2013
jdiluzio
 
Appcelerator droidcon15 TLV
Appcelerator droidcon15 TLVAppcelerator droidcon15 TLV
Appcelerator droidcon15 TLV
YishaiBrown
 
[ICOS2013] Appcelerator Titanium簡介
[ICOS2013] Appcelerator Titanium簡介[ICOS2013] Appcelerator Titanium簡介
[ICOS2013] Appcelerator Titanium簡介
Justin Lee
 
2013/05/19 - Titanium 入門實戰 3
2013/05/19 - Titanium 入門實戰 32013/05/19 - Titanium 入門實戰 3
2013/05/19 - Titanium 入門實戰 3
樂平 大俠
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
Ambarish Hazarnis
 
Using Titanium Mobile
Using Titanium MobileUsing Titanium Mobile
Using Titanium Mobile
johndbritton
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
omorandi
 
Project "Titanium"
Project "Titanium"Project "Titanium"
Project "Titanium"
Ivan Bozhko
 
Extending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native ModulesExtending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native Modules
omorandi
 
Titanium ppt
Titanium pptTitanium ppt
Titanium ppt
Aditya Dwiaji
 
Aerospace Supply Chain & Raw Material Outlook
Aerospace Supply Chain & Raw Material OutlookAerospace Supply Chain & Raw Material Outlook
Aerospace Supply Chain & Raw Material Outlook
ICF
 
Titanium and titanium alloys/ /certified fixed orthodontic courses by India...
Titanium  and  titanium alloys/ /certified fixed orthodontic courses by India...Titanium  and  titanium alloys/ /certified fixed orthodontic courses by India...
Titanium and titanium alloys/ /certified fixed orthodontic courses by India...
Indian dental academy
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules
omorandi
 
Titanium and its alloys ppt show
Titanium and its alloys ppt showTitanium and its alloys ppt show
Titanium and its alloys ppt show
aamitchak
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
SlideShare
 
Titanium and its alloys
Titanium and its alloysTitanium and its alloys
Titanium and its alloys
Kedir Beyene
 
titanium and titanium alloys
 titanium and titanium alloys titanium and titanium alloys
titanium and titanium alloys
Ali Zamel
 
Amg amg titanium alloys & coatings presentation may 2013
Amg   amg titanium alloys & coatings presentation may 2013Amg   amg titanium alloys & coatings presentation may 2013
Amg amg titanium alloys & coatings presentation may 2013
jdiluzio
 
Appcelerator droidcon15 TLV
Appcelerator droidcon15 TLVAppcelerator droidcon15 TLV
Appcelerator droidcon15 TLV
YishaiBrown
 
[ICOS2013] Appcelerator Titanium簡介
[ICOS2013] Appcelerator Titanium簡介[ICOS2013] Appcelerator Titanium簡介
[ICOS2013] Appcelerator Titanium簡介
Justin Lee
 
2013/05/19 - Titanium 入門實戰 3
2013/05/19 - Titanium 入門實戰 32013/05/19 - Titanium 入門實戰 3
2013/05/19 - Titanium 入門實戰 3
樂平 大俠
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
Ambarish Hazarnis
 
Using Titanium Mobile
Using Titanium MobileUsing Titanium Mobile
Using Titanium Mobile
johndbritton
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
omorandi
 
Project "Titanium"
Project "Titanium"Project "Titanium"
Project "Titanium"
Ivan Bozhko
 
Extending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native ModulesExtending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native Modules
omorandi
 
Aerospace Supply Chain & Raw Material Outlook
Aerospace Supply Chain & Raw Material OutlookAerospace Supply Chain & Raw Material Outlook
Aerospace Supply Chain & Raw Material Outlook
ICF
 
Titanium and titanium alloys/ /certified fixed orthodontic courses by India...
Titanium  and  titanium alloys/ /certified fixed orthodontic courses by India...Titanium  and  titanium alloys/ /certified fixed orthodontic courses by India...
Titanium and titanium alloys/ /certified fixed orthodontic courses by India...
Indian dental academy
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules
omorandi
 
Titanium and its alloys ppt show
Titanium and its alloys ppt showTitanium and its alloys ppt show
Titanium and its alloys ppt show
aamitchak
 
LinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-PresentedLinkedIn SlideShare: Knowledge, Well-Presented
LinkedIn SlideShare: Knowledge, Well-Presented
SlideShare
 
Ad

Similar to Titanium Alloy Tutorial (20)

Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
Techday7
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
Naga Harish M
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and AndroidDevelop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
ralcocer
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and AndroidDevelop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
Ricardo Alcocer
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Tom Johnson
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Gil Irizarry
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appcelerator
Mohab El-Shishtawy
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
DevelopmentArc LLC
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.js
aortbals
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
Jason Kneen
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
Paul Jensen
 
Make Mobile Apps Quickly
Make Mobile Apps QuicklyMake Mobile Apps Quickly
Make Mobile Apps Quickly
Gil Irizarry
 
Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)
kbekessy
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
Droidcon Berlin
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
Troy Miles
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
mdevtalk
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
Graham Weldon
 
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
Rich Helton
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
Techday7
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
Naga Harish M
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and AndroidDevelop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
ralcocer
 
Develop your first mobile App for iOS and Android
Develop your first mobile App for iOS and AndroidDevelop your first mobile App for iOS and Android
Develop your first mobile App for iOS and Android
Ricardo Alcocer
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Tom Johnson
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Gil Irizarry
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.js
aortbals
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
Jason Kneen
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
Paul Jensen
 
Make Mobile Apps Quickly
Make Mobile Apps QuicklyMake Mobile Apps Quickly
Make Mobile Apps Quickly
Gil Irizarry
 
Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)Building Better Web Apps with Angular.js (SXSW 2014)
Building Better Web Apps with Angular.js (SXSW 2014)
kbekessy
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
Droidcon Berlin
 
Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
Troy Miles
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
mdevtalk
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
Graham Weldon
 
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
Rich Helton
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
Ad

More from Fokke Zandbergen (20)

Building the (Support) Robot at Zapier
Building the (Support) Robot at ZapierBuilding the (Support) Robot at Zapier
Building the (Support) Robot at Zapier
Fokke Zandbergen
 
Lessons from helping developers integrate 1,000 APIs with Zapier
Lessons from helping developers integrate 1,000 APIs with ZapierLessons from helping developers integrate 1,000 APIs with Zapier
Lessons from helping developers integrate 1,000 APIs with Zapier
Fokke Zandbergen
 
We are all Remote Advocates
We are all Remote AdvocatesWe are all Remote Advocates
We are all Remote Advocates
Fokke Zandbergen
 
Cross-platform Native App ontwikkeling met Appcelerator
Cross-platform Native App ontwikkeling met AppceleratorCross-platform Native App ontwikkeling met Appcelerator
Cross-platform Native App ontwikkeling met Appcelerator
Fokke Zandbergen
 
Building Native Mobile Apps using Javascript with Titanium
Building Native Mobile Apps using Javascript with TitaniumBuilding Native Mobile Apps using Javascript with Titanium
Building Native Mobile Apps using Javascript with Titanium
Fokke Zandbergen
 
Getting Started with Titanium & Alloy
Getting Started with Titanium & AlloyGetting Started with Titanium & Alloy
Getting Started with Titanium & Alloy
Fokke Zandbergen
 
Cross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptCross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScript
Fokke Zandbergen
 
Titanium: Develop Native Mobile Apps with JavaScript
Titanium: Develop Native Mobile Apps with JavaScriptTitanium: Develop Native Mobile Apps with JavaScript
Titanium: Develop Native Mobile Apps with JavaScript
Fokke Zandbergen
 
Appcelerator OSS & Platform
Appcelerator OSS & PlatformAppcelerator OSS & Platform
Appcelerator OSS & Platform
Fokke Zandbergen
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
Fokke Zandbergen
 
Appcelerator Alloy MVC
Appcelerator Alloy MVCAppcelerator Alloy MVC
Appcelerator Alloy MVC
Fokke Zandbergen
 
The Ultimate Titanium CLI Toolchain
The Ultimate Titanium CLI ToolchainThe Ultimate Titanium CLI Toolchain
The Ultimate Titanium CLI Toolchain
Fokke Zandbergen
 
Getting ready for iOS 8 & iPhone 6
Getting ready for iOS 8 & iPhone 6Getting ready for iOS 8 & iPhone 6
Getting ready for iOS 8 & iPhone 6
Fokke Zandbergen
 
Titanium Community Toolkit Showcase
Titanium Community Toolkit ShowcaseTitanium Community Toolkit Showcase
Titanium Community Toolkit Showcase
Fokke Zandbergen
 
5 app alternatieven #AIB2013
5 app alternatieven #AIB20135 app alternatieven #AIB2013
5 app alternatieven #AIB2013
Fokke Zandbergen
 
Apps voor kerken #Kerk2013
Apps voor kerken #Kerk2013Apps voor kerken #Kerk2013
Apps voor kerken #Kerk2013
Fokke Zandbergen
 
TiNy #TiAppCamp
TiNy #TiAppCampTiNy #TiAppCamp
TiNy #TiAppCamp
Fokke Zandbergen
 
Internetmarketing
InternetmarketingInternetmarketing
Internetmarketing
Fokke Zandbergen
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLon
Fokke Zandbergen
 
Alloy #DMC13
Alloy #DMC13Alloy #DMC13
Alloy #DMC13
Fokke Zandbergen
 
Building the (Support) Robot at Zapier
Building the (Support) Robot at ZapierBuilding the (Support) Robot at Zapier
Building the (Support) Robot at Zapier
Fokke Zandbergen
 
Lessons from helping developers integrate 1,000 APIs with Zapier
Lessons from helping developers integrate 1,000 APIs with ZapierLessons from helping developers integrate 1,000 APIs with Zapier
Lessons from helping developers integrate 1,000 APIs with Zapier
Fokke Zandbergen
 
We are all Remote Advocates
We are all Remote AdvocatesWe are all Remote Advocates
We are all Remote Advocates
Fokke Zandbergen
 
Cross-platform Native App ontwikkeling met Appcelerator
Cross-platform Native App ontwikkeling met AppceleratorCross-platform Native App ontwikkeling met Appcelerator
Cross-platform Native App ontwikkeling met Appcelerator
Fokke Zandbergen
 
Building Native Mobile Apps using Javascript with Titanium
Building Native Mobile Apps using Javascript with TitaniumBuilding Native Mobile Apps using Javascript with Titanium
Building Native Mobile Apps using Javascript with Titanium
Fokke Zandbergen
 
Getting Started with Titanium & Alloy
Getting Started with Titanium & AlloyGetting Started with Titanium & Alloy
Getting Started with Titanium & Alloy
Fokke Zandbergen
 
Cross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScriptCross-Platform Native Apps with JavaScript
Cross-Platform Native Apps with JavaScript
Fokke Zandbergen
 
Titanium: Develop Native Mobile Apps with JavaScript
Titanium: Develop Native Mobile Apps with JavaScriptTitanium: Develop Native Mobile Apps with JavaScript
Titanium: Develop Native Mobile Apps with JavaScript
Fokke Zandbergen
 
Appcelerator OSS & Platform
Appcelerator OSS & PlatformAppcelerator OSS & Platform
Appcelerator OSS & Platform
Fokke Zandbergen
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
Fokke Zandbergen
 
The Ultimate Titanium CLI Toolchain
The Ultimate Titanium CLI ToolchainThe Ultimate Titanium CLI Toolchain
The Ultimate Titanium CLI Toolchain
Fokke Zandbergen
 
Getting ready for iOS 8 & iPhone 6
Getting ready for iOS 8 & iPhone 6Getting ready for iOS 8 & iPhone 6
Getting ready for iOS 8 & iPhone 6
Fokke Zandbergen
 
Titanium Community Toolkit Showcase
Titanium Community Toolkit ShowcaseTitanium Community Toolkit Showcase
Titanium Community Toolkit Showcase
Fokke Zandbergen
 
5 app alternatieven #AIB2013
5 app alternatieven #AIB20135 app alternatieven #AIB2013
5 app alternatieven #AIB2013
Fokke Zandbergen
 
Apps voor kerken #Kerk2013
Apps voor kerken #Kerk2013Apps voor kerken #Kerk2013
Apps voor kerken #Kerk2013
Fokke Zandbergen
 
Alloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLonAlloy Tips & Tricks #TiLon
Alloy Tips & Tricks #TiLon
Fokke Zandbergen
 

Titanium Alloy Tutorial

  • 3. Your instructors FokkeJason Titan   Certified  Instructor   Self-­‐employed   ! @JasonKneen Titan   Certified  Instructor   Self-­‐employed   ! @FokkeZB
  • 4. Program • What is Titanium?! • Finding resources! • Setting up! • What is Alloy?! • Build your first app! • Using TiShadow! • Step by step assignments! • What’s next?
  • 5. Titanium … and what is Appcelerator?
  • 6. Founded In 2007 Mountain View London Tokyo Beijing 150 Employees $50M Mayfield, Translink, Storm, Sierra, eBay, Red Hat GSMA Global Mobile Awards 2012 Winner Gartner 2013 Magic Quadrant Highest placement in both vision and execution thereof. About Appcelerator
  • 8. You’ve probably already used Titanium 600K! Developers 230M! Devices 70K! Apps
  • 11. Swift? We have Hyperloop! OBJECTIVE-C UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; SWIFT let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped) HYPERLOOP var myTableView = new UITableView({ frame: CGRectZero(), style: UITableView.Grouped }); TITANIUM var myTableView = Ti.UI.createTableView({ style: Ti.UI.TableView.GROUPED });
  • 12. Resources Where to get your information?
  • 13. Resources • tidev.io/resources! ! • appcelerator.com/developers! • docs.appcelerator.com! ! • ticonf.org/#amsterdam
 June 28-29th, European conference! • amsterdam-titanium.nl
 July 2nd, every 1st Wednesday / month
  • 14. • Repeat after me: “Titanium is Native”! • Bookmark tidev.io/resources! ! • Get a last-minute ticonf.org/#amsterdam Assignment
  • 16. What makes Titanium? • NodeJS CLI! ! • SDK! ! • Titanium Studio (optional)! ! • Target platform SDKs
  • 17. • Sign up and download Studio! • Install Studio and its dependencies! • JAVA, NodeJS, CLI, SDK! • Use the Platform Configuration Tool! • Create the Classic / Default Project! • Run in a simulator or device! • Investigate Resources/app.js Assignment
  • 19. This might be confusing
  • 20. Classic vs Alloy CLASSIC: APP.JS var win = Ti.UI.createWindow({backgroundColor:”white”});
 win.open(); ALLOY: INDEX.XML <Alloy><Window id=“win” /></Alloy> ALLOY: INDEX.TSS “#win”: { backgroundColor: ‘white’ } ALLOY: INDEX.JS $.win.open();
  • 21. Few more things Widgets Build  Configuration  File Built-­‐ins Moment.js Backbone.js Underscore.js Sync  adapters Themes Require Dynamic  Styling Controller-­‐less  views Data-­‐binding Project  Configuration  File Source  Maps
  • 22. Open Source Widgets*! * And Modules http://gitt.io
  • 23. • Create the Two-tabbed Alloy Application! • Run in a simulator or device! • Compare index.xml/tss/js with classic! • Unhide the Resources folder! ! ! ! ! ! ! • Compare app.js & iphone/alloy/controllers/index.js! Assignment
  • 24. Zero to App What you will build today
  • 26. Ingredients • JSON feed: tidev.io/feed/json! • Repo: github.com/FokkeZB/Tutorial VS
  • 27. • Import a clone of the repository! • File > Import > Git > .. as New Project! 
 ! ! ! ! • Run the app! • Copy @Slides/slides.pdf to your Desktop Assignment
  • 29. “If you're not using TiShadow in your Titanium projects, you might be wasting hours per week on builds. Love it.”! ! @kevinwhinnery
  • 30. Compile process • Compiling for Alloy! • Compiling for Titanium! • Compiling for Xcode/Android! • Deploying to simulator/device! • Starting the app! • Running your code
  • 31. Few more things Express Automated  testing Rooms Spies Jasmine REPL Automatic  updates Should.js Browser  interface Code  coverage Server  hosting Screengrabbing Dynamic  localisation Appify
  • 32. • Install TiShadow! ! ! • Run an app using CLI and TiShadow Express! ! ! • Change backgroundColor to red and save Assignment ~ $ [sudo] npm install -g tishadow ~/Tutorial $ ti build -p ios --shadow
  • 34. Views • UI components are name-spaced Ti.UI.*! • Most UI components extend Ti.UI.View! • Create components: Ti.UI.create<View>()! • In Alloy <View> ➤ Ti.UI.create<View>()! • XML attributes and TSS properties are merged and passed to the create-method.! • TSS can select by tag, id or class.! • JS can refer to $.<id>
  • 35. Classic vs Alloy CLASSIC: APP.JS var win = Ti.UI.createWindow({backgroundColor:”white”});
 win.open(); ALLOY: INDEX.XML <Alloy><Window id=“win” /></Alloy> ALLOY: INDEX.TSS “#win”: { backgroundColor: ‘white’ } ALLOY: INDEX.JS $.win.open();
  • 36. • Reset any changes:! ! ! • Switch to window branch.! ! ! • Run the app.! • Add a Label saying Hello world.! • Give the label a class.! • Use the class to make the color red. Assignment ~/Tutorial $ git reset —-hard ~/Tutorial $ git checkout window
  • 37. ListView Not the most easy component
  • 38. ListViews • Docs > Search: guide: ListViews! • Docs > Search: UI.ListView! ! • “Crossing the bridge” has a toll! • ListView vs TableView! • Alloy does most of the hard work
  • 39. • Study the ListViews guide.! • Compare the API doc classic & Alloy examples.! • Reset & Switch to the listview branch.! • Run the app.! • Try the first API doc Alloy example JS & TSS.! • Compare Resources/iphone/alloy/ controllers/index.js with the classic examples.! • Remove the blank icons, align the text left, reduce the sections to one and remove the headerTitle of that section. Assignment
  • 41. NavigationWindow • Docs > Search: NavigationWindow! • iOS only
  • 42. Event Handling • Docs > Search: Alloy XML Markup! • HTML-like on[Event] attribute! INDEX.XML <Button onClick=“talkToMe” /> INDEX.JS function talkToMe(e) { alert(“hello world”); }
  • 43. Creating Controllers ~/Tutorial $ alloy generate controller detail
  • 44. Using Controllers • Use <Require> to create + add in XML! • Use Alloy.createController in JS INDEX.XML <Window id=“win”> <Require src=“detail” /> </Window> INDEX.JS var detailController = Alloy.createController(‘detail’); var rootView = detailController.getView(); $.win.add(rootView);
  • 45. • Study the NavigationWindow API docs.! • Reset & Switch to the navwin branch and run it.! • Wrap the Window in a NavigationWindow
 For Android add module=“xp.ui” attribute.! • Add an itemclick listener to the ListView.! • Create a new detail controller and make it a Window. Give both windows a title.! • On click, create a detail controller instance and open the window via NavigationWindow.! • Study lib/xp.ui.js. What happends on Android? Assignment
  • 48. • Docs > Search: Alloy Models! • Note: Older version (0.9.2)! • In Titanium JS has no DOM! ! • Instantiate a global collection:
 Collection tag! • Bind a collection to a loop-able view:
 dataCollection attribute! • Bind a model attribute to a child view property:
 {<attribute>} value
  • 49. • Study the Alloy Data Binding guide.! • Reset & Switch to the collections branch and run it.! • Bind the feed collection to the ListSection so that the list is populated showing the title and excerpt of the items.! • Study models/feed.js and lib/alloy/sync/ json.js. How do they work? And why that second path? Assignment
  • 51. WebView • Docs > Search: guide: Communication! • Docs > Search: UI.WebView! ! • Display local, remote and “inline” HTML! • Communicate via events and evalJS! ! • Displaying formatted text native is complex! • Displaying HTML in WebView is easy :)
  • 52. • Study the WebView docs.! • Reset & Switch to webview branch and run it.! • Study index.xml to see how we expose the id of the model via itemId.! • Pass the model to the detail controller.! • Add a WebView to the detail Window and use the model to populate it.! • Use the model to set the title of the detail Window. Assignment
  • 54. SearchBar • Docs > Search: ListViews > Search Text and View! • Docs > Search: UI.ListView (last examples)! • Docs > Search: UI.SearchBar! ! ! ! • ListView.searchView works together with ListView.searchText & ListItem.searchAbleText! !
  • 55. • Study the last two ListView examples.! • Reset & switch to searchbar and run it.! • Add a SearchBar (also for Android) to the list to search on the excerpt.! • If you have time left, try to search on the content, after using the dataTransform attribute to remove HTML tags from it.
 
 HINT: Google is your friend. Assignment
  • 57. NON-­‐RETINA RETINA  (2X) .75x        1x              1.5x                        2x                                            3x                                                              4x
  • 59. Platform & Density specific folders assets/iphone/images/[email protected] assets/images/image.png assets/android/images/res-mdpi/image.png assets/android/images/res-xhdpi/image.png assets/android/images/res-xhdpi/some.file ! platform/android/res/drawable-xhdpi/some.file platform/android/res/drawable-nl-port-xhdpi/some.file assets/some_dir/some.file assets/android/some_dir/some.file assets/iphone/some_dir/some.file BEST   PRACTICE
  • 61. No more handwork ~ $ [sudo] npm install -g ticons
  • 62. • Study the Icons and Splash Screens guide! • Install the ticons CLI or visit the site.! ! ! • Reset & Switch to artwork branch and run it.! • Generate icons and splashes using the CLI or site on the logo.png image.! • For splashes, find out how to prevent the logo from being cropped. Assignment ~ $ [sudo] npm install -g ticons
  • 65. Join the community • Follow @appcelerator & @TiDevIO.! • Follow @FokkeZB & @JasonKneen.! • Find a local Titanium Meetup on DevMap.! • Go to a tiConf on your continent.! • Find help on the Q&A.! • Find widgets & modules on gitTio.! • Share your libraries & widgets on GitHub.
  • 68. • Reset & Switch to master branch and run it.! • Fine-tune the app! For example:! • Replace the list title by the tiDev logo.! • Add the date and category to the list view.! • Add a button to open a blog in the browser.! • Add a button for the user to share a blog.! • Be creative! Bonus Assignment