S'affranchir d'Objective-C sur iPhone

Arnaud de la Grandière |
Mono, un projet open-source mené par Novell qui permettait jusqu'ici de compiler des applications développées en .Net pour Linux, Unix et Macintosh, vient de se voir adjoint de nouvelles aptitudes : MonoTouch permet en effet de compiler des applications codées en C# ou en .Net pour iPhone. Il faudra cependant toujours en passer par Xcode (et donc compiler à partir d'un Macintosh), mais MonoTouch permet cependant de porter simplement et rapidement des applications en provenance d'autres plateformes, pour les mettre à disposition sur l'App Store, tout comme de créer des applications qui soient multi-plateformes dès le départ.

Bien que l'utilisation d'Objective-C ne semble pas avoir freiné les ardeurs des développeurs, c'est un langage qui est peu connu en dehors de la sphère Mac, et nombre de développeurs ont dû apprendre le langage afin de créer des logiciels pour l'iPhone. Ce nouveau kit de développement procurerait donc à de nombreux développeurs un ticket d'entrée sur l'App Store beaucoup plus simplement et rapidement.

Le kit MonoTouch Enterprise Edition est proposé via un abonnement annuel de $999.
Tags
avatar Le Vendangeur Masqué | 

Pas certain du tout qu'Apple approuve ce genre d'initiative. C'est en effet le risque de trouver un code absolument pas optimisé et parlons même pas de l'interface pas adapté.

Je paris qu'Apple refusera ce genre d'applications dégénérées très rapidement.

avatar pecos | 

avant de commencer à programmer mon appli iPhone, je cherchais des solutions de ce genre, ou pourquoi pas aussi faire une webApp...

Après plusieurs mois de développement, je dois admettre que objective-C est très agréable à coder, et très puissant et adapté au produit.

Cocoa c'est bon ! mangez-en, comme ils disent !

avatar Grenade | 

Si le kit entreprise n'apporte rien de plus qu'un nouveau langage de programmation, pas de services à forte valeur ajoutée, payer $999 pour ça en rebutera plus d'un

avatar françois bayrou | 

Steve Ballmer va a-do-rer

avatar TotOOntHeMooN | 

Si tant d'App existent, c'est qu'Objective C ne pose absolument aucune contrainte pour un programmeur, bien au contraire.
Proposer une telle solution est juste viable pour faire un portage multi-plateformes sans se fouler.
Celà produira probablement des applications "borland like" pour ceux qui se souviennent.
Et je doute que les développeurs veuillent se limiter.

avatar Florent Morin | 

C# et .Net pour du développement iPhone... Le système de gestion des données n'a rien à voir. On ne parle même pas des interfaces...

Ils sont à Disneyland les mecs !

Surtout que l'Objective-C, une fois pris en main, c'est le pied !

avatar lafonjm | 

Ouch : m'étonnerais que Apple autorise.
En plus $999 le kit...

avatar bluheim | 

@Le Vendangeur Masqué :

[quote]Je paris qu'Apple refusera ce genre d'applications dégénérées très rapidement[/quote]

Compte pas là-dessus. Apple les acceptera, évidemment. Tu crois qu'ils refusent les applications développées avec Unity iPhone, alors que le concept est le même (pas de trace d'Obj-C dans Unity, mais des langages bien plus connus dont...le C#) ?

Et pourquoi ai-je l'impression que ça te gène qu'on puisse développer pour iPhone sans avoir de Mac ? Hmmm ?

Toujours ce fanboyisme maladif qui vous empêche de voir où se situe votre propre intérêt...

avatar françois bayrou | 

@ blueheim : xcode reste indispensable pour créer l'appli...

avatar bluheim | 

@FloMo :

[quote]C# et .Net pour du développement iPhone... Le système de gestion des données n'a rien à voir. On ne parle même pas des interfaces...

Ils sont à Disneyland les mecs ![/quote]

C'est bien tu maîtrise drooooolement ton sujet ! Apparemment, soit tu n'as jamais développé, soit tu as déjà développé mais tu ne comprends rien à ce que tu fais.

Qu'est-ce que le langage a à voir avec le système de gestion des données (quel que soit ce que tu désignes par ce terme) et les interfaces (graphiques, je suppose ?) ? Un code, une fois compilé, la machine s'en fout de savoir avec quoi il était écrit ! C'est le boulot du compilateur. Si le compilateur fait bien son travail, si les API sont bien écrites, qu'est-ce qui te pose problème exactement ?

Le fait qu'on puisse développer sur iPhone sans devoir se payer un machine hors de prix, c'est ça ? T'as peur pour tes actions ?

avatar Nogo | 

Monotouch à l'image de Unity permettra de développer des applications natives Iphone.
C'est une très bonne nouvelle pour de nombreux développeurs C#/.Net (Le prix n'est absolument pas prohibitif pour un entreprise si elle dispose déjà des compétences .Net en interne).

Pour tous les fanatiques (ce mot me fait peur), comprenez que plus de langages de développements pour l'Iphone signifie une plus grandes base de développeurs donc plus d'applications développées donc plus d'intérêt pour l'Iphone donc plus d'Iphone vendus donc plus de moyens pour Apple et plus de iProduits dans un futur proche et in fine une iDomination du monde.

avatar bluheim | 

@françois bayrou :

Oui, tout à fait. Pour créer l'appli iPhone finale, il est indispensable. Mais l'intérêt c'est par exemple d'avoir plusieurs postes PC pour les développeurs et un seul poste Mac pour générer l'application. Une sacrée économie, tout de même, à tous les niveaux (parc, formation).

avatar Le Vendangeur Masqué | 

@bluheim

Unity c'est avant tout un moteur 3D, donc pas de problème d'interface contrairement aux applications classiques.
Bref, comme d'habitude, tu passes plus de temps à lire wikipedia qu'à programmer, ton commentaire est donc sans le moindre intérêt. Sinon tu verrais la différence entre Objective C et ce truc nul et sans imagination qu'est C#.

Quand à être gêné de pas avoir à utiliser Xcode, si tu y comprenais quelque chose, comme l'a dit F.Bayrou il faut toujours l'outil d'Apple.
Et oui je suis gêné de voir des gens talentueux perdre leur temps avec les outils d'une entreprises fossilisée.

Quand à notre propre intérêt, je suis pas le seul à le voir, et je trouve qu'avec plus de 70000 applications l'iPhone se débrouille pas trop mal. Rappelle-moi c'est combien chez Windows Mobile depuis près d'une décennie ?
Et le Zune HD ? MS est obligé de racoler auprès des devs iPhones pour trouver au moins une ou deux applis sympa pour sa brique... Doivent être contents les devs fanboys de MS que leur maître est besoin d'aller voir ailleurs pour trouver quelque chose qui tienne la route... :o
C#, .net, et XNA je croyais que c'était génial... Ça l'est tellement que le marché du baladeur et de la téléphonie est en train de complètement glisser des mains de MS.

Reste-en sagement à tes "technologies d'avenir", et laisse les grands bosser, merci.

avatar françois bayrou | 

@blueheim : je ne pense pas qu'une entreprise fera des calculs de gain sur le prix des PCs. L'interêt de l'appli c'est d'utiliser d'autres langages s'ils sont maitrisés en interne. Mais dire "je vais acheter une licence à 1000 dollars pour ne pas acheter un mac parce que mac c'est trop cher" je n'y crois pas, surtout si il faut une licence par poste !!! ( a vérifier )
Sans parler qu'un minimum de formation restera nécessaire : fini le garbarge collector, pour ne parler que de lui. Quand je parle de ca a des devs .NET ils font des yeux tout ronds !

avatar Fid | 

"Toujours ce fanboyisme maladif qui vous empêche de voir où se situe votre propre intérêt... "

Hmm... Mon propre intérêt sur iPod touch est d'avoir des applications bien optimisées et à l'interface consistante avec celles du reste de l'OS. Je suis pas certain que des applis non développées en Objective-C puissent m'apporter ça.

Mon propre intérêt n'est pas celui des grosses boites, pour qui en effet faire trimer des développeurs C# qu'ils ont sous la main sera probablement plus facile que d'embaucher/former des gens à l'Objective-C. ;)

avatar bluheim | 

Reviens sur terre, vendangeur masque, tout le monde reconnait la supériorité de l'Obj-C (et du Javascript, pour parler d'un autre langage orienté objet dont les immenses qualités sont trop peu connues) par rapport au C#. Rien que quand on voit la difficulté à mettre ne place du KVC, du KVO (pour faire du binding) avec du C#, on prend conscience du retard qu'à Microsoft en terme de langages de développement.

Mais ça ne change rien au fait que si un développeur est expert en C#, il fera rapidement du bien meilleur travail que s'il devait apprendre l'Obj-C. Donc, c'est une très bonne nouvelle que le C# devienne une alternative viable pour le développement sur iPhone. Parce que ça permet à plus de développeurs d'avoir accès à la plate-forme et donc à nous consommateurs d'avoir accès à plus d'applications.

Je ne vois pas ce qu'il y a de difficile à comprendre là-dedans.

Evidemment, ça doit blesser ton petit coeur de fanboy de savoir que tout n'est pas développé avec les technologies d'Apple. Et j'ai une mauvaise nouvelle pour toi : tu n'as aucun moyen de savoir qu'une appli a été codée en C# plutôt qu'en Obj-C. Tu vas donc probablement acheter des applis développés avec un langage qui va à l'encontre de tes convictions religieuses (y'a pas d'autre terme, à ce niveau là d'endoctrinement) sans même t'en rendre compte. L'horreur.

Un conseil, n'achète plus rien. Si ça se trouve, t'as même déjà acheté des applis développés avec Unity et tu as donc peut-être indirectement participé à la propagation du C# (et du Javascript, puisque Unity l'utilise également) sur l'iPhone. Inacceptable. Comment oses-tu encore siéger au conseil d'administration d'Apple ???

avatar pecos | 

[quote]Ce nouveau kit de développement procurerait donc à de nombreux développeurs un ticket d'entrée sur l'App Store [b]beaucoup plus simplement et rapidement.[/b] [/quote]
Ça sent un peu le dev frustré qui n'y arrive pas ça...
Je me trompe ?
Non parce que je vois vraiment pas en quoi apprendre du C# ou .net à partir d'une expérience proche de... pas grand chose (javascript/php/mysql/C) comme c'était le cas pour moi, est plus facile que d'apprendre objective C en deux coups de cuiller à pot.
Perso, ça m'a pris à peine dix jours et pas trop de boulot pour être opérationnel et 2 mois pour finir une appli assez complexe.

Enfin je comprends vraiment pas ce qui provoque cette réputation d'objective C que vous avez l'air de trouver "pas simple et pas rapide" ?
Surtout de nos jours : en cas de doute, google trouve la solution en quelques secondes.
rien à voir avec mes début en programmation, où l'usage de livres papiers était indispensable !

avatar oomu | 

ho si, y a moyen de savoir si unity est utilisé.

-

Personellement, je n'aime pas l'hétérogéneité en développement de logiciel. On ne devrait pas pouvoir programmer sur windows en c, C++, c# etc. Microsoft ne devrait tout fournir que sous un seul et uniquement environnement avec son langage adapté. C++ est de trop out MFC.

Apple doit préserver objective-C et ne pas laisser venir la chienlit que serait perl/java/c++/ruby/python/pascal/et le langage favori de mon cousin/etc. et pourquoi pas Haskell ?

Ecoutez, si des gens veulent programmer en LUA des applications, tant mieux pour eux, mais à mon sens, JAMAIS on devrait dépenser une goutte d'effort dans cela pour un outil officiel.

C'est TROP d"emmerdes ! TROP de bouzins à gérer, des passerelles, des traductions, des "oui là ca diffère, mais le module d'interfacage transparent est bientôt fini". et des bugs, plein des bugs, tout le temps des bugs !

-
@blueheim

En vrai, on se démerde avec 25235 langages, comme pour le web, et c'est NUL. On peut être content quand y a parfois une plateforme COHERENTE.

Il faut que vous le compreniez, OUI je préfère une plateforme contrôlée autour d'un framework, d'un langage comme enfin l'iphone, que le chaos total qu'est le web, linux ou windows.

-
y a pas besoin de "plus de développeurs" !

C'est déjà le gros succés pour apple .Qu'est ce que vous voulez aussi les développeurs C# ?? et les développeurs pythons alors ?

Mais enfin, apprendre un langage c'est pas le choix d'une VIE ! C'est rien un langage ! Etre FIN et EFFICACE en un langage, c'est pas NON plus si extroardinaire !

Si vous avez un pote trop hardcore en Ruby, faites le revenir sur Terre, ca a rien d'extraordinaire d'être compétent.

En 10 ans, ho mon dieu, il en apprendra des langages, le petit génie de l'informatique trop hacker...

BREF ! Les langages en eux même ne sont pas si extraordinaires. La COHERENCE par contre est VITALE.

-
Apple maintient cette cohérence. Tant mieux !

Le reste :Linux !

avatar oomu | 

heureusement, on parle ici de "mono"... l'énième projet opensource qui sert à rien. (enfin si.. le jeu second life l'utiliserait, houuu).

Sur le principe mono c'est génial. si si. vraiment. un super travail y est fait et tout. Mais en pratique, Mono est jamais 100% fidèle à .NET (microsoft évoluant à tout va et n'ayant aucune obligation de communiquer à l'avance) et mono n'a pas assez de volontaires pour le faire gérer tout ce qu'ils veulent.

Vous vous retrouvez entre mono et cocoa avec des modèles différents et des une couverture fonctionnelle différente. Est ce garanti que 100% de cocoa est accessible ? et que deviendra-t'il quand apple va rajouter X nouvelles api à cocoa ? On aura sa mise à jour monotouch le lendemain ? 1 semaine ? 1 mois ?

zERO visibilité.

c'est exactement, encore une fois, un problème CLASSIQUE sous Linux.

GTK évolue, mais pas GTK#
Mono apporte .NET 2 à linux haAAa mais microsoft en est au .net 3 ! et les magazines PC de dire "c'est has been, des millions de gens en sont au 3 maintenant, hahahahha"

Et vous voulez vraiment vivre avec cela sur mac ? baser un business là dessus ?

Rien que l'article de infoworld.com est bizarre

"Although Mono is associated with the LGPL (GNU Lesser General Public) license used for distributing free and open source software, Novell with MonoKit is distributing Mono under commercial terms. The LGPL requires that users can replace an LGPL library with their own version of a library, a conflict with App Store requirements, according to Novell."

ce baratin en anglais ne veut rien dire (l'app store interdit qu'on puisse remplacer une lib LGPL par une autre ? hein ? quoi ?)

Manifestement l'iphone n'a pas eu besoin de C# ni de python ni de D ni de Lisp pour avoir une tonne de développeurs. Et cela permet à Apple de rendre l'environnement Mac indispensable : tant mieux.

L'alternative, on l'a déjà : linux et windows. c'est bon.. il est temps pour une autre informatique.

avatar Florent Morin | 

[quote= bluheim]
C'est bien tu maîtrise drooooolement ton sujet ! Apparemment, soit tu n'as jamais développé, soit tu as déjà développé mais tu ne comprends rien à ce que tu fais.
[/quote]

Possible... Lisons la prose.

[quote=bluheim]
Qu'est-ce que le langage a à voir avec le système de gestion des données (quel que soit ce que tu désignes par ce terme) et les interfaces (graphiques, je suppose ?) ?
[/quote]

La gestion des données est embarquées dans le langage Objective-C, via CoreData, qui gère automatiquement l'ensemble. Idem pour les préférences utilisateurs.

[quote=bluheim]
Un code, une fois compilé, la machine s'en fout de savoir avec quoi il était écrit ! C'est le boulot du compilateur. Si le compilateur fait bien son travail, si les API sont bien écrites, qu'est-ce qui te pose problème exactement ?
[/quote]

Objective-C est pensé pour fonctionner avec Cocoa. D'où les IBAction et autres IBOutlet. Ca fonctionne bien avec Qt en applications de bureau mais sur du mobile... c'est tendu.

[quote=bluheim]
Le fait qu'on puisse développer sur iPhone sans devoir se payer un machine hors de prix, c'est ça ? T'as peur pour tes actions ?
[/quote]

Pour les actions, je peux tout de suite répondre. ^^ Sinon, je ne vois pas le rapport.

Ce qui me semble bizarre, c'est d'utiliser un framework avec un look très spécifique (une application Windows Mobile est différente d'une application Android qui elle-même est différente d'une application iPhone) et espérer migrer le tout en un coup de baguette magique.

En fin de compte, on convertirait les accès à la base SQL Server Compact en accès Core Data, les interfaces Windows Mobile en Cocoa Touch,... Je demande à voir.

avatar marc_os | 

Quoi oomu, tu dis du mal de Lisp ??? :P
Ah, Common Lisp.... de vieux souvenirs - mais la parenthèse est bien fermée ;-)
Et pas besoin de C#, avec Objective C, C++ et le C, on a tout ce qu'il faut.
Si un développeur ne veut pas apprendre les langages les mieux appropriés à l'environnement dans lequel il travail, il ferait mieux de passer son chemin et vendre des fraises.
Comme disait mon grand-père hébéniste :
"On reconnait les bons ouvriers à leurs outils".

avatar bxlt | 

Juste une question : mono ça marche vraiment ?, car jusqu'à maintenant.... il fallait plutôt oublier... peut on considérer ceci comme une alternative crédible à l'obj-C ?
PS : A propos de C#, ne devrait-on pas plutôt dire C bémol ? Car contrairement à l'objective-C, C# n'est même pas capable de compiler un source C ! (ce qui peut servir de temps à autre !)

avatar lennoyl | 

Je ne vois pas trop le rapport entre les compilateurs et les langages...

avatar bxlt | 

@lennoyl
Un compilateur est un programme informatique qui traduit un langage, le langage source [C, Pascal, Objective-C, qui est une extension objet du C, C# qui est une "régression" objet du C,...], en un autre, appelé le langage cible (langage d'assemblage, langage machine,...), en préservant la signification du texte source.

avatar françois bayrou | 

bxlt "A propos de C#, ne devrait-on pas plutôt dire C bémol ?"
très bonne celle là :D Je la ressortirais en temps voulu à qui de droit ^^

avatar yayel2 | 

@oomu: pourtant un Macruby sur iphone serait bienvenu. A l'instar, il existe http://rhomobile.com/home depuis plus d'un an.

CONNEXION UTILISATEUR