SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Titanium
Write in JavaScript, run native everywhere
2
Ayoub Zamouchi
Développeur Mobile / DzMob
azamouchi@gmail.com
http://dzmob.net
Sommaire
● Introduction
● Comment ça fonctionne ?
● Appcelerator Studio
● Alloy pour faciliter la tache
● Étendre l’SDK Titanium avec des modules
● Avantages / Inconvénients
● Est-ce que Titanium correspond à mon projet ?
3
Introduction
● Appcelerator Titanium, est un framework open source qui permet la
création d’applications mobiles sur les différentes plates-formes (iOS,
Android, Windows Phone, Tizen) à partir d’un seul code JavaScript.
● Introduit en 2008, à la base dédié pour développer des applications Desktop
cross plates-formes. À partir de 2009, le support pour le développement
mobile a été ajouté.
● Le composant majeur c’est Titanium SDK , d’autres produits ont été ajoutés
par la suite (Alloy , Titanium Studio et Appcelertaor Studio, Appcelerator
Platform).
4
Comment ça fonctionne ?
● L’application est écrite en JavaScript
● Le code Javascript sera optimisé et minimisé, il est ensuite interprété lors de
l’exécution de l’application
● Le code JavaScript interagit avec des composants natifs à travers une couche
d’abstraction (Pas dans une webView)
● Ce n’est pas de la traduction de code
● Titanium utilise un frameWork MVC sous le nom de Alloy pour séparer la
partie logique de l’interface
5
Comment ça fonctionne ?
Lors de l’exécution de l’application, il y a trois
composants majeurs
● Le code source Javascript
● Un moteur Javascript (V8 pour Android) et
(JavaScriptCore pour iOS)
● Titanium API (Interaction avec les composants
natifs du système)
Code source JavaScript
Phone APIs
UI APIs
Titanium
Modules (APIs)
KROLL
Bridge
Native SDK (iOS / Android)
Parser
Bytecode
gen
Interpreter
JavaScriptCore/V8
6
Comment ça fonctionne ?
● Le moteur Javascript interprétera le code
source de l’application et créera des
connexions vers les objets natifs à travers
Titanium APIs
● Par exemple le code :
Ti.UI.createTextField ( ) va créer un
UItextView sur iOS et TextView sur Android.
Code source JavaScript
Phone APIs
UI APIs
Titanium
Modules (APIs)
KROLL
Bridge
Native SDK (iOS / Android)
Parser
Bytecode
gen
Interpreter
JavaScriptCore/V8
7
Appcelerator Studio
● IDE utilisé pour créer, tester et publier les
applications mobiles
● Basé sur Aptana Studio
● Appcelerator studio a été introduit en Avril
2015 avec de nouvelles fonctionnalités (Live
view, Code profiling, automated testing ..
etc)
● Titanium Commande Line Interface pour
ceux qui veulent utiliser leur éditeur de
texte préféré et travailler avec la ligne de
commande
8
Alloy pour faciliter la tache
● En mode classique, tout le code de l’
application (Logique , interface ,
Communication avec l’API Titanium ) est en
Javascript (Fichier .js)
● Introduit en 2012, Alloy est un framework
MVC open source (Basé sur Backboone.js)
○ Models : Les enregistrements en base
de données
○ Views : fichiers .xml et .tss pour définir
et styler l'interface utilisateur
○ Controllers : fichiers .js pour la logique
(que se passe-t-il quand un bouton est
pressé )
● Intégré avec Appcelerator / Titanium Studio
9
Alloy pour faciliter la tache
Toute la partie logique de
l’application est dans les
fichiers .js
Les fichiers .tss et .xml
pour gérer l’interface
Les models sous format
de fichiers .js aussi
Tout est dans les fichiers .js
10
Alloy pour faciliter la tache
11
Alloy pour faciliter la tâche
● Un code propre et réutilisable
● Possibilité d'utiliser les librairies de CommonJS , les librairies populaires
comme underscore.js et moment.js son inclus par défaut.
● Possibilité de spécifier le code pour une plat-forme
● Le format TSS est très proche du CSS
12
Étendre L’SDK Titanium avec des Modules
● Un module est une extension de l’SDK Titanium
○ Ajouter le support d’une fonctionnalité du système qui n’est pas fournit par Titanium
○ Ajouter le support à une Bibliothèque tiers (Flurry Analytics par exemple)
○ Optimiser l’expérience utilisateur
● Titanium lui même est composé de plusieurs modules
● Il sert comme un “Bridge” entre le code Javascript et le code natif
● Développé dans le langage natif de la plat-forme
13
Étendre L’SDK Titanium avec des Modules
14
Étendre L’SDK Titanium avec des Modules
● Une connaissance du langage natif de le plateforme est nécessaire pour
créer un module
● Disponibilité sur Appcelerator MarketPlace / Github
15
Avantages
● l’SDK Titanium est open source
● Un seul code à maintenir pour plusieurs plateformes
● (Théoriquement) ça demande moins de temps de créer une application
cross plate-forme que deux applications natives
● L’expérience utilisateur la plus poche du natif
● Réutilisation de code sur différents projets (Alloy widgets)
16
Avantages
● Un développeur mobile peut facilement se familiariser avec Titanium
(JavaScript , xml , tss)
● Une grande communauté active
● Mise à jour rapide de l’SDK pour supporter les différents nouveautés (iOS9 ,
3D Touch , watchOS2, Android 5.0 )
● Une solution complète est proposée (MBaaS , Analytics , PushNotifications )
17
Inconvénients
● La performance des applications n’est pas à 100% que celle d’une
application native (Consommation mémoire, Utilisation du processeur)
● Connaître les bases du natif ça peut aider (Création de modules, Mieux
comprendre les Bugs)
● La taille de l’application finale est volumineuse (12Mb pour une application
de test)
18
Inconvénients
● Difficile de tracer les fuites de mémoire si le projet est trop complexe
● Une création de compte est nécessaire pour utiliser Appcelerator Studio
● Depuis Mars 2015, il faudrait souscrire à une offre “indie” pour pouvoir
publier son application (35$/month) .
19
Est-ce que Titanium correspond à mon projet ?
● Sur un grand projet ou il y a beaucoup de
taches qui s’exécutent à la fois
● Sur un projet qui demande des animations,
des transitions customisées, des layouts
trop complexes
● Une exigence sur la performance de l’
application
● L’application dépend beaucoup du
hardware de l’appareil
● Si le client ne dispose pas d’un grand budget
● Vous voulez lancer un produit rapidement
et créer une communauté
● Pas besoin de maintenir le produit final
(Une application dédiée pour un salon ou
un évènement)
● Temps de réalisation limité
● Des développeurs qui connaissent bien
Javascript (jQuery Mobile , PhoneGap .. )
Non Oui
20
Merci pour votre attention
21

Contenu connexe

En vedette

Bus 475 guide 1 44) Use the following table to answer question: Are Service...
Bus 475 guide 1 44) Use the following table to answer question:   Are Service...Bus 475 guide 1 44) Use the following table to answer question:   Are Service...
Bus 475 guide 1 44) Use the following table to answer question: Are Service...jackkumaran
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic OverviewRajkattamuri
 
Ujian percubaan upsr 2015 n9 - matematik kertas 2
Ujian percubaan upsr 2015   n9 - matematik kertas 2Ujian percubaan upsr 2015   n9 - matematik kertas 2
Ujian percubaan upsr 2015 n9 - matematik kertas 2Wan Fadh
 
Anem al supermercat_ MATERIAL TEA
Anem al supermercat_ MATERIAL TEAAnem al supermercat_ MATERIAL TEA
Anem al supermercat_ MATERIAL TEAEsther Rodriguez
 
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2Ujian bulanan mac 2016 BM Tahun 6 Kertas 2
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2Sudhan Nathan
 
Cuentas por pagar a corto plazo cap. 17 eqpo. 7
Cuentas por pagar a corto plazo cap. 17 eqpo. 7Cuentas por pagar a corto plazo cap. 17 eqpo. 7
Cuentas por pagar a corto plazo cap. 17 eqpo. 7Alfredo Hernandez
 

En vedette (8)

HD-Oslo-Forum-2014
HD-Oslo-Forum-2014HD-Oslo-Forum-2014
HD-Oslo-Forum-2014
 
Bus 475 guide 1 44) Use the following table to answer question: Are Service...
Bus 475 guide 1 44) Use the following table to answer question:   Are Service...Bus 475 guide 1 44) Use the following table to answer question:   Are Service...
Bus 475 guide 1 44) Use the following table to answer question: Are Service...
 
WebServices Basic Overview
WebServices Basic OverviewWebServices Basic Overview
WebServices Basic Overview
 
Orientación Académica 4ºESO
Orientación Académica 4ºESOOrientación Académica 4ºESO
Orientación Académica 4ºESO
 
Ujian percubaan upsr 2015 n9 - matematik kertas 2
Ujian percubaan upsr 2015   n9 - matematik kertas 2Ujian percubaan upsr 2015   n9 - matematik kertas 2
Ujian percubaan upsr 2015 n9 - matematik kertas 2
 
Anem al supermercat_ MATERIAL TEA
Anem al supermercat_ MATERIAL TEAAnem al supermercat_ MATERIAL TEA
Anem al supermercat_ MATERIAL TEA
 
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2Ujian bulanan mac 2016 BM Tahun 6 Kertas 2
Ujian bulanan mac 2016 BM Tahun 6 Kertas 2
 
Cuentas por pagar a corto plazo cap. 17 eqpo. 7
Cuentas por pagar a corto plazo cap. 17 eqpo. 7Cuentas por pagar a corto plazo cap. 17 eqpo. 7
Cuentas por pagar a corto plazo cap. 17 eqpo. 7
 

Similaire à Titanium, write in java script, run native everywhere

Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - AlloyMeetup Mobile Montpellier
 
PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS AppceleratorTiyab K.
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptxIdrissaDembl
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxAleskaVargas2
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017igouverte
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Microsoft
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogySacha Leprêtre
 
Challenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionChallenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionJonathan Le Guellec
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSMicrosoft
 
Développer des applications mobiles natives cross plateformes
Développer des applications mobiles natives cross plateformesDévelopper des applications mobiles natives cross plateformes
Développer des applications mobiles natives cross plateformesLilian Alvarez
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageLaFrenchMobile
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrinesrdissi60
 

Similaire à Titanium, write in java script, run native everywhere (20)

Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
1er Meetup Mobile Montpellier - Présentation Appcelerator Titanium - Alloy
 
PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS Appcelerator
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Adama Coulibaly.pptx
Adama Coulibaly.pptxAdama Coulibaly.pptx
Adama Coulibaly.pptx
 
PRESENTATION_webclient.pptx
PRESENTATION_webclient.pptxPRESENTATION_webclient.pptx
PRESENTATION_webclient.pptx
 
Introduction a Flutter
Introduction a FlutterIntroduction a Flutter
Introduction a Flutter
 
1er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 20171er atelier technique - IGO2 - 17 mai 2017
1er atelier technique - IGO2 - 17 mai 2017
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
 
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
Créer des applications métier (LOB) pour Windows 8 et Windows Phone 8
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 
Challenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionChallenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - Introduction
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 
android.pdf
android.pdfandroid.pdf
android.pdf
 
Développer des applications mobiles natives cross plateformes
Développer des applications mobiles natives cross plateformesDévelopper des applications mobiles natives cross plateformes
Développer des applications mobiles natives cross plateformes
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Cours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrrCours n°1.1-Introduction.pdf angularrrrr
Cours n°1.1-Introduction.pdf angularrrrr
 

Titanium, write in java script, run native everywhere

  • 1. Titanium Write in JavaScript, run native everywhere
  • 2. 2 Ayoub Zamouchi Développeur Mobile / DzMob azamouchi@gmail.com http://dzmob.net
  • 3. Sommaire ● Introduction ● Comment ça fonctionne ? ● Appcelerator Studio ● Alloy pour faciliter la tache ● Étendre l’SDK Titanium avec des modules ● Avantages / Inconvénients ● Est-ce que Titanium correspond à mon projet ? 3
  • 4. Introduction ● Appcelerator Titanium, est un framework open source qui permet la création d’applications mobiles sur les différentes plates-formes (iOS, Android, Windows Phone, Tizen) à partir d’un seul code JavaScript. ● Introduit en 2008, à la base dédié pour développer des applications Desktop cross plates-formes. À partir de 2009, le support pour le développement mobile a été ajouté. ● Le composant majeur c’est Titanium SDK , d’autres produits ont été ajoutés par la suite (Alloy , Titanium Studio et Appcelertaor Studio, Appcelerator Platform). 4
  • 5. Comment ça fonctionne ? ● L’application est écrite en JavaScript ● Le code Javascript sera optimisé et minimisé, il est ensuite interprété lors de l’exécution de l’application ● Le code JavaScript interagit avec des composants natifs à travers une couche d’abstraction (Pas dans une webView) ● Ce n’est pas de la traduction de code ● Titanium utilise un frameWork MVC sous le nom de Alloy pour séparer la partie logique de l’interface 5
  • 6. Comment ça fonctionne ? Lors de l’exécution de l’application, il y a trois composants majeurs ● Le code source Javascript ● Un moteur Javascript (V8 pour Android) et (JavaScriptCore pour iOS) ● Titanium API (Interaction avec les composants natifs du système) Code source JavaScript Phone APIs UI APIs Titanium Modules (APIs) KROLL Bridge Native SDK (iOS / Android) Parser Bytecode gen Interpreter JavaScriptCore/V8 6
  • 7. Comment ça fonctionne ? ● Le moteur Javascript interprétera le code source de l’application et créera des connexions vers les objets natifs à travers Titanium APIs ● Par exemple le code : Ti.UI.createTextField ( ) va créer un UItextView sur iOS et TextView sur Android. Code source JavaScript Phone APIs UI APIs Titanium Modules (APIs) KROLL Bridge Native SDK (iOS / Android) Parser Bytecode gen Interpreter JavaScriptCore/V8 7
  • 8. Appcelerator Studio ● IDE utilisé pour créer, tester et publier les applications mobiles ● Basé sur Aptana Studio ● Appcelerator studio a été introduit en Avril 2015 avec de nouvelles fonctionnalités (Live view, Code profiling, automated testing .. etc) ● Titanium Commande Line Interface pour ceux qui veulent utiliser leur éditeur de texte préféré et travailler avec la ligne de commande 8
  • 9. Alloy pour faciliter la tache ● En mode classique, tout le code de l’ application (Logique , interface , Communication avec l’API Titanium ) est en Javascript (Fichier .js) ● Introduit en 2012, Alloy est un framework MVC open source (Basé sur Backboone.js) ○ Models : Les enregistrements en base de données ○ Views : fichiers .xml et .tss pour définir et styler l'interface utilisateur ○ Controllers : fichiers .js pour la logique (que se passe-t-il quand un bouton est pressé ) ● Intégré avec Appcelerator / Titanium Studio 9
  • 10. Alloy pour faciliter la tache Toute la partie logique de l’application est dans les fichiers .js Les fichiers .tss et .xml pour gérer l’interface Les models sous format de fichiers .js aussi Tout est dans les fichiers .js 10
  • 11. Alloy pour faciliter la tache 11
  • 12. Alloy pour faciliter la tâche ● Un code propre et réutilisable ● Possibilité d'utiliser les librairies de CommonJS , les librairies populaires comme underscore.js et moment.js son inclus par défaut. ● Possibilité de spécifier le code pour une plat-forme ● Le format TSS est très proche du CSS 12
  • 13. Étendre L’SDK Titanium avec des Modules ● Un module est une extension de l’SDK Titanium ○ Ajouter le support d’une fonctionnalité du système qui n’est pas fournit par Titanium ○ Ajouter le support à une Bibliothèque tiers (Flurry Analytics par exemple) ○ Optimiser l’expérience utilisateur ● Titanium lui même est composé de plusieurs modules ● Il sert comme un “Bridge” entre le code Javascript et le code natif ● Développé dans le langage natif de la plat-forme 13
  • 14. Étendre L’SDK Titanium avec des Modules 14
  • 15. Étendre L’SDK Titanium avec des Modules ● Une connaissance du langage natif de le plateforme est nécessaire pour créer un module ● Disponibilité sur Appcelerator MarketPlace / Github 15
  • 16. Avantages ● l’SDK Titanium est open source ● Un seul code à maintenir pour plusieurs plateformes ● (Théoriquement) ça demande moins de temps de créer une application cross plate-forme que deux applications natives ● L’expérience utilisateur la plus poche du natif ● Réutilisation de code sur différents projets (Alloy widgets) 16
  • 17. Avantages ● Un développeur mobile peut facilement se familiariser avec Titanium (JavaScript , xml , tss) ● Une grande communauté active ● Mise à jour rapide de l’SDK pour supporter les différents nouveautés (iOS9 , 3D Touch , watchOS2, Android 5.0 ) ● Une solution complète est proposée (MBaaS , Analytics , PushNotifications ) 17
  • 18. Inconvénients ● La performance des applications n’est pas à 100% que celle d’une application native (Consommation mémoire, Utilisation du processeur) ● Connaître les bases du natif ça peut aider (Création de modules, Mieux comprendre les Bugs) ● La taille de l’application finale est volumineuse (12Mb pour une application de test) 18
  • 19. Inconvénients ● Difficile de tracer les fuites de mémoire si le projet est trop complexe ● Une création de compte est nécessaire pour utiliser Appcelerator Studio ● Depuis Mars 2015, il faudrait souscrire à une offre “indie” pour pouvoir publier son application (35$/month) . 19
  • 20. Est-ce que Titanium correspond à mon projet ? ● Sur un grand projet ou il y a beaucoup de taches qui s’exécutent à la fois ● Sur un projet qui demande des animations, des transitions customisées, des layouts trop complexes ● Une exigence sur la performance de l’ application ● L’application dépend beaucoup du hardware de l’appareil ● Si le client ne dispose pas d’un grand budget ● Vous voulez lancer un produit rapidement et créer une communauté ● Pas besoin de maintenir le produit final (Une application dédiée pour un salon ou un évènement) ● Temps de réalisation limité ● Des développeurs qui connaissent bien Javascript (jQuery Mobile , PhoneGap .. ) Non Oui 20
  • 21. Merci pour votre attention 21