Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: robertofd1995 en 20 Mayo 2014, 20:36 pm



Título: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 20 Mayo 2014, 20:36 pm
hola a todos , se que con java se pueden hacer interfaces pero hasta donde yo se estas estan un poco limitadas , me refiero en que no puedes pasar de crear interfaces estilo w95 (hasta donde llegan mis conocimientos )

por eso me estaba preguntando con que se desarrollan las interfaces modernas , ya saben que cuentan con animaciones bastantes curradas , fondos interactivos etc...

un saludo y gracias


Título: Re: con que se hacen las interfaces modernas
Publicado por: El Benjo en 20 Mayo 2014, 23:09 pm
La mayoría de esas cosas se hacen de forma independiente, sin una aplicación o lenguaje especializado para eso. Es decir, que en vez de crear controles predeterminados como los de swing (en el caso de JAVA) creas tus propios controles.

Todo eso se realiza mediante métodos gráficos, eventos del teclado y del mouse, etc.


Título: Re: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 24 Mayo 2014, 20:05 pm
y como puedes crear tus propios controles , nunca he hecho todavia una interfaz grafica asi que desconozco este area

si me pudieses dejar un enlace con informacion/documentacion te lo agradecería mucho


Título: Re: con que se hacen las interfaces modernas
Publicado por: El Benjo en 25 Mayo 2014, 01:51 am
¿Es decir que únicamente has realizado aplicaciones de consola? ¿Con qué lenguaje trabajas y para qué sistema operativo?


Título: Re: con que se hacen las interfaces modernas
Publicado por: Migugami en 25 Mayo 2014, 23:22 pm
hola a todos , se que con java se pueden hacer interfaces pero hasta donde yo se estas estan un poco limitadas , me refiero en que no puedes pasar de crear interfaces estilo w95 (hasta donde llegan mis conocimientos )

¿Interfaces estilo W95? Creo que hasta en Delphi puedes hacer una buenas GUI. En Java tienes a JavaFX, viene a sustituir a Swing como UI Framework y puedes hacer unas GUI realmente muy buenas. Puedes usar css en tus aplicaciones, de ésta manera puedes hacer que luzcan como tú desees. Hay 2 formas de crear una GUI en JavaFX: Por medio de código Java (en sus inicios) y por medio de código XML, que en éste caso se llama FXML.

He hecho muchas GUI en JavaFX, además puedes agregar vídeos a tu GUI, animaciones como transiciones, efectos de desvanecimiento, movimiento, etc. Puedes construir gráficas personalizas y muy ricas muy fácilmente y es perfecto para el patrón MVC, dado que cada GUI en FXML, tiene un controlador que lo maneja. Si hablamos de .NET, tienes a WPF que usa su lenguaje de marcado XAML, similar a JavaFX, puedes hacer muy buenas GUI.

Otro punto es que todo depende del destino de tu aplicación. Por ejemplo:

  • Si quieres gráficos y componentes ricos en una aplicación JavaFX/WPF es tu opción.
  • Si quieres gráficos y componentes ricos y además portabilidad, JavaFX es tu mejor opción, ya que WPF no es soportada por Mono (Mono es la implementación libre de .NET en Linux/Mac) y según los líderes del proyecto, no tienen pensado agregarlo al proyecto.
  •   Si quieres gráficos y componentes ricos, portabilidad y además buen rendimiento, tu opción es QT. QT es un Framework para crear GUI con C++ principalmente, pero existen otros bindings para Python, Java, y muchos más lenguajes. La ventaja de QT C++ es que corre nativamente en el sistema operativo (aunque esto no suele ser un problema en la actualidad según últimos benchmarks). QT con C++ puede consumir 45-60% de RAM de lo consume la misma aplicación escrita en Java y utilizando JavaFX.

JavaFX demo:
a3dAteWr40k

QT5 demo:
vhWS_bN-T3k

WPF demo:
mKrD0IcQEwU


Título: Re: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 26 Mayo 2014, 19:47 pm
¿Es decir que únicamente has realizado aplicaciones de consola? ¿Con qué lenguaje trabajas y para qué sistema operativo?

a ver te comento jaja yo estoy en primero de carrera de ing de software pero de interfaces graficas todavia no hemos dado nada , nos dijeron que lo de la interfaz es muy facil y en una asignatura de seg lo veremos , pero me puse a mirar en la doc de java y la verdad no le veo mucha complicacion

pero no le veo mucha complicacion a las intefazes que puedes hacer con java,hasta donde lei se limita a crear layaout dentro de otros , etc... y un monton de codigo repetido , etc...

de momento no he hecho ninguna aplicacion con interfaz , ya que los programas que hemos hecho de diversa indole , ej manejo de sistemas de un avion , programas las clases de collections (ArrayList,LinkedList,etc..) y demas cosas de por el estilo , y claro para trabajar con eso lo maximo que hicimos fue un menu en codigo texto para salir del paso

tengo ganas de hacer mas cosas jaja


Título: Re: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 26 Mayo 2014, 19:49 pm
¿Interfaces estilo W95? Creo que hasta en Delphi puedes hacer una buenas GUI. En Java tienes a JavaFX, viene a sustituir a Swing como UI Framework y puedes hacer unas GUI realmente muy buenas. Puedes usar css en tus aplicaciones, de ésta manera puedes hacer que luzcan como tú desees. Hay 2 formas de crear una GUI en JavaFX: Por medio de código Java (en sus inicios) y por medio de código XML, que en éste caso se llama FXML.

He hecho muchas GUI en JavaFX, además puedes agregar vídeos a tu GUI, animaciones como transiciones, efectos de desvanecimiento, movimiento, etc. Puedes construir gráficas personalizas y muy ricas muy fácilmente y es perfecto para el patrón MVC, dado que cada GUI en FXML, tiene un controlador que lo maneja. Si hablamos de .NET, tienes a WPF que usa su lenguaje de marcado XAML, similar a JavaFX, puedes hacer muy buenas GUI.

Otro punto es que todo depende del destino de tu aplicación. Por ejemplo:

  • Si quieres gráficos y componentes ricos en una aplicación JavaFX/WPF es tu opción.
  • Si quieres gráficos y componentes ricos y además portabilidad, JavaFX es tu mejor opción, ya que WPF no es soportada por Mono (Mono es la implementación libre de .NET en Linux/Mac) y según los líderes del proyecto, no tienen pensado agregarlo al proyecto.
  •   Si quieres gráficos y componentes ricos, portabilidad y además buen rendimiento, tu opción es QT. QT es un Framework para crear GUI con C++ principalmente, pero existen otros bindings para Python, Java, y muchos más lenguajes. La ventaja de QT C++ es que corre nativamente en el sistema operativo (aunque esto no suele ser un problema en la actualidad según últimos benchmarks). QT con C++ puede consumir 45-60% de RAM de lo consume la misma aplicación escrita en Java y utilizando JavaFX.

JavaFX demo:
a3dAteWr40k

QT5 demo:
vhWS_bN-T3k

WPF demo:
mKrD0IcQEwU

muchas gracias por la informacion , me pondre a investigar ahora , yo solo habia mirado lo de swing en java y no mire lo de javaFx , muchas gracias


Título: Re: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 26 Mayo 2014, 19:50 pm
es verdad que opinan de android studio , un amigo mio me comento que te permitía hacer las interfaces de manera muy rapida y sencilla es cierto?

y ademas como puedes integrar codigo css en java , en html se como es pero en java ni idea , me queda mucho por aprender jaja


Título: Re: con que se hacen las interfaces modernas
Publicado por: Migugami en 27 Mayo 2014, 16:23 pm
Android Studio es un IDE para desarrollar aplicaciones para Android. Como la mayoría de IDE de provee un GUI builder, en donde puedes hacer tus interfaces gráficas de manera rápida y sencilla.

Cita de: robertofd1995
y ademas como puedes integrar codigo css en java

Supongamos que quieres darle estilos a un botón en JavaFX. Primero, debemos crear el botón:

Código
  1. <Button styleClass="botones" fx:id="btnAceptar" text="Limpiar" prefWidth="80.0" prefHeight="30"  layoutX="15.0" layoutY="250.0"/>

Plus: Si quieres agregarle una imagen a tu botón, puedes hacerlo así:

Código
  1. <Button styleClass="botones" fx:id="btnAceptar" text="Limpiar" prefWidth="80.0" prefHeight="30"  layoutX="15.0" layoutY="250.0">
  2.             <graphic>
  3.       <ImageView><Image url="rutapaquete/imagen.png"/></ImageView>
  4.    </graphic>
  5. </Button>

Y en los estilos, en -fx-background-color, pones 'transparent', para que sólo sea visible la imagen del botón.

Entonces, haríamos nuestra hoja de estilos:

Código
  1. .botones {
  2.        -fx-border-radius: 0;
  3.        -fx-background-radius: 0;
  4. -fx-background-color: black;
  5. -fx-text-fill: white;
  6. -fx-font-size: 16px;
  7. -fx-font-weight: bold;
  8. }
  9.  
  10. .botones:pressed {
  11.        -fx-background-color: #a3a3a3;
  12. }

2) Es necesario jalar el archivo .fxml desde una clase Java para que se pueda construir:

Código
  1. public class GUIBuilder {
  2.  
  3. public GUIBuilder() {}
  4.  
  5. public void build() {
  6. Stage ventana = new Stage();
  7. // carga la vista
  8. Parent root = FXMLLoader.load(this.class.getResource("paquete/vista.fxml"));
  9. // agrega la vista a la escena
  10. Scene scene = new Scene(root);
  11. scene.getStyleSheets().add(this.class.getResource("paquete/estilos.css").toExternalForn());
  12. ventana.setScene(scene); // agrega la escena al a ventana
  13. ventana.setResizable(false); // no se puede cambiar el tamanio
  14. ventana.show(); // muestra la ventana
  15. }
  16. }

Y así construimos nuestra interfaz con una hoja de estilos. Aprovechando todo el poder de JavaFX ;)


Título: Re: con que se hacen las interfaces modernas
Publicado por: robertofd1995 en 28 Mayo 2014, 12:41 pm

muchas gracias por la explicación ,me pondre a aprender hoy por la noche , eres un crack