Xamarin

muqaddarmuqaddar Administrateur

Salut les devs !


 


Je viens de tomber sur ça:


http://xamarin.com


 


Faire du C# pour développer sur Android et Windows.


Est-ce une bonne idée ?


Qu'en pensez-vous ?


 


Qu'est-ce qui empêche aujourd'hui une boà®te de faire une passerelle comme Xamarin pour développer en Objective-C pour Android et Windows ?


 


Est-ce un problème de droits sur le langage Objective-C ?


Réponses

  • JegnuXJegnuX Membre
    mai 2013 modifié #2

    Genre Titanium


    Ou Ruby Motion ?


     


    Edit :


    OUPS J'ai lu de travers, je croyais que tu parlais de faire la même chose sur iOS. Mais en fait non, c'est d'utiliser Objective-C... Sorry ^^'


  • muqaddarmuqaddar Administrateur

    Oui... Programmer en Objective-C pour Android...


  • muqaddarmuqaddar Administrateur
    mai 2013 modifié #4

    La FAQ est sympa... sauf avec l'Objective-C. :-)


    http://xamarin.com/how-it-works


  • LarmeLarme Membre


    La FAQ est sympa... sauf avec l'Objective-C. :-)


    http://xamarin.com/how-it-works




    <troll>


    Ouais, enfin, j's'rai resté sur le " Write beautiful code ", avec du C# (Beurk), qui est le Java made in M$ (encore plus Beurk) :p


    </troll>

  • muqaddarmuqaddar Administrateur

    C# est encore plus beurk que Java ?


    Je n'ai jamais fait de C#.


  • LarmeLarme Membre


    C# est encore plus beurk que Java ?


    Je n'ai jamais fait de C#.




    De mon point de vue, c'est kiffe-kiffe, j'en ai fait un peu... De mémoire, C# était un peu plus facile... Maintenant, vu ce qu'en ai fait et ce dont j'en ai actuellement à  carrer :p

  • AliGatorAliGator Membre, Modérateur

    J'ai fait un peu de C#/.NET, et mon Java date de mes études, donc c'est loin.


     


    Pour moi, c'est kif kif mais j'ai préféré le C#/.NET, aussi parce qu'au moins on avait un framework donné, alors que ce que je déteste au plus haut point avec Java c'est pas tant le langage mais surtout tout l'écosystème autour, le nombre de frameworks qui font doublons et font la même chose et tu sais jamais lequel choisir, mais que si tu choisis le A faut absolument utiliser B et C car y'a des dépendances, et si à  côté tu utilises X faut absolument que tu utilises Y qui n'est pas compatible avec B... une vraie foire et une horreur je trouve.


     


    Après, il se trouve que j'ai eu à  travailler avec .NET, avec des frameworks bien précis, alors que mon expérience en Java m'en a dégouté (bon je parle mm pas du GC et autres conneries de Java). J'ai pas assez d'expérience dans chacune des technos pour comparer de façon assez constructive. Mais aujourd'hui à  choisir je pense que je préférerai C# à  Java, de par ce que mon peu d'expérience m'a donné comme impression sur le sujet.


  • muqaddarmuqaddar Administrateur

    Merci Ali pour ton avis.


    C'est toujours intéressant. Je testerai cette techno dans quelques semaines par curiosité.


  • FKDEVFKDEV Membre
    mai 2013 modifié #10

    Avec ARC, ses possibilités de reflection via le runtime, et les blocks, je trouve que l'objective-C n'a rien à  envier à  ces langages. 


    Et il reste (et restera tant qu'il y aura des batteries) le meilleur compromis pour permettre d'obtenir des bonnes performances sur mobile.


     


    Je ne pense pas qu'il y ait de problème de droits sur l'objective-C, le runtime est open source, GCC et clang aussi.


    Donc rien ne s'oppose à  compiler de l'objective-C sur d'autres plateformes.


    Le vrai problème vient des frameworks qui ne seront jamais utilisables sur les autres plateformes si ce n'est pas Apple qui s'en charge et malheureusement je ne vois aucune raison pour Apple de porter ses frameworks sur Windows et Android.


     


    Il y a eu des portages de CoreFoundation pour webkit et on peut aussi utiliser CFLite ou cocoatron mais bon...


  • FKDEVFKDEV Membre
    mai 2013 modifié #11

    Si je devais faire une app multi-plateforme, je ferais le maximum de code en C/C++ pour les models et les données et j'utiliserais les langages "natifs" à  chaque plateforme pour les GUI.


    Je ne pense pas qu'il y ait de solution magique via C# ou java.


  • JegnuXJegnuX Membre
    mai 2013 modifié #12

    Et puis bon les exemples choisis à  la fin sont forcément bien choisi.


     


    Pourquoi pas comparer le code quand il s'agit de fait une animation (avec la class methode de UIView), ou même de faire l'équivalent de ce qu'on peut faire grâce aux opérateurs de collection en KVC ?


     


    Et des exemples comme ça y'en a des tonnes. Dans chaque langages y'aura des trucs plus court à  écrire que dans d'autre langages.


     


    Mais faut pas s'arrêter à  ça. D'autant plus qu'Apple fait considérablement évoluer l'Objective-C depuis quelques années pour en simplifier (entre autre) la syntaxe :


     


    - fast enumeration


    - properties


    - blocks


    - arc


    - object literals


    - synthesize automatique


    - object subscripting


     


    Et je suis même sûr d'en oublier. Et qui sait ce qu'Apple nous prépare comme évolution du langage ? Réponse bientôt :)


     


    Est-ce que le C# ou le Java ont reçu des mise à  jours significative de la sorte ces dernières années ?


     


    et là  je ne parle que du langage, sans aborder les à  côté offert par les frameworks. Je connais pas bien le C# et le Java mais y'a quelque chose d'aussi simple, pratique et performant que Grand Central Dispatch pour faire du multithreading (enfin, de la concurrency). Et quid des storyboards, autolayout (bien que perfectible, surtout dans IB), etc... 


     


    Bref, Objective-C forever   :D


  • FKDEVFKDEV Membre


     


     Je connais pas bien le C# et le Java mais y'a quelque chose d'aussi simple, pratique et performant que Grand Central Dispatch pour faire du multithreading (enfin, de la concurrency). Et quid des storyboards, autolayout (bien que perfectible, surtout dans IB), etc... 


     


    Bref, Objective-C forever   :D




     


    Je partage ce sentiment là  aussi.


    Il y a des innovations aussi dans les autres langages. Par exemple les mots clés await et async en .NET. Mais globalement je trouve les frameworks meilleurs en cocoa.

  • Non seulement ils ont pris pour exemple des situations où leur langage parait plus simple mais en plus ils ne me semble pas que leur code soit valide



    CIImage *ciImage = [CIImage initWithCGImage:cgImage];

    il n'existe pas de méthode de classe initWithCGImage:, seulement une méthode d'instance, il leur aurait donc fallu écrire



    CIImage *ciImage = [[CIImage alloc]initWithCGImage:cgImage];
    //ou
    CIImage *ciImage = [CIImage imageWithCGImage:cgImage];

    Pour ma part je suis habitué à  Mac OS et Cocoa donc aucune envie, pour l'instant, de changer.


    Je dis pour l'instant car par ailleurs il me semble que Mac OS évolue de plus en plus vers le côté obscur de la force. Je viens de découvrir que Mountain Lion m'avait sucré X11. Pas que je m'en serve souvent mais j'ai voulu utiliser un .exe qui fonctionne avec un framework mono et pour ça il fallait X11. Or l'installation de Moutain Lion supprime X11 pour des raisons inconnues et sans prévenir.


    La "bonne" nouvelle c'est que désormais je peux ouvrir des exe, seulement dans X11 et écrits pour mono certes :p  


  • CéroceCéroce Membre, Modérateur


     Je viens de découvrir que Mountain Lion m'avait sucré X11. Pas que je m'en serve souvent mais j'ai voulu utiliser un .exe qui fonctionne avec un framework mono et pour ça il fallait X11. Or l'installation de Moutain Lion supprime X11 pour des raisons inconnues et sans prévenir.


     




     


    L'installation de X11 est maintenant optionnelle. J'imagine que c'est parce que ça prend de la place sur le disque et que la plupart des utilisateurs n'en n'ont aucun besoin. Je trouve que le choix d'Apple est justifié.

  • laudemalaudema Membre
    juin 2013 modifié #16

    Que l'installation soit optionnelle n'est pas ce qui me gêne, pour le peu d'usage que j'en ai et je crois bien avoir déjà  eu à  l'installer... Ce qui m'attriste c'est que l'installation de Mountain Lion a supprimé l'application X11 de mon répertoire Utilitaires. Sans même me prévenir.


    D'ailleurs elle n'est même plus optionnelle l'installation, elle n'est plus tout court et les déjà  installés sont supprimés !




  • J'ai fait un peu de C#/.NET, et mon Java date de mes études, donc c'est loin.


     


    Pour moi, c'est kif kif mais j'ai préféré le C#/.NET, aussi parce qu'au moins on avait un framework donné, alors que ce que je déteste au plus haut point avec Java c'est pas tant le langage mais surtout tout l'écosystème autour, le nombre de frameworks qui font doublons et font la même chose et tu sais jamais lequel choisir, mais que si tu choisis le A faut absolument utiliser B et C car y'a des dépendances, et si à  côté tu utilises X faut absolument que tu utilises Y qui n'est pas compatible avec B... une vraie foire et une horreur je trouve.


     


    Après, il se trouve que j'ai eu à  travailler avec .NET, avec des frameworks bien précis, alors que mon expérience en Java m'en a dégouté (bon je parle mm pas du GC et autres conneries de Java). J'ai pas assez d'expérience dans chacune des technos pour comparer de façon assez constructive. Mais aujourd'hui à  choisir je pense que je préférerai C# à  Java, de par ce que mon peu d'expérience m'a donné comme impression sur le sujet.




     


    A une remarque prés, le Framework Java est gratuit, celui de Microsoft payant... Aprés il ne faut pas s'étonner s'il est mieux ^^

  • J'ai piloté le travail de fin d'étude d'un étudiant (bac+3). L'idée était de faire un front-end composé de quelques écrans qui pilotaient une DB SQL Serveur (une dizaine de tables, quelques dizaines de milliers de records).


     


    Il a opté pour C#, que je ne connaissais que de très loin. Ce que je retiens de ce langage :


     


    - comparé à  C++ que je connais beaucoup mieux, C# s'est inspiré d'Objective-C (que j'ai découvert par la suite). Bien sûr, c'est une version plus moderne mais on sent qu'il y a une certaine filiation. Ce sont de petites choses mais qui aident grandement le développeur. 


     


    - ce qui est déconcertant, c'est qu'il existe plusieurs manières d'aborder le même sujet.


     


    Je m'explique. Imaginons qu'on veuille récupérer des records d'une DB pour les afficher.


     


    On peut soit faire :


    - du microsoft classique avec ODBC,


    - (si la DB est SQL Server) utiliser un ensemble de classe spécifique - ou - utiliser un système générique (mais qui convient aussi à  SQL Server),


    - utiliser LINQ.


     


    LINQ pour ceux qui ne connaissent pas, permet de faire des sortes de requêtes SQL sur les données en mémoire. Imaginez quelques classes avec des compositions, de l'héritage. Vous utilisez ces relations entre objets comme des index dans le cadre d'un query SQL.


     


    Savoir quand privilégier l'une ou l'autre option demande une connaissance approfondie de celles-ci. 


  • Je fais remonter ce sujet d'entre les limbe suite à  cette news :


    http://www.developpez.com/actu/71824/Xamarin-3-disponible-en-telechargement-permet-la-construction-d-UIs-natives-iOS-Android-et-Windows-depuis-une-seule-base-de-code-commune-en-C/


     


    Je voulais demander l'avis de ce qui l'ont utilisé ou qui contaient l'utiliser :


    Nous avons une problématique particulier :


    Une lib importante pour nos application a été codé en C++ compatible androà¯d, iOS, et w8 ; mais son IHM doit être codé en natif.


    Selon vous, serai t'il possible de coder l'IHM de cette lib en cross-platform via Xamarin et d'intégré ensuite cette lib dans plusieurs nos application native ?


     


    Merci de vos avis et retour d'expérience.




  • A une remarque prés, le Framework Java est gratuit, celui de Microsoft payant... Aprés il ne faut pas s'étonner s'il est mieux ^^




    Pas du tout, le Framework de Microsoft n'est pas du tout payant.


     


    Pour preuve, voici le lien de téléchargement pour la version 4 : http://www.microsoft.com/fr-FR/download/details.aspx?id=17718


    et celui de la mise à  jour en version 4.5 : http://www.microsoft.com/fr-fr/download/details.aspx?id=30653


     


    Même Visual Studio est gratuit (seulement la version dite "Express"), la seule contrainte je crois est qu'il faille avoir un compte microsoft (une adresse email hotmail si mes souvenirs sont bons) qui est aussi gratuit.


     


    Pour preuve j'ai moi même installé il y a un an de cela cette version Express pour tester le language C#, et je n'ai pas déboursé le moindre centime.

  • Si mes souvenirs sont bon (ça commence à  dater), on ne pouvais pas utiliser Visual Studio Express pour créer des applications logiciels payants.


     


     


  • majestic12majestic12 Membre
    juin 2014 modifié #22

    @Draken : Moi je penserais plutôt le contraire je crois même que Microsoft encourageait l'utilisation de son framework pour des projets professionnels, mais comme je ne suis pas sûr à  100% alors je m'abstiens de tout avis tranché.


     


    Sinon il ne faut surtout pas confondre Visual Studio (l'IDE) et le framework dotNet, car le framework dotNet de Microsoft à  toujours été gratuit depuis le début.


     


    D'ailleurs je me souviens bien d'avoir installé la version 1.0 à  partir de CD (ou DVD ?) fourni par le magazine "Programmez!". Le seul centime déboursé a été pour l'achat du magazine à  l'époque. 


     


    Il est tout à  fait possible d'utiliser le framework dotNet sans l'IDE Visual Studio en utilisant simplement le NotePad ou un éditeur de texte équivalent, puis d'invoquer la ligne de commande : http://fr.wikibooks.org/wiki/Programmation_C_sharp/Compilation


  • DrakenDraken Membre
    juin 2014 modifié #23

    Euh .. On ne parle pas de la même chose. Oui, on pouvais récupérer gratuitement la version Express et l'utiliser pour apprendre le langage et créer des logiciels. Par contre dans le CLUF il étais interdis de VENDRE les logiciels fait avec. Pour ça il fallait acquérir le Visual Studio normal. Ce n'est pas une histoire de technique mais de droits d'utilisation.


  • majestic12majestic12 Membre
    juin 2014 modifié #24


    Euh .. On ne parle pas de la même chose. Oui, on pouvais récupérer gratuitement la version Express et l'utiliser pour apprendre le langage et créer des logiciels. Par contre dans le CLUF il étais interdis de VENDRE les logiciels fait avec. Pour ça il fallait acquérir le Visual Studio normal. Ce n'est pas une histoire de technique mais de droits d'utilisation.




     


    Tu es sur de toi à  100%


     


    Car d'après une discussion sur cette page : http://www.developpez.net/forums/d598364/dotnet/edi-outils/visual-studio/utilisation-pro-visual-studio-express/ et une autre sur cette page : http://social.msdn.microsoft.com/Forums/en-US/1397e0f8-f3d8-4b96-909a-88fba0720f50/visual-basic-2010-express-edition-commercial-use?forum=Vsexpressvb j'en déduis que tu peux l'utiliser pour une utilisation commerciale.


     


    Aussi sur la page de Microsoft vers le milieu, http://www.visualstudio.com/fr-fr/products/visual-studio-express-vs.aspx, il est écrit vers le milieu : 


     


    "Les produits Visual Studio Express sont disponibles gratuitement et peuvent être utilisés pour un usage commercial et de production, suivant les termes du contrat de licence fournis avec chaque produit. Par exemple, vous pouvez utiliser Express pour Windows pour créer des applications que vous pouvez ensuite proposer à  la vente dans le Windows Store."

     



  • leplep Membre


    Salut les devs !


     


    Je viens de tomber sur ça:


    http://xamarin.com


     


    Faire du C# pour développer sur Android et Windows.


    Est-ce une bonne idée ?


    Qu'en pensez-vous ?


     


    Qu'est-ce qui empêche aujourd'hui une boà®te de faire une passerelle comme Xamarin pour développer en Objective-C pour Android et Windows ?


     


    Est-ce un problème de droits sur le langage Objective-C ?




    Il me semble que ça existe pour Android y a même une version gratuite :


    https://www.apportable.com/pricing

  • Oui, je suis certain qu'il y a une dizaine d'année le Visual Studio Express n'avait pas de licence pour vendre des produit commerciaux.  Cela m'avais agacé quand j'ai téléchargé le SDK pour apprendre le C#. C'est bien pour ça que j'ai parlé au passé et non au présent ! C'était pendant la préhistoire, avant le début de notre ère (an 1, naissance de l'iPhone). A une époque où les boutiques de vente en ligne n'étaient que des bricolages de geeks amateurs de sharewares. Maintenant, les outils de dév sont gratuits et Microsoft encourage les gens à  développer pour ces propres plates-formes. Pour autant que je me souvienne, le premier Visual Studio Express avec la licence pour développer du payant a été fournis avec le XNA, pour pousser les gens à  créer des jeux XBOX 360.  

  • majestic12majestic12 Membre
    juin 2014 modifié #27


    Oui, je suis certain qu'il y a une dizaine d'année le Visual Studio Express n'avait pas de licence pour vendre des produit commerciaux.  Cela m'avais agacé quand j'ai téléchargé le SDK pour apprendre le C#. C'est bien pour ça que j'ai parlé au passé et non au présent ! [...]




     


    Qu'est-ce que tu as à  faire si à  une certaine époque la version Express n'avait pas de licence pour vendre des produits commerciaux si ton but était uniquement d'apprendre le C# ? J'ai du mal à  suivre ton raisonnement.


     


    Lorsque l'on télécharge de SDK le compilateur est compris, donc un simple éditeur de texte du style notepad suffit largement pour l'apprentissage. 


     


    Je veux bien te croire que la version Express de Visual Studio ait pu t'obliger contractuellement à  une certaine époque à  ne pas être utilisé pour une utilisation à  but lucratif (pardonne moi en passant mon scepticisme à  ce sujet). 


     


    Mais par contre je n'ai aucun souvenir d'une quelconque restriction d'utilisation si tu développes en utilisant uniquement le SDK de Microsoft sans aucun de ses IDE associés. 


     


    Désolé pour cette digression, mais si j'ai intervenu sur ce sujet c'était juste pour remettre les choses à  leur place suite à  une intervention affirmant que : 


     



     


    A une remarque prés, le Framework Java est gratuit, celui de Microsoft payant... Aprés il ne faut pas s'étonner s'il est mieux ^^

     


    A lire cette cette phrase, sans la moindre précision supplémentaire de son auteur, que faut-il en déduire lorsqu'il affirme que le Framework de Microsoft est payant ? Son accès ? Son utilisation ? 


     


    Pour ma part j'ai eu un accès et une utilisation gratuite car je n'ai jamais eu à  payer quoi que ce soit.


     


    Après si on veux discuter de ce que l'on peut ou ne peut pas faire du produit final fait avec le framework de Microsoft alors c'est un autre débat. Que l'on ne peut pas résumer en une seule phrase.




  • Euh .. On ne parle pas de la même chose. Oui, on pouvais récupérer gratuitement la version Express et l'utiliser pour apprendre le langage et créer des logiciels. Par contre dans le CLUF il étais interdis de VENDRE les logiciels fait avec. Pour ça il fallait acquérir le Visual Studio normal. Ce n'est pas une histoire de technique mais de droits d'utilisation.




     


    Effectivement, on ne parle pas de la même chose. Je parlais du SDK pas de l'IDE.

Connectez-vous ou Inscrivez-vous pour répondre.