2010-02-21 7 views
6

Mi pregunta es esta: tengo una aplicación diseñada para iPhone y decidí bifurcar el código, en otras palabras, desarrollaré dos versiones de la aplicación en esta fase inicial, una para iPhone y la otra para iPad.iPhone y Ipad: ¿cómo doblo un código?

Mi pregunta es esta: ¿cómo doblo el código? Me gustaría continuar usando un proyecto para ambas versiones pero, obviamente, tendré que escribir secciones de código para el iPhone y otras secciones exclusivamente para iPad y, por supuesto, tendré muchas partes en común para ambas versiones.

¿Cómo hago eso sin crear un problema en el código?

¿Cuáles son las mejores prácticas? Gracias por cualquier ayuda.

Respuesta

2

El problema con los múltiples objetivos es que podría entrar en conflicto con la modelo de distribución.

Por lo que entiendo, las aplicaciones de iPad y iPhone se distribuirán como solo binario. La aplicación ha decidido si mostrar la interfaz de usuario del iPad o iPod en tiempo de ejecución.

Esto significa que si usted no quiere tener que separar aplicaciones en la tienda, 'Foo' & 'Foo iPad Edition', que no se puede utilizar múltiples objetivos y que de alguna manera se tener trabajar con un código base.

Odio esto porque podría haber muchas cosas condicionales en la aplicación. Si el iPad hace esto, de lo contrario hazlo. Si iPhone muestra este controlador de vista, de lo contrario, muestra el otro. No creo que esto conduzca a un buen código.

Entonces, en lo que estoy pensando ahora es hacer algo en el medio: crearé básicamente dos bases de código y en algún lugar desde el principio de la aplicación decidiré utilizar una ruta de código completa para iPad o iPhone.

+0

Los documentos de Apple no dicen que la aplicación debe distribuirse como un solo binario. De lo contrario. Sugiere que la decisión debe ser tomada por el desarrollador. Creo que vendrán más dispositivos en el futuro, por lo que las cosas empeorarán cuando se agregue una categoría de tercer dispositivo. – SpaceDog

+0

Sí, tienes razón. Es una elección de desarrollador. –

3

Puede configurar su proyecto XCode para utilizar varios objetivos, continuación, puede asignar algún archivo de código fuente a un destino oa otro oa ambos

+0

dos preguntas: 1) ¿cómo hago esa tarea 2) ¿qué pasa con las partes de los códigos. ¿Puedo asignar partes de códigos a un objetivo u otro? (compilado este SI ipad o que si iphone) ... ¿cómo se hace? Gracias. – SpaceDog

1

No soy un desarrollador de iPhone, pero por lo que indica St3fan (que debe distribuirse como un solo binario), estos parecen un caso clásico para el patrón de fábrica. Cualquier cosa que sea diferente se implementa de dos maneras distintas (con una interfaz común) y la fábrica escupe una implementación diferente en función de si está en un iPhone o iPad. El código común no necesita cambiar, por lo que puede permanecer tal cual.

1

puedo responder a sus puntos: 1) "¿Cómo hago que la asignación" usted tiene que crear un nuevo destino en el menú Proyecto en mi caso utilizo dos objetivos diferentes para un juego de iPhone (uno normal y un (lite) versión gratuita)

so I created a second Target of Type Application 
    this will add a Target to the Groups & Files panel 
    and will create a new Info.plist file 

    in the Group&File you can show more columns (by right clicking) 
    on "Group&Files"), here you have to show the "Target Memebership column" 
    for each file you can decide if it is part of a target by pressing the 
    corresponding check box 

2) "¿qué pasa con partes de códigos" no sé si el SDK Beta de corriente utilizada para el desarrollo de aplicaciones de iPad contiene algunas #define que podría poner a prueba durante la compilación en En cada caso, podría establecer un #define dedicado en el nivel de destino y probar es hacer una compilación condicional

puede encontrar información muy detallada acerca de la creación de aplicaciones con múltiples objetivos en la documentación de manzana dedcated descárgalo desde el iPhone Dev Center es necesario leer esta guía "Gestión de proyectos Xcode Guía "

+0

gracias !!!!!!!!! – SpaceDog

Cuestiones relacionadas