Android desde cero

Anímate a realizar con el Android Studio tu primera aplicaión móvil

Abre el eclipse y escribe el mas simple "Hola Mundo!"con Spring MVC

Sigue 8 simples pasos para obtener al proyecto mas simple de Spring MVC con Eclipse y Maven.

Como subr una app al Google Play

Te mostramos en tres post, como subir una app en Android al Google Play

martes, 18 de agosto de 2015

Como subir proyectos a GitHub con Android Studio

El proceso de utilizar y subir proyectos a GitHub con Android Studio se simplificó notablemente con las últimas versiones.

En forma resumida, para compartir un proyecto en GitHub tenemos que hacer lo siguiente


  1. Abrir el proyecto
  2. Elegir VCS –> Import into Version Control –> Share project on Github
  3. Ingresar nuestras credenciales en GitHub
  4. Asignar el nombre de proyecto que deseamos, y marcar si queremos que el proyecto sea público o privado




Paso a Paso

Tenemos que estar registrados previamente en GitHub.

https://github.com/

Dentro de GitHub compartiremos:

 https://github.com/PabloEzequiel/TestAndroid_v01

Primero abrimos el proyecto en Android Studio y seleccionar en el menu VCS > Import into Version Control > Share Project on GitHub



Muestra la ventana:


Los componentes a compartir


Y el proyecto ya está en GitHub
 https://github.com/PabloEzequiel/TestAndroid_v01




Observamos la fuerte simplificación en la integración de GitHub con Andorid Studio. En versiónes anteriores el proceso no era difícil pero si un poco mas complejo ....









viernes, 14 de agosto de 2015

Cómo crear una aplicación desde cero con Android Studio

Veamos cuales son los pasos para tener una aplicación movil desde cero con Android Studio.  

La instalación del Android Studio la realizaremos sobre iOS en una MAC.

Después de instalar el Android Studio, veremos como generar la aplicación "Hola Mundo" mas sencilla posible, siguiendo el wizard y ejecutándola sobre el Emulador de Android.

Descargamos Android Studio para MAC desde la página https://developer.android.com/sdk/index.html El instalador de Android Studio no está dentro del App Store.

 

Agregamos Android Studio a Aplicaciones. 


Si intentamos abrir la aplicación, nos aparece una ventana con la advertencia “no puede abrirse porque proviene de un programador no identificado”


Para poder abrir el programa, ya que proviene de una fuente confiable para nosotros, podemos hacer clic derecho en el software. (Se puede hacer clic derecho en una Mac, presionando ctrl+clic simultáneamente) y luebo selecciona abrir desde el menú.

Comienza el wizard:


Elegiremos la opción de instalación Custom


Y el tema "Dracula" para que el IDE aparezca con una paleta de colores oscuros


En las siguientes pantallas avanzaremos dejando las opciones sin modificarlas


Parametría del Emulador: Next


Next:


Next:


Next: debemos autorizar con nuestro usuario los cambios que el software necesita modificar en el sistema


Y Finish:


En la pantalla de bienvenida, seleccionamos la primera opción:
Start a new Android Studio project


Y le asignamos un nombre a nuestra aplicación


Elejimos sobre cuales dispositivos nuestra aplicación se ejecutará


Y elejimos una plantilla para comenzar


La adaptamos


y presionamos Finish para que Android Studio comience a construirla


Una vez que se abre Android Studio, y cerramos la ventana con el Tip del día


Vemos la Aplicación con sus fuentes y diseño


Le damos Play para observar como se ejecuta en el Emulador de Android


Primero pregunta ¿Enviar estadísticas a Google sobre el uso?


Finalmente tenemos nuestra aplicación ejecutándose en el Emulador del Dispositivo Nexus


De esta manera tenemos la aplicación mas sencilla sobre Android Studio y podemos avanzar en el conocimiento de la plataforma.


sábado, 4 de julio de 2015

¿Como es un proyecto simple de SpringMVC en Eclipse con Maven y Tomcat?

Veamos como podemos armar el proyecto mas simple posible de Spring MVC utilizando Eclipse, Maven y Tomcat.


Versiones:

  • Eclipse (Eclipse Luna 4.4.1)
  • Maven (Apache Maven 3.3.3)
  • Tomcat (Apache Tomcat 7.0.62)
  • Java (jdk1.8.0_20)
  • Spring MVC (4.1.1.RELEASE)


Paso 01: Creamos un Dynamic Web Project


En Eclipse Luna creamos un nuevo proyecto web de la siguiente manera:



 
Utilizamos para el proyecto el nombre enSpringMVC_v001 y presionamos el botón “Finish”



Paso 02: Convertimos al Proyecto Web un Proyecto Maven


En eclipse esto se logra con un click derecho sobre el proyecto y eligiendo: Project > Configure > Convert to Maven Project





Nos muestra la siguiente pantalla, que está Ok, con lo cual no modificamos ningún valor:





Luego, una vez creado el pom.xml le vamos a agregar dependencias:




Podremos agregar dependencias en el pom.xml presionando el botón “Add... “





Las dependencias que buscaremos incorporar son las siguientes:


  • Spring Framework: versión 4.1.1.RELEASE
  • Servlet JSTL: versión 1.2
  • Log con Logback: versión 1.0.13








En el pom.xml sería como sigue, Igual dejaremos que el eclipse sea quien edite el pom.xml


Para Spring Framework: versión 4.1.1.RELEASE


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.1.RELEASE</version>
        </dependency>


Para Servlet JSTL: versión 1.2

1
2
3
4
5
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency> 

Para Log con Logback: versión 1.0.13

1
2
3
4
5
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.0.13</version>
        </dependency>

Comenzamos agregando las dependencias con el Eclipse:

Primero Spring Framework: versión 4.1.1.RELEASE




Y seguimos agregando las dependencias anteriormente mencionadas hasta que llegamos a la última:


Dependencia Log con Logback: versión 1.0.13





El pom.xml que nos genera el eclipse queda de la siguiente manera:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>enSpringMVC_v01</groupId>
 <artifactId>enSpringMVC_v01</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>war</packaging>
 <build>
  <sourceDirectory>src</sourceDirectory>
  <plugins>
   <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.4</version>
    <configuration>
     <warSourceDirectory>WebContent</warSourceDirectory>
     <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
   </plugin>
   <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
     <source>1.8</source>
     <target>1.8</target>
    </configuration>
   </plugin>
  </plugins>
 </build>
 <dependencies>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>4.1.1.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aop</artifactId>
   <version>4.1.1.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>4.1.1.RELEASE</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-web</artifactId>
   <version>4.1.1.RELEASE</version>
  </dependency>

   <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
   <version>1.2</version>
  </dependency>

   <dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version>1.0.13</version>
  </dependency>
 </dependencies>
</project>

Paso 03: Agregamos el archivo XML de beans de Spring 


Creamos el archivo XML para definir los beans de spring. Por convención (convention over configuration) tenemos que nombrarlo  javaen-servlet.xml para que spring lo encuentre dentro del WEB-INF:


LA convención se debe a que en el web.xml utilizamos el nombre del servlet de spring javaen
<servlet-name>javaen</servlet-name>


Desde el eclipse > New XML File




Lo creamos vacío presionando Finish y hacemos copy&paste de este sencillo xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
 
 <context:component-scan base-package="com.javaen.controller" />
 
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  <property name="viewClass"
   value="org.springframework.web.servlet.view.JstlView" />
  <property name="prefix" value="/WEB-INF/jsp/" />
  <property name="suffix" value=".jsp" />
 </bean>
</beans>


Como se puede observar, ya estamos definiendo dónde vamos a dejar los Controller de Spring, o sea dentro del paquete com.javaen.controller


Y también donde vamos a dejar las “vistas”, o sea las páginas JSP que alojaremos dentro del directorio /WEB-INF/jsp/







Paso 04: Agregamos el web.xml al proyecto web


A continuación, generamos el web.xml si no está en nuestro proyecto. En nuestro caso, no está con lo cual lo tuvimos que agregarlo:


Hacemos click con el botón derecho del mouse sobre nuestro Proyecto y elegimos:


Java EE Tools > Generate Deployment Descriptor Stub





Editamos al web.xml para agregar al DispatchServlet de Spring

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<web-app 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
  version="3.0">
  <display-name>enSpringMVC_v01</display-name>

     <servlet>
        <servlet-name>javaen</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>javaen</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
      
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>






Paso 05: Creamos nuestro primer Controller de Spring






Y después de presionar el botón Finish obtenemos nuestra clase Java sobre la cual copiaremos el siguiente código que define el controller de Spring con sus anotaciones:


HelloController.java


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.javaen.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

 /**
 * @author [Pablo Ezequiel]
 *
 */
@Controller
public class HelloController {
 
 @RequestMapping("/helloController")
 public ModelAndView helloController() {
 
  String message = "<br>"
          +"<div style='text-align:center;'>"
    +"<h2>Hola Mundo Spring MVC!</h2>"
    +"Mensaje del Controller de Spring"
    +"</div><br><br>";
  
  return new ModelAndView("respuesta", "message", message);
 }
}


Compartimos a continuación la imagen de la clase HelloController en el eclipse





A continuación crearemos las páginas JSP

Paso 06: Creamos las vistas en páginas JSP



Vamos a crear a dos páginas JSP:


  • index.jsp Una para dar la bienvenida
  • respuesta.jsp para ser accedida a través del controller de Spring MVC


Contenido de la página index.jsp de bienvenida:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hola Spring MVC</title>
</head>
<body>

 <br>Primera aplicación con Spring MVC
<br> 
<a href="helloController.htm">Click para un nuevo mensaje de bienvenida</a>
</body>
</html>




Creación de la página respuesta.jsp en el directorio WEB-INF/jsp para alojar las vistas:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hola Spring MVC</title>
</head>
<body>

 Hola! Soy la respuesta con el Mensaje desde el controller:
<br>
${message} 

 </body>
</html>

Veamos las pantallas en el Eclipse:




Paso 07: Revisamos la estructura del proyecto

La estructura del proyecto debería verse de la siguiente manera:

Resaltamos con el marcado amarillo a los componentes mas importantes:





Paso 08: Agregamos el proyecto web al Tomcat


Con el botón derecho sobre el servidor Tomcat nos aparece el diálogo que nos permite agregar a nuestra aplicación web al Tomcat con “Add and Remove …”



A continuación podemos iniciar el servidor web Tomcat habilitando a nuestro proyecto enSpringMVC_v001 a brindar servicio:





Con el Tomcat levantado, accedemos a la URL donde nuestro proyecto enSpringMVC_v001 está escuchando:







Y ahora:





Referencias:

El artículo estuvo basado en el tutorial http://crunfy.me/1FI1eHD  del blog de java http://crunchify.com/  


Descargar el código de GitHub:

Pueden descargar el código de este ejemplo en el repositorio de GitHub del Blog


Un poco de Feedback...

¿Pudieron seguir todos los pasos?
¿De que manera les gustaría ampliar el contenido de este artículo?