7. Comment développer des applis
Méthode 3 : HTML5 & Hybrid
● Lent au chargement
● Long a développer
● Beaucoup de bugs CSS
● Peu de support des nouveautés
● Des promesses
Et ça fait 5 ans que ça dure !
● Transitions saccadées
8. Réinventons l’hybride
Méthode 3b : COBALT
● Réconcillier devs web et natif
● Gagner du temps
● Economiser de l’argent
● Utiliser le meilleur des deux mondes
10. What’s in the box ?
Un framework
Android
(aar soon)
Un framework
iOS
(pod soon)
Une librairie
VanillaJS
Un CLI en
NodeJS
Un framework
Windows
(En 2016)
11. What’s in the box ?
FlexibilitéRespect des
guidelines
Navigation
Native
Echanges simples,
système robuste
16. Cobalt - Navigation Native
● possibilité de demande de
navigation native depuis le web,
● choix du contrôleur natif dans
lequel charger la pageNavigation
Native
17. Cobalt - Navigation Native
{
"controllers": {
"default": {
"ios": "ViewController",
"android": ".activities.DefaultActivity",
"pullToRefresh": true,
"inifiniteScroll": true
},
"create": {
"ios": "CreateViewController",
"android": ".activities.CreateActivity"
}
}
}
cobalt.navigate.push({ page : ‘index.html’, controller : ‘create’, data : { some : ‘data’ } });
Pour naviguer dans l’application depuis le Web :
Un fichier de configuration : cobalt.conf
CODE
18. Cobalt - Navigation Native
● chaque vue web est dans une
WebView différente
Navigation
Native
19. Chaque vue web est dans une WebView différente
Cobalt - Navigation Native
20. Comment manipuler mes données ?
Chaque vue web est dans une WebView différente
● Cobalt.storage
● navigate with data
● Cobalt PUBSUB Plugin
Cobalt - Navigation Native
27. Respect
des guidelines
Respect des guidelines
Des composants natifs, c’est l’
assurance de toujours profiter des
dernières mises à jour des OS sans
tout devoir réécrire.
31. Plugins
● 1 plugin = 1 fichier JS + 1 singleton iOS + 1 singleton Android,
● Réception des messages du Web par les singletons natifs,
● Après, tout est possible !
32. Plugins CODE
// LocationPlugin.java
public class LocationPlugin extends CobaltAbstractPlugin {
static PubSubPlugin sInstance;
public static CobaltAbstractPlugin getInstance() {
if (sInstance == null) sInstance = new LocationPlugin();
return sInstance;
}
@Override
public void onMessage(CobaltPluginWebContainer webContainer, JSONObject message) {
// Handle message
}
}
35. Plugins
Disponibles En cours
● ActionPicker,
● AppInfos,
● Location,
● PubSub,
● WebServices.
● Contacts,
● FullScreenImage,
● PhotoPicker,
● Slideshow,
● VideoPlayer,
● etc.
Compatibilité aves les plugins Cordova !
36. Récapitulatif - Une app Cobalt
Natif Web
● Navigation et transitions,
● Composants propre à la plateforme,
● Accès aux capteurs et données.
● Logique applicative,
● Interface graphique.
Système de communication
/ ! Cobalt n’est pas un framework d’UI Web !
Mais vous pouvez utiliser vos frameworks habituels
● Hybride modulable,
● Plugins.
37. Get started FAST
Essayez avant d’adpoter
sudo npm install -g cobaltians
cobaltians create myApp HelloWorld
“Cobalt Catalog”, l’app de démonstration
disponible sur les stores
38. Cobalt - Join the Rebels!
Cobalt est Open Source !
cobaltians.org
cobaltians/cobalt
@Cobaltians
contact@cobaltians.org We need YOU
on the next release !
39. Cobalt
We can help you :)
● Formation approfondie
● Développement de plugins
● Développement d’apps ou de protos
Un dev par plateforme
Cher
Des applis plus rapides que leurs ombres
Ecrire dans un language pour que ce soit traduit dans un autre
Telerik, Xamarin, ou encore React.native
Problème :
nouveau langage à apprendr
si c’est pas prévu par le framwork, ça devient compliqué
adapter visuellement un composant peut s’averer difficile, souvent il faut le recoder
HTML5 = nouveautés du web
Hybrid = voiture
hybrid = non
hybrid = donner la possibilité au web d’accèder aux fonctionnalités natives
promesse “Dev once, publish everywhere”
ecrire code web 1fois, mettre dans conteneur natif correspondant
Cordova/Phonegap, Ionic, Trigger.io, etc
Pas cher, 1dev unique
looks great
Performances toujours pas au rendez vous
Lenteur des animations
Lourdeur générale
long et fastidieu à développer si on veut une app compétitive
Nouveautés HTML5 buggées, lentes ou qui n’arrivent pas assez vite sur l’ensemble des terminaux
Tous les ans c’est l’année de l’hybride, c’est sur, ce coup ci c’est la bonne
Pouvoir choisir ce qu’on fait en web et en natif
Pouvoir utiliser natif ou web selon les parties de l’application
Pouvoir enrichir facilement l’outil coté natif ou web
Que ce soit facile à utiliser pour les dev web et pratique également pour les devs natif
Que l’on ait enfin un bon outil pour créer des applications le mieux possible et dans un minimum de temps
En résumé : CLIC
Et ça c’est la promesse de Cobalt.
GG
Je vous propose de plonger un petit peu + dans cobalt et surtout de voir comment ça s’utilise au jour le jour
Qu’est ce que Cob?
1 frmk ios, 1 frmk andro, 1 lib js
Pour un app on aura :
1 app ios, 1 app android
ttes deux embarqueront une partie web commune
1 cli pour démarrer un projet Cobalt rapidement
Petite info sup
Depuis que Windows Mobile > 5% marché, on étudie le fwk Windows, 2016
Quatres choses principales
1 systeme d’uniformaisation des echanges web/natif quelquesoit la plateforme
nav native, pas web
composants natifs à dispo du web qui permettent de mieux respecter les guidelines
de la flexibilité notemment avec un systeme de plugins
Le système de communication entre web et natif
Un systeme d’envoit de messages et de callbacks au format JSON
CLIC
Permet de demander un sandwich à l’autre côté, d’être notifié quand il est prêt
C’est robuste : testé contre les pb d’encodage ou les pertes de messages
important : principe identique pour toutes les plates-formes, quel que soit la direction de l’échange
Une navigation native
Pourquoi ? (clic)
Parce que rien ne remplace les transitions natives entre les pages
Parce que Android et iOS n’ont pas la même anim (voir sur GIF)
Parce qu’elles peuvent changer à tout moment en cas de maj de l’OS
Ou être désactivées par l’utilisateur, on doit respecter ça
Depuis le web on peut
faire des demandes de navigation native
plusieurs types : push / pop / popTo / modal / replace (animé)
on spécifie la page HTML que l’on souhaite afficher
on spécifie le contrôleur natif dans lequel charger la page
->Ca veut dire que Cobalt permet de créer vos propres vues hybrides, afin de mélanger + librement web et natif sur une même vue
Pour vous permettre de customiser vos vues hybrides, il y a un fichier cobalt.conf
Permet de faire le lien entre le nom de la vue (default/create) et les classes natives correspondantes
Des options (PTR,IS)
Les classes natives héritent de CobaltViewController iOS ou de la CobaltActivity/CobaltFragment Android
CLIC
Exemple de push web
Une navigation native implique que chaque vue web soit dans une webview différente
Chaque vue dans un fichier HTML différent
Pour illustrer voici une comparaison d’un app native / app cordova / app Cobalt
[…]
Comment se passer des infos d’une page à l’autre ?
CLIC On a pensé à tout
CLIC storage : base clé / valeur .. tout type de donnée.
bientôt accessible depuis le natif également
CLIC nav : Passer infos lors des push/pop
CLIC : Publish/Subscribe : Une ou plusieurs pages publient ou s’inscrient à un channel et echangent des messages
C’est surtout un vrai boost des performances : en web mobile, pages + simples = pages + rapides
Seb V
Composants natifs pour palier aux manques du Web
Exemple : évolution du PTR Android
Rien à modifier dans apps, simple rebuild
Communication : permettre d’enrichir app avec UI native et propres fonctions natives,
Modulable : dans tout ou partie de l’écran / de l’application,
Plugins : enrichir en fonctionnalités avec store de plugins à l’horizon 2016.
Framework UI Web : Ionic (anecdote Yool et Baptiste Jamin), AngularJS, Onsen UI, etc.
GG
Pour vous permettre de démarrer rapidement on a 2 choses:
Le CLI : ligne de commande en nodejs :
créer un projet Cobalt en quelques secondes à partir d’un sample HELLO ou CATALOG
Catalog dispo sur les store : pas très beau mais tester l’ensemble des fonctionnalités et composants
Rejoignez nous
Cobalt est open source et gratuit
site web, blog
github code source et DOC
suivre et contacter via twitter et mail
CLIC
on recherche activement des dev web ou mobile pour nous aider
Continuer à faire avancer Cobalt, l’outil manquant du dev hybride
intéressés, venez nous voir :)
Seb F
N’hésitez pas également à passer, prendre un café ou juste bavarder
Faut en profiter on est voisins :)
Il y a aussi une newsletter, on peut vous y inscrire
On vous fera passer un formulaire de satisfaction également
Si vous avez des questions