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

sábado, 3 de octubre de 2015

¿Como conectar un Moto G al Android Studio sobre OSX?

Cuando desarrollamos con el Android Studio, generalmente nos acostumbramos a utilizar el Emulador.

Pero cuando necesitamos hacer alguna prueba sobre un dispositivo real, como un Moto G ¿Cuales son los pasos para conectar el Moto G al Android Studio?

Comencemos

Paso 01: Instalar Drivers de Motorola para OSX

El primer paso que deberíamos hacer es descargar el software controlador del dispositivo, de la página oficial de Motorola:


En nuestro caso, realizaremos la instalación sobre un OSX versión 10.11.5, pero la página tiene hasta la versión 10.10 la cual instalaremos


Paso 02: Habiltiar Modo Desarrollador en Moto G

El segundo paso es habilitar el Modo de Desarrollador en el motorola.

Hay un video en YouTuve que  explica muy claramente este paso:




Igualmente, compartimos las pantallas para habilitar el modo de Desarrollador

   

Luego, para permitir que desde el Android Studio aparezca el dispositivo, tiene que estar habilitada la depuración USB y la instalación desde fuentes desconocidas:

   


Obviamente, la recomendación es revertir la opción de "fuentes desconocidas" si no es un dispositivo de uso exclusivo de testing.

Luego desde el Android Studio, podemos ejecutar la aplicación en el dispositivo Moto G:

Y desde el dispositivo, pide una confirmación mas sobre permitir la instalación desde la computadora donde está ejecutando el Android Studio, que luego de aceptar vemos la pantalla de la aplicación VRViewApp que estamos utilizando como ejemplo en este post:

   


De esta manera, logramos ver como se realiza la conección entre un  Moto G al Android Studio sobre OSX para probar el desarrollo de aplicaciones con Android



    jueves, 1 de octubre de 2015

    Android y SQLite3 ¿Como acceder y abrir las base de datos?

    Android y SQLite3 

    ¿Como acceder y abrir las base de datos SQLite3 que usamos en nuestras app?

    FAQ #01: ¿Como Accedemos a la Base de Datos SQLite del dispositivo?

    Vamos al ADM:
    Y dentro del ADB, encontramos la base de datos usualmente en:
    //data/data/com.mi_Dominio.app/databases
    Usando el icono, "Pull a file from device" podemos descargar la base de datos al escritorio:







    FAQ #02: ¿Como abrimos la Base de Datos SQLite del dispositivo?

    Una vez que exportamos la base de datos, y la tenemos en el escritorio, podemos abrirla con los comando de SQL lite, o más cómodo con una Interfaz gráfica, por ejemplo SQLiteBrowser (http://sqlitebrowser.org/) que nos bajemos. 

    Desde la terminar también podemos acceder al SQLite3, en mi caso esta en:
    /Users/pabloin/Library/Android/sdk/platform-tools


    Luego, por linea de comandos podemos ejecutar, por ejemplo:
    .help
    .quit
    etc..
    Una guía completa:

    http://www.tutorialspoint.com/sqlite/sqlite_commands.htm

    Y en la terminal se ve:
    Desde la linea de comandos podemos ejecutar:
    Con el ./adb shell conectamos la shell del android del dispositivo, con la shell de la PC... y de esta manera podemos acceder más rápido a la base de datos (ya que no tenemos que exportar los datos cada vez que queremos actualizarlos)
    MacBook-Pro-de-Pablo:platform-tools pabloin$ pwd
    /Users/pabloin/Library/Android/sdk/platform-tools
    MacBook-Pro-de-Pablo:platform-tools pabloin$ ./adb shell
    root@generic_x86:/ # sqlite3 /data/data/com.probarnocuestanada.crossfitchess/d>
    
    Pero podemos ejecutar una herramienta visual SQLLite3:




    http://sqlitebrowser.org/


    Y una vez descargado, lo vemos en:


    Ok, esto fue como acceder, descargar y abrir las base de datos SQLite que utilizamos dentro de nuestras aplicaciones Android

    ... una nota de color:

    Me pareció interesante la página http://sqlitebrowser.org/ que dice que es hosteada por GitHub:

    This page was generated by GitHub Pages using the Architect theme byJason Long.



    Es una opción interesante cuando querramos difundir alguno de nuestro proyectos.


    Links 

    Muy buen post sobre este tema:


    domingo, 20 de septiembre de 2015

    Proyecto myApiRest en GitHub con Eclipse

    Vamos a subir un proyecto simple a GitHub con una API Rest muy básica, que tenga un interceptor y Spring MVC

    Utilizamos
    La versión inicial del myApiRest.war para los que quieran seguir el post, se encuentra en la siguiente dirección de dropbox:


    La evolución del myApiRest.war la realizaremos en GitHub

    Comencemos:

    Tomamos el war de myApiRest.war y lo importamos en el eclipse, como un nuevo proyecto maven:


    Además ejecutamos, run > maven install que nos trae las dependencias y complica el proyecto.






    Observemos el pom.xml que contiene el plugin de Tomcat, con lo cual, vamos a ejecutar el war y realizar algunas invocaciones:

    
      org.apache.tomcat.maven
      tomcat7-maven-plugin
      2.2
    
    
    

    Para probar el proyecto, agregamos una nueva configuración al eclipse, equivalente a:

    mvm tomcat7:run



    Lo cual nos permitirá consumir algunas URL del WAR, después de ejecutar el tomcat7:run que configuramos






    Podemos hacer lo mismo para utilizar Jetty en vez del Tomcat.

    
      org.eclipse.jetty
      jetty-maven-plugin
      9.3.7.v20160115
    
      
        10
        
          /myApiRest
        
        
          8080
        
      
    
    
    

    Ok, con jetty levantado, también podemos invocar  a las url anteriores.

    En esta primera versión, tenemos el ejemplo funcionando, con spring MVC, un interceptor, y además está swagger incorporado al proyecto.

    Probando el WAR

    Invocamos a uno de los controladores de spring

    http://localhost:8080/myApiRest/javaBookManager/

    Observamos en el log, que el controlador responde, además que el interceptor también lo captura.

    El error que muestra es recién en la respuesta, porque intentamos retornar una respuesta JSON y nos falta incluir a jackson al proyecto



    Las dependencias a agregar al pom.xml son las siguientes:
        
            com.fasterxml.jackson.core
            jackson-core
            2.2.3
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.2.3
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            2.2.3
        
    

    Y vemos el resultado, donde se recupera el JSON, a su vez, en el log podemos ver al interceptor trabajando:




    Clases Java - Controller y @ResponseBody

    Si bien el ejercicio completo está en GitHub en:


    Vamos a mencionar un par de componentes Java: Observemos el  @ResponseBody para convertir las respuestas a JSON

       
    
    package com.javaen.web;
    
    import java.util.Collection;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpStatus;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.ResponseStatus;
    
    import com.javaen.business.BookManagerService;
    import com.javaen.domain.JavaBook;
    
    
    /**
     * @author [Pablo Ezequiel]
     *
     * REST API Book Manager
     * 
     *  - getAll
     *  - {id}
     *  - update (string, book)
     *  - add() 
     * 
     *   http://localhost:8080/myApiRest/javaBookManager/
     *   http://localhost:8080/myApiRest/javaBookManager/001
     *
     *   http://localhost:8080/myApiRest/swagger-ui/index.html
     */
    
    @Controller
    @RequestMapping("/javaBookManager")
    public class BookManagerController {
     
     static final Logger LOG = LoggerFactory.getLogger(BookManagerController.class);
    
     @Autowired BookManagerService bookManagerService;
     
     @RequestMapping(value="/{id}",method=RequestMethod.GET)
     public  @ResponseBody JavaBook get(@PathVariable String id) {
      
      LOG.debug("BookManagerController::get("+id+")");
      
      JavaBook book = bookManagerService.get(id);
      
      LOG.debug("Book("+id+"): " + book);
      
      return book;
     }
     
    
     @RequestMapping(method=RequestMethod.GET)
     public  @ResponseBody  Collection select() {
      LOG.debug("BookManagerController::getAll()");
      
      Collection books =  bookManagerService.getAll();
      
      LOG.debug("BookManagerController select(): " + books);
      
      return books;
     }
    
     @RequestMapping(value="/{id}",method=RequestMethod.PUT)
     @ResponseStatus(HttpStatus.NO_CONTENT)
     public void update(@PathVariable String id, @RequestBody JavaBook book) {
      
      LOG.debug("BookManagerController::update("+id+","+book+")");
      
      book.setId(id);
      bookManagerService.update(id, book);
     }
    
     
     @RequestMapping(method=RequestMethod.POST)
     @ResponseStatus(HttpStatus.CREATED)
     public void add(@RequestBody JavaBook book, HttpServletResponse response) {
      
      LOG.debug("BookManagerController::add("+book+")");
      
      bookManagerService.add(book);
     } 
     
    }
    
    


    Con esto damos finalizado el ejercicio de un proyecto con Spring MVC para una hacer una API REST

    Se deja el siguiente TAG en GitHub para el que le interese recuperar el estado de esta versión:

    https://github.com/PabloEzequiel/Java/releases/tag/v1.0.1


    En un próximo post, el objetivo será que swagger levante la info de la API Rest para documentarla.


    Un poco de Feedback


    • ¿Pudieron hacer funcionar el ejemplo?



    miércoles, 16 de septiembre de 2015

    GitHub con GitHub Desktop

    GitHub Desktop es una aplicación oficial de GitHub. La podemos descargar de https://desktop.github.com/

    ¿Cuál es la motivación para utilizar el Cliente Desktop de GitHub cuando el Android Studio y otros IDE tienen incluido su integración con GitHub?

    Seguramente esto que voy a comentar se solucione de una forma muy sencilla, la cual aún no conozco, y es lo que me llevó a instalar y utilizar la versión de GitHub Desktop. En mi repositorio de GitHub me gustaría subir varios proyectos de distintas tecnologías que estoy explorando... Android, Java, iOS, etc. Y me gustaría que los distintos ejercicios no estén en la raíz de GitHub sino dentro de sus carpetas "Android", "Java", "iOS"... etc. Lamento si suena obvio para muchos, pero no encontré la forma desde distintos IDE´s "pegarle" adentro del árbol que arma git, en vez de solamente la raiz... Estoy seguro que la solución es muy obvia, pero aún no la encontré, asi que por esta razón recurro a la versión Desktop de GitHub, que seguramente también tendrá muchos otros beneficios que gracias a este problema, vamos a poder aprender.

    Sigamos:

    Veamos como la configuramos con nuestra cuenta de GitHub:

    Después de descargar la aplicación:
     Cargamos los datos de la cuenta:



     Y en este caso, como no elegimos ninguno de nuestros repositorios locales aparece vacío:
    Ahora, creamos con GitHub Desktop un nuevo repositorio para poner a los proyectos de Android que queremos compartir en GitHub:


    Inicialmente esa carpeta está vacía, por lo cual, desde el Android Studio crearemos un nuevo proyecto que esté alojado en esa carpeta:






    Luego, creamos un nuevo proyecto de Android con todo "Default" excepto que elegimos en "Proyject Location" el nuevo repositorio que creamos para compartir con GitHub: 

    Observamos que ese directorio no está vacío:



    Y, lo mejor, y lo que estábamos esperando lograr, que el GitHub 


    Y a continuación procedemos a realizar el commit, o el publish:





    Y de esta manera nos queda claro que podemos seguir sumando proyectos dentro de "Android" y que no quedarán en la Raiz

    El repositorio de GitHub es:

    https://github.com/PabloEzequiel/Android

    Hasta la próxima



    jueves, 3 de septiembre de 2015

    Como importar un proyecto de GitHub al Eclipse

    Importar los proyectos de GitHub al Eclipse resulta muy sencillo, y existen muchas alternativas.

    Una de las mas comunes es hacer un download zip del repositorio. Para luego importarlo en el eclipse.

    Otra opción cómoda cuando hablamos de proyectos Java es utilizar el Eclipse, sobre todo si ya disponemos del plugin del Eclipse eGit. 

    El plugin de Eclipse eGit se puede descargar desde la página oficial, o bien agregar al eclipse a través de Help > Eclipse Marketplatce. Aunque lo más probable es que la distribución de eclipse que estén utilizando ya venga con un plugin de Git incorporado.



    Descargando de GitHub un Proyecto Java con Eclipse

    Utilizaremos como ejemplo el repositorio:



    Luego desde el Eclipse: File > Import > Git  > Project From Git


    Presionamos Next y luego Clone URL:








    Pegamos la URL

    https://github.com/PabloEzequiel/Javaen.blogspot.com.git


    y luego master:


    y elegimos el directorio donde se bajar el proyecto, que en nuestro caso es:

    C:\javaen\desa\Javaen01


    Presionamos Next:


    Presionamos Next:


    Y finalmente tenemos nuestro proyecto Java



    Como pudimos ver, en GitHub es muy sencilla tanto la subida de proyectos como bajar nuestros los proyectos que nos interesa









    GitHub



    Un Poco de Feedback

    • ¿Pudieron seguir los paso?
    • ¿Que proyectos están compartiendo en GitHub?

    Url Abreviada

    • Si te resulto interesante, puedes compartirlo




    martes, 1 de septiembre de 2015

    Como subir un proyecto a GitHub con Eclipse

    El proceso para subir un proyecto Java con el eclipse a GitHub es sencillo, y nos permitirá además de compartir nuestro código, tenerlo disponible en la nube para posteriormente poder descargarlo a cualquier lugar.

    En este sencillo tutorial, utilizamos

    • Eclipse Mars
    • Plugin de Eclipse eGit
    • Nuestra cuenta de GitHub

    El plugin de Eclipse eGit se puede descargar desde la página oficial, o bien agregar al eclipse a través de Help > Eclipse Marketplatce. Aunque lo más probable es que la distribución de eclipse que estén utilizando ya venga con un plugin de Git incorporado.


    Necesitamos también una cuenta en GitHub a continuación compartimos la de Javaen.blogspot.com donde hemos creado un nuevo repositorio para le ejemplo:



    Comencemos creando con el Eclipse un proyecto Java Nuevo...







    ... con la típica clase de "Hola Mundo": 



    Y lo conectamos primero a un repositorio local de Git, a diferencia de la conexión a GitHub que es un repositorio remoto.

    El plugin del eclipse se encargará de crear este repositorio local de Git

    Elegimos Team > Share Project dentro del eclipse:



    Y hacemos Team > Commit



    Agregando una descripción por el cambio:



    Luego, hacemos el push para subir los cambios al directorio remoto de GitHub

    Elegimos: Team > Remote > Push



    Y en la URL indicamos el de nuestro repositorio de GitHub

    En nuestro caso es: https://github.com/PabloEzequiel/Javaen.blogspot.com.git

    Y también debemos ingresar nuestro usuario y password de nuestra cuenta de GitHub

    El plugin luego se encarga de completar el resto de los campos.


    Observemos las selecciones a continuación:


    Y presionando Finish, el proyecto se sube a GitHub


    Esta acción la podemos verificar en la siguiente imagen donde están los fuentes publicados:




     Estos son todos los pasos, y en el próximo post veremos el camino inverso: como bajar un proyecto de GitHub el cual es mucho mas sencillo.





    Links Externos

    Quizás te interese saber como puedes subir un proyecto a GitHub con el potente editor Sublime Text 3 y el plugin SublimeGit:

    GitHub

    Un Poco de Feedback


    • ¿Pudieron completar el ejercicio?
    • ¿Tuvieron alguna dificultad?
    • ¿Ya están utilizando GitHub?
    • ¿Que otros IDE además del Eclipse utilizan?

    Url Abreviada


    Si te gustó o te pareció útil, puedes compartirlo en tus redes sociales