The Hybrid Theory
Je suis ici...
...ou là
Ingénieur d'études à Niji depuis 2 ans
@feoche
Je souhaite créer une application native
D'accord, pour quelles plateformes?
iOS, Android et Windows Phone
On peut faire cela !
Ça nous fait 3 x 300K !
*Sort sa merveilleuse calculette*
Oula, c'est cher dis donc ! Je vais voir ailleurs alors !
Unicité du code avec le site web
Pas d'accès aux fonc° natives
Mais HTML5 permet d'accéder à certaines fonctionnalités (géoloc, accéléromètre,...)
Ajout de styles adaptés au device ciblé (Material Design pour Android)
Pas adapté à du front (CSS) complexe
Performance, chargement automatique
Framework React
Flexibilité des interfaces
Base de Ruby
(pour Niji)
Du sur mesure
En C#, et outil payant
Beaucoup d'intégrations par défaut
Arborescence en XML, et outil payant
(pour Niji)
Après avoir "buildé" l'appli avec des tâches Gulp, c'est restitué comme ceci :
Application Web
<div id="example-item-icons" class="ionic-body">
<div class="bar bar-header">
<div class="h1 title">List Icons</div>
</div>
<div class="content has-header ionic-pseudo">
<div class="list">
// [...]
<a class="item item-icon-left" href="#">
<i class="icon ion-person-stalker"></i>
Friends
<span class="badge badge-assertive">0</span>
</a>
<div class="item item-divider">
Activities
</div>
<a class="item item-icon-left" href="#">
<i class="icon ion-beaker"></i>
Breaking Bad
<span class="item-note">
Blue, yellow, pink
</span>
</a>
// [...]
</div>
</div>
</div>
<ion-slide-box on-slide-changed="slideHasChanged($index)">
<ion-slide>
<div class="box blue"><h1>BLUE</h1></div>
</ion-slide>
<ion-slide>
<div class="box yellow"><h1>YELLOW</h1></div>
</ion-slide>
<ion-slide>
<div class="box pink"><h1>PINK</h1></div>
</ion-slide>
</ion-slide-box>
angular.module('mySuperApp', ['ionic'])
.controller(function($scope, $ionicActionSheet, $timeout) {
$scope.show = function() {
var hideSheet = $ionicActionSheet.show({
buttons: [
{ text: 'Share' },
{ text: 'Move' }
],
destructiveText: 'Delete',
titleText: 'Modify your album',
cancelText: 'Cancel',
cancel: function() {},
buttonClicked: function(index) {
return true;
}
});
$timeout(function() {
hideSheet();
}, 2000);
};
});
ionic serve : Serveur local visible par navigateur
ToSpeak List : CrossWalk, tâches Gulp, hooks Cordova, intégration avec Jenkins, différence emulateur/device, Vorlon.js, ngCordova, ionic Creator/Lab/View, gestion du wording/traduction