2011-02-23 14 views
13

Soy de Java Swing background. ¿Puedo saber por qué usar XML para crear GUI es una buena práctica en Android? Por ejemplo, en lugar de escribir el código en (lo que hace que me sienta más cómodo con él como yo uso para balancear la aplicación de escritorio)Por qué usar XML para crear GUI es una buena práctica en Android

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class HelloAndroid extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView tv = new TextView(this); 
     tv.setText("Hello, Android"); 
     setContentView(tv); 
    } 
} 

Escribimos el código en forma XML.

import android.app.Activity; 
import android.os.Bundle; 

public class HelloAndroid extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

En el tutorial, se establece que,

Esta estructura hace que sea muy fácil de acumularse rápidamente interfaces de usuario, utilizando un estructura más sencilla y la sintaxis de lo que usaría en una disposición programática .

Sin embargo, realmente no me gusta la idea, ya que creo que crear un archivo XML por separado es más engorroso.

¿Alguien puede dar un ejemplo del mundo real (en el sentido de Android), por qué usar XML para compilar GUI es más superior que el código de Java desnudo?

Si la programación de la GUI a través de XML es realmente una buena cosa, ¿por qué todavía no se ha convertido en una práctica común entre los desarrolladores de aplicaciones de escritorio GUI?

Respuesta

23

El uso de diseños XML tiene muchas ventajas sobre el código Java. Obtendrá referencias sencillas a cadenas, drasables, dimensiones, temas, etc. Pero la mayor ventaja es el soporte automático para múltiples configuraciones. Sin cambiar su código, puede tener diferentes diseños para el paisaje y el retrato con solo tener un diseño XML en layout-land/y layout-port /. Y puede hacer lo mismo para adaptar el diseño a diferentes resoluciones, idiomas, etc.

+1

Puntos muy válidos. +1 –

+1

Si el diseño XML tiene tantas ventajas, ¿por qué la programación de GUI a través de XML todavía no es común en el desarrollo de aplicaciones de escritorio GUI? –

+2

Estas ventajas son específicas de Android, no de otros kits de herramientas. –

0

Bueno, por un lado, le permite usar constructores de GUI (como el generador de eclipse que proporciona Google).

También lo ayuda a separar la lógica de su negocio de la lógica de su pantalla.

Probablemente, sin embargo, eres muy bueno en el código Swing, y has olvidado cuánto tiempo tomó construir esas habilidades. :)

+2

Realmente no me siento el dolor de usando el código Java Swing para generar GUI, ya que mis NetBeans favoritos ayudan a generar todo el código robusto. Solo me pregunto por qué Eclipse no nos ayuda a generar todo el código Java, en lugar de generar el código en formato XML. –

+0

@Yan: además de fanático y usuario de Netbeans, diría: "Eclipse tiene varios complementos para hacer eso". Pero esos podrían no ser tan buenos como Netbeans. Además, la plataforma Netbeans es increíble, de hecho. –

+0

No hay nada que impida que el desarrollador cree una clase de vista personalizada autónoma que amplíe 'RelativeLayout', en un archivo separado, cree una instancia de esta vista personalizada en' Activity' y configure la vista personalizada como contentView. Él/ella no tiene que empujar el código de configuración de la interfaz de usuario dentro de la 'Actividad'. – Zhang

1

Como creo que es del fondo Java Swing, puede considerar la tarea de crear tareas de diseño mediante programación. Pero hay muchas razones por las que puede pensar en la estrategia XML:

1) El diseño de la disposición XML es fácil de entender y mantiene la interfaz de usuario de la aplicación separada del código de la aplicación.

2) Existen muchos dispositivos en el mercado que tienen tamaños de pantalla diffrent diffrent y Android proporciona una tarea más fácil para crear UI para todos utilizando XML y manteniéndolos separados.

3) Además, si desea desarrollar una aplicación multilingüe, XML es la mejor.

En pocas palabras:

utilizar sólo el código Java para el diseño si realmente necesita de otra manera usted tiene todavía mejor opción XML.

1

Piense en crear una interfaz de usuario utilizando HTML/CSS.Siempre me resulta útil en comparación con Swing. Y creo que no solo soy yo, sino que otras personas también piensan de la misma manera, es decir, Jelly Swing.

+0

Supongo que obtener "Jelly Swing" solo por googlear?Como parece ser un proyecto muerto. Vea su página web. (Última publicación: 5 de abril de 2006) –

+0

@Yan Cheng: Conocí este proyecto desde 2008, sí, también es tarde. Pero no lo recomiendo Solo digo que no es una idea muy extraña, hacer RCP usando CSS algo, y esto en realidad tiene alguna implementación, no importa si está desactualizada. –

+0

Oye, me doy cuenta de que estás geográficamente ubicado en el mismo país que yo :) –

0

Debo decir que cualquiera de las formas puede funcionar bien si el desarrollador es experto. Sin embargo, creo que debemos considerar cómo funciona esto en un equipo. Estoy de acuerdo con tangentstorm. De esta forma, podemos desacoplar fácilmente el desarrollador de UI y el desarrollador de la aplicación. En un equipo, las personas solo pueden enfocar lo que están haciendo.

+0

desarrollador de interfaz de usuario? ¿Te refieres al diseñador gráfico? Si es así, escucho este argumento antes y al trabajar en equipo con diseñadores gráficos y programadores, ¿de verdad espera que el diseñador gráfico pueda instalar las herramientas de desarrollo, configurar todas sus configuraciones IDE, descargar todas las dependencias de los administradores de paquetes, saber cómo usar el IDE y, finalmente, buscar en todos los menús adecuados para encontrar esa propiedad 'textCursorDrawable' por ejemplo? Eso espera que el diseñador gráfico sea programador solo para hacer ediciones. ¿Qué tal si espera que él envíe sus cambios a Git? * desmayos * – Zhang

6

Si la programación de la GUI a través de XML es realmente una buena cosa, ¿por qué todavía no se ha convertido en una práctica común entre los desarrolladores de aplicaciones de escritorio GUI?

  • desarrollo .NET utiliza XAML, que es XML
  • desarrollo de Flex, servicio de web y de escritorio a través del aire, que es XML
  • desarrollo XUL es XML
  • Hay ~20 XML bindings for Swing and SWT

Teniendo en cuenta que el desarrollo de .NET solo probablemente excede todos los demás desarrollos de GUI de escritorio combinados, yo diría que se ha convertido en una práctica común entre GUI desarrolladores de aplicaciones de escritorio ".

Por otra parte, el uso de XML para GUIs es una faceta de la tendencia más grande de "IU declarativa", que tiene muchas formas no XML, como JSON-ish QML para Qt. AFAICT, el principal desarrollo de GUI se está moviendo para incorporar dicho marcado declarativo en una forma o moda.

+0

Sé que hay muchos enlaces XML para proyectos de GUI. Pero, ¿son ampliamente adoptados? ¿Puede darnos un ejemplo de la famosa aplicación de GUI de Java que está utilizando el enlace de GUI XML? –

+0

@CheokYanCheng JavaFX – HinoHara

0

Aquí están mis pensamientos:

  • una buena manera de cuidar de mi plomería interfaz gráfica de usuario.
  • siempre que necesito experimentar con valores dimensionales interfaz gráfica de usuario, el código no necesita recompilación
  • Presentaciones XML suelen ser muy fácil de entender - desarrollo inicial interfaz gráfica de usuario se convierte en simple
Cuestiones relacionadas