Créer des applications multi devices avec ExtJs 6

Transcription

Créer des applications multi devices avec ExtJs 6
Créer des applications
multi devices avec ExtJs 6
Sencha Paris Meetup - Mardi 12 mai 2015
Nicolas Meunier
Remerciements
Merci a notre sponsor KPMG pour le prêt de la salle et le buffet.
ExtJs 6 un framework multi devices
• Merge d’ExtJs et de Sencha Touch
• 2 API
• Classic (composants ExtJs)
• Modern (composants Sencha Touch)
• 3 types d’applications
• Desktop (utilise l’API Classic)
• Mobile (utilise l’API Modern)
• Unisersel (API Classic et Modern en une seule application)
Architecture ExtJs 6
Classic
(Ext JS)
Modern
(Sencha Touch)
Core
•
•
•
Models
Stores
Controllers
…
•
Views
Ressources ExtJS 6
• ExtJs 6 Preview
• ExtJs 6.0.0
• Sencha Cmd 6.0.0.92
Download: http://pages.sencha.com/Ext-JS-6-Early-Release.html
• Documentation: http://docs.sencha.com/extjs/6.0/
• Release prévue pour juin / juillet
Sencha Cmd
Outils en ligne de commande permettant de :
•
•
•
•
•
•
Générer un nouveau projet
Générer des composants du projet (model, controller…)
Créer un server web pour tester le projet
Créer des thèmes
Packager une application
Etc…
http://docs.sencha.com/cmd/index.html
Créer un nouveau projet
Commande Sencha Cmd :
sencha –sdk [path du sdk] generate app [nom de l’app] [path de l’app] [api]
Exemple :
sencha -sdk ../ext-6.0.0 generate app MyApp ./
Tester le nouveau projet
Commande Sencha Cmd (à exécuter dans le dossier de l’application)
sencha web start
Dans un navigateur taper l’url :
http://localhost:1841
http://localhost:1841/?device=modern
(device=modern ou classic pour forcer le type de device)
Architecture d’un projet
• App : dossier contenant les sources core de l’application
• Classic : vues « ExtJs » utilisées pour le mode desktop
• Modern : vues « Sencha Touch » utilisées pour le mode
mobile
Créer un projet Classic
Commande Sencha Cmd pour générer un projet desktop (ExtJs) :
sencha –sdk [path du sdk] generate app [nom de l’app] [path de l’app] classic
Exemple :
sencha -sdk ../ext-6.0.0 generate app MyApp ./ classic
Créer un projet Modern
Commande Sencha Cmd pour générer un projet mobile (Sencha Touch) :
sencha –sdk [path du sdk] generate app [nom de l’app] [path de l’app] modern
Exemple :
sencha -sdk ../ext-6.0.0 generate app MyApp ./ modern
Commandes utiles
Rafraichir l’application :
sencha app refresh
Peut être nécessaire après la modification du fichier app.json
Générer un modèle:
sencha generate model User id:int,name,email
Vues Classic vs Modern
Classic
Modern
Mutualiser le code avec les ViewControllers
Création du viewController (dans le code commun de l’application)
Dans les méthodes du controller, this.view donne une référence vers la vue appelante.
Lier les vues au ViewController
Classic
Modern
Les outils pour des vues multi-devices
• ExtJs 5 : plugin responsive
Permet de définir des règles liées à l’affichage de la vue
• Sencha Touch : profiles
Permet de créer des vues spécifiques à un device (phone, tablet)
• ExtJs 6 : responsive + profile
Disponible en mode Classic et Modern
Vue Responsive
Un tabPanel responsive:
Les propriétés possibles :
• Landscape: orientation paysage (n’existe pas en desktop)
• Portrait: orientation portrait (n’existe pas en desktop)
• Tall: width < height
• Wide: width > height
• Width: largeur du viewport
• Height: hauteur du viewport
• Platform: (desktop, tablet, phone, touch, safari, chrome,
windows, firefox, ios, android, blackberry, tizen)
Vue Responsive
Quelques exemples de configurations:
• 'width < 800'
• 'width >= 800'
• 'desktop || width > 800'
• '!(desktop || width > 800)'
Les profiles
Les profils permettent d’aller plus loin que les vues responsive, en proposant de
changer de vue en fonction du device.
• Un profile correspond à un ou plusieurs device (phone, tablet, desktop)
• Permet de spécialiser une vue pour un profile
Ajouter un profile
Commande Sencha Cmd pour ajouter un profile au projet:
sencha generate profile device
Exemple :
sencha generate profile Phone
sencha generate profile Desktop
Utilisations des profiles
Desktop
Phone
Active la vue Home dans : app/view/desktop
Active la vue Home dans : app/view/phone
Utilisations des profiles
Définition de la vue d’un profile:
Exemple d’utilisation d’une vue:

Documents pareils