dimanche 5 décembre 2010
Développer des applications pour le Samsung Galaxy S.
Par France Quiqueré, dimanche 5 décembre 2010 à 21:45 :: Tranche de Technologie
La concurrence est forte sur le marché des OS mobile. Apple iOS, Google Android, Samsung bada, Palm WebOS, Symbian (S60 et ^3), Maemo, Meego, Windows Mobile (Windows Phone 7 maintenant), ou encore Blackberry OS. Pourquoi choisir Android, et en particulier le Galaxy S pour développer son application ? Je vais tenter de vous répondre en vous proposant un petit tour d'horizon de ce qui est possible de faire sur le Samsung Galaxy S.

Android est un système d'exploitation assez particulier et c'est également le nom d'une start-up rachetée par Google. L'équipe de celle-ci était constituée d'ancien de Danger, une start-up vraiment similaire à Android. Leur produit phare, le Sidekick, a eu un succès fulgurant chez les ados américains entre 2004 et 2008, et il n'est pas rare de voir des films, clips vidéos, séries MTV, reality show exhibant le Sidekick durant ces années-là.

Pourquoi je vous raconte ces histoires de grand-mère ? Car impossible de comprendre les choix techniques d'Android sans connaître l'historique. A cause de ce lourd passé, le passage de Danger à Android puis Google, Android OS est indissociable de la technologie JAVA. Elle est vécu comme quelque chose de positif pour certains, et négatif pour d'autre.
Ainsi, il faut dès le départ choisir votre camp. Où vous développerez en Java en utilisant le SDK (http://developer.android.com/sdk/) ou bien en C++ en utilisant le NDK (http://developer.android.com/sdk/ndk/). Les avantages du SDK :
- Simple à comprendre et à développer et ainsi un des temps d'apprentissage les plus court selon VisionMobile.
- Très soutenu par la communauté

Le principal désavantage :
- Le langage JAVA est un langage interprété. Il s'oppose au langage compilé en utilisant une machine virtuelle plutôt que de communiquer directement avec le matériel. Résultat : les performances sont moindres en comparaison à un projet correctement écrit en C / C++.

Grâce à l'accès à OpenGL ES, qui tire parti des puces graphiques de nos téléphones, comme par exemple le SGX sur le Samsung Galaxy S, les performances graphiques ne sont par contre pas impactées. Mais le CPU (processeur) est quand même sollicité dans la création d'applications.
Ainsi en utilisant du Java plutôt que du C++ dans un jeu vidéo mobile vous serez limités sur ces quelques fonctionnalités (non exhaustives) :
- L'intelligence artificielle.
- Les animations.
- L'analyse d'image.
- La compression et décompression de formats d'images/vidéos/sons non pris en charge par le matériel.
- L'émulation de processeurs (par exemple si vous voulez faire un émulateur de console de jeu).
D'un autre côté, le NDK n'est pas aussi simple d'utilisation que d'autres "Framework" concurrents (Apple iOS et Samsung bada par exemple) car il s'agit d'avantage d'un hack du système pour permettre de créer des applications natives que quelque chose qui aurait été prévu dès l'origine.
Ainsi, il existe deux catégories de développeurs d'applications Android. Ceux qui sont habitués au JAVA et n'ont pas besoin d'une grande puissance de calcul. En général ils sont plutôt satisfaits. D'un autre côté, il y a ceux qui veulent développer en natif. En général, ils sont un peu grognons. Chez int13, on fait partie de la deuxième catégorie.
Heureusement pour Google, il s'emblerait que nous soyons minoritaires car la plupart des développeurs interrogés préfèrent Android et utilisent le SDK et donc la technologie Java. Cependant, cela explique aussi pourquoi il existe moins de jeux proportionnellement aux applications sur Android que sur iOS.

Vous êtes maintenant informés des deux principales voies possibles si vous voulez développer sur le Samsung Galaxy S, mais la question la plus importante est, il y a-t-il un marché pour cela, est-ce que je vais gagner de l'argent ? Dans un prochain article, je vous proposerai une petite analyse du marché.
Tags : geek/nerd, samsung, smartphone
aucun commentaire






















