Polymer¶
Polymer est un framework javascript de chez Google. Il est en concurrence avec AngularJs mais devrait permettre de réaliser des applications multi-screens de façons plus simple.
Architecture / Installation¶
L’utilisation de polymer requiert l’outil bower. Bower est un gestionnaire de paquet pour application javascript. Son installation nécessite d’installer:
- git
- nodejs
Pour windows il suffit d’aller sur le site git et nodejs pour télécharger les executables. L’objectif est d’avoir une ligen de commande qui accepte les commandes git et npm
Pour linux on peut utiliser le gestionnaire de paquet
apt-get install npm
Maintenant on peut en ligne de commande installer bower
npm install -g bower
Warning
Sur debian, éditer la première ligne du fichier /usr/local/bin/bower
Remplacer: #!/usr/bin/env node
Par: #!/usr/bin/env nodejs
Note
bower utilise git pour récupérer les sources
Note
si vous utilisez un proxy il faut:
npm config set proxy http://AD%5Cusername:passwd@myserver:myport
npm config set https-proxy http://AD%5Cusername:passwd@myserver:myport
vi .npmrc
il faut aussi paramétrer le proxy de git
git config --global http.proxy http://user:pass@proxyhost:proxyport
pour bower le plus simple est d’utiliser la variable http_proxy
pour windows
set http_proxy=http://AD\username:passwd@myserver:myport
pour linux
export http_proxy=http://AD\username:passwd@myserver:myport
ou utiliser un fichier .bowerrc contenant
{
"proxy":"http://AD%5Cusername:passwd@myserver:myport",
"https-proxy":"http://AD%5Cusername:passwd@myserver:myport",
"strict-ssl": false
}
On peut maintenant utiliser bower pour récuperer des paquets.
bower install knacss
bower install knacss#2.9.1
bower update knacss
Toutes ces actions récupère le module knacss, avec une version spécifque, une mise à jour dans le dossier bower_components.
Dans un premier temps le serveur web sera un serveur Apache avec une configuration très basique: son seul rôle est de distribué des fichiers
- html
- css
- font
- js
Le fichier de configuration su site web ressemble à
# conf/site-available/test1.conf
<VirtualHost *:80>
ServerName mytest.fr
ServerAlias *.mytest.fr
DocumentRoot "C:/www/test"
<Directory "C:/www/test">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
ErrorDocument 404 /missing.html
ErrorLog "C:/www/logs/error.log"
LogLevel info
</VirtualHost>
</VirtualHost>
Je vous laisse voir la configuration plus précise d’un serveur apache dans la note dédiée.
Dév¶
Nous allons suivre l’url https://blog.groupe-sii.com/creer-une-application-web-avec-polymer/
Nous allons d’abord créer notre structure de projet et récupérer Polymer
mkdir myappli
cd myappli
bower init
bower install --save Polymer/polymer
bower install --save PolymerElements/iron-elements
bower install --save PolymerElements/paper-elements
bower install --save PolymerElements/gold-elements
Note
Il n’est pas forcement utile d’avoir l’ensemble iron, paper et gold suivant nos projet
la définition des éléments est la suivante
Iron elements. A set of utility elements including generic UI elements (such as icons, input and layout components),
as well as non-UI elements providing features like AJAX, signaling and storage.
Paper elements. A set of UI elements that implement the material design system.
Gold elements. Form elements for ecommerce.
Neon elements. Animation-related elements.
Platinum elements. Elements for app-like features, like push notifications and offline caching.
le minimum pour écrire une application
<html>
<head>
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<!-- Paper elements -->
<link rel="import" href="bower_components/paper-button/paper-button.html">
<link rel="import" href="bower_components/iron-icons/iron-icons.html">
<link rel="import" href="bower_components/iron-icons/av-icons.html">
<style is="custom-style">
paper-button {
display: block;
margin-bottom: 24px;
max-width: 530px;
font-family: "Roboto","Noto",sans-serif;
font-size: 14px;
color: #4285f4;
}
paper-button[raised] {
background: #4285f4;
color: #fff;
}
</style>
</head>
<body>
<div>
<paper-button raised><iron-icon icon="icons:search"></iron-icon>flat button</paper-button>
<paper-button><iron-icon icon="av:mic"></iron-icon>flat button</paper-button>
</div>
</body>
</html>
Nous allons maintenant intégrer angularjs dans notre application
cd myappli
bower install --save angular
bower install --save angular-route
On peut trouver l’ensemble d’une application test ici
Cette application utilise notamenent la gestion des themes élaborés sur http://www.materialpalette.com/indigo/pink
Warning
polymer n’est pas compatible avec angularjs notament sur la partie ng-model des inputs Polymer perd donc de l’intérêt comme simple module deisgn d’angular. Il faut alors le prendre comme un framework complet mais bien immature pour l’instant