Lien vers mon mini-site i-mode (site retiré du fait de l’arrêt de l’i-mode ; il comportait la distribution de kwirk, l’accès à gmail, divers contenus de personnalisation en sonnerie amr et images, des vidéos converties en 3gpp, divers programmes collectés ainsi que des contenus de programmation comme la récupération de l’UID)

Présentation rapide de l’i-mode

i-mode est un ensemble de technologies et de principes de facturation sous license de la société japonaise DoCoMo. Pour la partie technique, i-mode s’appuie sur le protocole HTTP, le langage HTML adapté pour i-mode (basé sur un sous-ensemble des balises HTML), des applets DoJa (CLDC à la mode DoCoMo), le tout fermé derrière un proxy permettant une plateforme de partenariats et reversements sécurisés, ainsi qu’un cahier des charges extrêmement sévère sur l’ergonomie et les capacités des terminaux.

Mettre en ligne un site i-mode

Rien de compliqué à faire, puisqu’il suffit de créer et mettre en ligne des fichiers html adaptés à la lecture par un terminal i-mode. N’importe quel hébergement et serveur fera donc l’affaire. Au niveau du contenu, il faut respecter quelques règles définies dans la norme HTML pour i-mode (disponible sur n’importe quel site de développement, ou traduit en français par Bouygues Telecom et à disposition sur le site de la communauté de développement).

Voici quelques règles simples à respecter :

  • Se souvenir que le terminal est petit ! Pas de phrases longues
  • Le contenu total d’une page (html + images) ne doit pas excéder 30 ko.
  • Pour être lus sans problèmes sur tous les terminaux i-mode, oubliez CSS, tableaux, tailles de polices et autre mises en forme complexe.
  • A défaut de pouvoir utiliser le gras, l’italique ou la taille des polices, usez et abusez de la couleur (en gardant un choix de couleur lisible…).
  • Pensez à assigner une touche de raccourci (propriété accesskey de la balise a) sur vos liens en précisant par un symbole quelle est la touche associée

DoJa – Applets i-mode

Créer un environnement de développement agréable

Pour pouvoir développer confortablement, rien de tel qu’un bon environnement. Pour celà, munissez-vous des élements suivants :

  • Eclipse : excellent environnement de développement OpenSource, particulièrement adapté aux langages Java
  • Le SDK DoJa (communauté de développement)
  • La documentation DoJa ; je vous conseille pour l’instant de vous limiter à la documentation DoJa 1.5 car le 2.5 n’est pas encore très répandu.
  • Un ensemble de skin correspondant aux terminaux que vous souhaitez adresser (voir ci-dessous pour les n341i, m420i et S500i)

Pour exploiter correctement cet environnement, vous aurez à :

  • Pour un nouveau projet :
    • créer le projet DoJa via le SDK DoJa qui va créer la structure de répertoire et remplir le fichier de propriétés du projet
    • importer le projet dans Eclipse pour pouvoir éditer facilement les fichiers java
    • et pour bénéficier de l’assistance lors de la saisie, configurer le projet Eclipse pour indiquer les emplacements des .jar (sdk/lib/classes.zip, sdk/lib/doja_classes.zip)
    • enfin, par commodité, configurer l’émulateur doja.exe comme external tools pour pouvoir le lancer d’un simple clic depuis Eclipse
  • Lors du developpement :
    • Ouvrir Eclipse vous devriez arriver directement sur votre projet en cours
    • Lancer l’émulateur via le bouton External Tools, et ouvrir votre projet en cours dans l’emulateur
    • Editer dans Eclipse
  • Pour tester, cliquer dans l’émulateur sur “Build”, puis “Run”. Pour stopper l’application, appuyer sur le bouton raccrocher.

Skins de mobiles i-mode français (à décompresser et copier dans le répertoire sdk/lib/skins/) :

  • Mitsubishi m420i (176×196 utile ; 176×236 au total)
  • Samsung S500i (version intégrale) (240×256 utile ; 240×320 au total)
  • Nec n341i (162×216 au total) ; merci au forum imodize.com
  • Mitsubishi m342i (128×130 utile, 128×160 au total) ; merci à malaka du forum imodize.com
  • Telefonica TSM7i (128×130 utile, 128×160 au total) ; merci à Naty du forum imodize.com

Développer / Débugguer

Taille d’écran

L’aspect le plus pénible du développement sur les mobiles est la diversité des tailles d’écran. Dès l’utilisation d’éléments graphiques il est donc indispensable de prévoir une architecture permettant la récupération de la taille d’image adaptée à la taille d’écran du mobile (ainsi que de prévoir certaines zones de flexibilité pour ne pas avoir à faire toutes les tailles d’écran…). Il vaut donc mieux prévoir de stocker les images au premier lancement dans le scratchpad que de toutes les inclure dans le .jar.

Applet de 30 ko maximum

30 ko, celà va tout de même assez vite, surtout si l’on doit utiliser des images, sons ou autres fichiers de ressources… Le .jar seul est donc souvent insuffisant : il faut alors prévoir l’utilisation du scratchpad et mettre à disposition les ressources sur un espace web. Des modules rendant transparente l’utilisation du scratchpad existe” (voir le code source de Kwirk/Tiled, adaptation de Kwirk pour i-mode pour plus d’infos).

Différences d’implémentation suivant les mobiles

Dans l’ensemble, l’utilisation de l’émulateur est souvent suffisante pour mettre au point l’application. Cependant il arrive qu’une applet marche très bien sur l’émulateur et plante lamentablement sans autre forme de procès une fois sur le mobile. Il est donc nécessaire de tester les applets directement sur un petit lot de modèles en phase de finalisation. Exemple : l’utilisation de float fait planter une applet sur un m420i (alors que cela marche sur l’émulateur et sur d’autres mobiles, mais effectivement, c’est contraire à la spécification…)

Mettre en ligne

Le seul moyen à ma connaissance pour transférer une applet sur un mobile i-mode est de passer par le téléchargement i-mode ; il faut donc mettre en ligne l’applet et la télécharger depuis le navigateur i-mode (attention à la facturation !)

Pour cela vous devez indiquer à votre serveur web comment traiter les fichiers applet. Sous apache, il suffit de rajouter dans un fichier .htaccess les deux lignes suivantes :

AddType application/java-archive .jar
AddType application/x-jam .jam

Une application est en fait constituée de deux fichiers : le jar contient le code java de l’application ; le jam est un petit fichier descriptif de l’application (auteur, version, copyright, url de référence,…)

Ensuite il faut déclarer un objet applet et y faire référence dans un lien pour le téléchargement.

Exemple :

<object declare id='Kwirk.jam.app' data='Kwirk.jam' type='application/x-jam'></object>
<a ijam='#Kwirk.jam.app' href='#' accesskey=' '>Télécharger</a>

Voilà, il suffit maintenant d’aller sur cette page depuis le navigateur i-mode et de sélectionner le lien. L’application java sera ensuite téléchargée.

Pour mettre à jour une application simplement, il suffit de modifier le .jam (généralement fait automatiquement lors de la compilation par l’environnement DoJa) et de sélectionner l’option de mise à jour de l’applet sur le mobile. Celui-ci va alors se connecter sur le site où le .jam a été téléchargé, regarder le champ Last Modified, et si celui-ci est plus récent, télécharger le .jar référencé.