2011-02-14 7 views
7

creamos una aplicación iOS grande para dejar de fumar con más de 2000 clases objetivo c. Me pregunto si hay una guía de mejores prácticas para portarlo a Android. Actualmente estoy buscando en Visual Paradigm (UML), que revierte los archivos de ingeniería de objetivos c a UML. Al igual que Enterprise Architect, también me permite generar código (encabezados + declaración) para otro lenguaje popular como java o C++. ¿Hay algún otro enfoque todavía? Además, como nuestra aplicación utiliza mucho los controladores UINavigation y UIView, me pregunto si existe un modelo e implementación similares en Android.Portando la aplicación iOS a Android

Gracias hasta ahora, Guenter

+6

¿Cómo fue que terminaste con más de 2000 clases? Incluso mi aplicación más compleja, donde tengo clases stub para muchas de mis entidades de objetos gestionados, solo termina con ~ 100 clases. –

+0

Compruebe https://www.myappconverter.com/ – Abdellah

Respuesta

7

Honestamente, creo que lo que usted está planeando solo va a hacer para el código malo que será increíblemente difícil de mantener. Me doy cuenta de que parece mucho trabajo, pero a la larga será más fácil, simplemente "portaré" el concepto de la aplicación a Android y lo escribiré desde cero.

+0

Acabo de echar un vistazo al código generado, en los casos de estructuras como objetos que se usan para el almacenamiento, parece un buen negocio. Definitivamente tiene razón para objetos que realizan problemas lógicos, como controladores de vista. – xamiro

+0

Tiene razón, para las estructuras de datos parece que podría funcionar, pero debido a la forma en que funciona Android realmente no veo ninguna manera de hacer la conversión fácilmente. Su archivo NIB ahora tendrá que estar escrito en XML amigable con Android, y no tendrá delegados para "conectarse" y en su lugar usted administrará el objeto llamando directamente desde la actividad que usa el diseño XML. Es muy diferente. – blindstuff

+1

Hace poco hice el proceso inverso, primero desarrollé mi aplicación en Android, y cuando fui a hacerlo en iOS me pareció una mejor idea copiar el concepto y diseñarlo solo para iOS. Un gran problema es que los usuarios de teléfonos quieren que las aplicaciones se sientan como el teléfono que están usando, por lo que aunque su aplicación haga lo mismo, probablemente lo haga de manera diferente. Espero que entiendas lo que quiero decir con eso, hay una razón por la cual las personas compran Android o iOS y no quieren sentir las aplicaciones como un puerto directo. – blindstuff

1

Para pasar de C o C++ para Android que es probablemente el mejor de utilizar el NDK. El problema es que no creo que esto sea posible (al menos, ¿no directamente?) Para Objective C.

Creo que sería mejor intentar ir a C, y luego usar el NDK para convertirlo en una aplicación para Android. Yendo desde su código, a través de UML a JAVA suena como una opción mucho más difícil.

+0

gracias por la respuesta rápida. Estoy recopilando información que otras plataformas quedan soportando C++. – xamiro

1

AFAIK no hay una herramienta automática para convertir Objective-C a Java. Hay java2objc que hace lo contrario.

Éstos son algunos consejos para portar oficiales de Objective-C para Java: http://www.nextcomputers.org/NeXTfiles/Software/WebObjects/Guides/PortingObjectiveCtoJava.pdf

no soy un experto IOS, pero que yo sepa iOS no tiene controladores de distribución - que utiliza XI ter/SEMILLA hacer el diseño (o dinámicamente en el código, que no es recomendable). En Android hay clases de diseño que se utilizan principalmente para admitir diferentes resoluciones. Además, el diseño es declared via XML files.

Parece que hay mucha codificación manual frente a usted. Dado que un proyecto es bastante grande, obtendría la ayuda de un experto que conoce tanto Android como iPhone.

+1

gracias por los enlaces, tenemos una excelente experiencia en Java simplemente no para Android. – xamiro

0

solo para contarles cómo terminó la historia, seguí usando Sparx Enterprise Architect y tengo mi diseño, arquitectura y documentación bien bajo control, para todas las plataformas, excepto JavaScript. Es un poco tedioso cuando se integran nuevas características, pero en un entorno empresarial me ahorró mucho tiempo. Estamos trabajando en iOS, escritorio (Web2.0/HTML5), Android, Blackberry, Symbian y algunos sistemas de enrutadores. Para deshacerme de cosas específicas de la plataforma, introduje siempre una capa adicional. Parece que funciona para nuestros productos hasta el momento.

Gracias a todos otra vez, g.

+0

obj-c las clases pueden usar c/C++ nativamente así que c/C++ es la mejor opción para un enfoque multiplataforma, con p. C a JS/Flash compilador para HTML5 ... por cierto, no sabía que Symbian y Blackberry todavía estaban vivos;) – Gabor

4

El Apportable SDK

Se cruzada compila aplicaciones de Objective-C a Android, sin grandes cambios en el código base inicial. En lugar de traducir el código a Java, Apportable compila de manera cruzada su código para ejecutarlo directamente en el procesador del dispositivo Android, evitando el tiempo de ejecución de Java, lo que da como resultado velocidad y rendimiento que compite con la versión de iOS.

La plataforma ha sido probada en la biblioteca de Apportable de más de 150 dispositivos y en la naturaleza, donde las aplicaciones con Apportable han recibido reseñas de 5 estrellas en miles de dispositivos.

la salida del SDK here

0

MyAppConverter servicio de ayuda a convertir aplicaciones móviles nativas de iOS al instante a la aplicación nativa de Android, no se centra principalmente en la apariencia, y la interacción de interfaz de usuario de la aplicación. Eso significa que no replica su aplicación tal como es. En cambio, MyAppConverter realiza todos los cambios para que un proyecto sea adecuado para el desarrollo de una aplicación de Android.

MyAppConverter soporta actualmente sólo se iOS a Android conversión y Objective-C a rápida.

Cuestiones relacionadas