56
DEVELOPING IOS & ANDROID APPS USING TITANIUM NHM TANVEER HOSSAIN KHAN HASIN HAYDER

Develping iOS and Android apps using Appcelerator Titanium

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Develping iOS and Android apps using Appcelerator Titanium

DEVELOPINGIOS & ANDROID APPS USINGTITANIUM

NHM TANVEER HOSSAIN KHANHASIN HAYDER

Page 2: Develping iOS and Android apps using Appcelerator Titanium

WHY TITANIUM?

• EASY TO JUMP START

• DEVICE INDEPENDENT

• COMMON TOOLS

• NATIVE

• EXTESIVE DOCUMENTATION

Page 3: Develping iOS and Android apps using Appcelerator Titanium

HOW TITANIUM FITS IN?

• SINGLE CODEBASE

• NATIVE UI

• LEARNING JQUERY FOR WEB

• FRIENDLY API

Page 4: Develping iOS and Android apps using Appcelerator Titanium

DID YOU SAY JAVASCRIPT?

• AVAILABLE JAVASCRIPT EXPERT

• EASY TO GRASP

• EXISTING WEB APP DEV 2 MOBILE APP DEV

Page 5: Develping iOS and Android apps using Appcelerator Titanium

DEVICE INDEPENDENT?

JS Code

Ti API

Native Bridge

Native!(Red Indian)

Page 6: Develping iOS and Android apps using Appcelerator Titanium

DEVICE INDEPENDENT?

• Code in JavaScript!

• Use titanium JavaScript library

• Titanium JavaScript interpreter interprets and Call native methods.

• Just like $(‘#someId’) Or Natively document.getElementById(‘someId’)

Page 7: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, THE GOOD, THE BAD & THE UGLY

EVERYTHING NATIVE JS/JSS DEVELOPMENT

EXTENSIBLE DEPLOYMENT IS FUN

BEAUTIFUL IDE

Page 8: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, THE GOOD, THE BAD & THE UGLY

UI DESIGN IS PAIN

640 Lines

of code

Page 9: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, THE GOOD, THE BAD & THE UGLY

NOT EVERYONE’s DOGFOOD

• GRAPHICS APPS

• GAMES

Page 10: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DESIGNING A SAMPLE UI

Ti.UI.createWindow({        backgroundColor:"#FFF"});

Page 11: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DESIGNING A SAMPLE UI

var win = Ti.UI.createWindow({        backgroundColor:"#FFF"});

win.open();

Page 12: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A CONTAINER

var view = Ti.UI.createView({top:10,left:10,height:300,width:300,backgroundColor:"#AAA",borderRadius:10

});win.add(view);

Page 13: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A CONTAINER

var view = Ti.UI.createView({top:10,left:10,height:300,width:300,backgroundColor:"#AAA",borderRadius:10

});win.add(view);

Page 14: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A BUTTON

var button = Ti.UI.createButton({

title:"Click Me",top:10, left:10, 

           height:40, width:280});

view.add(button);

Page 15: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A BUTTON

var button = Ti.UI.createButton({title:"Click Me",top:10, left:10, 

        height:40, width:280});

view.add(button);

Page 16: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A BUTTON

button.addEventListener("click",  function(){    alert("Welcome to JSCon");  });

Page 17: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A BUTTON

button.addEventListener("click",  function(){    alert("Welcome to JSCon 2011");  });

Page 18: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, OPEN A DIALOG

var dlg = Ti.UI.createOptionDialog({title:"Delete?",options:["Yes","No"],cancel:1

});dlg.addEventListener("click",             function(e){

    alert(e.index);});

dlg.show();

Page 19: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ADD A BUTTON

var dlg = Ti.UI.createOptionDialog({title:"Delete?",options:["Yes","No"],cancel:1

});dlg.addEventListener("click",             function(e){

    alert(e.index);});

dlg.show();

Page 20: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, LOTS OF UI ELEMENTS

Page 21: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ITS NOT ONLY ABOUT UI

• DATABASE

• WEB SERVICES

• MEDIA ELEMENTS

• NATIVE FEATUERS• ACCELEROMETER

• GEOLOCATION

• SOCIAL NETWORK

• MONETIZATION

Page 22: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, ACCELEROMETER

Ti.Accelerometer.addEventListener('update', function(e){    alert("accelerometer - x:"+e.x+              ",y:"+e.y+              ",z:"+e.z             );  });

Page 23: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, GEOLOCATION

Ti.Geolocation.getCurrentPosition( function(e){ if (e.error) { alert(’Cant locate'); return; }});

Page 24: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, FIND THE LOCATION

Ti.Geolocation.getCurrentPositio( function(e){ if (e.error) { alert(’Cant locate'); return; }});

Page 25: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, FIND THE LOCATION

var longitude = e.coords.longitude; var latitude = e.coords.latitude; var altitude = e.coords.altitude; var heading = e.coords.heading; var accuracy = e.coords.accuracy; var speed = e.coords.speed;

Page 26: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DRAW THE MAP

var mapview = Ti.Map.createView({    mapType: Ti.Map.STANDARD_TYPE,    region: {latitude: "23.7230556",                    longitude: "90.4086111",     },});

Page 27: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, HOW ABOUT AN APP?

?

Page 28: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, HOW ABOUT VEHICLE TRACKER?

Page 29: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, HOW ABOUT VEHICLE TRACKER?

Page 30: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, HOW ABOUT VEHICLE TRACKER?

Page 31: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, HOW ABOUT A GPS APP?

HOMEWORK

Page 32: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, EVERYTHING SQLITE

SQLite Manager

Page 33: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, INSTALL A DATABASE

Create or open an existing database - var db = Ti.Database.open(‘JSConf’)

Use database with your default data -var db = Ti.Database.install( ‘bundled/JSConf.db’, ‘JSConf’)

Page 34: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, CREATE TABLE

db.execute(‘ CREATE TABLE      IF NOT EXISTS topics ( id INTEGER, title TEXT, speakers TEXT, duration INTEGER, PRIMARY KEY(id) )’);

Page 35: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, INSERT

var result = db.execute(‘ INSERT INTO topics (title, speakers, duration) VALUES (?, ?, ?, ?)‘, ‘Titanium’, ‘Hasin & Hasan’, 30);

Page 36: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, INSERT

• Successful execution ? if (result.getRowsAffected() > 0)

• Last row id ? result.getLastInsertRowId()

Page 37: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, UPDATE

var result = db.execute(‘ UPDATE topics SET title = ? WHERE id = ?‘, ‘Mobile app using titanium’, 1);

Page 38: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, UPDATE

Successful execution ? if (result.getRowsAffected() > 0)

Page 39: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DELETE

var result = db.execute(‘ DELETE FROM topics WHERE id = ?‘, 1);

Page 40: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DELETE

Successful execution ? if (result.getRowsAffected() > 0)

Page 41: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, RETRIEVE

var result = db.execute(‘ SELECT      (id, title, speakers)    FROM topics WHERE id = ?‘, 1);

Page 42: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, RETRIEVE

Iterate through rows -

while (result.isValidRow()) { var title = result.fieldByName(‘title’); result.next();}

Page 43: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, AJAX

var xhr = Ti.Network.createHTTPClient(); xhr.open('GET', 'url'); var params = {id:"1"}xhr.send(params); sendit.onload = function(){ var json = JSON.parse(this.responseText);

}

Page 44: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, AJAX

var xhr = Ti.Network.createHTTPClient(); xhr.open('GET', 'url'); var params = {id:"1"}xhr.send(params); sendit.onload = function(){

var json = JSON.parse(this.responseText); }

Page 45: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, MONETIZE USING iAD

adView = Ti.UI.iOS.createAdView({    width: 'auto',    height: 'auto',}); 

Page 46: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, MEDIA API

AUDIO• PLAY

• STREAM

• RECORD

VIDEO• PLAY

• STREAM

• RECORD

IMAGE• CAPTURE

• DISPLAY

Page 47: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, WEB SERVICES AND SOCIAL NET

• YAHOO SERVICES

• FACEBOOK

Page 48: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, PUSH NOTIFICATION

URBAN AIRSHIP• PUSH NOTIFICATION

• IN APP PURCHASE

• SUBSCRIPTIONS

Page 49: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DEPLOY

• TEST DEVICES

• REAL CUSTOMERS

Page 50: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, GENERATING CERTIFICATE

Page 51: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DEVICE TESTING

Page 52: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DISTRIBUTE

Page 53: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, DESKTOP

• HTML/CSS

• DIFFERENT LANGUAGE• PHP

• PYTHON

• RUBY

• JAVASCRIPT

• CROSS PLATFORM

Page 54: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, WUNDERLIST

Page 55: Develping iOS and Android apps using Appcelerator Titanium

TITANIUM, PACKAGE DESKTOP

Page 56: Develping iOS and Android apps using Appcelerator Titanium

THANK YOU, QUESTIONS?

?