SlideShare a Scribd company logo
ANDroid Conference - Ancona
Giorgio Mandolini
g.mandolini@e-xtrategy.net
@g_mandolini
Rapid Application Development con
Titanium Appcelerator
ANDroid Conference - Ancona
Ti
Titanum Appcelerator
Titanium is an open source
framework for building native,
hybrid and mobile web apps from
a single JavaScript-based SDK
other
JavaScript
ANDroid Conference - Ancona
Yes… JavaScript :-)
ANDroid Conference - Ancona
How does it work ?
Application JS
APIs and Optional Modules
Bridge
OS (Android, iOS, other)
other
SDK
3 major components
● JavaScript source code (inlined into a
Java or Objective-C file and compiled as
an encoded string),
● the platform-specific implementation
of the Titanium API in the native
programming language,
● a JavaScript interpreter that will be
used to evaluate code at runtime
http://www.appcelerator.com/blog/2012/05/comparing-
titanium-and-phonegap/
ANDroid Conference - Ancona
How does it work ? (2)
● When your application is launched, a JavaScript execution environment
is created in native code and your application source code is evaluated.
● Injected into the JavaScript runtime environment of your application is
what we call “proxy” objects – basically, a JavaScript object which has a
paired object in native code.
● Colloquially we will often refer to “JavaScript land” and “native land” in a
Titanium application, as they are kind of parallel universes to one
another. The proxy object exists both in JavaScript land and native land
and serves as the “bridge” between the two.
http://www.appcelerator.com/blog/2012/05/comparing-titanium-and-phonegap/
ANDroid Conference - Ancona
How does it work ? (3)
http://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Module_Concepts
ANDroid Conference - Ancona
Titanium + Alloy
ANDroid Conference - Ancona
Anatomia di un progetto Alloy
Model
View
Controller
● Architettura MVC
● Stili CSS like
● Data-bind su Modelli
backbone.js
ANDroid Conference - Ancona
tiapp.xml - Il cuore della nostra app
Optional Modules
ANDroid Conference - Ancona
Extending API
why?
● Accessing specific OS features
● Leveraging existing native
libraries
● Optimizing critical portions of
the app
● Extending portions of the
Titanium Mobile framework
how?
● Creating one or more native
modules throught the Titanium
Module SDK
● Great flexibility
● Easy to distribute (Open
Source, Binary packages,
Appcelerator Marketplace)
http://www.slideshare.net/omorandi/extending-appcelerator-titanium-mobile-through-native-
modules
© Olivier Morandi - http://titaniumninja.com/
ANDroid Conference - Ancona
Run! Ehm… wait!
Lanciamo l’app...
● Android Emulator ? → :-(
● Android Emulator x86 + Intel HAXM ? → not bad!
● Real devices → real feedback, but not so viable
● Genymotion ? → better than Intel HAXM
...ma possiamo fare di meglio!
● Come mettere tutto insieme?
● Come testare (quasi) istantaneamente su più device/emulatori?
ANDroid Conference - Ancona
TiShadow comes to the rescue!
tishadow app
● Install once (a few), many runs
tishadow server
● push the app to connected hosts
tishadow cli
● our tool to send commands to
server
ANDroid Conference - Ancona
TiShadow: automated test
Jasmine
● BDD
● Assertions
● Synch & Asynch test
tishadow spec
● run tests against connected devices
● tishadow @ spec --update -l nl → some magic :-)
ANDroid Conference - Ancona
Demo time

More Related Content

What's hot

Comparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-jsComparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-js
easyjobworld
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Lohith Goudagere Nagaraj
 
Angular, ASP.NET Core, and Visual Studio Code - Oh My!
Angular, ASP.NET Core, and Visual Studio Code - Oh My!Angular, ASP.NET Core, and Visual Studio Code - Oh My!
Angular, ASP.NET Core, and Visual Studio Code - Oh My!
Aaron Marisi
 
TypeScript
TypeScriptTypeScript
Mvvm is like born fraction
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fraction
Ken Haneda
 
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
Viktor Turskyi
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
Gokuldas Pillai
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
Kostis Dadamis
 
Swagger in the API Lifecycle
Swagger in the API LifecycleSwagger in the API Lifecycle
Swagger in the API Lifecycle
Ole Lensmar
 
Nativescript
NativescriptNativescript
Implement Web API with Swagger
Implement Web API with SwaggerImplement Web API with Swagger
Implement Web API with Swagger
Jiang Wu
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
SoHo Dragon
 
ASP.NET
ASP.NETASP.NET
Tutorial introduction to OSGi
Tutorial introduction to OSGiTutorial introduction to OSGi
Tutorial introduction to OSGi
Paul Bakker
 
An overview of devportal technologies and their (dis)advantages
An overview of devportal technologies and their (dis)advantagesAn overview of devportal technologies and their (dis)advantages
An overview of devportal technologies and their (dis)advantages
Pronovix
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
Simone Basso
 
Building APIs with Node.js and Swagger
Building APIs with Node.js and SwaggerBuilding APIs with Node.js and Swagger
Building APIs with Node.js and Swagger
Jeremy Whitlock
 
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
apidays
 

What's hot (19)

Comparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-jsComparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-js
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
Angular, ASP.NET Core, and Visual Studio Code - Oh My!
Angular, ASP.NET Core, and Visual Studio Code - Oh My!Angular, ASP.NET Core, and Visual Studio Code - Oh My!
Angular, ASP.NET Core, and Visual Studio Code - Oh My!
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Mvvm is like born fraction
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fraction
 
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
 
Swagger in the API Lifecycle
Swagger in the API LifecycleSwagger in the API Lifecycle
Swagger in the API Lifecycle
 
Nativescript
NativescriptNativescript
Nativescript
 
Implement Web API with Swagger
Implement Web API with SwaggerImplement Web API with Swagger
Implement Web API with Swagger
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Tutorial introduction to OSGi
Tutorial introduction to OSGiTutorial introduction to OSGi
Tutorial introduction to OSGi
 
An overview of devportal technologies and their (dis)advantages
An overview of devportal technologies and their (dis)advantagesAn overview of devportal technologies and their (dis)advantages
An overview of devportal technologies and their (dis)advantages
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
 
Building APIs with Node.js and Swagger
Building APIs with Node.js and SwaggerBuilding APIs with Node.js and Swagger
Building APIs with Node.js and Swagger
 
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
apidays LIVE London 2021 - Designing APIs: Less Data is More by Damir Svrtan,...
 

Similar to Rapid application development con titanium appcelerator

Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...
Shoukry Kattan
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
Sumit Kataria
 
Titanium Alloy Framework
Titanium Alloy FrameworkTitanium Alloy Framework
Titanium Alloy Framework
Techday7
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator Titanium
Adam Paxton
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
Adam Paxton
 
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
 
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Adam Paxton
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
Sentinel Solutions Ltd
 
Appcelerator Titanium Alloy
Appcelerator Titanium Alloy Appcelerator Titanium Alloy
Appcelerator Titanium Alloy
karthi-anubavam
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium Alloy
Karthi Ponnusamy
 
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentationmodeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
Aaron Saunders
 
tittanium
tittaniumtittanium
tittanium
PaYal Umraliya
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
ralcocer
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
Ricardo Alcocer
 
Angular Js
Angular JsAngular Js
Angular Js
Knoldus Inc.
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma
 
Big Improvement_ New AngularJS Tools Changing How We Develop.pptx
Big Improvement_ New AngularJS Tools Changing How We Develop.pptxBig Improvement_ New AngularJS Tools Changing How We Develop.pptx
Big Improvement_ New AngularJS Tools Changing How We Develop.pptx
sarah david
 
Titanium presentation
Titanium presentationTitanium presentation
Titanium presentation
aaltavas
 
Developing native mobile applications using titanium
Developing native mobile applications using titaniumDeveloping native mobile applications using titanium
Developing native mobile applications using titanium
Vlad Filip
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
Mizanur Sarker
 

Similar to Rapid application development con titanium appcelerator (20)

Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
 
Titanium Alloy Framework
Titanium Alloy FrameworkTitanium Alloy Framework
Titanium Alloy Framework
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator Titanium
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
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
 
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
Appcelerator Titanium Alloy
Appcelerator Titanium Alloy Appcelerator Titanium Alloy
Appcelerator Titanium Alloy
 
Appcelerator Titanium Alloy
Appcelerator Titanium AlloyAppcelerator Titanium Alloy
Appcelerator Titanium Alloy
 
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentationmodeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
 
tittanium
tittaniumtittanium
tittanium
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
 
Angular Js
Angular JsAngular Js
Angular Js
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Big Improvement_ New AngularJS Tools Changing How We Develop.pptx
Big Improvement_ New AngularJS Tools Changing How We Develop.pptxBig Improvement_ New AngularJS Tools Changing How We Develop.pptx
Big Improvement_ New AngularJS Tools Changing How We Develop.pptx
 
Titanium presentation
Titanium presentationTitanium presentation
Titanium presentation
 
Developing native mobile applications using titanium
Developing native mobile applications using titaniumDeveloping native mobile applications using titanium
Developing native mobile applications using titanium
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 

Rapid application development con titanium appcelerator

  • 1. ANDroid Conference - Ancona Giorgio Mandolini g.mandolini@e-xtrategy.net @g_mandolini Rapid Application Development con Titanium Appcelerator
  • 2. ANDroid Conference - Ancona Ti Titanum Appcelerator Titanium is an open source framework for building native, hybrid and mobile web apps from a single JavaScript-based SDK other JavaScript
  • 3. ANDroid Conference - Ancona Yes… JavaScript :-)
  • 4. ANDroid Conference - Ancona How does it work ? Application JS APIs and Optional Modules Bridge OS (Android, iOS, other) other SDK 3 major components ● JavaScript source code (inlined into a Java or Objective-C file and compiled as an encoded string), ● the platform-specific implementation of the Titanium API in the native programming language, ● a JavaScript interpreter that will be used to evaluate code at runtime http://www.appcelerator.com/blog/2012/05/comparing- titanium-and-phonegap/
  • 5. ANDroid Conference - Ancona How does it work ? (2) ● When your application is launched, a JavaScript execution environment is created in native code and your application source code is evaluated. ● Injected into the JavaScript runtime environment of your application is what we call “proxy” objects – basically, a JavaScript object which has a paired object in native code. ● Colloquially we will often refer to “JavaScript land” and “native land” in a Titanium application, as they are kind of parallel universes to one another. The proxy object exists both in JavaScript land and native land and serves as the “bridge” between the two. http://www.appcelerator.com/blog/2012/05/comparing-titanium-and-phonegap/
  • 6. ANDroid Conference - Ancona How does it work ? (3) http://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Module_Concepts
  • 7. ANDroid Conference - Ancona Titanium + Alloy
  • 8. ANDroid Conference - Ancona Anatomia di un progetto Alloy Model View Controller ● Architettura MVC ● Stili CSS like ● Data-bind su Modelli backbone.js
  • 9. ANDroid Conference - Ancona tiapp.xml - Il cuore della nostra app Optional Modules
  • 10. ANDroid Conference - Ancona Extending API why? ● Accessing specific OS features ● Leveraging existing native libraries ● Optimizing critical portions of the app ● Extending portions of the Titanium Mobile framework how? ● Creating one or more native modules throught the Titanium Module SDK ● Great flexibility ● Easy to distribute (Open Source, Binary packages, Appcelerator Marketplace) http://www.slideshare.net/omorandi/extending-appcelerator-titanium-mobile-through-native- modules © Olivier Morandi - http://titaniumninja.com/
  • 11. ANDroid Conference - Ancona Run! Ehm… wait! Lanciamo l’app... ● Android Emulator ? → :-( ● Android Emulator x86 + Intel HAXM ? → not bad! ● Real devices → real feedback, but not so viable ● Genymotion ? → better than Intel HAXM ...ma possiamo fare di meglio! ● Come mettere tutto insieme? ● Come testare (quasi) istantaneamente su più device/emulatori?
  • 12. ANDroid Conference - Ancona TiShadow comes to the rescue! tishadow app ● Install once (a few), many runs tishadow server ● push the app to connected hosts tishadow cli ● our tool to send commands to server
  • 13. ANDroid Conference - Ancona TiShadow: automated test Jasmine ● BDD ● Assertions ● Synch & Asynch test tishadow spec ● run tests against connected devices ● tishadow @ spec --update -l nl → some magic :-)
  • 14. ANDroid Conference - Ancona Demo time