Guide du développeur Apple* iPhone*


Pour un développeur d'applications iPhone, le centre Intel AppUp™ et la plate-forme Netbook constituent un moyen très intéressant de toucher de nouveaux marchés. Se positionner rapidement sur ce marché de plus de 40 millions de netbooks semble une excellente idée, mais le portage de votre application iPhone nécessite tout de même quelque réflexion préalable afin que votre application fonctionne efficacement pour les possesseurs de netbooks.

Les applications du centre Intel AppUp sont en effet différentes des applications iPhone. Votre application iPhone a toutes les chances d'avoir été intégralement écrite en Objective-C, alors que les applications du centre Intel AppUp soumises via l'Intel Atom Developer Program sont en général écrites en C++ (Microsoft* .NET est possible moyennant un peu de travail – il existe un certain nombre de posts sur les blogs et les forums qui peuvent s'avérer utiles en ce sens, et le programme développeurs prévoit de prendre en charge d'autres runtimes dans le futur). Les applications iPhone sont écrites à l'aide du framework Cocoa de fonctions iPhone. Lorsque vous écrivez une application Netbook, vous le faites très probablement par rapport au framework Win32, soit 80 % du marché des netbooks (l'Intel Atom Developer Program prend également en charge Moblin, mais il s'agit là aussi d'un framework différent de celui de l'iPhone). En fin de compte, la différence la plus importante tient à la taille de l'appareil. Les netbooks ont des écrans plus importants et des claviers complets, et ce serait idiot de ne pas en profiter.

Repenser votre application iPhone pour le netbook
Lorsque vous envisagerez de créer une version netbook de votre application iPhone, vous voudrez repartir du début. Il y a en effet toutes les chances que votre application iPhone soit conçue pour passer rapidement d'un écran à l'autre, avec très peu d'interaction, afin d'effectuer efficacement ses tâches. Apple encourage ce comportement et cela se comprend pour un terminal de poche. L'iPhone (et les autres appareils mobiles pour Internet, MID ou smartphones) sont censés être utilisés en temps réel. On les utilise pour rechercher des informations, lire les grands titres de l'actualité et vérifier son courrier. Mais ce ne sont pas les appareils les plus indiqués pour des sessions interactives.

C'est là qu'intervient le netbook. Avec un écran plus grand et un clavier physique complet, il est beaucoup plus facile de composer un e-mail assez long, de rédiger un document ou de jouer à un jeu. Examinez la manière dont votre application iPhone permet d'effectuer rapidement ses tâches et réfléchissez à la manière d'utiliser le netbook pour interagir avec vos clients. Envisagez de coupler les deux applications dans un ensemble où chacune complète l'autre. Vous pouvez, par exemple, avoir un afficheur d'images sur l'iPhone et la version Netbook que vous créez pour le centre Intel AppUp pourra inclure des outils simples de retouche. Dans l'idéal, les applications se synchroniseraient de manière à ce que toute modification apportée à la version netbook se refléterait dans la version iPhone, et vice versa.

Enfin, examinez le matériel commun à tous les netbooks avant de décider quoi développer. La plupart des netbooks ont des caméras intégrées, prennent en charge Bluetooth et certains sont mêmes livrés avec des écrans tactiles. Certains netbooks ont également un GPS ou des accéléromètres (bien que le composant Geolocation proposé dans le catalogue fournisse aux appareils non GPS une recherche en fonction de l'IP). Nous avons souvent tendance à présupposer que les téléphones sont en permanence en ligne (tout en fournissant des palliatifs quand ils ne le sont pas), eh bien, c'est aussi le cas pour les netbooks. La plupart du temps, les gens utilisent leurs netbooks sur un réseau WiFi et c'est bien plus rapide que le 3G ou EDGE. À noter que, à présent, bon nombre de netbooks commencent également à prendre en charge le 3G, WiMax, etc.

Les tailles d'écran vont du 9” au 11” (il existe encore des écrans de 7”, mais ceux-ci sont en voie de disparition rapide). Le plus souvent, les écrans ont une résolution de 1024x600, mais vous devez prévoir une adaptation de votre application à des résolutions différentes sur des appareils différents. Autre point : en raison de la petite taille (comparée à celle d'un ordinateur portable ou d'un PC normaux), l'application sera plus utile agrandie à la taille de l'écran ou en mode plein écran. Il n'y a pas suffisamment de place utile sur l'écran des netbooks pour y créer des interfaces MDI à plusieurs documents.

L'intégration à l'Intel Atom Developer Program est chose facile
Donc, vous avez un design tout prêt et vous avez à commencer à le programmer en C++ avec Win32. Dans l'environnement iPhone, vous avez eu à apprendre et écrire pour toutes les interfaces Cocoa utilisées par les iPhones. Pour les netbooks Windows, vous allez devoir écrire par rapport à l'API Win32. Obtenir l'intégration du SDK est réellement très facile. Vous ajoutez quelques lignes de code à votre application (Windows ou Moblin) et ce code se charge de vérifier l'autorisation. Une minute de travail seulement et voilà que vous avez immédiatement accès à tout le marché Netbook.

Comme vous le savez pour avoir développé pour iPhone, vous pouvez tester sur un simulateur, mais il y a quelques petites choses que vous ne pourrez attraper que sur un véritable appareil. À un prix bien plus modique que votre iPhone déverrouillé, vous pouvez vous procurer un netbook chez n'importe quel magasin d'électronique ou n'importe quel fournisseur de télécommunications. Pour la plupart de vos tests, vous aurez intérêt à créer une machine virtuelle (à l'aide de VMware, de Parallels ou de Windows Virtual PC) sur votre machine de développement ou sur un serveur. Cela vous permettra d'installer votre application sur un système clean, d'exécuter des tests et de restaurer le système vers un état clean. Il existe dans le monde du développement Windows une pléthore de solutions pour le lancement automatique, le déploiement et le test de vos applications, ce qui permet à vos applications netbook d'être plus robustes.

Packager et livrer votre application Netbook
Xcode et les outils iPhone sont conçus pour packager automatiquement les fichiers en vue de leur livraison car c'est le même fichier qui est envoyé au téléphone (ou au simulateur) et au magasin. Avec l'Intel Atom Developer Program, comme vous utilisez des outils de développement Windows, c'est à vous d'ajouter les détails du packaging, mais cela n'a rien de compliqué. Vous trouverez plusieurs posts excellents à ce sujet sur le site des développeurs ; en gros, vous créez un package de déploiement dans Visual Studio, vous le liez au projet de votre application et vous en retirez tous les éléments d'interface utilisateur. La dernière étape est essentielle car Intel exige que le MSI effectue une installation en mode silencieux, en d'autres termes, que rien n'apparaisse à l'écran et que l'installation s'effectue sans aucune interaction de l'utilisateur.

Autre motif de satisfaction : l'Intel Atom Developer Program rend très facile la signature des applications en vue des tests et de leur publication. Dans le code que vous avez ajouté pour l'autorisation, vous pouvez choisir un ID d'application par défaut qui vous permet de tester l'application avec les outils qui sont fournis dans le SDK (dans vos environnements de développement et de test) dans n'importe quel environnement compatible avec le SDK. Pour la publication, il vous suffit de remplacer l'ID par le GUID qui sera indiqué dans le tableau de bord de votre application. Vous ne serez pas capable de tester l'application avec le GUID dans le SDK (l'application sera signalée comme « non autorisée », ce qui est un bon test au demeurant), mais, si tous les autres tests ont réussi, votre application sera prête à être livrée. Intel fournit également une fonctionnalité de bêta-tests dans laquelle vous pouvez tester à l'aide du centre Intel AppUp la fonctionnalité complète de votre application avant de la soumettre à validation.

En plus d'avoir testé la fonctionnalité de votre application, vérifiez que vous avez bien testé toutes les étapes de la procédure de validation. Il existe plusieurs posts sur le blog et plusieurs articles, notamment un émanant de l'équipe Intel de validation qui énumère ses cas de tests. Lorsque vous soumettrez l'application Netbook, vous verrez quand l'équipe Intel de validation la prélève pour valider les fichiers binaires (cela veut dire qu'ils sont en train de tester votre application) et pour valider les métadonnées (ils sont en train de vérifier les informations qui apparaîtront dans le magasin), et vous verrez quand l'application est approuvée, ou rejetée.

Points à prendre en considération pour des développements interplate-formes
Dans certains cas, il sera possible de partager du contenu ou du code entre l'application iPhone et l'application netbook. Si vous prévoyez d'écrire les deux applications en parallèle ou de réécrire une partie de l'application iPhone tout en créant l'application netbook, quelques points sont à prendre en considération.

Le contenu informatif de base présent dans l'application pourra être codé en HTML avec CSS et, éventuellement, JavaScript. Sur chaque plate-forme, vous pouvez incorporer un navigateur pour la visualisation et la navigation dans ce contenu. Mais, soyez prudent dans vos tests et conservez un layout simple car le rendu des vues n'est pas forcément identique sur IE8 et sur Safari ; donc, testez les deux navigateurs.

Pour la plupart des applications, vous voudrez utiliser les éléments natifs d'interface utilisateur de chaque appareil (contrôles iPhone et contrôles Windows). Mais, si vous développez des graphismes ou des contrôles personnalisés (pour un jeu, par exemple), vous avez intérêt à envisager d'écrire tout le rendu en OpenGL et en C++. Les deux sont pris en charge aussi bien sur l'iPhone que dans Windows. Mais, en dehors des jeux, pensez que la plupart des utilisateurs s'attendent à disposer des contrôles natifs et qu'ils ont moins tendance à faire confiance à une application dont le look est très différent.

Lorsque vous écrivez votre application iPhone, vous pouvez utiliser C++ avec Objective-C. Pensez à isoler tous les éléments de votre code qui peuvent s'exécuter séparément et qui ne se connectent pas à Cocoa et à Interface Builder. Écrivez ces éléments en C++ et vous pourrez les porter tels quels vers votre application netbook Windows. Un bon exemple de cela serait une machine d'état exécutant un moteur de jeu.
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.