Dans le cadre de votre activité professionnelle, vous souhaitez mettre en oeuvre plusieurs projets d’application sur mobile. Votre budget est serré et vous ne pouvez tourner votre projet que vers un unique système d’exploitation. Que vous embauchiez en interne ou en régie, le choix de l’OS va être rapidement crucial.
En dehors de l’aspect marketing qu’implique cette démarche (étude des parts de marché dans le but de toucher un maximum d’utilisateurs), il est important de connaître les difficultés techniques inhérentes aux différentes plateformes. Pour peu que ce ne soit le premier projet de votre développeur, celui-ci risque rapidement d’être confronté à plusieurs difficultés… quelle que soit la plateforme choisie.
Le langage utilisé
Le développement sous Android se fait en JAVA : tout développeur qui se respecte connaît des bases de ce langage objet. En revanche, le développement sous iOS se fait en Objective-C, un langage propre à Apple dérivé du C et du C++. Rares sont les écoles d’ingénieur formant à l’Objective-C ; apprendre un nouveau langage (même dérivé du célèbre C) pour un nouveau projet risque donc de rajouter du temps de développement, et donc des coûts importants.
La plateforme de développement
Du côté d’iOS, les outils fournis avec la plateforme de développement sont particulièrement riches en explications : les développeurs sont donc pris par la main. Ce confort d’utilisation en fait la plateforme préférée de nombreux développeurs. Autre avantage : Apple propose aux développeurs d’acheter des « tickets » afin de pouvoir entrer en contact avec leurs ingénieurs en développement. Proposés à 50 dollars l’unité, ces tickets peuvent permettre aux développeurs de se décoincer et de pouvoir continuer le projet.
Sous Android, la documentation est beaucoup plus réduite : le projet va donc parfois subit des phases de ralentissements où les développeurs vont tâtonner. Fort heureusement, la communauté de développeurs sous Android est très active et peu s’avérer utile en cas de blocage.
Les terminaux
La stratégie multi-support de Google fait qu’Android est disponible sur une multitude de terminaux aux caractéristiques différentes. Lors du développement, il est donc nécessaire d’anticiper ce problème, notamment les ratios d’écran différents.
Quant à iOS, il n’est disponible que sur les iPad et iPhone d’Apple. Auparavant, ces deux modèles d’appareil affichaient un ratio d’écran similaire, ce qui simplifiait grandement le processus de développement. Désormais, avec la sortie de l’iPhone 5 et de son écran au ratio de 16/9, iOS perd cet avantage.
La publication
Un compte développeur d’Apple coûte 100 dollars par an, tandis qu’un compte développeur Google ne coûte que 25 dollars. À noter qu’il faut obligatoirement un Mac pour publier une application sur l’App Store.
Les délais de publication varient aussi énormément : avec Apple, il faut prévoir un délai de validation de dix jours environ, tandis que la publication sur le Play Store de Google ne dure qu’un jour. À anticiper s’il s’agit d’un projet urgent !
En conclusion
Les deux plateformes offrent une expérience de développement très différente.
Le côté fermé d’iOS laisse certes peu de place à l’improvisation, mais offre un confort de développement qui permet de tenir plus facilement les délais. La contrepartie logique de l’aspect fermé de cet OS est sa difficulté d’accès. L’OS de Google offre des avantages et des inconvénients opposés : liberté de développement, mais manque d’encadrement.
Cette symétrie nécessite donc d’anticiper en amont les besoins liés au projet.
Article rédigé par l’équipe de Qualia Systèmes.


























Le Journal du Geek
Pee Wee
27 sept, 2012, 18:08 #1- ajouter les lettres qui manquent (utilisation e fait)
- traduire devices en terminaux
- et ainsi corriger « une multitude de devises »
- et le plus beau dans la conclusion, la correction syntaxique : une expérience de développement très différente
Il a pas du couter bien cher cet article…
bruce
27 sept, 2012, 18:09 #2XCode ne prends pas tant que ça les gens par la main, cela reste un IDE, très complet et puissant, mais pas un tutoriel ! D’autant que certaines phases demandent de comprendre les méandres de l’application… (le débug, les provisioning profile…).
Enfin l’article est vraiment très light, aucune vision de fond, aucun exemple technique… Moué…
epiduc
27 sept, 2012, 18:10 #3Lounes
27 sept, 2012, 18:11 #4On va dire que c’est moins visible cette fois !
DDReaper
27 sept, 2012, 18:13 #5arshilian
27 sept, 2012, 18:14 #6- référencement (par mots clefs, achetables ou pas, dans la description ou pas,…)
- classes d’applications (catégories Jeux ou autre pour les filtres)
- nombre d’applis postées et vitesse de « décollage » des téléchargements
- % de réussites à plus de x téléchargements
Ainsi que d’autres questions (qui peuvent être importantes):
- type de facturation in app
- upgrade possible en mode freemium (demo gratuite puis payer l’app complète, est-ce une update ou une app séparée)
- confidentialité du code (check Apple et reprise de l’interface graphique)
- accès à des technologies hardware (le NFC sur Appstore ça va pas le faire par exemple)
- accès au software (certaines parties de l’OS sont ouvertes ou fermées à l’accès par les développeurs, voir les listes d’API)
Un article là dessus peut être très cool, un peu en mode de celui que je commente actuellement (rapide, simple, mais place les idées rapidement sur des points importants souvent négligés par une vision « marché »)
jacob
27 sept, 2012, 18:16 #7S’il vous plait faite rédiger vos articlse par des personnes compétente dont c’est le métier et pas par un branquignole qui s’est informer sur le sujet pendant 2h…
Milooz
27 sept, 2012, 18:17 #8Ensuite, sur le pourcentage restant , avec notre ami flash et la CS6, on s’en sort pas mal (certificat générés en shell pour la pomme)…
Et faut rester comme ca , des languages passe partout, faut boycotter ce concept de chacun son language remanié, ca fait juste perdre du temps.
7roj4
27 sept, 2012, 18:23 #9« Article rédigé par l’équipe de Qualia Systèmes. » pourquoi tu t’en prends aux rédacteurs du JDG ? Apparemment ils n’y sont pour rien … a oui c’est la mode de relever toutes les fautes
nacmac
27 sept, 2012, 18:27 #10PS : il faut aussi ajouter :
)
- qu’en objective-c on gère sa mémoire seul pas de véritable GC
- que la notion de fragment supprime complètement le problème des différents formats d’écran
- et que la rentabilité d’une application android est très loin derrière une appli IOs (les clients android n’ont pas d’argent
WinstonSmith
27 sept, 2012, 18:27 #11Icare
27 sept, 2012, 18:27 #12Sérieusement, vous prenez vos lecteurs pour quoi ?
Merlin47
27 sept, 2012, 18:37 #13De moins en moins crédible malheureusement.
c’est triste.
Pee Wee
27 sept, 2012, 18:37 #14@7roj4 :
Je ne voulais pas critiquer le JDG sur la rédaction. Je pense que les articles sont lus et relus, entre autres par Qualia Systèmes, puisque je les soupçonne d’avoir mis un stagiaire derrière son clavier pour rédiger ça.
D’un autre coté, on contrôle plus ce qui n’est pas cher, et moins ce qui coûte trop… Alors je me suis peut être trompé de jugement, ca a peut être couté une blinde ! dommage…
Nuclear4war
27 sept, 2012, 18:38 #15rafale-d
27 sept, 2012, 18:41 #16Quand tu développe sur Mobile tu t’arranges pour être multi-plateforme (et c’est pas non plus super compliqué ou dure)
La perte de temps n’en est pas vraiment une, c’est juste un apport de connaissance supplémentaire au dev.
Le passionné qui veux créer sa propre appli va prendre son temps et apprendre ce qu’il doit apprendre.
La boîte pressé va faire appel à une agence spéciale qui saura dev en multiplateforme.
Le mec qui sort une appli sur une plateforme uniquement c’est soit un choix, soit un flemmard.
icemanvox
27 sept, 2012, 18:45 #17Pour ce qu’ils sont pour la majorité d’entre eux, des gros chieurs !
mephistophelles
27 sept, 2012, 18:45 #18Et Windows Phone ???
apple et google aussi ont eu 120000 applis , vous allez en parler quand quand ils seront a 500000 applis mais les 2 autres seront a plus d’un million …
Gazberzu
27 sept, 2012, 18:50 #19Je suis obligé de développer mes appli sur iOS et sur Android et les côtés chiants d’Apple c’est qu’il faut acheter un mac alors que les côtés chiant d’Android c’est qu’il faut…. apprendre à programmer.
Franchement, encore une fois un article qui se voudrait impartial mais dont le coté partisan ne peut échapper à personne.
Quoi qu’il en soit, je ne devrais développer que sur une des deux plateformes, j’oublierais iOS immédiatement.
Mais bon, il y a toujours des ¨@&~ qui pensent qu’Apple est parfait
dev001
27 sept, 2012, 18:52 #20pandours
27 sept, 2012, 18:55 #21« Article sponsorisé » » Rédacteur qui n’y connait rien », fautes en veux-tu en voilà .
Il y a aussi des gens qui n’y connaissent pas grand chose en informatique et qui souhaitent s’informer tout de même sur les préférences des dev en matière de développement d’application.
Avoir un article général permet de mieux comprendre l’ensemble tout en permettant au plus grand nombre de gens d’avoir des réponses… on a pas a pas tous la volonté de lire 50 lignes de techniques pour savoir quel OS est meilleur qu’un autre…
Par ailleurs, on reproche un article sponsorisé et un rédacteur ignorant… Faudrait savoir !
Peut être que les rédacteurs du JDG ne sont pas assez calés pour parler de ce sujet, c’est pour ça qu’il font appel à un rédac invité qui connait bien le sujet.
Or qui connait mieux le développement qu’un développeur ?
Ce serait bien un peu plus d’ouverture et de prise de recul, merci mais on est pas tous dingue d’informatique.
J’ai l’impression que la moindre petite erreur du JDG est une faute impardonnable… heureusement que vous n’avez pas d’action JDG !
yoyo1306
27 sept, 2012, 18:57 #22Wanaida
27 sept, 2012, 19:00 #23bref nul
flemhardiz
27 sept, 2012, 19:04 #24Mon choix est vite fait : windows 8 RT et windows phone 8
C’est un pari sur l’avenir mais il y a plus a gagner.
Kinny
27 sept, 2012, 19:18 #25En contrepartie, l’Objective-C est un langage dont peu de développeurs connaissent mais l’apprentissage et la prise en main est plus facile et son développement également. Le langage objet se traduit sous forme de message qui rende la lecture plus lisible et plus facile à comprendre. De plus, en Obj-C il est possible d’écrire son code sous plusieurs forme ce qui facilite grandement la tache pour les développeurs qui connaissent de base C, C++, JAVA ou même C#. L’Obj-C utilise énormément les bindings et les delegates (un peu similaire au C#) qui simplifie énormément la tache du développeur contrairement à java. L’API Cocoa et Cocoa touch est très riche et très bien documenté. Le switch se fait très rapidement et l’IDE XCode est tout de même beaucoup plus puissant et offre beaucoup plus de possibilité et plus ergonomique à prendre en main qu’un NetBean ou Eclipse, de plus XCode n’est pas uniquement qu’à faire de l’Obj-C comme certain pourront croire mais il sert aussi à développer sous tous les langages possibles comme du Java par exemple.
Flo
27 sept, 2012, 19:59 #26Comme dit plus haut, la possibilité de créer des web-apps implique de ne pas obligatoirement passer par l’apprentissage (ou pas) d’un nouveau langage et/ou d’un nouvel IDE. Personnellement j’ai testé deux trois petites web-apps en JavaScript couplées avec des bibliothèques graphiques telles que Raphaël (SVG) ou encore les Canvas et ça fonctionne vraiment bien sur iOS. Tout dépend donc, selon moi, du type d’application à réaliser et vers quel type/nombre d’utilisateurs impactés.
Mike
27 sept, 2012, 20:23 #27Je rajouterai que du point de vue d’une entreprise, il n’est pas simple de trouver un développeur Java compétent alors que trouver un développeur C++ ou C# est plus facile et la conversion vers Objective C est vraiment pas difficile.
Un des avantages de Windows mobile et de iOS est que le moteur de l’application peut provenir de Mac OS ou de Windows. C’est le cas dans la boîte où je bosse où 75% de l’application mobile provient de la version Windows (pour la version MS) et Mac OS (pour la version iOS). Alors que pour l’application Androïd, il a fallut tout ré-écrire.
Sinon aujourd’hui pour une société il est quasi indispensable de créeer l’application pour Androïd et pour iOS. L’application Windows Mobile semble moins indispensable mais facile à porter si on a commencé à développer pour Métro.
Allan
27 sept, 2012, 20:23 #28Apple impose d’utiliser son propre système de paiement pour faire payer l’application ou payer au travers de l’application. Et Apple prélève 30% de commission !!!!
Orfeo34
27 sept, 2012, 20:31 #29ozone-fr34
27 sept, 2012, 20:31 #30La documentation de Android est très complète. Respecter toutes les tailles d’écran, c’est désormais relativement simple quand on est dev. Suffit par exemple d’utiliser les DPI et le vectoriel.
Et le prix de la licence Android est bien 25€ A VIE.
Ben
27 sept, 2012, 20:54 #31Si on veut faire un comparatif, on le fait correctement, genre x a ceci, y a cela, x est mieux parce que. Ici, il n’y a pas ces explications.
Pour ma part, je suis développeur iOS ET Android, je pense donc savoir de quoi je parle. Dans l’article, « tout le monde connaît java, personne ne connaît objective-c, à l’école on apprend le java »… Ce que l’on m’a appris à l’école, c’est à programmer, la logique, les algos. Les langages utilisés n’étaient la que pour mettre en pratique.
Cette pratique, elle a commencé avec l’assembleur, histoire qu’on comprenne comment arrive notre code une fois compilé (bon, je prend un raccourcis, mais c’est l’idée), ensuite, le C, pour vraiment apprendre la prog avec un langage. Puis le C++ pour comprendre l’oriente objet. Finalement, le java pour voir un langage « haut-niveau ».
Pour moi, un bon développeur n’a aucun soucis à apprendre un nouveau langage, une boucle, une fonction ou une condition, qu’elle s’écrive « if (condition) then » ou « if (condition) {} », ben cela reste la même chose, juste la manière de l’écrire qui change.
Maintenant, avec plus de 10 ans d’utilisation du Java, j’en vois vraiment les avantages, mais aussi les grosses faiblesses. Je développe en obj-c depuis 3 ans maintenant, et ce langage me plaît vraiment. Les delegates
Ben
27 sept, 2012, 21:03 #32Si on veut faire un comparatif, on le fait correctement, genre x a ceci, y a cela, x est mieux parce que. Ici, il n’y a pas ces explications.
Pour ma part, je suis développeur iOS ET Android, je pense donc savoir de quoi je parle. Dans l’article, « tout le monde connaît java, personne ne connaît objective-c, à l’école on apprend le java »… Ce que l’on m’a appris à l’école, c’est à programmer, la logique, les algos. Les langages utilisés n’étaient la que pour mettre en pratique.
Cette pratique, elle a commencé avec l’assembleur, histoire qu’on comprenne comment arrive notre code une fois compilé (bon, je prend un raccourcis, mais c’est l’idée), ensuite, le C, pour vraiment apprendre la prog avec un langage. Puis le C++ pour comprendre l’oriente objet. Finalement, le java pour voir un langage « haut-niveau ».
Pour moi, un bon développeur n’a aucun soucis à apprendre un nouveau langage, une boucle, une fonction ou une condition, qu’elle s’écrive « if (condition) then » ou « if (condition) {} », ben cela reste la même chose, juste la manière de l’écrire qui change.
Maintenant, avec plus de 10 ans d’utilisation du Java, j’en vois vraiment les avantages, mais aussi les grosses faiblesses. Je développe en obj-c depuis 3 ans maintenant, et ce langage me plaît vraiment. Les delegates sont vraiment un plus (une interface java avec des méthodes requises mais aussi optionnelles, ce qui est vraiment un must).
Concernant les IDE, je hais éclipse…. Mais vraiment. Je ne compte plus le nombre de fois que j’ai du le desinstaller puis réinstaller parce que j’avais fait la bêtise de mettre les plugins à jour. Si tu veux un bon IDE, il faut se tourner plus vers des trucs genre Intellij Idea (même si il a aussi des faiblesses). XCode, c’est la même. Il a vraiment des supers outils, mais manque cruellement de certains trucs (refactoring par ex).
Concernant les docs, celle de Apple est vraiment bien, celle d’Android, je la trouve plus « brouillon ».
Ce qui m’a vraiment énervé dans l’article, c’est l’histoire des résolutions. En tant que des, c’est le bonheur iOS. 5 résolutions en tout (iPhone, iPhone retira, iPhone 5, iPad et iPad retina)… Et ce n’est pas un soucis à gérer (on peut virer les deux retina qui ont juste le double de points, ce qui virtuellement donne la même résolution)… Par contre, développer pour Android est une horreur à ce niveau… Je ne sais pas combien il y a de résolutions différentes, mais c’est impressionnant.
Tout comme le nombre de versions de l’os… iOS, de son côté propriétaire, est vraiment bien. Tu dev pour un iPhone, cela fonctionne sur tous, Android est très faible de ce côté, avec les différentes sources de l’os (constructeur, mod, …)
Ben
27 sept, 2012, 21:06 #33Désolé pour double post, miss tap en voulant corriger un mot :/
didierfranc
27 sept, 2012, 21:18 #34Greg
27 sept, 2012, 21:32 #35Il s’agit tout simplement ici d’un échange de contenu entre deux sites comme cela se fait chez les plus gros sites également.
Les Rédacteurs Invités sont des personnes bénévoles écrivant pour d’autres supports, et qui souhaitent partager sur le JDG un sujet que la rédaction n’a pas l’habitude de traiter.
Bonne soirée
A1rwav3
27 sept, 2012, 21:46 #36Juste pour commencer, il nous faut un iPad, 2 iMacs, 1 ou 2 comptes Apple… Tout ces investissements avant même qu’on ait commencé le moindre développement!
Bon perso je suis en train de penser a achater une license Mountain Lion et a virtualiser tout cela… Mon bureau est fait pour développer des applis Windows, je saurais pas ou mettre un iMac 21″!
Bref changer d’écosystème ca n’a pas l’air facile… Je suis également pour les applications légères. facilement utilisables sur différentes plateformes, mais voila, quand vous voulez faire du déconnecté, pas trop le choix…
gruiky
28 sept, 2012, 00:53 #37en même temps anticiper les problèmes en amont, c’est un peu le boulot d’un analyste.
Flo
28 sept, 2012, 01:32 #38Jazzsession
28 sept, 2012, 07:21 #39En matière de fragmentation, ce qui me crée le plus de boulot, c’est iOS ! à cause des retina et non-retina (tous les graphisme a double, et certains codes) ainsi maintenant du ratio 4/3 puis 16/9 du nouvel iPhone. Pour Android, j’ai bien moins de problèmes, mes premiers test sont assez concluant et tournent de la même manière sur mon Acer A500, HTC one X et même un Sony Xperia mini-pro.Le problème d’Apple à mon sens est de devoir faire tout un bordel d’inscription(le fameux ID fourni par l’administration ricaine -> vraiment n’importe quoi! je vous raconte pas si lors de la reception il y a une erreur sur la raison sociale… on attend un message de leur part depuis 1 mois et demi et ce n’est tjrs pas réglé)
L’avantage de Corona est que je peux coder sur Win, c’est juste pour la compilation que j’ai besoin d’un Mac.
Et si on utilise la version Entreprise, il est possible de coder en C++ pour les 2 plateformes.
Jazzsession
28 sept, 2012, 07:23 #40Exact ! d’ou notre choix pour Corona.
Michel
28 sept, 2012, 07:57 #41(les clients android n’ont pas d’argent
)
Ah bon?? Quelle sont tes sources? Je suis androïd pourtant je vais payé 75% d’impôt!
Et toi? ta dépensé tout ton fric dans une pomme?? Comment tu vas faire pour te payé une appli maintenant que tu ai sur la paille?
Pov’ type..(pas pauvre en argent apparemment, mais vraiment intellectuellement pauvre..va t’acheter un cerveau plutôt qu’un téléphone.
larko
28 sept, 2012, 08:16 #42- La licence de dev. Android est bien a 25$, mais a vie.
- si on respecte les recommandations de la doc android, et en travaillant en dpi, il n’y a pas de problème avec la diversité de tailles d’ecran. La seule adaptation dépend plus du type d’appareil : téléphone, tablette 5″, tablette 7″, TV.
omen77
28 sept, 2012, 09:24 #43http://www.paperblog.fr/4873276/developper-pour-android-ou-iphone-les-differences/
arghoops
28 sept, 2012, 09:48 #44@Gazberzu
« Mais bon, il y a toujours des ¨@&~ qui pensent qu’Apple est parfait »
Et des #{@$¨% qui pensent qu’Apple c’est de la mayrde…
Vu le nombre d’apps et son nombre de téléchargements (gratuite ou payante) je pense qu’un dev va sérieusement se poser la question entre développer sur Apple ou sur Androïd…
omen77
28 sept, 2012, 10:10 #45Un dev, comme beaucoup aujourd’hui, développe d’abord sur ios, et une fois l’appli rentabilisée, se retrouve sur le Play Store.
kiriaphil
28 sept, 2012, 10:37 #46ET merci @Ben, j’ai bien aimé le passage sur ce qu’on apprend à l’école. Dans mon parcours de jeune informaticien on m’a justement appris à m’adapter au langage de programmation. Mes premiers cours c’était Algo, Logique etc… Les spécificités du langage c’est le programmeur qui l’apprend tout seul et non pas à l’école.
dqms
28 sept, 2012, 10:41 #47Eclipse fonctionne beaucoup mieux sur ces points là . Le seul avantage de Xcode selon moi c’est en fait interface builder, qui permet de faire facilement des applis qui utilisent UIKit.
PS : Je bosse tous les jours avec Xcode, de temps en temps à titre perso avec Eclipse.
shooby02470
28 sept, 2012, 11:44 #48Quand je lis ce comparatif, l’impression qui en ressort est qu’android fait tout mieux qu’ios dans tous les domaines, et ce pour moins cher. Par exemple, en cas de « panne sèche », tu doit payer un « ticket » assez couteux chez Apple alors que pour android tu communique avec la communauté qui décoince ton problème, et ce gratuitement. S’ajoute à cela des couts élevés pour ios, vu que tu est obligé de programmé sur mac (si t’es pas équipé, ça fait mal) que tu n’a pas sur android, et expliquant en grande partie pourquoi il y a plus d’applis payantes sur ios que sur android. Quant aux différentes résolutions des androdevices, ce n’est en soit pas vraiment un problème, puisque de toute façon tu est obligé de le faire, que cela soit ios ou android. Mais le fait que sur android tu le fasse dés le départ rend au final la programmation plus simple : on n’a plus à gérer les évolutions de résolutions puisqu’android les gèrent toutes, alors que pour ios, tu doit tout reprogrammer en fonction de l’évolution du matos, qui fait évoluer les résolutions. Cela demande donc de remettre les mains dans les cambouis rien que pour ça, alors que tu préférerais le faire pour ajouter des fonctionnalités à ton appli, supprimer une faille récemment découverte … bref pour quelque chose de plus utile et productif !
tarkan_
28 sept, 2012, 13:00 #49En m’intéressant un peu à cette histoire, j’ai trouvé cette news sur le sdz:
http://www.siteduzero.com/news-62-45515-p1-google-permet-de-traduire-le-langage-java-en-objective-c.html
ça pourrait intéresser quelqu’un ^^ . Personnellement, je ne savais pas que c’était possible…
yannliep
28 sept, 2012, 13:15 #50Encore un article qui n’est pas entièrement correct.
Objective-C et Java ne sont pas les seuls langages disponibles, on peut développer en c et c++ sur android grâce au ndk, il y a aussi l’AS3 pour android et ios grâce à Flex.
Il n’y a pas que chez android que les problèmes d’écrans sont présents sur iOS aussi avec l’utilisation de l’écran rétina qui double le nombre de pixel.
En tant que développeur l’apprentissage peut se faire plus ou moins rapidement en fonction des connaissances des autres langages qui sont proches, ensuite il y’a aussi les sdk à maitriser qui peuvent êtres plus important que le langages lui-même
Le minimum c’est de se renseigner avant d’écrire de telles choses.