web-dev-qa-db-fra.com

Comment développer des applications iPhone en Java?

Dans mon cours d'informatique, j'ai terminé tous mes projets. Mon professeur a donc pensé que ce serait une bonne idée de développer des applications pour iPhone. Le seul problème est que le cours est enseigné en Java et que les applications pour iPhone sont écrites en Objective-C. 

Je me demandais si quelqu'un avait développé des applications en Java, avec XMLVM. 

Ce compilateur (supposé) convertit le code en octets Java en Objective-C (sans avoir besoin d'un ordinateur Apple ni de la connaissance d'Objective-C). Est-ce correct?

http://www.xmlvm.org/overview/

Voici un exemple de code de code Java utilisé sur un IPhone:

http://www.xmlvm.org/iphone/#

48
Brendan

Si vous avez terminé vos autres projets, pourquoi ne pas prendre le temps d'apprendre Objective-C? Il existe une tonne de matériel sur le Web pour vous aider à démarrer. Honnêtement, ce ne sera pas si difficile et apprendre à faire certains la gestion de la mémoire sera un excellent exercice d'apprentissage. Avez-vous programmé en C avant?

La plupart des compilateurs croisés ne parviennent pas à convertir votre code. Le débogage de votre projet peut devenir beaucoup plus difficile si vous les développez de cette façon.

34
Amir Afghani

Pas tout à fait votre réponse, mais pourquoi ne pas essayer un développement Android? Aucun Mac requis, open source, aucun investissement requis, basé sur Java.

72
Andiih

Je pense que nous devrons attendre quelques années de plus pour voir plus de progrès. Cependant, il existe maintenant plus de cadres et d'outils disponibles:

Voici une liste de 5 options:

33
Dalorzo

Je pense que ton professeur t'a envoyé dans le mauvais chemin.

C’est un exemple classique d’essai de placer une cheville carrée dans un trou rond. Le meilleur moyen de développer pour l'iPhone est d'utiliser le SDK pour iPhone et l'Objective C. Le meilleur moyen de développer pour Andriod est Java et le SDK Android. Le meilleur moyen de développer pour WinMobile est C #/VB et le .Net Framework.

Comme vous pouvez le constater, chacun a son "meilleur" SDK. Puisque vous apprenez seulement Java, je souscris à la suggestion de jouer avec Java et Android.

26
deanvmc

Il existe un nouvel outil appelé Codename one : Un SDK basé sur Java pour coder en WP8, Android, iOS avec toutes les fonctionnalités avancées

Caractéristiques:

  1. Environnement Android complet avec simulateur Android super rapide
  2. Un simulateur iPhone/iPad avec des applications iPhone faciles à transférer sur un iPad grand écran en quelques minutes.
  3. Prise en charge complète du débogage Java standard et du profilage d'applications sur n'importe quelle plate-forme.
  4. Facilité de thème/style - À un clic de souris

More at Développer des applications Android, iOS iPhone, WP8 avec Java

10
Taranfx

jetez un coup d'œil au projet codenameone.com, il s'agit d'un framework mobile multiplateforme dans lequel la partie interface utilisateur est un fork de LWUIT . Ce projet utilise xmlvm pour convertir le code d'octets Java en Objective C

6
Chen

Vous pouvez également consulter RoboVM .

Il traduit le code byte Java en code natif ARM ou x86 pouvant s’exécuter directement sur le processeur, sans nécessiter VM ni interprète. La plupart des éléments de l'interface utilisateur Obj-C sont déjà liés à Java et suivent les modèles de conception Java habituels.

Edit Robo VM a récemment annoncé son intention de fermer le service - Source

5
A Null Pointer

essayez d'utiliser TotalCross . Il s'agit d'un framework Java permettant aux développeurs de créer des applications iOS et Android avec un seul code source. Différente des autres plates-formes, elle ne nécessite aucune connaissance d’iOS (Objective-C ou Swift) ni d’Android (SDK ou NDK).

il y a une intégration Maven https://gitlab.com/totalcross/TotalCross/wikis/building-with-maven

2
Bruno Muniz

Je pense que Google Open Sources Java vers Objective-C Translator permettra de développer en Java pour iOS https://code.google.com/p/j2objc/

2
smikesh

Je réponds à cette question deux ans plus tard et je  doit stress que j’ai eu à peu près le même problème que vous. Cependant, je suis si heureux qu'Android ait évolué pour devenir ce qu'il est aujourd'hui.

Ayant dit cela, Je regrette de ne pas avoir appris C/C++ alors que je pourrais avoir et je ne veux pas blâmer mes professeurs pour cela car où était mon cerveau quand le moment était venu?

Je suis descendu à Java aujourd'hui et je suis heureux de ne pas commettre l'erreur d'apprendre trop de langues et d'être moins productif ...  toutefois J'ai appris HTML5 ce qui a vraiment rendu les choses beaucoup plus faciles, peut-être qu'un jour, je pourrais être motivé pour apprendre le C/C++. Ou si je reçois un mac Apple à un prix raisonnable, je pourrais apprendre Objective-C :) 

2
technoSesh

Tu ne peux pas.

Notez cependant que Monotouch vous permet de développer en C # au lieu d'Objective-C. http://monotouch.net/

2

Vous devez au moins connaître les bases d'Objective-C pour développer pour iPhone. Cependant, il est possible d'utiliser des classes C++.

Autant que je sache, Adobe travaille à la création d'applications Flex/Flash pour iPhone. Lisez plus ici: http://theflashblog.com/?p=1513

2
Jacek

Si vous envisagez d'intégrer les fonctionnalités d'une application à un site Web, je vous recommande vivement le modèle GWT + PhoneGap:

http://blog.daniel-kurka.de/2012/02/mgwt-and-phonegap-talk-at-webmontag-in.htmlhttp://turbomanage.wordpress.com/ 2010/09/24/gwt-phonegap-native-applications-mobiles-rapidement/

Voici les deux avantages de ma propre expérience: nous utilisons les mêmes POJO Java pour notre base de données Hibernate, notre API REST, notre site Web et notre application iPhone. Le flux de travail est simple et beau:

Base de données --- 1 ---> REST API --- 2 ---> iPhone App/Site Web

  • 1: Hibernate
  • 2: Sérialisation GSON et GWT JSON Désérialisation

Cette approche présente également un autre avantage: tout code Java compilable avec GWT et toute bibliothèque JavaScript sont désormais disponibles dans votre application iPhone.

2
Naijaba

Vous pouvez essayer iSpectrum (à l'adresse http://www.flexycore.com ) Vous pourrez développer et déboguer vos applications Java dans Eclipse. Vous aurez toujours besoin d'un Mac et de XCode pour le lancer sur le simulateur ou pour l'installer sur le périphérique réel. Mais vous n’aurez pas à utiliser réellement l’éditeur XCode. De plus, vous pouvez l'utiliser gratuitement si vous envisagez de travailler sur un projet open source.

1
Krusty

Vous devriez peut-être envisager des applications Android plutôt que des applications iPhone si vous voulez vraiment développer en Java pour les smartphones. Android utilise nativement Java pour ses applications; alors peut-être que cela pourrait être une meilleure option?

Pour ce qui est de l'iPhone, je vous recommanderais de regarder Obj-C ou C/C++ en fonction du type d'applications que vous souhaitez créer. Devrait être amusant de barboter dans une nouvelle langue! :)

1
Charles

Pour ajouter à cela, il y a: http://www.Oracle.com/technetwork/developer-tools/adf-mobile/overview/index.html

Un framework Java et HTML5 pour le développement
Oracle ADF Mobile permet aux développeurs de créer et d'étendre l'entreprise applications pour iOS et Android à partir d'une base de code unique. Basé sur un Architecture mobile hybride, ADF Mobile prend en charge l’accès à services de périphérique, active les applications hors ligne et protège l’entreprise les investissements découlant des futurs changements technologiques.

1
Vrashabh Irde

http://www.xmlvm.org/Android/

Parle en particulier des applications Android basées sur Java portées sur l'iPhone avec du matériel non Apple.

Vous pouvez aussi vouloir vérifier MonoTouch (C # plutôt que Java ... mais les deux sont très similaires).

1
Justin Niessner

Même si la question dit Java, la plupart des réponses ont digressé. Alors j'ai pensé faire la même chose :)

Nous utilisons Adobe AIR depuis 5 ans. Il est véritablement multi-plateforme et offre des performances similaires à celles d'un logiciel natif avec la même base de code (au moins 99% de notre code est identique). Adobe AIR a eu une mauvaise presse au début pendant la période «bêta» (lent, pas de GPU, Flash «mort», etc.), mais maintenant, c'est incroyable ce que vous pouvez en faire. Sans parler de la richesse des bibliothèques open source disponibles.

Avec la même base de code, vous pouvez installer votre application sur:

  • iOS
  • Android (x86 et ARM)
  • Flash (encore TRES utile)
  • ChromeBook
  • PC (en natif avec l'installateur)
  • Mac (natif avec l'installateur) 

Pourquoi s'embêter avec Java ou Objective-C?

La seule plate-forme commune non couverte est Windows Phone. Mais cela arrive bientôt aussi.

0
ramouz