martes, 12 de mayo de 2015

Boceto de la aplicación


Las imágenes mostradas a continuación son el boceto de la aplicación que se creara en Android Studio.

Esta es una aplicación de mensajería instantánea similar a lo que es Messenger y Whatsapp, solo que esta tiene unos ligeros cambios como lo es el que puedes hablar con las personas a tu alrededor que tengan la misma aplicación y estén conectados ya sea a la misma red Wifi o a Internet utilizando datos móviles

El propósito de esta aplicación es poder juntar más a las personas

Primera interfaz



En esta interfaz se muestra lo que aparecerá al iniciar la aplicación, en esta parte solo hay que poner un nickname o el nombre personal, este puede ser un nombre inventado, apodo o el mismo nombre que te pusieron tus padres



Segunda interfaz


Ya en esta interfaz después de haber entrado te pedirá que busques a tu alrededor si es que hay otra persona con la misma aplicación que tu

Tercera interfaz


En esta te aparecerán las personas, que tienes más cerca

Cuarta interfaz



En esta interfaz aparecerá un mensaje diciendo "Escribe mensaje" para enviarle un mensaje a la persona seleccionada, esta interfaz aparecerá cuando se haya seleccionado una persona con quien hablar

Quinta interfaz


En esta ultima interfaz (hasta el momento) se muestra como se vería una conversación utilizando este método de mensajería


Derechos de autor: Equipo YEMLAJ - CECyTEM Plantel Tepotzotlán



domingo, 10 de mayo de 2015

Palabras Reservadas


Escribiendo en Java y en cualquier otro lenguaje hay que tener en cuenta que algunas palabras clave están reservadas y no las podemos usar como identificadores para declarar variables, clases, métodos, etc, estas son las más importantes a la hora de realizar un programa ya que son las que forman el esqueleto del mismo, en algunas ocaciones se pueden utilizar las mismas palabras dentro del programa ya que no afectan al compilar y correr el programa, tal es el caso de HTML, en el cual hay una etiqueta con la cual se puede escribir dentro del cuerpo del programa cualquier otro lenguaje o hasta el mismo html sin que haya errores, en otros casos como lo es java si escribes algún código sin darle utilización aparecerán errores al compilarlo.
Ejemplos se pueden dar muchos con los distintos lenguajes de programación pero este blog no es para explicar ello, así que sin más a continuación se darán algunas de las palabras reservadas que se utilizan en el lenguaje java, en este caso para programar en android
  1. ·         abstract
  2. ·         continue
  3. ·         for
  4. ·         new
  5. ·         switch
  6. ·         assert
  7. ·         default
  8. ·         goto
  9. ·         package
  10. ·         synchronized
  11. ·         boolean
  12. ·         do
  13. ·         if
  14. ·         private
  15. ·         this
  16. ·         break
  17. ·         double
  18. ·         implements
  19. ·         protected
  20. ·         throw
  21. ·         byte
  22. ·         else
  23. ·         import
  24. ·         public
  25. ·         throws
  26. ·         case
  27. ·         enum
  28. ·         instanceof
  29. ·         return
  30. ·         transient
  31. ·         catch
  32. ·         extends
  33. ·         int
  34. ·         short
  35. ·         try
  36. ·         char
  37. ·         final
  38. ·         interface
  39. ·         static
  40. ·         void
  41. ·         class
  42. ·         finally
  43. ·         long
  44. ·         strictfp
  45. ·         volatile
  46. ·         const
  47. ·         float
  48. ·         native
  49. ·         super
  50. ·         while
     Las palabras mostradas anteriormente solo son utilizadas para cuando se tiene que crear clases en java para hacer funcionar el programa, que es casi siempre, pero aun falta, para crear una aplicación de android en cualquier programa se necesita tener conocimiento de dos lenguajes, uno es Java del cual ya se dieron las palabras reservadas, el otro es XML si ese lenguaje similar a HTML, a continuación se mostraran igual que anteriormente solo algunas de las tantas palabras reservadas que se utilizan para el código XML:
              Nota: todas aquellas que esten dentro de </> son objetos y las que esten dentro son propiedades
  1.     <Button/>
  2.     <Textview/>
  3.     <LinearLayout/>
  4.     android:
  5.     id=""
  6.     layout_width=""
  7.     layout_height=""
  8.     keepScreenOn=""
  9.     textColor=""
  10.     textStyle=""
  11.     textSize=""
  12.     gravity=""
  13.     text=""
  14.     background=""
  15.     orientation=""
  16.     ignore=""
  17.     tool:
  18.     clickable=""
  19.     onClick=""
  20.     autoLink=""
  21.     longClickable=""
  22.     attr/textAppearanceSmall"

Estructura de una aplicación en android



Toda aplicación que crees para android sigue una misma estructura básica, que se compone del código fuente en sí, archivos de recursos y vistas, librerías de código y el android manifest.

Directorio SRC
Se encuentra toda la lógica de aplicación, todas las clases programadas en JAVA. Dentro de ella puedes definir distintos paquetes, donde puedes dividir en capas tus reglas de negocio.
Android Library
Aquí se encuentran todas las librerías propias del SDK de android, dependiendo la versión elegida al crear el proyecto tendrá una versión u otra.
Directorios RES
Se encuentran todos los archivos con los recursos que usan la aplicación. Las imágenes, archivos de idiomas, estilos, etc.. Un pequeños listado de estos puede ser:

  • Drawable => Carpeta con todas las imágenes de la app. Se subdivide en múltiples carpetas desde la versión 1.6, que contienen las imágenes en distintas resoluciones y tamaños que se usarán dependiendo el dispositivo usado.
  • Directorio layout => Aquí se encuentran las distintas “pantallas” de la aplicación, es decir, los archivos xml con las interfaces visual asociadas a las activities.
  • Values => Carpeta con los xml de contenido de la app. En ella puede haber definidas las constantes de la aplicación, dando la posibilidad del multidioma. También puedes definir estilos para tus componentes. Y todo tipo de configuraciones.

Directorio bin
Aquí se encuentran todos los archivos generados por la propia app. Como sabeis, android usa la máquina virtual dalvik, primero se traduce a los típicos archivos .class de java y posteriormente es traducido a los archivo .dex propios de android.

También esta el ejecutable de la aplicación "apk", sería el equivalente a los "exe" de windows. Es el archivo que deberías instalar en cualquier teléfono android para probar la aplicación.

Directorio gen
En esta carpeta esta el archivo R.class, éste contiene lo identificadores los recursos usados por tu proyecto: imágenes, layout, etc...

Si abrís el archivo R.java, veréis los valores internos que se da a cada uno de los identificadores de tu aplicación.


Directorio assests
Carpeta donde se encuentran los archivos auxiliares de tu aplicación: imágenes, audios, vídeos... la diferencia con los que se encuentran con la carpeta "RES", es que los archivos incluidos aquí no generarán un identificador dentro del archivo R.class anteriormente descrito.
Para usar estos archivos, en vez de referenciarlos por un ID, habría que usar la ruta física como cualquier otro archivo

Directorio lib
Aquí irán las librerías externas importados que necesites. Por ejemplo, si deseas meter publicidad en tu app, aquí ira la librería necesaria para ello.







¿Que son los layouts, vistas, estilos y temas?



LAYOUT
Layout es un término de la lengua inglesa que no forma parte del diccionario de la Real Academia Española (RAE). El concepto puede traducirse como “disposición” o “plan” y tiene un uso extendido en el ámbito de la tecnología.

La noción de layout suele utilizarse para nombrar al esquema de distribución de los elementos dentro un diseño. Es habitual que un diseñador que se dedica a la creación de páginas web desarrolle un layout y se lo presente a su cliente para que éste lo apruebe y decida sobre la distribución de los contenidos.

El layout, en este sentido, puede ser una especie de plantilla que presenta tablas o espacios en blanco. La idea es que, a partir del layout, la página web comience a desarrollarse con sus contenidos específicos. El layout puede estar compuesto, por ejemplo, por un rectángulo a modo de cabezal y por tres columnas. Dicho esquema es genérico y puede usarse para desarrollar múltiples sitios web.

Por ejemplo: en el cabezal puede incluirse el encabezado de la página (como el nombre de una empresa o de una publicación); en la columna de la izquierda, las secciones del sitio (Quiénes somos, Qué hacemos, etc.); en la columna del medio se pueden desarrollar de los contenidos; la columna de la derecha puede destinarse a los anuncios publicitarios.
VISTAS
Todos los elementos que aparecen en la pantalla de una aplicación de Android son vistas. Desde los elementos sueltos como textos o botones, a los contenedores como los grupos de vistas.                            

              
Grupos de vistas
  • LinearLayout
    • Agrupa los elementos en una sola línea, que puede ser vertical u horizontal.
  • RelativeLayout
    • Los elementos se disponen en relación entre ellos y los márgenes. Es la más flexible, y la más utilizada.
  • ScrollView
    • Se utiliza para vistas que no caben en pantalla. Sólo puede contener una vista o grupo de vistas, y añade automáticamente las barras de desplazamiento.
  • TableLayout
    • Agrupa los elementos en filas y columnas. Contiene elementos TableRow, que a su vez contienen los elementos de cada celda.
  • FrameLayout
    • Está pensada para contener una sola vista. Si se añaden más, todas se alinean en la esquina superior izquierda, solapándose.
  • AbsoluteLayout
    • Está desaprobado desde la versión 1.5 de Android. En este contenedor, los elementos se referencian con coordenadas absolutas partiendo de la esquina superior izquierda. Se ha desaprobado porque no se adapta a pantallas de diferentes tamaños, que se popularizaron justamente a partir de Android 1.5.
Vistas
  • TextView
    • Muestra un texto fijo.
  • EditText
    • Contiene un texto editable.
  • Button
    • Botón simple.
  • ImageButton
    • Este botón permite mostrar una imagen en vez de un texto
  • ToggleButton
    • Botón que puede mantener su estado de pulsado hasta que se pulsa otra vez.
  • CheckBox
    • Botón similar a ToggleButton que funciona como una caja de verificación.

ESTILOS Y TEMAS


Los estilos
 Un estilo es una colección de propiedades que definen el formato y apariencia que tendrá una vista. Podemos especificar cosas como tamaño, márgenes, color, fuentes, etc. Un estilo se define en ficheros XML,  diferente al fichero XML Layout que lo utiliza.
Veamos un ejemplo. El siguiente código:

1.      <TextView
2.          android:layout_width="match_parent"
3.          android:layout_height="wrap_content"
4.          android:textColor="#00FF00"
5.          android:typeface="monospace"
6.          android:text="Un texto" />


Es equivalente a escribir:
1.      <TextView
2.          style="@style/MiEstilo"
3.          android:text="Un texto" />

Habiendo creado en el fichero res/values/styles.xml con el siguiente código:
1.      <?xml version="1.0" encoding="utf-8"?>
2.      <resources>
3.         <style name="MiEstilo"
4.           parent="@android:style/TextAppearance.Medium">
5.             <item name="android:layout_width">match_parent</item>
6.             <item name="android:layout_height">wrap_content</item>
7.             <item name="android:textColor">#00FF00</item>
8.             <item name="android:typeface">monospace</item>
9.         </style>
10.  </resources>


Observa como un estilo puede heredar todas las propiedades de un padre (parámetro parent) y a partir de estas propiedades realizar modificaciones.
Heredar de un estilo propio
Si vas a heredar de un estilo definido por ti no es necesario utilizar el atributo parent. Por el contrario, puedes utilizar el mismo nombre de un estilo ya creado y completar el nombre con un punto más un sufijo.Por ejemplo:

1.      <style name="MiEstilo.grande">
2.           <item name="android:textSize">18pt</item>
3.      </style>

Crearía un nuevo estilo que sería igual a MiEstilo más la nueva propiedad indicada. A su vez puedes definir otro estilo a partir de este:
1.      <style name="MiEstilo.grande.negrita">
2.           <item name="android:textStyle">bold</item>
3.      </style>

 Los temas

Un tema es un estilo aplicado a toda una actividad o aplicación, en lugar de a una vista individual. Cada elemento del estilo solo se aplicará a aquellos elementos donde sea posible. Por ejemplo, CodeFont solo afectará al texto.
Para aplicar un tema a toda una aplicación edita el fichero AndroidManifest.xml y añade el parámetro android:theme en la etiqueta <application>:


<application android:theme="@style/MiTema"

También puedes aplicar un tema a una actividad en concreto:
<activity android:theme="@style/MiTema">



Además de crear tus propios temas vas a poder utilizar algunos disponibles en el sistema. Puedes encontrar una lista de todos los estilos y temas disponibles en Android en: 
http://developer.android.com/reference/android/R.style.html