Start learning with our library of video tutorials taught by experts. Get started

Titanium Mobile App Development Essential Training
Illustration by Mark Todd

Titanium Mobile App Development Essential Training

with Rafael Hernandez

Video: Welcome

Hi! I'm Rafael Hernandez and welcome to Titanium Mobile App Development Essential Training. In this course, we'll look at using one set of code to create mobile apps that run on both iOS and Android devices. I'll start by showing you how to set up a project and how to create images and labels. Then I'll show you how to add interactivity and gather information from the user using text fields and text areas. After that, we'll look at tabGroups and the tableView, which is a common way of presenting information to the user in an application.
Expand all | Collapse all
  1. 6m 26s
    1. Welcome
      59s
    2. About the exercise files
      1m 25s
    3. Understanding the prerequisites
      1m 43s
    4. Accessing the Titanium API Documentation
      2m 19s
  2. 10m 13s
    1. Creating your first application
      3m 10s
    2. Navigating the Titanium Studio workspace
      3m 9s
    3. Browser-based Javascript vs. Titanium Javascript
      1m 21s
    4. Detecting platforms
      55s
    5. Editing run configurations
      1m 38s
  3. 14m 24s
    1. Understanding Windows and Views
      4m 28s
    2. Using the label view
      2m 18s
    3. Using the image view
      3m 41s
    4. Understanding z-depth
      1m 44s
    5. Grouping and nesting Views
      2m 13s
  4. 30m 4s
    1. Listening for events
      2m 36s
    2. Creating buttons
      2m 17s
    3. Creating a slider
      3m 48s
    4. Creating a switch
      3m 36s
    5. Creating a single-column picker
      2m 11s
    6. Creating a multi-column picker
      3m 35s
    7. Creating a date/time picker
      2m 20s
    8. Creating text fields and text areas
      3m 26s
    9. Configuring text field and text area keyboard types
      1m 22s
    10. Creating text fields with embedded buttons
      2m 0s
    11. Adding interactivity to any view
      1m 58s
    12. Reviewing the cycle of creation
      55s
  5. 8m 3s
    1. Understanding tab groups
      4m 35s
    2. Customizing tab groups
      2m 6s
    3. Working with a single tab group
      1m 22s
  6. 24m 3s
    1. Getting to know the Table view
      1m 55s
    2. Creating a simple table
      2m 2s
    3. Creating custom table rows
      4m 17s
    4. Opening windows from rows
      3m 11s
    5. Modifying row headers and footers
      36s
    6. Adding rows
      2m 16s
    7. Updating rows
      2m 24s
    8. Deleting rows
      2m 18s
    9. Moving rows
      1m 39s
    10. Adding a search bar
      2m 38s
    11. Other properties and methods
      47s
  7. 15m 54s
    1. Creating a map and setting the location
      3m 44s
    2. Creating simple annotations
      4m 27s
    3. Customizing pins
      1m 11s
    4. Creating and handling annotation buttons
      2m 6s
    5. Adding and removing pins at runtime
      4m 26s
  8. 9m 43s
    1. Loading local and remote web pages
      2m 18s
    2. Examining Web View events and controls
      2m 3s
    3. App-to-Web View for iOS
      3m 5s
    4. Loading an external XML feed
      2m 17s
  9. 16m 21s
    1. Providing Feedback to the User
      27s
    2. Setting timers
      4m 4s
    3. Prompting the device to vibrate
      1m 2s
    4. Providing feedback with an Alert dialog
      2m 23s
    5. Providing feedback with an Option dialog
      2m 22s
    6. Dial a phone number or load a webpage
      1m 39s
    7. Implementing an activity indicator
      1m 37s
    8. Animating windows and views
      2m 47s
  10. 13m 7s
    1. Setting custom application properties
      3m 17s
    2. Reading from and writing to the filesystem
      6m 13s
    3. Sending an email
      3m 37s
  11. 11m 37s
    1. Using the camera and video
      4m 21s
    2. Accessing the photo album
      2m 1s
    3. Capturing the screen
      2m 20s
    4. Playing back a sound
      2m 55s
  12. 5m 17s
    1. Reading device orientation
      2m 27s
    2. Detecting shakes and reading accelerometer data
      1m 35s
    3. Detecting different tap types and finger swipes
      1m 15s
  13. 15m 53s
    1. App preferences
      3m 57s
    2. Icon badge and splash screen
      2m 22s
    3. iOS: Universal Binary
      1m 4s
    4. Debugging your app
      3m 14s
    5. iOS: Provisioning and ad hoc distribution profiles
      3m 45s
    6. Stepping through a finished app
      1m 31s
  14. 2m 44s
    1. What next?
      2m 10s
    2. Goodbye
      34s

Watch this entire course now—plus get access to every course in the library. Each course includes high-quality videos taught by expert instructors.

Become a member
Please wait...
Titanium Mobile App Development Essential Training
3h 3m Beginner Feb 02, 2012

Viewers: in countries Watching now:

In this course, author Rafael Hernandez creates native iOS and Android applications from a single codebase with the open-source Appcelerator Titanium platform. The course explains the difference between browser-based JavaScript and Titanium JavaScript, shows how to create a basic application, and demonstrates building buttons, sliders, switches, and pickers. The course also covers creating tables, implementing maps, providing feedback to users, incorporating multimedia, detecting gestures, and preparing finished apps for distribution.

Topics include:
  • Accessing the Titanium API documentation
  • Navigating the Titanium Studio workspace
  • Detecting platforms
  • Understanding windows and views
  • Listening for events
  • Configuring text fields
  • Adding interactivity to a view
  • Working with a single tab group
  • Creating a map and setting the location
  • Adding and removing map pins at runtime
  • Loading local and remote web pages
  • Loading an external XML feed
  • Setting timers
  • Prompting device vibrations
  • Implementing an activity indicator
  • Reading from and writing to the file system
  • Working with media
  • Reading device orientation
  • Detecting gestures
  • Debugging an app
  • Stepping through a finished app
Subjects:
Developer Mobile Apps Web Mobile Web
Software:
Titanium
Author:
Rafael Hernandez

Welcome

Hi! I'm Rafael Hernandez and welcome to Titanium Mobile App Development Essential Training. In this course, we'll look at using one set of code to create mobile apps that run on both iOS and Android devices. I'll start by showing you how to set up a project and how to create images and labels. Then I'll show you how to add interactivity and gather information from the user using text fields and text areas. After that, we'll look at tabGroups and the tableView, which is a common way of presenting information to the user in an application.

Then we'll look at some of the more advanced functions of Titanium Mobile, such as implementing a map view, providing the user with feedback, working with multimedia, and more. Finally, I'll show you how to prepare your app for distribution in the Android and iOS app stores. I'm eager to show you what Titanium Mobile offers. Now let's get started with Titanium Mobile App Development Essential Training.

Find answers to the most frequently asked questions about Titanium Mobile App Development Essential Training.


Expand all | Collapse all
Please wait...
Q: I'm having trouble getting the code in the Chapter 5 "Opening windows from rows" movie to work for Android.
A: There is a difference in the way Android treats a generic object that serves as data for a table. As well, there is no "hasDetail" property for Android table rows. The solution is to:
 
1.) Rename all the "hasDetail" properties to "hasChild"

2.) Instead of using generic objects in the data array, use Titanium Table
Row objects.
 
As a general note: In order to attach custom properties to rows in Android, Titanium Table Row objects *must* be used. That isn't made clear in the Android docs, especially if the app won't fail if you don't do this as evidenced by the old code. New code is included here that should take care of this issue.
 
This is how your code should read:
 
// this sets the background color of the master UIView (when there are no windows/tab groups on it)
Titanium.UI.setBackgroundColor('#000');

// create tab group
var tabGroup = Titanium.UI.createTabGroup();

var win = Titanium.UI.createWindow({
    title:"Tours",
    backgroundColor:"#FFFFFF",
    //navBarHidden:true, //Hide the nav bar for the window
    tabBarHidden:true //Hide the tab bar for the window
});
//Remember, we are hiding this tab through the property tabBarHidden above
var tab = Titanium.UI.createTab({
    icon:"KS_nav_views.png",
    title:"Tours",
    window:win
});

var data = [
    Ti.UI.createTableViewRow({title:"Backpack Cal", leftImage:"images/01-backpack-cal-thumb.png", className:"tableRow"}),
    Ti.UI.createTableViewRow({title:"California Calm", leftImage:"images/02-calm-cal-thumb.png", className:"tableRow", hasChild:true, customData:"This is custom row data"}),
    Ti.UI.createTableViewRow({title:"California Hotsprings", leftImage:"images/03-hotsprings-cal-thumb.png", className:"tableRow"}),
    Ti.UI.createTableViewRow({title:"Cycle California", leftImage:"images/04-cycle-cal-thumb.png", className:"tableRow"}),
    Ti.UI.createTableViewRow({title:"From Desert to Sea", leftImage:"images/05-desert-cal-thumb.png", className:"tableRow"}),
    Ti.UI.createTableViewRow({title:"Kids California", leftImage:"images/06-kids-cal-thumb.png", className:"tableRow", hasChild:true, customData:"This is custom row data"}),
    Ti.UI.createTableViewRow({title:"Nature Watch", leftImage:"images/07-nature-watch-cal-thumb.png", className:"tableRow"}),
    Ti.UI.createTableViewRow({title:"Snowboard Cali", leftImage:"images/08-snowboard-cal-thumb.png", className:"tableRow",hasChild:true,js:"external.js",dataToPass:"This data was passed in from the main window"}),
    Ti.UI.createTableViewRow({title:"Taste of California", leftImage:"images/09-taste-cal-thumb.png", className:"tableRow"})
];


var tableView = Titanium.UI.createTableView({
    data:data
});

tableView.addEventListener("click",function(e){
    //Check the row's hasDetail property
    var w;
    if(e.source.hasChild){
        if(e.source.js){//Does the row have a pointer to an external js file?
            //It does: Load that file
            w = Titanium.UI.createWindow({
                title:e.source.title,//Take the title from the row
                backgroundColor:"#FFFFFF",
                dataToPass:e.source.dataToPass,
                url:e.source.js//The url property of a window will load an external .js file for window contents (be sure that external file is properly formatted!)
            });
        }else{
            //It doesn't: Create a window from scratch
            w = Titanium.UI.createWindow({
                title:e.source.title,//Take the title from the row
                backgroundColor:"#FFFFFF"
            });
            //Create some views for our window
           
            var label = Titanium.UI.createLabel({
                text:"A newly opened window from the " + e.source.title + " row",
                width:"auto",
                height:"auto",
                textAlign:"center"
Share a link to this course
Please wait... Please wait...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.
Upgrade now


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Upgrade now

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Titanium Mobile App Development Essential Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Welcome to the redesigned course page.

We’ve moved some things around, and now you can



Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked