Web Mobile, faites votre framework!
Hier, je vous parlais des possibilitĂ©s de Chrome pour Android. Il est trĂšs possible vous lâavez devinĂ© de faire des webapps trĂšs fonctionnelles. Lorsque je fais de la veille Ă propos du web mobile, je tombe sur de nombreux frameworks (de diffĂ©rente qualitĂ©), mais un bon nombre dâentre-eux essayent de reproduire lâaspect natif du terminal mobile et souvent câest malheureux (un petit cĂŽtĂ© âcheapâ), surtout lors dâupgrade de lâOS qui change dâIHM. Dâautres ne le font pas mais sont souvent trĂšs âtypĂ©sâ.
Il y a de trĂšs bonnes applications natives qui ne reproduise pas lâaspect imposĂ© par lâOS, par exemple Evernote qui est trĂšs reconnaissable et qui a son propre style.
De la mĂȘme maniĂšre, je pense quâune webapp doit ĂȘtre âfreestyleâ.
Du coup mon petit exercice dâhier, mâa donnĂ© envie dâaller plus loin et de crĂ©er les bases dâun âwalking-skeletonâ mobile, en essayant de rester le plus sobre possible (je suis une bille en design) mais en fournissant un quick-start dâapplication âwebâ mobile. De plus il faudra quâil reste le plus simple possible pour ĂȘtre âcustomisĂ©/brandĂ©â le plus facilement possible.
Dans un 1er temps, je viserais essentiellement la plateforme Android, mais les adaptations pou iOS sont prĂ©vues. Cet article nâest que le dĂ©but.
Aujourdâhui, je souhaite juste avoir le cadre de base pour:
- afficher du html correctement au format mobile
- avoir une barre de titre âfixeâ (le contenu en dessous peut scroller)
- sâafficher en plein Ă©cran comme une application
- avoir une icĂŽne pour le lancer
la prochaine fois, je tenterais dâangulariser mon projet.
CÎté html
Dans un répertoire, créez 2 sous-répertoires js
et css
, dans js
créez un fichier kiss.js
et dans css
créez un fichier kiss.css
.
A la racine du répertoire, créez une page index.html
avec le contenu suivant:
Les attributs de <meta name="viewport"/>
permettent dâafficher le texte Ă la bonne Ă©chelle. user-scalable=0
empĂȘchera lâutilisateur de zoomer sur le contenu de la webapp, ou le systĂšme comme par exemple lors du focus dâune zone texte.
Cette portion permet dâaffecter une icĂŽne au raccourcis de notre webapp (voir lâarticle prĂ©cĂ©dent âChrome Android et les Webappsâ).
Cette portion permettra lâaffichage en plein Ă©cran (sans la barre dâurl du navigateur):
Ensuite nous décrivons notre IHM:
Coté css
Dans le fichier kiss.css
, nous avons:
Des styles pour les éléments de base:
Des styles liés aux formulaires et aux listes afin de pouvoir facilement positionné les élément du formulaire avec des tags <li></li>
:
Ensuite, la partie importante, ce qui va nous permettre dâavoir un barre de titre âfixeâ:
La possibilité de styler un lien <a>
pour en faire un titre dans la barre de titre:
Et enfin, pour les âcardsâ qui reprĂ©senteront les diffĂ©rents Ă©crans de notre application:
Ces 2 derniers styles signifient quâau chargement de la page index.html
:
<div id="main" class="card"></div>
est visible (div# main {display: block;}
)<div id="second" class="card">
nâest pas affichĂ© (display: none;
)
CÎté javascript
Je nâai pas voulu utiliser de framework pour le moment pour ne pas avoir dâeffet de bord avec Angular pour la suite, donc le code va rester trĂšs simple:
Nous avons donc:
- un pseudo sĂ©lecteur Ă la jquery avec lâastuce
[].slice.apply(document.querySelectorAll(selector));
- ensuite nous attachons Ă lâĂ©vĂ©nement
onclick
des liens, un traitement qui permet de changer lâattributdisplay
des âcardsâ pour passer de lâune Ă lâautre.
Et câest tout, et ça fonctionne. Je suis dâaccord esthĂ©tiquement câest pas le top, mais ça reste suffisamment simple pour laisser libre court Ă votre dĂ©lire artistique.
Vous trouverez le code ici https://github.com/web-stacks/kiss-mobile.
Ă demain pour la suite
Tweet