Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-08-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por DarkDudae Ver Mensaje
Son componentes de código abierto y totalmente gratuitos.

Aquí tienes el enlace:

DPF Native iOS Components

En los componentes vienen un montón con un montón de código fuente para ir "empezando". Además, en algunos aspectos incluso mejoran a los componentes originales con opciones y procedimientos que en x-code hay que escribirlos "a manita" (como por ejemplo, customizar el color de una toolbar o la fuente de la misma y cientos de cosas así)
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.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #2  
Antiguo 20-08-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
El problema donald, es que separara la vista del codigo es, primeramente, la opcion correcta, y segundo, es practicamente inevitable cuando hay dos plataformas con 2 UI toolkits que son diferentes y que se comportan diferentes y tienen tamaños diferentes y formas de interactuar diferentes y flujos diferentes... y asi por el estilo.

Asi que lo que pasa es que uno se ciñe al "estilo" de un toolkit alienigena (ej: firemonkey) e intenta seguir esa linea (lo cual se rompe cuando integras cosas del OS o de terceros) con los problemas intrinsecos que presentan, o hace 2 interfaces y la app se ve y comporta correctamente.

El problema es que eso no es un problema cuando se hace un demo rápido, con controles "normales", sino que se siente el golpe una vez empieza el trabajo en serio.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 20-08-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
El problema donald, es que separara la vista del codigo es, primeramente, la opcion correcta, y segundo, es practicamente inevitable cuando hay dos plataformas con 2 UI toolkits que son diferentes y que se comportan diferentes y tienen tamaños diferentes y formas de interactuar diferentes y flujos diferentes... y asi por el estilo.

Asi que lo que pasa es que uno se ciñe al "estilo" de un toolkit alienigena (ej: firemonkey) e intenta seguir esa linea (lo cual se rompe cuando integras cosas del OS o de terceros) con los problemas intrinsecos que presentan, o hace 2 interfaces y la app se ve y comporta correctamente.

El problema es que eso no es un problema cuando se hace un demo rápido, con controles "normales", sino que se siente el golpe una vez empieza el trabajo en serio.
Consulta, has probado XE5?

Yo creo que , por lo que comentan, pocos de aquí lo han hecho...

Justamente, en XE5 vos diseñas tu aplicación para iOS y tienes el look and feel de iOS, luego cambias un COMBOBOX , rebuild y ya tienes el look and feel de Android.... Así de sencillo. Quien puede superar eso? Obviamente si hay alguna llamada a la API de iOS tendrás que poner un condicional para acceder a la api de android. Pero seguramente el día de mañana crearan componentes de alto nivel que encapsulen dicha decisión.

Como puede ser esto una desventaja? Si entiendo que puedan mencionar que el comportamiento se vuelva mas lento, aunque la verdad en la aplicación que he probado de mediana complejidad no lo he notado para nada, y eso que es beta, pero mencionar esto como una desventaja ...

Yo creo que es una ventaja, y si siguen mejorando el tema de dibujo y performance puede ser imbatible.

Por otro lado, como dije siempre, esta herramienta es para ayudar al mundo delphi a desarrollar aplicaciones para mobiles. Si tu aplicación requiere una excelente performance (casi todas las que he visto que así sea son juegos) tendrás que trabajar con xcode.

Para aplicaciones de oficina, delphi cumple la meta 100%.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #4  
Antiguo 21-08-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por donald shimoda Ver Mensaje
Consulta, has probado XE5?
XE5 no. Asi que pregunto: Si se corre una app con firemonkey en iOS 7, se ven los nuevos estilos, o los de firemonkey?


Si es asi, es el problema. Que "parezca" nativo no es igual a que sea.
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 21-08-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
XE5 no. Asi que pregunto: Si se corre una app con firemonkey en iOS 7, se ven los nuevos estilos, o los de firemonkey?
Si es asi, es el problema. Que "parezca" nativo no es igual a que sea.
No puedo contestarte eso, porque no instalo betas de iOS7.

Pero todo lo demás que comentas, ayudaría que conozcas XE5 antes de comentar, no te parece?

Para terminar, para algunos es un problema, y para otros no lo será. lo importante es que en cualquier caso si es por el aspecto, siempre puedes usar los componentes nativos, tienes opciones gratis y de pago, asi que no veo rollo ahí.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #6  
Antiguo 21-08-2013
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 94
Poder: 19
DarkDudae Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Para terminar, para algunos es un problema, y para otros no lo será. lo importante es que en cualquier caso si es por el aspecto, siempre puedes usar los componentes nativos, tienes opciones gratis y de pago, asi que no veo rollo ahí.
Está claro... pero en este mundo, quien no llora no mama. A Embarcadero hay que reconocerle sus cosas buenas... pero sin olvidarnos de las malas y recordárselas de vez en cuando!

¡Soy de los que piensan que el cliente que se queja es el que hace que "mi aplicación" sea cada vez mejor!
Responder Con Cita
  #7  
Antiguo 22-08-2013
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Por mi parte, me parece una excelente noticia, creo que ahora se ha logrado un producto bastante bueno y solo restará hacerle mejoras propias de cada sistema, por ahora estamos centrados en el asunto de los móviles y todas esas novedades... pero ya me imagino haciendo después un programa para Android que "corra" en todo lado... por ejemplo... en las Google Glass (Que supongo que vienen con Android ¿no?). Que bueno es.

P.D: jejeje, siempre me divierto leyendo estas opiniones, cada que embarcadero va a lanzar algo novedoso... siempre tiene que haber alguien como con rencor... dando opiniones jejeje
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 20-08-2013
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 94
Poder: 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
  #9  
Antiguo 20-08-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por DarkDudae Ver Mensaje
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)
Pero si esto es así ahora mismo en XE5...

Cita:
Empezado por DarkDudae Ver Mensaje
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.
Esto si no se maneja de esta forma ahora, el dibujo lo maneja firemonkey, no nativo.

Cita:
Empezado por DarkDudae Ver Mensaje
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 nuevo, error de concepto, asi esta diseñado. De lo que vos te quejas es de que el dibujo no sea nativo, porque el resto asi funciona
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #10  
Antiguo 21-08-2013
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 94
Poder: 19
DarkDudae Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
De nuevo, error de concepto, asi esta diseñado. De lo que vos te quejas es de que el dibujo no sea nativo, porque el resto asi funciona
Exacto, y no he dicho lo contrario. El talón de aquiles de firemonkey, es el dibujado, que es lentísimo. No he probado XE5 así que no sé hasta qué punto este "problema" se ha mejorado. Hablo de XE4, que es el único que he podido probar.

Y a día de hoy, y hablando de XE4, para aplicaciones de "oficina" sigo sin ver a Firemonkey como una alternativa viable. Y te voy a poner un pequeño ejemplo:

Usa un tableview con dos tabs que pasen entre ellas mediante una típica animación de iOS como es el tslide. En la primera tab, pon por ejemplo, un botón de "Seleccione su país", que al ser pulsado, con la animación tslide pase al segundo tab que contendrá un TableView con un listado de países. Usa en el simulador de iPad o en un dispositivo real que no sea un iPhone 3GS o 3G (que son los que tienen menor resolución). Ahora pulsa el botón y verás que la animación va a trompicones, y que al deslizarte por el listado de países petardea que da gusto. Puedo entender que para algunos esto sea tolerable, para mí.... no. (Y no hablemos ya de rellenar listas en runtime....)

Vamos, es que si queréis os puedo poner un par de demos usando controles de firemonkey y luego los nativos y veréis que no son ilusiones mías... es como cambiar de un 600 a un BMW M5...

Por otro lado, no es ese el único problema... ¿habéis intentado ejecutar una aplicación de firemonkey de XE4 en iOS 7 ? Aparte de que pasa una cosa bastante extraña, y es que tienes que pulsar ligeramente sobre el control para que este responda, el aspecto adoptado de la aplicación es el de iOS6. Si usas componentes nativos el aspecto que adopta es el de la versión de iOS que el dispositivo usa. ¿Tendremos que pagar el update a XE5 para disponer del stylebook de iOS7?
Responder Con Cita
  #11  
Antiguo 21-08-2013
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por DarkDudae Ver Mensaje
Usa un tableview con dos tabs que pasen entre ellas mediante una típica animación de iOS como es el tslide. En la primera tab, pon por ejemplo, un botón de "Seleccione su país", que al ser pulsado, con la animación tslide pase al segundo tab que contendrá un TableView con un listado de países. Usa en el simulador de iPad o en un dispositivo real que no sea un iPhone 3GS o 3G (que son los que tienen menor resolución). Ahora pulsa el botón y verás que la animación va a trompicones, y que al deslizarte por el listado de países petardea que da gusto. Puedo entender que para algunos esto sea tolerable, para mí.... no. (Y no hablemos ya de rellenar listas en runtime....)
Ok, pero en el caso de que todo pase por el dibujo lo veo solucionable, quizás no en XE5 y habrá que esperar un poco. XE5 abre la puerta a Android y luego de esto deberían venir las optimizaciones.

Cita:
Empezado por DarkDudae Ver Mensaje
Por otro lado, no es ese el único problema... ¿habéis intentado ejecutar una aplicación de firemonkey de XE4 en iOS 7 ? Aparte de que pasa una cosa bastante extraña, y es que tienes que pulsar ligeramente sobre el control para que este responda, el aspecto adoptado de la aplicación es el de iOS6. Si usas componentes nativos el aspecto que adopta es el de la versión de iOS que el dispositivo usa. ¿Tendremos que pagar el update a XE5 para disponer del stylebook de iOS7?
Esto es normal, dado que iOS v 7 aun ni esta en la calle, sino betas. Claro que vas a tener que pagar un update cada vez a EMB, eso ya es sabido, es su *política de ingresos*

De todos modos sigo creyendo que es una opción muy viable contra las demás del mercado, solo resta ingeniarselas, o usar XCODE, el camino mas largo y de seguro el mejor, pero a costo de una curva de aprendizaje enorme. Nunca usaría Oxygene, me parece una pérdida de tiempo terminar usando VS solo para escribir en pascal.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #12  
Antiguo 20-08-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.913
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por DarkDudae Ver Mensaje
De hecho, esto ahora mismo ya se podría conseguir, pero se tendría que hacer mucho trabajo de forma manual.
Te voy a dar un baldao de agua fría: Solo existen 2 IDES (que conozco) donde el diseño de formularios es como debe ser: Visual FoxPro, Delphi. (Y acces, también).

Lo que hay en VS, XCode, cualquiera de java, etc son cosas mas bien pobres.

Asi que lo "normal" es hacer las cosas por código. De hecho lo que hago en xcode es prototipar con keynote (http://www.apple.com/es/iwork/keynote/) y/o xcode y luego hacer las pantallas por código.

Eso en que importa con Delphi? Que resulta que hay mucho ejm e infraestrucura para hacer estas cosas "manualmente" de forma muy eficiente, y una vez se hace el trabajo basico, es facil de organizar.

Un ejemplo:

http://escoz.com/open-source/quickdialog

Para mi, hacer un formulario en iOS es así:

Código PHP:
- (QLabelElement *) addLabel:(NSString *)key title:(NSString *)title value:(NSString *)value;
- (
QBadgeElement *) addBadge:(NSString *)key title:(NSString *)title value:(NSString *)value;

- (
QEntryElement *) addText:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder;
- (
QAutoEntryElement *)addCombo:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder items:(NSArray *)items;
- (
QEntryElement *) addPhone:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder;
- (
QEntryElement *) addPassword:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder;
- (
QEntryElement *) addEmail:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder;
- (
QDecimalElement *) addNumber:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder;
- (
QDecimalElement *) addMoney:(NSString *)key title:(NSString *)title placeholder:(NSString *)placeholder
Y eso se encarga de armar los formularios, junto con otras facilidades, y de tener un diseño estandar para todo, y facilitar la traduccion y otras cosas que terminan siendo mejores cuando se hace por código.

Asi que si hay forma de hacer lo que dices, creo que es preferible gastarse la semana que tarda en hacer un unit que hago cosas como las que muestro, junto con los ifdefs para cada OS que sacrificar el desempeño, porque es MAS fácil solucionar un problema de layout de codigo a mano, que tratar de hackear una libreria masiva como firemonkey y corregir errores de desempeño, o sufrir por tener acceso a cosas nuevas del OS (ej: cambios en la versión) y asi por el estilo por no tener una forma visual de hacer el formulario.

Y si eso queda bien? Hacer el diseñador de formularios no queda muy lejos en estos dias...

P.D: Y sacando de la manga un truco que se hace por xcode, que tal parsear el DFM y armar el formulario desde allí?
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sumar campo cuando este asi actualizado rufo Varios 12 28-05-2010 21:17:03
Informe Actualizado BlueSteel Impresión 3 05-10-2006 01:09:00
no me muestra un campo actualizado con triggers pmfras Firebird e Interbase 0 05-03-2005 17:41:07
Administrador para MySQL actualizado Gasper MySQL 0 01-04-2004 20:54:40


La franja horaria es GMT +2. Ahora son las 12:33:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi