¿Cómo debo aprender la interfaz de usuario, la animación para el desarrollo de aplicaciones de Android?

¡Gracias por el A2A, desconocido anónimo!

El fondo de pantalla animado de Android Muzei [1] tiene el siguiente botón:

“ACTIVAR” exige ser presionado.

Quería este botón en mi aplicación, y quería que se viera y se comportara exactamente igual. Tenía este efecto de ondulación y elevación cuando lo tocaste, así que por supuesto que lo necesitaba.

En ese momento, acababa de comenzar a construir Quotograph [2]. Estaba en una pausa de un año desde el desarrollo de Android, así que estaba bastante oxidado. Necesitaba un poco de ayuda para acertar con este botón.

Pensé que, dado que mi aplicación se inspiró mucho en Muzei, también podría tomar algo de código, ¿verdad? Por supuesto. Por suerte para mí, el autor de Muzei, Roman Nurik, Open-Sourced el proyecto en Github [3] donde cualquiera podía aprender cómo funcionaba.

Aquí es donde comienza la diversión.

Cómo encontré el botón Activar

En Github, puede buscar en cualquier fuente del repositorio cadenas coincidentes. En mi caso, sabía que el botón Activar tenía que usar la frase de texto, “activar” en algún lugar de su código.

¿Cómo supe esto? Llámalo intuición de mujer. Si busca el código fuente de Muzei para “activar”, el cuarto resultado es:

Bote. ☠

Algunas sugerencias clave me hicieron saber que esto era exactamente donde necesitaba comenzar. A saber:

  • Los parámetros ancho y alto usaban una identificación titulada intro_activate_button_size . Solo había una introducción y un solo botón de activación. Lo deduje del uso de la aplicación.
  • La otra pista que no necesitaba, pero que podía referirme, era el textAllCaps=”true” . Como puede ver en la captura de pantalla, se lee, “ACTIVAR”, donde cada letra fue mayúscula.

Desde aquí, hice clic en el enlace del archivo para investigar más a fondo el código fuente. Si eso ya no está disponible, resultó ser así:

<FrameLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android: id = “@ + id / intro_container”
android: layout_height = “match_parent”
android: layout_width = “match_parent”
android: alpha = “0”
android: visibilidad = “ido”>

<FrameLayout android: id = "@ + id / demo_view_container"
android: layout_width = “match_parent”
android: layout_height = “match_parent” />

<Ver android: layout_height = "match_parent"
android: layout_width = “match_parent”
android: background = “@ drawable / intro_background_protection” />

<LinearLayout android: layout_width = "wrap_content"
android: layout_height = “wrap_content”
android: layout_gravity = “centro”
android: orientación = “horizontal”>

<fragment android: name = "com.google.android.apps.muzei.util.AnimatedMuzeiLogoFragment"
android: id = “@ + id / animated_logo_fragment”
android: layout_height = “wrap_content”
android: layout_width = “wrap_content” />

<Botón android: background = "@ drawable / white_circle_button"
android: layout_height = “@ dimen / intro_activate_button_size”
android: layout_width = “@ dimen / intro_activate_button_size”
android: layout_marginStart = “48dp”
android: text = “@ string / action_activate”
android: textAllCaps = “true”
android: fontFamily = “sans-serif-condensed”
android: textStyle = “bold”
android: textSize = “18sp”
android: textColor = “# 333”
android: id = “@ + id / enable_muzei_button” />

El elemento más inferior, que comienza con <Button , contiene mi premio. Este botón no tiene un conjunto de estilos, por lo que es probable que los valores XML proporcionados aquí describan el botón en su totalidad.

Teníamos el ancho, la altura, la fuente, el estilo, el tamaño del texto, el color y, lo más importante, el fondo. Ah, pero el fondo hacía referencia a un recurso white_circle_button , white_circle_button .

Comencé copiando estos atributos XML para mi propio botón, pero descubrir cómo la aplicación generó el círculo de fondo fue fundamental para mi éxito imitador.

Como desarrollador de Android, sabía que podía encontrar elementos dibujables en una ubicación de nivel superior: la carpeta res . Entonces necesitaba navegar a la carpeta res de Muzei si iba a encontrar el archivo correcto.

Como ya estaba en un directorio de diseño cuando miraba muzei_include_intro.xml , usaría las migas de pan de Github para navegar a res :

Al hacer clic en res ayudaría a reducir mi búsqueda del white_circle_background .

UH oh…

Había 6 carpetas dibujables diferentes. No quería hacer clic en todos ellos porque soy vago y esto era Internet, ¡maldita sea! “Hacer clic es para tontos”, recuerdo haberme dicho.

Utilizando la función Buscar archivo de Github, que descubrí por completo cuando escribí esta respuesta, pude buscar cualquier archivo en el repositorio. Se ve / se ve así:

Escribí suavemente “white_circle_button” y escupió pero un resultado. Perfecto. Más abajo en la madriguera del conejo vamos.

white_circle_button.xml

A partir de esto, supe que el dibujable no era una imagen, era otro archivo XML. Los dibujos XML son preferibles a las imágenes PNG, ya que consumen menos espacio y se escalan mejor en todos los dispositivos.

Pero mi búsqueda no terminó allí, porque este archivo hacía referencia a otro grey_selectable_item_background_circle , grey_selectable_item_background_circle . Podría pasar al siguiente paso, pero creo que ya lo estás entendiendo.

¿Qué clase de respuesta fue esta?

Casi copié, pegué y modifiqué el código fuente que se encuentra en Muzei para satisfacer mis propias necesidades. Así es como aprendo nuevos patrones de interfaz de usuario, algo nuevo realmente.

Para mostrar las últimas capacidades de Android, a veces Google lanza el código fuente de sus aplicaciones. Por ejemplo, echa un vistazo a la aplicación I / O Schedule de 2016 [4] que usa Material Design y muchas otras bibliotecas sexys.

Reutilizo las soluciones existentes, especialmente de aquellos que saben mejor que yo, y Google sabe mucho mejor que yo. Cuando veo algo que quiero replicar, busco tutoriales o encuentro aplicaciones de código abierto que ya lo han hecho.

No reinvento la rueda , no hay suficiente tiempo en el día.

Esto también funciona como un ejercicio de aprendizaje adicional porque descubro cómo los profesionales administran y organizan sus bases de códigos, así como las mejores prácticas que utilizan.

Más importante aún, navegar por un repositorio existente es la primera tarea del 99% de las contrataciones de software. ¿Por qué? Porque las compañías no contratan ingenieros nuevos para escribir aplicaciones desde cero. Hay excepciones a esto, pero no muchas.

Larga historia corta, “los buenos artistas toman prestado, los grandes artistas roban”.

Respuestas relacionadas

  • ¿Cómo se crean hermosas interfaces de usuario no estándar para aplicaciones de Android?
  • ¿Cuál es su método preferido de aprendizaje de programación?
  • ¿Cuáles son los requisitos básicos para un desarrollador de Android?
  • ¿Cómo convierto un diseño PSD a un diseño XML Android?

¿Esto ayudó? ¡Entonces, vota para apoyar esta respuesta y sígueme para obtener más información sobre Android, desarrollo de aplicaciones y otras cosas divertidas!

Notas al pie

[1] Muzei Live Wallpaper – Aplicaciones de Android en Google Play

[2] Live Wallpaper: Quote & Photo – Aplicaciones de Android en Google Play

[3] romannurik / muzei

[4] google / iosched

Creo que debería aprender a “diseñar” y cómo funcionan las herramientas de interfaz de usuario de Android antes de aplicar la creatividad personal. Me gustaría usar una lista de verificación en este caso:

  1. ¿Entiendes los ciclos de vida de la aplicación / actividad de Android? (Aplicación | Desarrolladores de Android / Actividad | Desarrolladores de Android)
  2. Genial, ahora conoce las limitaciones y restricciones en la memoria / CPU. Sabes que sabes con qué puedes jugar, ¿entiendes XML (o cualquier lenguaje de interfaz de usuario)?
  3. Excelente. Ahora, ¿comprende cómo funcionan los diseños y las ventajas y desventajas de utilizar diferentes tipos de diseño (diseños | desarrolladores de Android) lo suficiente como para que pueda tomar ideas y recrearlas como diseños?
  4. Magnífico. Ahora ya sabe cómo crear fondos / botones / barras de menú / etc. Tienes el arte listo, pero la presentación es igual de importante. ¿Sabes cómo definir / declarar / aplicar transiciones? (Definición de animaciones personalizadas | Creación de transiciones personalizadas | Aplicación de una transición)
  5. ¿Sí? Entonces ya has aprendido la interfaz de usuario de Android.

Lea TODA la documentación. Sí, hay mucho por hacer, pero alguien lo escribió para su beneficio. Haz los ejemplos. Una vez que comprenda los ejemplos, construya sobre ellos y extienda la base del código para cumplir con las ideas creativas que tenga. Tomar atajos solo perjudicará tu capacidad de crear lo que se te ocurra. No te conformes una vez que hayas comenzado una idea de interfaz de usuario, y no dejes ninguna piedra sin mover.

Aquí algunos tutoriales:

La meta

Este tutorial está dirigido al procedimiento de usar diseños para presentar animaciones. En lugar de pasar por cada detalle de hacer todo, el objetivo es darle una impresión de cómo se siente construir una interfaz de usuario para Android de principio a fin.

Puedes descargar el proyecto de demostración en Github

Diseños

  • FrameLayout
  • Diseño lineal
  • Disposición relativa
  • Diseño de cuadrícula

El bloque de construcción básico para la interfaz de usuario de Android es el diseño. Así que vamos a ver cómo podemos construir esos diseños. Hay algunas opciones, como diseños de cuadros, diseños lineales, diseños relativos, diseños de cuadrícula. Los tres primeros (diseños de cuadros, diseños lineales, diseños relativos) son probablemente los más importantes y veremos cómo los usamos en la práctica.

Tutorial de la interfaz de usuario de Android: diseños y animaciones | Codementor

Creación de aplicaciones con gráficos y animación

Estas clases le enseñan cómo realizar tareas con gráficos que pueden darle a su aplicación una ventaja sobre la competencia. Si desea ir más allá de la interfaz de usuario básica para crear una hermosa experiencia visual, estas clases lo ayudarán a llegar allí.

Creación de aplicaciones con gráficos y animación

Entrenamiento y Tutoriales de Android

Aprenda a crear una aplicación de Android siguiendo estos pros tutoriales junto con los profesionales. Cree aplicaciones de Android desde cero o incorpore aplicaciones de Java en su proceso de desarrollo de Android.

Android: cursos en línea, clases, capacitación, tutoriales sobre Lynda

O algunos artículos útiles:

Cómo creamos BubblePicker: una colorida animación de menú para Android

20 consejos: ¿Cómo diseñar una gran interfaz de usuario para aplicaciones móviles?

7 consejos para crear increíbles diseños de aplicaciones móviles

Hay varias formas de aprender el diseño de la interfaz de usuario para Android.

  • Puede comenzar leyendo las pautas de diseño de materiales y siguiendo los tutoriales para aprender conceptos básicos.
  • Puede bifurcar una biblioteca de Github y comenzar a experimentar con las características.
  • Elija un diseño que desee desarrollar a partir de sus aplicaciones favoritas, y luego comience por crear diseños, componentes GUI, animaciones, etc. Y busque en Google y Stack Overflow cada vez que se atasque.

Seleccione el método más cercano a su enfoque y comience a desarrollar.

No he visto ningún libro o sitio web en particular que esté totalmente dedicado a la animación UI / UX o al aspecto del diseño del desarrollo de Android. Más bien los veo en pedazos. Por ejemplo, si desea aprender a aumentar o disminuir gradualmente una vista, Google y Stackoverflow están a su disposición.

Otro consejo que tengo para ti es comenzar con lo poco que sabes y cuanto más avances en el desarrollo de Android, comenzarás a ver que tu IU se ve fea o que las animaciones se ven fuera de lugar, demasiado lineales, etc.

CurrencyKonvert – Aplicaciones de Android en Google Play

Esta es mi primera aplicación que acabo de publicar. Aprendí el desarrollo de aplicaciones por mí mismo usando videos de YouTube y videos de desarrollo de Google de Udacity.

Hice algunos cursos de Udacity y realmente me gustaron. Muchos son gratis. Es posible que desee consultar aquí y ver si ve algo interesante: todos los cursos y programas de nanogrado | Udacity