XGouchet.fr

lundi 21 septembre 2009

Développer pour l'iPhone en Java, avec XMLVM

En tant que Responsable R&D à mon boulot, j'ai été obligé de développer pour l'iPhone. Cette phrase seule avait tout pour me mettre de mauvaise humeur, mais lorsque j'ai réalisé qu'en plus je devrais utiliser un Mac, et programmer en Objective-C, j'ai bien faillit démissionner. Bon en fait non, je dramatise un peu, mais quand même, devoir utiliser un langage totalement différent du Java/C++, sur un laptop où le clavier n'est pas standard, et la souris n'en parlons pas... Enfin bref, j'ai commencé un peu à reculons, je l'avoue.

Je savais qu'il était possible d'installer une Machine Virtuelle pour exécuter des applications Java, mais seulement sur un iPhone jailbreaké (alors que bon, techniquement c'est faisable, hein Steve?!). Mais aujourd'hui, j'ai trouvé un article sur XMLVM, un outil open source qui permet de transformer du code source Java en Objective-C, et donc développer pour iPhone en Java. Adieu XCode, bonjour Eclipse :).

La vidéo de présentation est très intéressante, pour ceux qui n'ont pas le temps, allez directement à 40'15". Leur outil permet en plus d'utiliser un iPhone comme télécommande pour envoyer les informations liées au hardware (accéléromètre, multi-touch, ...). Bref, un petit bijou que je vais m'empresser de tester, et utiliser.


Developing iPhone Application using Java [Youtube]

Enfin, cerise sur le gâteau, XMLVM permet de convertir d'autres langages, .Net, Ruby, Python, JavaScript, et peut être bientôt plus. Et petit message à la fin de la conférence, l'équipe travaille sur un outil pour transformer une application pour Android en application pour iPhone. Que demander de plus?

La java, ça n'a pas de couleur, ni bleu ni autre chose.

Jean-Marie Gourio

lundi 31 août 2009

Un GPS en Réalité Augmentée sur Android

Le ton était donné depuis le début de l'année, 2009 sera Réalité Augmentée, ou ne sera pas. Après Layar, qui propose d'afficher des informations en Réalité Augmentée sur iPhone et Android, ou encore l'application Metro Paris sur iPhone, pour trouver la station de métro la plus proche; voici Wikitude Drive, un GPS qui affiche les indication à suivre par dessus l'image captée par la caméra. Une vidéo est plus facile a comprendre, donc je vous laisse regarder.


Wikitude Drive [Youtube]

N'allez pas là où le chemin peut mener. Allez là où il n'y a pas de chemin et laissez une trace.

Ralph Waldo Emerson

lundi 27 juillet 2009

Définir le zoom du Camera sous OpenGL ES

Bon allez, un petit écart de conduite, je vais ici faire du code, du vrai, parce que j'ai pas mal cherché sur le sujet et les réponses sont pas forcément simple à trouver quand on n'a jamais fait d'OpenGL. Comme je le disais précédemment, je travaille sur un moteur 3D OpenGL sur Android. Mais sous Android, on n'utilise pas OpenGL de base mais OpenGL ES (OpenGL for Embedded Systems), qui ne contient pas autant de fonctions que la version standard.

Et notamment l'un des manque et qu'il n'y a pas de fonction gluPerspective, qui permet de spécifier l'angle de vue, et donc le zoom de la camera. Je ne me suis pas encore penché à fond sur le fonctionnement des matrices caméras, et je me sentais mal refaire les maths dans mon coin, j'ai donc cherché une autre astuce, que j'ai trouvé sur un forum iPhone. La formule, je la met pour ceux que cela peut intéresser, et surtout pour en avoir une trace quelque part ;).

void perspective(double fov, double aspectRatio, double zNear, double zFar) {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
double yTop = zNear * tan(fovy * M_PI / 360.0);
double yBottom = -yTop;
double xLeft = yBottom * aspectRatio;
double xRight = yTop * aspectRatio;
glFrustumf(xLeft, xRight, yBottom, yTop, zNear, zFar);
glMatrixMode(GL_MODELVIEW);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}

Voila et désolé pour tous ceux qui ne sont pas programmeur parmi mes lecteurs, promis je ne le ferait plus... enfin pas tout de suite ;)

Caméra - Merveilleux instrument de tourisme auquel le voyageur fait voir le pays avant de le voir lui-même.

Pierre Daninos

vendredi 10 juillet 2009

Moteur OpenGL sous Android

L'un des gros avantages à être responsable R&D à l'ISART, c'est que je peux faire mes recherches sur ce que je veux (ou presque), et que je suis payé pour ça ! Récemment je vous montrais un petit jeu fait sous Android, ce qui a bien sur éveillé un peu plus ma curiosité. L'étape suivante était évidemment de faire une appli en 3D, tournant sur mon HTC Magic.

Moteur 3D OpenGL sous Android

Voila qui est chose faite (bon c'est pas finit mais c'est bien avancé). J'ai désormais un petit moteur à base d'OpenGL, capable d'importer des fichiers au format OBJ, et les textures qui vont avec (du bête jpeg). Je viens à l'instant de finir un convertisseur qui précompile les données 3D en fichier binaire, pour optimiser le temps de chargement des objets (de 7,4s avec un fichier obj, je passe à 1s pour un même mesh). A suivre le même principe pour les textures (qui doivent en plus être modifiées puisqu'en OpenGL les couleurs se lisent en ARGB et non RGBA), et une fois cela fait un petit jeu pour aller jusqu'au bout.

Tableau. Représentation en deux dimensions de quelque chose d'inintéressant en trois.

Ambrose Pierce

dimanche 21 juin 2009

Dao : ma première application pour Android

Mardi soir, j'ai récupéré mon nouveau téléphone, un HTC Magic équipé d'Android, l'OS créé par Google. J'avais déjà vu il y a quelques temps chez Korben que le SDK d'Android était dispo, avec même un plugin pour Eclipse.

Du coup ce week end, je n'ai pas pu m'empêcher de développer un petit jeu sur Android, inspiré d'un jeu de plateau auquel je joue parfois avec mon frangin : Dao. Le but du jeu est assez simple, un plateau de seize cases, deux joueurs avec quatre pierre chacun (noires et blanches). Chacun son tour, les joueurs déplacent une de leurs pierres pour arriver à une position gagnante (une ligne horizontale ou verticale, un carré, ou une pierre dans chaque coin).

Ce jeu était suffisamment simple pour me permettre, à partir d'un des exemples fournit par Google, de créer le jeu en deux demi-journées de travail. Résultat des courses, le jeu fonctionne nickel sur mon téléphone. Et comme c'est bientôt l'été, je vous le met à disposition directement ici. Tous les retours sont évidemment les bienvenus.

Le jeu n'est pas encore parfait, loin de là : quasiment aucune option, l'AI est vraiment basique, et il est possible d'arriver à une impasse (il faut encore que j'arrive à détecter cela). Mais à part ça l'appli est stable, donc enjoy. On joue avec les pierres noires, en les faisant glisser du doigt. À télécharger ici.

Dao sous Android

Lraktitp: Je vais développer une application pour les Emo
Artos: Sur quelle plateforme ?
Lraktitp: Android
Artos: Tu va l'appeler EmoRoid ?
Lraktitp: ...

BashFR