¿Se puede usar Java para hacer aplicaciones iOS?

Si eres realmente bueno en Java, deberías entender el objetivo C fácilmente.

Solo necesitará acostumbrarse a la sintaxis de corchetes que pasan mensajes y dividir sus clases en dos archivos.

Todas las demás nociones son más o menos iguales.

Conceptos similares en Java y Objetivo C

  • Ambos lenguajes comparten mucha sintaxis tipo C.
  • En Java tiene interfaces, aquí tiene protocolos que también le permiten mantener ciertos métodos opcionales, y tiene muy buenas API de tiempo de ejecución para verificar si un objeto admite un método o un protocolo que es mucho más conveniente que la API Reflection de Java.
  • Aquí también se aplicarán muchos patrones de diseño.
  • Tiene colecciones similares: de hecho, en el Objetivo C, tiene una sintaxis literal para jugar con ellas que no sean los métodos normales. Tiene NSDictionaries para mapas, NSArrays para listas y NSSets, lo mismo que conjuntos.
  • Tienes tipos de datos primitivos, como los que tienes en Java. todo igual excepto que SÍ es verdadero y NO es falso.
  • Las primitivas deben envolverse en clases de envoltura para usarse con las colecciones. El objetivo C no tiene auto-boxing y unboxing pero tiene una buena sintaxis literal para convertir primitivas a sus contenedores de objetos.
    p.ej. ‘@YES’ ‘@NO’ ‘@ 5’ ‘@ 5.5’ ‘@ (variable)’
    Agregar el prefijo ‘@’ convierte un primitivo en un Objeto.
  • Puede heredar de una sola clase principal e implementar múltiples protocolos / interfaces.
  • Tiene una clase principal NSObject para todas las clases (hay algunas excepciones) como si tuviera Object en Java.
  • Tienes yo en lugar de esto.
  • Tienes super para acceder a las implementaciones de métodos de la clase padre en los reemplazados.
  • También tiene que intentar atrapar bloques aquí, pero no se recomiendan métodos que puedan tener un error, espere un objeto de error que modifiquen cuyo valor debemos verificar para determinar si hay algún problema de tiempo de ejecución o no.
  • Los conceptos de bloqueos, bloques de código sincronizado son similares cuando se trata de subprocesos múltiples.

Lo que extrañarás

  • Paquetes / espacios de nombres. Objective-C cree en tener prefijos en los nombres de las clases para evitar conflictos de nombres. Desearía que pudieran agregar espacios de nombres en el Objetivo C.
  • Genéricos Una gran característica que falta.
  • Los bloques Try-Catch como mencioné no son geniales.

Cosas nuevas que te encantarán usar

  • Bloques !!!!! Estas son funciones anónimas que se pueden pasar a los métodos y retienen las variables de estado utilizadas dentro de ellos.
    Estos son muy convenientes para los cuales las API de Java, como los oyentes, usan interfaces funcionales, es decir, interfaces con métodos únicos y luego usan una sintaxis de clase anónima para simplemente implementar ese método. ¡Project Lambda y Java 8 aún no han despegado!
  • GCD / Concurrencia: Una forma muy agradable cuando se combina con bloques para ejecutar código simultáneamente en colas separadas con subprocesos administrados por el sistema.
  • ARC: el conteo automático de referencias le brinda la conveniencia de recolectar basura durante el desarrollo, no necesita administrar la memoria manualmente. Pero en lugar de un GC que ocupa la CPU para recolectar bloques de memoria no utilizados, la administración de la memoria es manual, excepto que el compilador hace todo eso por tú. Aún necesita comprender la administración de la memoria para comprender cómo funciona ARC.
  • Datos básicos: aunque no es una característica del lenguaje, hace que la persistencia parezca parte del lenguaje.
  • Predicados y clasificación de listas / NSArrays es impresionante.
  • Una gran cantidad de métodos de utilidad en las clases de cadenas.
  • Categorías: en cualquier momento sientes que Apple perdió un método en cualquiera de sus clases o algún marco que está utilizando pierde el método de conveniencia que desea.
    No es necesario subclasificar, ¡solo cree una Categoría para esa Clase y todos los objetos de esa Clase y sus Subclases tendrán el método!
  • propiedades: aunque no me gusta usar setters y getters innecesariamente, pero si es necesario, tienes un buen one-liner que lo hará todo por ti.

Puntos a tener en cuenta: cuando dices “No quiero aprender un nuevo lenguaje (Objetivo C) desde cero”

  • ¡No tendrás que aprender todo desde cero!
  • Solo tiene que saber qué hay de nuevo en el Objetivo C.
  • ¡No hay una buena manera de hacer aplicaciones iOS con Java y, lo que es más importante, cuando dices Java, el poder reside en las vastas bibliotecas de conjuntos y JVM! No podrás usar ninguna de ellas en iOS a menos que alguien construya algo como lo que Xamarin hace por .net en iOS donde transfiere el tiempo de ejecución .net junto con la compilación.
  • ¡Java es un lenguaje débil! carece de muchas características buenas presentes en los idiomas modernos necesarios para el desarrollo rápido de aplicaciones.

Si quisiera saber cómo usar Ruby, JavaScript o C # para el desarrollo de iOS, ¡le habría indicado proyectos como RubyMotion, Appcelerator Titanium o Xamarin.iOS!

¡O si quisiera aprovechar sus habilidades de desarrollo web, entonces Apache Cordova o PhoneGap podrían haber sido pocas opciones!

Pero Java, hasta donde yo sé y puedo Google, ¡no hay mucho!
¡Aquí hay un conversor de código Java a Objective C!

j2objc: una herramienta de traducción y tiempo de ejecución de Java a iOS Objective-C. – Alojamiento de proyectos de Google

¡y Google ha creado una biblioteca multiplataforma llamada playN que se ejecuta sobre GWT y convierte la base de código Java a iOS, Android, Java nativo, HTML5 y Flash!

para juegos puedes echarle un vistazo.
playn – Biblioteca de juegos multiplataforma para plataformas N≥5 – Google Project Hosting

¡Gracias!

NO, no puedes desarrollar aplicaciones para iOS usando Java.

Si desea desarrollar la aplicación ios, debe aprender el Objetivo C o Swift.

Y el SDK de iOS requiere Xcode (IDE) y Xcode solo se ejecuta en máquinas Macintosh.

Ahora puede pensar que ¿por qué no podemos usar Java (el lenguaje de programación más popular y más utilizado) para el desarrollo de aplicaciones móviles iOS?

Apple había tomado la decisión de evitar el lenguaje Java para el desarrollo de aplicaciones móviles porque la aplicación escrita en Java tiene más costo de rendimiento que la aplicación escrita en idiomas nativos como Swift y Objective C.

Si eres muy bueno en Java, no te llevará mucho tiempo entender al menos los conceptos básicos de Objective-C. La sintaxis puede llevar algún tiempo acostumbrarse, pero una vez que la domines, eso también es fácil. Hay algunos conceptos bastante diferentes que se necesitarán para dominar.

Si se siente cómodo con javascript, puede intentar usar Titanium.

O si desea apegarse a Java, entonces hay un par de opciones disponibles. No he probado ninguno de estos, pero las reseñas sugieren que vale la pena intentarlo.

  • Un traductor de Objective-C de Java a iOS: aún necesitará tener algunos conocimientos de Objective-C
  • http://www.codenameone.com/
  • RoboVM: desarrolle aplicaciones para iPhone y iPad en Java con RoboVM

Si bien la mejor y preferida forma será siempre ser nativo (es decir, Swift / Obj-C), PUEDES construir aplicaciones iOS con Java.

Uno de los marcos más populares para escribir aplicaciones iOS es RoboVM. Cree aplicaciones de iOS verdaderamente nativas en Java

iOS (anteriormente iPhone OS) es un sistema operativo móvil creado y desarrollado por Apple Inc. exclusivamente para su hardware. Es el sistema operativo que actualmente alimenta muchos de los dispositivos móviles de la compañía, incluidos el iPhone, iPad y iPod Touch.

¡Sí! Este marco convierte el código Java para ejecutarse en dispositivos ios. Experiencia limitada en su uso, pero hay un desarrollo saludable que lo rodea.

Rapid Enterprise Mobile Apps: compila, conecta y administra con Gluon

Si no. No Java Puede hacer Objective-C, Swift, incluso probar Javascript con ReactNative, C # con Xamarin (o Unity), C / C ++ con cocos2dx (no estoy seguro de si sigue vivo).

Mi recomendación sería aprender Swift e ir completamente nativo, para los desarrolladores de Android sería genial cambiar a Kotlin (lo que haría una transición súper fácil a Swift).

Parece posible, pero no recomendado. Java es ideal para computadoras y Android completos, pero iOS tiene su propia forma de crear aplicaciones. Lo mejor sería utilizar C. Si realmente desea crear aplicaciones en Java, puede crear aplicaciones de Android. Además de poder usar el lenguaje más fácil de java en lugar de C, puedes subir tu aplicación a la tienda de Google Play más fácilmente y por menos dinero. Buena suerte.

Compruebe CodeNameOne.
Pero sugiero encarecidamente construir nativo. Debido a un mejor rendimiento, sin límites de funciones, más documentación y una comunidad más amplia.

Claro, echa un vistazo a CodenameOne y Gluon, ambos hacen soluciones para crear aplicaciones iOS en Java. También puedes consultar libGDX si estuviera haciendo juegos.

No, unos tres segundos de google te habrían dado esa respuesta. Las aplicaciones de iOS están integradas en Swift u Objective-c. Esas son tus elecciones. Las aplicaciones de Android están construidas en Java

Mientras el compilador de Java pueda emitir código compatible con Objective C / Swift, puede hacerlo.

Para su información, ningún compilador de Java hace eso, por lo que la respuesta es un gran NO.

No. Usted usa Objective C o Swift para obtener el soporte adecuado.
Pero puede activar JavaScript personalizado cuando use el componente / widget web toolkit.

Yo creo que puedes. Como kotlin afirma (como aún no lo intenté), se puede usar para desarrollar aplicaciones ios y la biblioteca java se puede usar directamente con kotlin. Entonces puede ser.

No . ¡Es imposible escribir en Java, usar el objetivo c en xcode para construir una aplicación ios!