Ver Mensaje Individual
  #46  
Antiguo 20-08-2013
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 94
Reputación: 19
DarkDudae Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
El problema es que tienes que separar por completo la vista del código, es decir, deberías tener dos formularios, uno para android , y otro para iOS. Esa es la desventaja.
Efectivamente. Y ahí viene mi queja hacia el planteamiento "multiplataforma" de firemonkey.

A mi modo de ver la cosa no es tan compleja:

Creo unos componentes "firechicken" (en vez de firemonkey). En Designtime, esos componentes adoptarían el aspecto de los componentes nativos que tenga seleccionado en ese momento en el compilador con un simple combobox (algo parecido a como vemos ahora en los videos del sneak peak de Embarcadero para Android). Es decir, si tengo seleccionada plataforma Android, adoptarían el aspecto de los controles de Android, y si tengo seleccionada la plataforma iOS, adoptarían el aspecto de la plataforma iOS. (Sin necesidad de crear un form para cada plataforma)

Los componentes "firechicken" tendrían todos las mismas propiedades en cualquier plataforma (o prácticamente las mismas). A la hora de dibujar los componentes en pantalla, lo harían usando la API de los controles nativos de la plataforma para la que compilemos (Esto se puede conseguir fácilmente usando varios IFDEFs). A la hora de por ejemplo, programar el evento OnClick de un botón de firechicken, este haría la llamada a la API nativa del componente correspondiente, y si dicho evento no existe en el control nativo, pues se programa.

Si firemonkey estuviese diseñado de esta forma, tendríamos prácticamente un único código, con un único formulario y con el rendimiento de los componentes nativos.

De hecho, esto ahora mismo ya se podría conseguir, pero se tendría que hacer mucho trabajo de forma manual. Yo ahora mismo, podría hacer una unit que al ser introducida en el uses de un form firemonkey, en vez de dibujar los controles de firemonkey dibujasen controles nativos de la plataforma seleccionada. Pero claro, tendría que redirigir cada evento y cada propiedad de cada control y crear/adaptar los que no existan. Demasiado trabajo para una persona pero no para el equipo de ingenieros que probablemente tendrá Embarcadero.

No sé si me he explicado....
Responder Con Cita