BOF pour iPhone : A proof of concept !

On January 25, 2009, in Uncategorized, by paisible

Suite aux nombreuses demandes pour une version iPhone du Bréviaire d’orthographe française nous sommes heureux de vous présenter une maquette d’un tel produit.

Attention, ce n’est qu’une maquette et cela ne signifie en aucun cas qu’une version pour iPhone sera disponible un jour.

D’une part pour des raisons financières et juridiques :

  • Achat d’ouvrages techniques pour obtenir les compétences qu’il nous manquent
  • Achat d’une licence “iPhone developer program” incontournable pour développer sur l’iPhone
  • Absence d’accord de l’auteur pour la publication d’une version iPhone.

D’autre part pour des raisons techniques :

  • Fonctionnement dans l’émulateur iPhone et non sur un vrai iPhone.
  • Absence totale de gestion de mémoire
  • Absence de la gestion de la rotation de l’iPhone en mode paysage
  • Absence de réflexion et d’adaptation au niveau de l’usabilité de l’application sur un iPhone
  • Maquette codée rapidement et salement
  • Quelques idées non implémentées

iBof_Demo

Les commentaires sont ouverts pour recueillir vos réflexions, idées, commentaires…

 

Et pourquoi pas une version iPhone ?

On January 1, 2009, in Uncategorized, by paisible

La question revient souvent dans mes courriels. Jusqu’à présent, j’ai toujours répondu à la totalité des mails qui me sont adressés, j’ai cependant fait une exception pour ceux me posant cette question. Si j’ai choisi de ne pas donner suite à tous ces courriels c’est que je ne peux y apporter une réponse simple et rapide. C’est également parce que j’avais envie d’y répondre par le biais d’un billet sur le blog plutôt que par courriel. Ceci afin d’essayer d’apporter une réponse construite et détaillée, mais aussi pour partager avec vous ma réflexion et recueillir vos réactions et avis.

Phase 1 : les compétences

Comme pour quasiment toute réalisation le point départ est l’acquisition des compétences nécessaires. La réalisation d’une application pour l’iPhone n’échappe à cette règle. Dans notre cas il s’agit de maîtriser principalement les points suivants :

  • les technologies de développement objet
  • les designs patterns
  • le langage de programmation Objective C.
  • le framework “Cocoa Touch”

Pour ce qui est des trois premiers les compétences de bases sont déjà acquises. En revanche, en ce qui concerne le dernier point, l’apprentissage du “framework” Cocoa Touch, tout reste à faire. Un framework quelque chose de fort complexe et peut demander plusieurs mois avant d’en obtenir la maîtrise ou tout au moins en tirer parti correctement. L’apprentissage ce fait généralement en deux temps.

Tout d’abord vient la découverte de la logique de fonctionnement et des choix techniques d’implémentation du framework. C’est une phase qui présente l’avantage de pouvoir être estimable au niveau de sa durée. En effet, elle sera plus ou moins longue suivant les individus, mais on peut s’attendre qu’à un moment ou à un autre le fonctionnent soit assimilé par le développeur.

Puis vient la phase de découverte des fonctionnalités offertes par le framework. Et là, il est beaucoup plus difficile de dire à quel moment on maîtrise toutes les fonctionnalités d’un framework. Cela va dépendre de sa complexité, de l’étendu des fonctions couvertes, de l’utilisation que le développeur en fait, etc… Généralement un développeur se concentre sur les parties qui l’intéresse et connaît rarement l’ensemble du framework de façon exhaustive même après plusieurs années d’utilisation. Un framework comme Cocoa ou Cocoa Touch comprend des centaines de classes et couvrent des domaines aussi variés que le son, l’image, me multimédia, les réseaux, l’animation, … Pour être précis, Cocoa est un ensemble de Frameworks, c’est dire l’étendue.

Donc la principale tâche qui nous attend chez paisible.fr si nous souhaitons développer une version iPhone va être d’apprendre à se servir du Framework Coca Touch. L’avantage c’est que c’est un dérivé du framework Cocoa de Mac OS que nous utilisons pour la version Mac du BOF. C’est aussi le principal piège : certaines fonctionnalités de Cocoa n’existent pas dans Cocoa Touch ou sont implémentées de façon différentes.

Il y a peu, il était très difficile de se documenter sur le sujet car le SDK était jeune et soumis aux restrictions du NDA. Les choses on pas mal évoluées et on peut maintenant trouver de la documentation à ce sujet sur Internet mais également quelques ouvrages techniques.

Vu la complexité de la chose, l’investissement dans un ouvrage de référence semble être le minimum pour se lancer. L’internet c’est bien, mais un livre c’est pratique pour lire dans les transports, pour emmener en voyage, pour les moments sans connexion, etc… Et cela à un prix : entre 30euros à 50euros en moyenne l’ouvrage.

Phase 2 : le matériel

Qui dis dis développement pour iPhone suppose de posséder un Mac et un iPhone[1]. Pour le Mac, cela tombe bien chez Paisible.fr nous en avons un ! Ce n’est qu’un modeste MacBook mais il est relativement récent et suffisant pour le moment. En revanche, nous ne possédons pas d’iPhone et c’est un gros obstacle au portage du BOF sur cette plate-forme. De plus, vu les prix pratiqués par Orange, l’objet reste quelque chose qui nous semble relativement coûteux et difficilement accessible.

Si on se base sur l’option officielle la plus économique financièrement (c’est-à-dire la promotion de Noël d’Orange) nous pouvons faire le calcul suivant :

  • 1 iPhone 8Go à 79Euros
  • 1 forfait “Série limitée de Noël Origami star” à 45 Euros/Mois sur 2 ans
  • 1 exclu WEB : 50€ remboursés sur le forfait

Nous obtenons un prix final de : 79+(45*24) – 50 = 1109 Euros.

Offre promo de Noel

Évidemment, pour développer ce n’est pas forcément une configuration raisonnable. Dans le cas du BOF, au niveau du forfait aucun soucis, l’application n’utilise pas internet. Donc ne consomme pas de forfait. Du côté de la RAM 16Go peut apporter une marge de confort au développeur, mais d’un autre côté BOF n’est pas censé être une application demandant beaucoup de RAM et cela oblige le développeur à s’en assurer vu qu’il ne pourra pas consommer plus que ce dont il dispose. En conclusion, la configuration la plus basse pourrait amplement suffire au développement d’une version iPhone du BOF, mais pourrais être inadapté pour d’autres réalisations.

Phase 3 : le logiciel

Les choses sont beaucoup plus simples et accessibles à tous.

En effet, les outils indispensables (compilateurs, IDE, outils de versionning, SDK, etc..) sont tous fournit gratuitement par Apple. Et pour ne rien gâcher ce sont des outils ayant fait leurs preuves et de qualités (gcc, xcode, interface builder, etc…)

Suivant les développements on peut avoir également besoin d’ajouter à ces outils quelques applications tierces telles qu’un logiciel de retouche d’image, de transfert de fichiers, de localisation, etc… Cela ne devrait pas poser de problème pour la plupart, car il y a pléthore de choix tant au niveau du produit, que du prix ou de la licence.

Outils de développement Apple

Phase 4 : les tests

Une fois les compétences acquises et le matériel nécessaire à disposition, tout laisse à supposer que nous sommes en conditions pour pouvoir effectuer le portage du BOF sur iPhone. C’est aller un peu bien vite et la réalité est un peu différente comme nous allons le voir.

En effet, dans de telle conditions on va pouvoir utiliser l’iPhone pour découvrir son interface utilisateur, son maniement, ses contraintes, etc… Cela va permettre d’imaginer à quoi ressemblera le portage, quelles seront les contraintes, les difficultés potentielles, etc… On va également pouvoir commencer à coder le portage de l’application sur le Mac grâce au SDK et effectuer des tests à travers le simulateur qui l’accompagne.

Là où les choses se gâtent c’est que le simulateur reste un simulateur (ce n’est pas par hasard qu’il s’appelle simulateur et pas émulateur[2]). Vous me direz : qu’à cela ne tienne, pourquoi ne pas tester directement sur l’iPhone ? Tout simplement parce que Apple ne l’autorise pas [3] !

Pour avoir la possibilité de transférer son développement depuis son Mac vers son propre iPhone il faut obligatoirement souscrire un abonnement au programme “iPhone Developer Program“. Et là il faut encore remettre la main au porte-monnaie : 99 euros par an pour le “Standard Program”.

Phase 5 : la distribution

Nous voici arrivé à la dernière étape. Nous avons notre application de prête et testée il ne reste donc plus qu’à la distribuer.
Beaucoup plus simple à dire qu’à mettre en œuvre !

  1. Il nous faut obligatoirement passer par l’AppStore
  2. Pour que l’application soit publiée sur l’AppStore il faut qu’elle soit validée par Apple. Si on se base sur l’expérience de certains développeurs à travers leurs blogs. L’opération semble délicate, longue et soumise à l’humeur d’Apple. De plus en cas de refus il semblerait que le motif de refus ne soit pas indiqué.
  3. Il faut verser une dîme à Apple de 30 % sur chaque vente.

Conclusion

La conclusion que l’on peut tirer de tout cela c’est qu’il semble que développer une application sous iPhone demande une certaine stratégie avant de se lancer, ainsi qu’un investissement personnel et financier important au départ.

Au niveau financier on peut faire un rapide calcul :

  • 1109 €: mobile + abonnement
  • 50 €: ouvrages techniques
  • 99 €: iPhone Developer Program

Soit , 1258 euros d’investissement financier !

Alors, au final y aura-t-il une version iPhone du BOF de disponible un jour ? Franchement, nous n’en savons rien !
Ce n’est pas l’envie et la motivation qui manquent, mais plutôt le temps et le financement. Mais comme vous le constatez nous y réfléchissons activement. Nous serions aussi heureux de lire vos commentaires pour savoir si vous êtes intéressés, si vous seriez prêt à payer pour cette application et combien.

Rien ne dit que 2009 ne nous réserve pas de bonnes surprises après tout.

Notes

[1] Nous mettons volontairement de coté les solutions telles que l’utilisation d’un iPhone d’occasion ou d’un iPod Touch qui nous semblent des options de “seconde classe” peu viables sur le moyen et long terme

[2] exemple : Cocoa Touch ne supporte pas NSXMLDocument bien que cela fonctionne sur simulateur

[3] Nous traitons ici que des manières légales de développer une application iPhone