J2ME

J2ME

Nokia donne son « Mobile Runtime » Java à la fondation Symbian

Nokia donne son « Mobile Runtime » Java à la fondation Symbian

Dans un effort de rendre plus accessible le développement d’applications Java pour les mobiles basés sur le système Symbian, Nokia vient d’annoncer, ce 15 juillet, faire don de son « Mobile Runtime for Java Applications » (JRT) à la fondation Symbian (créée en 2008 justement, suite au rachat de Symbian Software Limited). Avec le don de son JRT, Nokia met à disposition pas moins d’1 million de lignes de code Java et C++ correspondant à son runtime, son installeur d’applications, ses API, ses tests et sa documentation. Le tout est mis à disposition sous license Eclipse Public License (EPL) et est disponible comme partie intégrante du dernier Symbian^3 Product Development Kit.

Nokia annonce le support de la norme MIDP 2.1 (JSR 118), ainsi que ses nombreuses JSR, dont l’architecture MSA. Rien de bien nouveau, jusqu’à présent, serait-on tenté de dire. D’un point de vue graphique, la plateforme Symbian^3 apporte le support d’une accélération graphique hardware, ainsi que deux API non standard : la classique Nokia UI API en version 1.4, ainsi qu’une implémentation de l’Eclipse Standard Widget Toolkit (eSWT) UI API en version 1.0.3.

En complément du langage Java, Le SDK Symbian^3 propose d’écrire des applications natives en utilisant le langage C++ et le support intégré du tookit graphique Qt. Un support de développement basé sur les technologies Web est également disponible, il permet de construire des applications basées sur le Nokia’s Web Runtime (WRT) et l’outil PhoneGap, qui permet de tirer parti de différentes fonctionnalités de l’OS habituellement uniquement accessibles par les applications natives.

Pour les curieux, une roadmap de développement permet de se faire une idée des fonctionnalités des futures version de la plateforme.

Quelle stratégie pour Nokia en 2010?

Dès 2008, Nokia avait préparé sa riposte face à la sortie de la plateforme mobile Android de Google. Déjà détenteur de 48% de la société Symbian Limited, Nokia avait racheté les parts restantes auprès de ses concurrents de l’époque (Sony-Ericsson, Panasonic, Siemens, …) pour un montant avoisinant les 250 millions d’euros. Ce rachat qui n’était qu’une première étape devait permettre à Nokia de faire don de la plateforme Symbian à la fondation éponyme. A la même époque les autres acteurs de l’environnement Symbian devaient faire de même: Sony-Ericsson et Motorola devaient, entre autre, fournir la technologie UIQ à la fondation. Le but de la fondation Symbian était donc de créer, à partir de ces différentes contributions, une plateforme mobile unifiée ouverte à la communauté.

En l’espace de 2 ans, le paysage des plateformes mobiles a cependant bien changé: l’iOS d’Apple est devenu un leader emblématique, même s’il commence à se faire disputer le titre par la plateforme Android de Google, tandis que Microsoft tente revenir dans la course pour les fêtes avec son nouveau système Windows Phone 7. En parallèle, de nouveaux acteurs apparaissent tel que Samsung avec son système Bada, ou bien Baidu qui souhaite copier son grand frère Google avec un OS ayant pour ambition de conquérir le marché chinois …

Près de 2 ans après la présentation de sa stratégie pour contrer Google, l’annonce de la sortie de Symbian^3 par Nokia ressemble beaucoup à une tentative désespérée de raccrocher le wagon. Il n’est plus l’heure pour Nokia de redorer son blason, mais plutôt de sauver les meubles dans un secteur où les évolutions se font à coup de bottes de sept lieues. Pour s’en convaincre, il suffit de comparer le paysage des plateformes mobiles aujourd’hui avec celui de 2008. Malgré un parc important d’appareils mobiles déployés et sa communauté de développeurs, Nokia est toujours à la recherche d’un business model efficace. Ses talents d’innovation et de fabricant de combinés haut de gammes semblent être un lointain souvenir tant la concurrence a pris de l’avance rapidement. La stratégie de Nokia est-elle la bonne ? Nokia est en tout cas, aujourd’hui, au pied du mur. Le géant scandinave annonce pour la fin d’année des appareils compatibles avec la toute dernière version de la plateforme Symbian, comme le Nokia N8. Dans un marché en mouvement permanent, cela sera-t-il suffisant ?

Sortie de la librairie Logging4ME – v1.0.2

Sortie de la librairie Logging4ME – v1.0.2

Logging4ME sort en version 1.0.2 et propose maintenant de paramétrer le système de log grâce à un fichier de configuration XML et l’usage de Kxml.

Voici ci-dessous un exemple de fichier de configuration :

< ?xml version="1.0" encoding="UTF-8" ?>

<logging4me xmlns="http://logging4me.helyx.org/logging4me-1.0.0.xsd" thresholdLevel="DEBUG" debugMode="false">

	<!-- Layouts -->
	<layout name="pl" class="org.helyx.logging4me.layout.pattern.PatternLayout">
		<property name="pattern" value="|%T|%L|%C|%D{yyyy/MM/dd, HH:mm:ss.ZZ}| " />
	</layout>
	
	<!-- Appenders -->
	<appender name="console" class="org.helyx.logging4me.appender.ConsoleAppender">
		<property name="thresholdLevel" value="INFO" />
		<property name="layout" value="pl" />
	</appender>

	<!-- Categories -->
	<category name="org.helyx.logging4me" level="DEBUG" />
	
</logging4me>

Ainsi qu’un fichier d’exemple de chargement de la configuration XML avec J2ME:

		LoggerConfigurer loggerConfigurer = new XmlConfigurer("/org/helyx/logging4me/test/logging4me.xml");
		loggerConfigurer.configure();

Liens utiles du projet:

  • Le site du projet est à l’adresse suivante: http://basics4me.helyx.org/ .

    Vous y trouverez toutes les informations liées au développement du projet: Sources, Javadoc, Couverture de test, métriques, rapports Maven, …

  • Un wiki est disponible ici. Il propose des informations complémentaires: Exemples, Intégration de la librairie à votre projet, …
  • Pour télécharger le projet, cela se passe à l’adresse suivante: http://wiki.helyx.org/doku.php?id=basics4me:downloads
  • Un BugTracker est disponible à l’adresse suivante pour remonter toute anomalies ou suggestions : http://issues.helyx.org
  • Le projet est inscrit sur ohloh à l’adresse suivante: http://www.ohloh.net/p/Basics4ME.

Si vous souhaitez utiliser cette librairie pour votre développement, n’hésitez à me faire part de vos retours par mail, via le bugtracker, ou bien les commentaires du blog.

Sortie de la librairie J2ME Logging4ME

Sortie de la librairie J2ME Logging4ME

Je travaille depuis un certain temps sur différents projets J2ME, et certains d’entre eux arrivent aujourd’hui à maturité. Le temps est donc venu de les releaser et de proposer une première version publique.

La sortie de la librairie Java pour J2ME Basic4ME a déjà fait l’objet d’un post il y a quelques jours.

Aujourd’hui, c’est au tour du projet Java pour J2ME « Logging4ME » d’être présenté et releasé:

Logging4ME est une librairie de logging spécialement adaptée pour J2ME, distribuée sous license Apache, et sa première version publique est la 1.0.1.

La librairie a été pensée dès le début des développements pour être spécialement adaptée aux problématiques J2ME. Elle est donc parfaitement compatible avec l’environnement J2ME/MIDP, et propose de nombreuses fonctionnalités classiques des librairies de log:

  • Une API de log classique et simple utiliser
  • Support de tous les niveaux de logs
  • Gestion des catégories de logger par hiérarchie ou bien par mot clé
  • Gestion de l’additivité pour la gestion des catégorie de loggers par hiérarchie
  • Configuration des layout, dont l’implémentation « PatternLayout », permettant de configurer finement l’affichage des logs
  • Support des Appenders, dont le « ConsoleAppender », et le « FileAppender »
  • Possiblité d’étendre les fonctionnalités de la librairie (Custom Layout, custom Appender)

Il existe déjà différentes implémentations de gestion des log adaptées pour J2ME. Microlog fait aujourd’hui référence pour l’éco-système J2ME, cependant il faut bien trouver chaussure à son pieds. Logging4ME propose donc une implémentation nouvelle, simple et légère de gestion des logs.

Listing des projets de gestion des logs pour J2ME:

  • Microlog
  • log4me – Note: Le projet semble abandonné (Pas mis à jour depuis Août 2006)
  • Jadabs-Log4j-J2ME – Note: Le projet semble abandonné (Pas mis à jour depuis Nomvembre 2004)
  • Et bien sûr: Logging4ME

Liens utiles du projet:

  • Le site du projet est à l’adresse suivante: http://logging4me.helyx.org/ .
    Vous y trouverez toutes les informations liées au développement du projet: Sources, Javadoc, Couverture de test, métriques, rapports Maven, …
  • Un wiki est disponible ici. Il propose des informations complémentaires: Exemples, Intégration de la librairie à votre projet, …
  • Pour télécharger le projet, cela se passe à l’adresse suivante: http://wiki.helyx.org/doku.php?id=logging4me:downloads
  • Un BugTracker est disponible à l’adresse suivante pour remonter toute anomalies ou suggestions : http://issues.helyx.org
  • Le projet est inscrit sur ohloh à l’adresse suivante: http://www.ohloh.net/p/Logging4ME.
  • Si vous souhaitez utiliser cette librairie pour votre développement, n’hésitez à me faire part de vos retours par mail, via le bugtracker, ou bien les commentaires du blog.

Sortie de la librairie J2ME Basics4ME

Sortie de la librairie J2ME Basics4ME

Basics4ME est une librairie J2ME qui propose de fournir différentes fonctionnalités à ce jour manquantes dans les différentes versions de MIDP.

La version 1.0.5 correspond à la première release publique de cette librairie. Le projet est distribué sous licence Apache. La librairie tire certaines fonctionnalités directement du projet Apache Harmony, ce qui est un gage de la qualité du code fourni dans cette librairie.

Ce projet est né du besoin de regrouper au cours du développement d’un projet annexe de certaines fonctionnalités vraiment basiques manquantes dans les librairies de base J2ME/MIDP. Basics4ME n’a pas de dépendances vers d’autres librairies, les classes proposées sont donc utilisables sans difficultés.

Vous trouverez dans la librairies Basics4ME entre autre un support adapté pour J2ME des classes suivantes: :

  • ‘java.util.Properties’, permet l’accès à des fichiers de propriétés, très utile pour le support de préférences ou de l’I18N
  • ‘java.io.BufferedInputStream’, permet la lecture par buffer pour la lecture optimale de contenu
  • ‘java.io.BufferedReader’, permet la lecture par ligne d’un contenu texte

Les classes Properties et BufferedReader sont des classes nécessaires dans un très grand nombre de projets. Basics4ME fournit donc un support pour J2ME/MIDP.

J2ME imposant certaines limitations, vous ne retrouverez pas ces classes dans le pacakge java.*, mais dans le package de base du projet: org.helyx.basics4me.* . Les fonctionnalités y sont classées par packaging.

Liens utiles du projet:

  • Le site du projet est à l’adresse suivante: http://basics4me.helyx.org/ .
    Vous y trouverez toutes les informations liées au développement du projet: Sources, Javadoc, Couverture de test, métriques, rapports Maven, …
  • Un wiki est disponible ici. Il propose des informations complémentaires: Exemples, Intégration de la librairie à votre projet, …
  • Pour télécharger le projet, cela se passe à l’adresse suivante: http://wiki.helyx.org/doku.php?id=basics4me:downloads
  • Un BugTracker est disponible à l’adresse suivante pour remonter toute anomalies ou suggestions : http://issues.helyx.org
  • Le projet est inscrit sur ohloh à l’adresse suivante: http://www.ohloh.net/p/Basics4ME.

Si vous souhaitez utiliser cette librairie pour votre développement, n’hésitez à me faire part de vos retours par mail, via le bugtracker, ou bien les commentaires du blog.

Eclipse eRCP/eSWT est là!

Eclipse eRCP/eSWT est là!

et le moins qu’on puisse dire c’est que ça fait plaisir! Pour ma part, je suis en plein testing de la platte-forme et je suis pour le moment confronté à quelques difficultés secondaires, mais pour le moins embêtantes ;) (Je n’ai pas de JDK/JRE 1.3 ou 1.4 pour tester eRCP). Eh oui, je suis un pauvre développeur Java victime de la mode puisque je n’ai plus que des JDK/JRE 1.5 sous la main :D

Il existe cependant une alternative pour ceux qui ne veulent pas installer d’anciens JDK, il suffit d’installer celui d’IBM nommé IVE (ou J9) pour faire fonctionner la bête. Une dernière solution existe: Installer la démo d’eRCP directement sur une machine compatible, c’est à dire sur un Nokia serie 80, un PocketPC ou bien un Zaurus.

Ayant mon QTEK S100 sous la main et J9 en version CDC PPRO installé dessus, je me dit banco! Hélas ce n’est pas si simple que ça puisque ça ne semble vouloir marcher qu’avec la version CDC FOUNDATION (Merde alors). Et hop, 610 Mo à télécharger (et oui, seule la version complète des outils de développement contient la version FOUNDATION de J9).

Edit: Il n’y a rien a faire, il manque un fichier de ressource, c’est pour cette raison que l’application Demo RCP ne peut démarrer, suis-je le seul?? Je ne comprends pas, c’est comme si personne ne l’avait testé pour qu’il n’y ait pas de retour sur ce problème !??
J’ai signalé le problème sur le newsgroup, on verra bien :D

Je déteste baisser les bras et pour la peine, je vais persister et vous présenter sous peu des screenshots de la démo sur PC et sur PPC!

A noter quand même que la version HelloWorld de eRCP marche avec le JDK 1.5, un comble! C’est à n’y rien comprendre!!!!

* Projet eRCP

eSWT et eRCP sont les versions light des projets RCP et SWT de la fondation Eclipse. Pour avoir plus d’information dessus, il faut se rendre sur le site: eclipse.org. Le e devant SWT et RCPsignifie Embedded (embarqué, ie téléphonie et PDA dans ce contexte).

* SWT est un toolkit graphique Java développé initialement par IBM qui a pour but de ‘wrapper’ les toolkits natif des systèmes supportés afin d’en tirer les avantages (Ca a des avantages et des défauts… C’est un grand débat ;) , pour ma part, je n’utilise plus que SWT! ).
* RCP est un framework de développement d’application riches (applications systèmes et non web) utilisant SWT pour la partie graphique.