Titanium Studio et les modules Modules, librairies and co#4 Meetup Paris Titanium     Y a-t-il des modules pour titanium ?...
Qui suis-je ?   Que fais-je ? ou vais-je ?  - Consultant sur des projets Business Intelligence  - Aide à la mise en place ...
Le menu  Les différents plats                         3
Le marketPlace titanium    les généralités - MarketPlace ->Search Results > Newest first       - Veille techno !! - Gestio...
Des modules du marketplace    les mesures - Module gérant le SDK 2 de google analytics (tableaux de bords orientés   Mobil...
Des modules du marketplace  le push android                             6
Des modules du marketplace   les open sources !!                            Bar code        Bump                          ...
Une librairie utilitaire    Titan Up - Une librairie utilitaire       - https://github.com/jpriebe/TitanUp - Respecte Comm...
La librairie : Titan Up     Les informations devices - Device.os      - Retourne ios ou android - Device.physical(Height|W...
Titan Up     Le location manager et mapviews -   TU.LocationManager      - Utilise les meilleures options de géolocs.     ...
Titan Up       Aide pour UI-   TU.UI.EventThrottle         -   Prévenir les doubles clics-   TU.UI.Sizer(numeric)      - P...
Modules et Common JS  Moi aussi je veux être modulaire !!!                 - Constat : pauvreté de la doc CommonJS coté   ...
Modules et Common JS           Les modules génériques                                   -   Module générique non objet  - ...
Modules et Common JS         Les classes statiques                                                           -    Module o...
Modules et Common JS              Les classes                                                           -       Module obj...
Modules et Common JS            Les classes et prototype- Besoin de bcp d’objets et de performance?                       ...
Modules et Common JS             et on peu l’utiliser pour les UI ? qui encapsule (wrapper)                               ...
QUESTIONSET REPONSES              18
Sources utiliées pour la présentation  - http://smorgasbork.com/component/content/article/38-titanium-    mobile/135-titan...
Prochain SlideShare
Chargement dans…5
×

Titanium studio et les modules

1 032 vues

Publié le

1 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 032
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
22
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Admob : régie pub mobile de gg pour diffuser de la pub pour son mobile. AirPrint : Imprimer sur une imprimante qui est connectée à internet. BarcodeScanner : Permet la lecture des codes bar. Bump : On entrechoque deux téléphones et on tranfère des données. Charts : librairie pour créer des beaux graphiques Column : déoupage en colonnes de texte Facebook : utiliser l’api native android ou iphone Flurry : analytics spécialisé pour les mobiles Image Factory : Module qui permet de créer/modifier des images. Map v2 : Version de mapV2 pour android
  • Titanium studio et les modules

    1. 1. Titanium Studio et les modules Modules, librairies and co#4 Meetup Paris Titanium Y a-t-il des modules pour titanium ? Quels sont les modules intéressants ? Et moi si veux programmer de manière modulaire ? Gautier Pialat
    2. 2. Qui suis-je ? Que fais-je ? ou vais-je ? - Consultant sur des projets Business Intelligence - Aide à la mise en place de projets agiles (Scrum) - Co-Fondateur de captainspot (SM et développeur sur Titanium) - Passionné par l’agile, le Lean startup et l’entreprenariat - Interventions chez Leeaarn 2
    3. 3. Le menu Les différents plats 3
    4. 4. Le marketPlace titanium les généralités - MarketPlace ->Search Results > Newest first - Veille techno !! - Gestion des modules obsolètes absente. - Attention aux vieux modules - Préférer le téléchargement des modules gratuits et open source sur github! - 24 modules passés en open source - Modules : License violation detected - Créer un nouveau projet - Récupérer guid et copier dans ancien projet - La Solution 4
    5. 5. Des modules du marketplace les mesures - Module gérant le SDK 2 de google analytics (tableaux de bords orientés Mobile) - Disponible depuis mars 2013 - Compatible Android et Iphone. 5
    6. 6. Des modules du marketplace le push android 6
    7. 7. Des modules du marketplace les open sources !! Bar code Bump Charts (iOS) scanner column image Maps v2 factory (android) Identifie ton besoin puis prends des modules 7
    8. 8. Une librairie utilitaire Titan Up - Une librairie utilitaire - https://github.com/jpriebe/TitanUp - Respecte CommonJS - Des informations sur le téléphone. - Aide à une gestion propre de la géolocalisation et des vues MapsV1 - Aide pour le design de composants graphiques génériques (crossPlatform) 8
    9. 9. La librairie : Titan Up Les informations devices - Device.os - Retourne ios ou android - Device.physical(Height|Width) - Récupérer les dip ou px longueur et largeur - Device.isTablet - Savoir si on est sur une tablette - Device.working(Width|Height) - Récupérer les dip ou px longueur et largeur (sans les menus, nav bars…) 9
    10. 10. Titan Up Le location manager et mapviews - TU.LocationManager - Utilise les meilleures options de géolocs. - Une fois la localisation trouvée un refresh par minute. - TU.UI.Views.ManagedMapView - Constat : crash android 2 instances de mapview par appli (map V1). - Gestion d’instance unique - Inclure une mapview dans une vue via une fonction ? - Lors de appel fonction si vue différente alors on supprime la mapview de l’ancienne vue et on la met dans la nouvelle vue. 10
    11. 11. Titan Up Aide pour UI- TU.UI.EventThrottle - Prévenir les doubles clics- TU.UI.Sizer(numeric) - Permet de calculer les dip pour iphone et les px pour android.- TU.UI.Theme - Mettre dans un endroit centralisé ces fonts et couleurs - TU.UI.Views.SimplePicker (ios et android) - TU.UI.Views.SelectBar (ios et android) 11
    12. 12. Modules et Common JS Moi aussi je veux être modulaire !!! - Constat : pauvreté de la doc CommonJS coté éditeur (comme souvent !!) - Ne plus utiliser les includes : - Risque de collision de variables - Ne pas utiliser les multi contextes - Quelques règles de l’approche modulaire : - Ne charger les modules que quand cela est nécessaire - N’exporter que ce dont vous avez besoin - Utiliser prototype dès que vous le pouvez 12
    13. 13. Modules et Common JS Les modules génériques - Module générique non objet - Besoin de fonctions jouant un rôle - Export des fonctions nécessaires utilitaire ? HelloModule.js app.jsvar _textHello = ‘hello‘;var _textCoucou = ‘coucou ‘; var HelloM= require (/HelloModule);var _counter = 0; HelloM.sayHello();function sayHello () HelloM.sayCoucou();{ alert(HelloM. countNBHelloOrCoucou())_counter ++; return _textHello;}function sayCoucou (){_counter ++; return _textCoucou ;}function countNBHelloOrCoucou(){return _counter ++;}exports.sayHello = sayHello;exports.sayCoucou = sayCoucou;exports.countNBHelloOrCoucou = countNBHelloOrCoucou; 13
    14. 14. Modules et Common JS Les classes statiques - Module objet - Classe objet utilitaire ? - Export du module PointCounter.js app.js//variables statiques privéesvar _points = 0;var _defaultPoints = 3; var Counter= require (/PointCounter);function MyClass (){ Counter. winPoints();} alert(‘’J’ai déjà ‘’+Counter.winPoints()+’’ points’’ );// méthode statique privéevar _ pointsCounter = function (){_points = _points + _defaultPoints;return _points ;};// méthode statique publiqueMyClass.winPoints = function (){return _pointsCounter() ;};module.exports = PointCounter; 14
    15. 15. Modules et Common JS Les classes - Module objet - Besoin d’objets ? - Export de l’objet nécessaire Point.js pointFactory.jsfunction Point(x,y){ var _x = x; var Point = require(/Point); var _y= y; var p1 = new Point(5,2); var _point = null; var p2 = new Point(12,-2); var _pointCreator = function () { alert(p1.printPoint); point = {x : _x , y : _y} }; this.xgetPoint = function () { return _point; } this.printPoint = function () { return ‘’Point x = ’’+_point .x+’’ et y = ‘’+_point .y; }_pointCreator();}module.exports = Point; 15
    16. 16. Modules et Common JS Les classes et prototype- Besoin de bcp d’objets et de performance? - Utiliser prototype Person.js contacts.js function Person(firstName,lastName) { this.firstName = firstName; var Person = require(Person); this.lastName = lastName; var arrayP = new array(); } Person.prototype.fullName = function() { arrayP.push(new Person(‘erwan,‘sarcelette);) return this.firstName+ +this.lastName; arrayP.push(new Person(‘lucie,‘durant);) }; arrayP.push(new Person(‘damien,‘louis);) module.exports = Person; var i; for(i=arrayP.length;c--;) { Ti.API.info(arrayP[i].fullName()); } La fonction prototype est définie une fois au chargement de l‘objet => gain de performance !! On ne peut pas accéder aux membres et méthodes privés 16
    17. 17. Modules et Common JS et on peu l’utiliser pour les UI ? qui encapsule (wrapper) - Classe - Besoin d’objets graphiques modulaires - Fonction qui étend l’objet graphique MyWindow .js (parasitic inherance)function MyWindow (params) app.js{ var _self = null; var _iv = null; var MyWindow = require (/MyWindow); var _imageurl = http://www.google.com/images/srpr/logo3w.png; if (typeof params.imageurl != "undefined") var w = new MyWindow ({ { imageurl: _imageurl = params.imageurl; http://l.yimg.com/a/i/ww/met/yahoo_logo_us_061509.png delete params.imageurl; }); } _self = Ti.UI.createWindow (params); w.open (); _iv = Ti.UI.createImageView ({ setTimeout (function () { top: 0, w.changeImage (https://s- image: _imageurl }); static.ak.fbcdn.net/rsrc.php/v2/yv/r/aWMatkshsiW.png); }, 3000); _self.add (_iv); _self.changeImage = function (imageurl) { _iv.setImage (imageurl); }; return _self;}module.exports = MyWindow; 17
    18. 18. QUESTIONSET REPONSES 18
    19. 19. Sources utiliées pour la présentation - http://smorgasbork.com/component/content/article/38-titanium- mobile/135-titanium-mobile-beyond-the-prototype (CommonJS) - https://marketplace.appcelerator.com/home (maketplace) - Appcelerator Titanium : Patterns and Best Practices(livre et commonJS) - https://github.com/appcelerator/titanium_modules (module open sources titanium) - http://iamyellow.net/post/40100981563/gcm-appcelerator-titanium- module (push notification android) - https://github.com/MattTuttle/titanium-google-analytics (gg analytics) 19

    ×