Estoy portando mi aplicación de iOS a Android: ¿qué necesito saber? [cerrado]

15

¿Qué errores debo evitar?

  • ¿Qué paradigmas del lenguaje Java no entienden constantemente los desarrolladores de Objective-C? Aprendí a programar en Java, pero he trabajado en nada más que en Objective-C durante años.
  • ¿En qué se diferencian los patrones de diseño entre Android y iOS?
  • Si usted mismo hizo la transición, ¿qué partes de Android lo confundieron o le llevó más tiempo de aprender de lo que debería?
  • ¿Eclipse es el mejor IDE de OS X para Android?

Para el registro, mi aplicación está fuertemente vinculada a UIKit y Foundation, por lo que la palabra "portar" puede ser un nombre inapropiado; En realidad voy a reescribirlo completamente para Android. No hay código de reutilización. Además, estoy haciendo esto para aprender Android, así que prefiero fallar en el puerto y aprender a Android que tomar un atajo.

Como fondo, esta pregunta fue motivada por los tipos de preguntas que veo en Stackoverflow. Con frecuencia, puedes ver cuál era el fondo de alguien (C # o Java) por los errores que cometen cuando intentan escribir Obj-C. Me gustaría evitar el tipo de errores que hacen que los desarrolladores de Java pongan los ojos en blanco y digan: "Desarrolladores tontos de Objective-C, ¿nunca aprenderán?"

    
pregunta kubi 17.01.2011 - 03:51
fuente

2 respuestas

11

Estoy portando una aplicación de iOS a Android, es la aplicación de otra persona con la que estoy trabajando para hacer el puerto, pero de todos modos.

En primer lugar, diría que a las bases de usuarios se les han enseñado formas muy diferentes de interactuar con sus dispositivos. Mucho de esto viene del diseño real de las aplicaciones, así como de las formas en que funcionan los dispositivos.

Algunas cosas generales:

  • El paisaje es bastante requerido en los dispositivos Android
  • Las aplicaciones de Android tienden a seguir ejecutándose cuando no se usan activamente, por lo que debe pensar en esto por problemas de red, gps, etc. ...
  • Segmentación de dispositivos, hay toneladas de dispositivos Android y resoluciones de pantalla, aquí es donde los diseños relativos y las imágenes de nueve parches son muy útiles.

Uno grande que mucha gente inicialmente no piensa en Your UI can not be exactly the same on both devices , seguro que puede ser similar, pero portar una interfaz de usuario de iPhone a un dispositivo Android no funcionará muy bien.

Algunas razones:

  • Menús contextuales de pulsación larga
  • Menú emergente
  • La segmentación de dispositivos que causa diferentes resoluciones y relaciones de aspecto
  • No son los mismos controles para trabajar con

El back-end realmente no es un gran problema, ya que la mayoría está implementando la mayor parte de lo que estaba trabajando en Java y el SDK de Android. Mis mayores problemas provienen de lo que el usuario espera y del comportamiento y las diferencias de la interfaz de usuario, a veces es mejor y a veces es peor. Realmente solo depende de lo que esté haciendo tu aplicación.

EDIT

Acabo de darme cuenta de que no contesté las partes reales de tus preguntas, así que aquí va (al menos mi mejor disparo)

No diría que hay grandes paradigmas de lenguaje que los desarrolladores de Obj-C no entienden, yo diría que Java es probablemente más simple para obtener lo que quiero que haga desde una perspectiva de OOP. (Debo decir que solo trabajo realmente con .NET y Java y solo conozco suficiente Obj-C para sobrevivir).

Definitivamente usaría Eclipse, cansé de usar IntellijIdea por un tiempo y solo tuve muchos problemas al intentar hacer que hiciera ciertas cosas.

    
respondido por el msarchet 17.01.2011 - 16:15
fuente
3

[esta respuesta es una especie de divagación. Lo iba a eliminar, pero pensé que podría ser interesante: avíseme a través de los comentarios si debo eliminarlo y lo haré].

No trabajo en Android pero sí en Java e iOS (con Obj-C). Lo único que es realmente diferente acerca del desarrollo de Java es cuánto puede ayudar un IDE (la gente le dirá que no use un IDE, que es una visión totalmente diferente de la misma cosa: pocas personas lo recomiendan con Java, sin embargo) . Por lo general, XCode no puede detectar CORRECTAMENTE los errores de sintaxis más simples (debido a la estructura del lenguaje, creo). En Java, por otro lado, el IDE puede hacer que te muevas mucho más rápido de lo que lo harías sin él. También puedes hacer cosas realmente geniales como programar el cient de llamada y luego escribir el método. En Eclipse, por ejemplo, si escribo

blah.doIt(firstObj, secondObj);

y firstObj y secondObj son instancias de String , el IDE me dará la opción de crear un método con el sig "public void doIt (String firstObj, String secondObj)." Eso es realmente genial, y solo la punta del iceberg: el IDE es tu amigo. He oído que IntelliJ podría ser aún más genial (aunque en mis pruebas no lo ha sido).

¿Hay una trampa en esta respuesta? Tal vez lo sea: pensar que el IDE desempeña el mismo papel en Obj-C y Java. En Java, el IDE puede hacer cosas que serían increíblemente difíciles de hacer usted mismo. La refactorización automática, debido a la forma en que Java es, es 100 veces más potente que la de XCode. Esto significa que puede posponer algunas preguntas de diseño hasta más adelante.

    
respondido por el Dan Rosenstark 01.02.2011 - 08:35
fuente

Lea otras preguntas en las etiquetas