miércoles, 28 de enero de 2015

Próximamente: un resumen de comunicación.

Buenos días. 

Este ultimo tiempo estuve trabajando en algo que me gustaría mostrarles y compartir.
Una forma para poder comunicar de forma sencilla, fácil y rápida de comunicar nuestro servidor, con su base de datos MySQL, y nuestro programa de escritorio en .NET

Para este proyecto la comunicación nunca va a ser directa con la base de datos, sino por medio de los métodos (Aquí escritos en PHP) en el servidor y nuestro programa escrito en VB.NET.

Crearemos una clase en .NET que nos facilite la conexión y transferiremos la información codificada en JSON.

Con pequeñas modificaciones, se puede hacer que trabaje con cualquier tipo de tecnología. Java (Lo cual hare en algun momento), C++, MSSQL. Básicamente lo que necesiten.

 Lo que voy a proponer es un resumen de métodos y clases para poder facilitar la comunicación en un sistema y preocuparse mas por la lógica del programa que la tecnología detrás de el.

Próximamente tendré listo el post para que cualquiera lo pueda usar a su conveniencia.



viernes, 24 de octubre de 2014

Aplicacion Android Auto Actualizable Sin Market

Hola de nuevo!!

Hoy traeremos la solucion para muchos que no pueden subir su aplicacion a Google Play (Ex Market) para que se actualice automáticamente con cada version, o para los que no quieran hacerlo por ser una version privada o por cualquier motivo sea.

Esto conciste en que la aplicacion automaticamente buscara una version mas reciente en el servidor, de haber una actualizacion la bajara e instalara, reemplazando la actual. Todo esto sin tener que depender de ningun market.

Para este proyecto voy a trabajar sobre el Android Studio de Google, sobre el lenguaje Java, Pero pueden usar cualquier IDE como Eclipse, sobre cualquier lenguaje siguiendo la logica.

Yo subire el archivo APK a un servidor propio por FTP, pero tambien se puede usar cualquier servicio de nuve que nos permita obtener el link publico (Dropbox recomiendo o Google Drive creo).

Comenzemos.

En el servidor vamos a subir dos archivos:
El APK de la aplicacion terminada y
un TXT que le llamaremos "version.txt":



en donde "versionCode" y "versionName" son los tags usados en el AndroidManifest.xml
y "downloadURL" es la direccion URL del APK (este link puede ser tambien uno de Dropbox u otro siempre que sea enlace directo). Recordemos que este archivo lo tendremos que cambiar manualmente con cada actualizacion (Para hacerlo automaticamente tambien hay una forma la cual voy a poner bajo de todo).


CODIGO!!!!

Primero y antes de que nos de error estableceremos los permisos que necesitamos en el AndroidManifest.xml


El primero para poder conectarnos a internet y el segundo para guardar el instalador en la memoria antes de ejecutarlo.

Ahora en nuestro proyecto android crearemos una clase Autoupdater.java
esta clase se encargara basicamente de todo. Tambien ejecutara las conecciones a internet a travez de AsyncTasck s para no conectarse en el hilo principal (Como ya sabran para evitar el NetworkOnMainThreatException).
En la clase que creamos (Autoupdater.java) ponemos este codigo.


Esa es la clase principal que va a hacer casi todo.

Ahora tenemos que insertarlo en la clase de UI (Interfaz de Usuario).
para eso recomiendo poner un ProgressBar en un RelativeLayout en alguna parte del layout donde vamos a ejecutar el Autoupdater.

Algo simple como esto (importante el id para reconocer):

Y tendremos que poner algo de codigo en la clase Principal, en este ejemplo hicimos que haga la actualizacion ni bien comienza la aplicacion.
Quedaria algo como esto:


Eso es lo que va en algun lado de tu pantalla donde se actualizara.
Tambien lo podemos hacer mediante un boton. Simplemente hay que llamar al metodo
comenzarActualizacion() desde donde quieras.
Algo asi querdaria con un boton:




Esto seria todo lo necesario para hacer que la aplicacion sea autoactualizable, si ven el codigo de la clase Autoupdate.java veran que esta todo comentado para que lo entiendan y modifiquen.

Ahora para cada actualizacion lo unico que tienen que hacer es subir el APK al servidor con un link publico (ya sea web propia, o servido de cloud) y modificar los TAGS en el archivo version.txt del servidor. Tambien recuerden de cambiar los TAGS en el AndroidManifest.xml en donde dice:


Pasandolo con cada aplicacion a algo de este estilo:



Recuerden que este metodo verifica la version instalada con la version en el servidor. Y si cambian una y no la otra, siempre pensara que hay una actualizacion disponible.

Aqui les dejo los archivos necesarios:



Y los agradecimientos a quienes me dieron esta idea y sobre los cual esta basada:

Androcode.es

Juro: StackOverflow


Esto es todo, Muchas gracias y espero que les sirva.

Cualquier cosa en los comentarios.



lunes, 28 de abril de 2014

Correr android en Android.

Hola de vuelta.

Hoy vamos a ver como hacer que nuestra aplicacion creada en Android Studio corra o se debugee en un Dispositivo Android tablet o telefono sin tener que buscar el APK o  hacer cosas raras... directamente con un boton. Sin pasar por una maquina virtual.

De vuelta. Yo trabajo con Android Studio, pero lo mismo funciona para cualquier otra IDE (Entorno de Desarrollo Integrado) con los SDK (Kit de Software de Desarrollo) de Android ya sea Net Beans, Eclipse, o el que les guste, solo tienen que buscar cada boton en algun lado.

Bueno empecemos.

Lo primero necesitamos un cable USB para el dispositivo. Recomiendo siempre los originales que vienen con ellos. Sobre todos los U2 de Samsung. Si no creo que cualquiera sirve.

Sin enchufarlo vamos a habilitar la opcion de debug en el telefono. Eso se encuentra en AJUSTES -> OPCIONES DE DESARROLLADOR (o Developer Options)-> DEPURACION POR USB (o USB Debuggin)





TIP:
En caso de que no encuentren las OPCIONES DE DESARROLLADOR en los ajustes es porque lo tienen oculta. Para mostrarlo tienen que ir a ACERCA DEL TELEFONO (o tablet) y precionar varias veces (6 o 7) en el NUMERO DE COMPILACION hasta que les diga AHORA ERES UN DESARROLLADOR.
Un pequeño toque de google

Ahora si, arrancamos el Android Studio y abrimos el proyecto si todavia no estaba abierto.
Conectamos el dispositivo por usb. Si los drivers no estan instalados esperamos a que se instalen.

Una vez instalados el programa deberia reconocerlo solo y te deberia quedar algo asi.

De abajo para arriba, en la pestaña de android de abajo te aparece ese menu, En donde el ComboBox de la derecha aparece el nombre de tu dispositivos y el SO que carga.

Mas arriba vemos los controles para correr la aplicacion. El primer boton (Play) es para correr la aplicacion en el dispositivo conectado, el segundo ( Bicho, Bug ) es para debugear la aplicacion, y el tercero ( Bicho con telefono) es para conectar el debugueador a la aplicacion si ya esta corriendo.

Cuando querramos correr la app en el telefono directamente apretamos play. y nos apareceria esta ventana:


Simplemente nos aseguramos de que sea nuestro dispositivo y le damos OK...

Con eso nada mas esperando como mucho un minuto deberiamos estar viendo la aplicacion correr en nuestro dispositivo.

Espero que les halla servido







martes, 28 de enero de 2014

Instalar drivers no firmados en Windows 8 u 8.1

Buenas tardes.

 Este problema me atormento la cabeza durante mucho tiempo. Aun después de hacerlo repetidas veces cada vez tengo que buscar donde es que estaba esa opción.

 Si es una opción y esta demaciado oculta. Como para que nadie lo haga.
Bueno para que querríamos hacer esto?
Para los que crean drivers Mod, para los que consiguen drivers Mod de hardware viejo o extraño.
En mi caso yo lo use para instalar los drivers de una tablet China sin marca, solo un Modelo raro:

Bueno en fin vallamos a ello.

Primero en el panel lateral vamos a CONFIGURACIÓN y después a CAMBIAR CONFIGURACIÓN DE PC

desde allí iremos en el panel lateral la opción ACTUALIZAR Y RECUPERAR luego en el mismo panel iremos a la opción de RECUPERACIÓN. Allí iremos a donde dice INICIO AVANZADO sobre el botón que dice REINICIAR AHORA. Con esto reiniciaremos la pc en un modo avanzado



Con eso reiniciaremos el sistema, y cuando arranque iniciara en el menú avanzado donde tenemos muchas configuraciones mas profesionales... Acá vemos como llegar a lo que nos interesa, los drivers:

Cuando reinicie veran un menu azul con tres opciones. Seleccionan SOLUCIONAR PROBLEMAS.


Aca vamos a la opcion OPCIONES AVANZADAS:

De ahi a CONFIGURACIONES DE INICIO:

Aca podremos ver las opciones que nos dejara elegir mas adelante. Alli podran ver la opcion de instalar Drivers no firmados.
Simplemente le damos REINICIAR.

Esto reiniciara el sistema una vez mas. Ahora aparecera una pantalla muy parecida a la anterior.
Cuidado con lo que aprietan. Simplemente tienen que apretar el numero que aparece al lado de la opcion DESHABILITAR EL USO OBLIGATORIO DE CONTROLADORES FIRMADOS.
en mi caso es la tecla 7

Una vez hecho eso el sistema se reiniciara de vuelta. Esta vez iniciando en el inicio comun.
Si todo salio bien ya deberias tener permiso para instalar estos drivers.
El permiso se pierde una vez reiniciado el sistema. Asi que cada vez que querramos instalar drivers tendremos que repetir el proceso

Para instalar el driver ahora la cosa es mas simple.
Vamos al panel derecho y abrimos las configuraciones. Alli deberia estar el PANEL DE CONTROL.
Una vez alli abrimos el ADMINISTRADOR DE DISPOSITIVOS.

En esta nueva ventana buscamos el dispositivo que queremos instalar. Por lo general tendran esta forma. o un nombre generico

Una vez que lo encuentres simplemente le das doble click buscas el boton de actualizar controlador.
Le indicas donde es que esta el controlador que bajaste.

Ahora no deberia dar problema.
___________________________________________________________

Problema aparte.
Los que tengan una tablet china sin marca y quieran hacerla degugear para probar sus aplicaciones necesitan el driver primero que todo... Despues les mostrare como hacer para debugear aplicaciones en android.

Aqui les dejo el driver generico para esas tablet. La gran mayoria se manejan bien con este driver.

 Driver Tablet China


Espero que halla servido.






lunes, 27 de enero de 2014

Correr Android

Como hacer para correr nuestra aplicacion de Android en Android, es decir, en un telefono con android conectado por usb directamente.

O en PC, es decir, en una Maquina virtual para que la puedas probar, para aquellos que no tengan un dispositivo android, o que quieran probar en dispositivos variados.

Proximamente....


jueves, 23 de enero de 2014

Crear aplicacion auto actualizable con Visual Studio

Hola de nuevo.

Hoy les voy a mostrar algo que me costo mucho hacer.

Yo tengo escrita una aplicación en VB.NET con Visual Studio 2012. Estoy muy seguro que funciona con cualquier aplicación de escritorio hecha con Visual Studio. La misma aplicación yo hago actualizaciones y revisiones constantemente y varias personas usan esta aplicación. Para no tener que andar instalando una nueva versión del programa cada vez que corrijo o agrego algo, utilice la opción de PUBLICACIÓN del Visual Studio. Ahora la aplicación busca e instala la ultima versión antes de abrirse. A su vez también puede abrirse Off-Line con la ultima versión bajada.

Bueno empecemos.

Los requisitos:
  1. Visual Studio 2012 (es la que uso yo pero seguro en otras es igual o parecido)
  2. La Aplicación lista para compilar.
  3. Servidor FTP (bueno yo lo voy a hacer con un servidor que pago, también se puede hacer con recursos de red, solo para la red local)
El servidor tiene que tener instalado las Exenciones de FrontPage. En caso de no tenerlas pedir a su proveedor del servidor que las instale, yo lo tuve que hacer.

______________________________________________________________________________

Primero lo primero. en el servidor creamos un usuario FTP para el Visual Studio. y le especificamos una carpeta para la instalación de la aplicación. También pueden usar el usuario root o el común y especificar después la ruta.

una vez creado el usuario me quedaría así
Usuario: usuarioInstalador
Pass: passUsuarioInstalador
path: /httpdocs/instaladorPrograma/

entonces cuando habrá el servidor con ftp me lleve directo a esa carpeta
ftp://servidor.com (iniciado con ese usuario) ->  /httpdocs/instaladorPrograma/
______________________________________________________________________________

Ahora yendo al VS vamos a configurar la opción de PUBLICAR.

- En el explorador de soluciones vamos a ir al panel de mi proyecto:

luego en la pestaña de la derecha donde dice PUBLICAR.


   Allí configuramos la 'Ubicación de la carpeta de publicación' con el link FTP que configuramos. (En el botón con putos suspensivos al lado podrán configurar el usuario y contraseña)
y la 'Dirección URL de la carpeta de instalación' que es donde se guardara la pagina donde después instalaremos el programa.

La versión de publicación es irrelevante y se actualiza cada vez que hagamos una publicación

Ahora lo interesante. Abrimos el botón que dice ACTUALIZACIONES y veremos esto:

   allí configuraremos el tema de las actualizaciones automáticas. Como mis actualizaciones muchas veces corrigen errores prefiero que se actualice siempre antes de iniciar la aplicación. y dan aceptar

Listo. Ya esta todo configurado
Lo único que queda por hacer es COMPILAR y PUBLICAR.

guardan todo y en la pestaña de COMPILAR (parte superior) y le dan PUBLICAR.
con eso el VS debe conectarse con el servidor y subir todo.
probablemente les pida de vuelta los datos del usuario FTP.
en este caso: US: usuarioInstalador PASS: passUsuarioInstalador

______________________________________________________________________________

La Instalación

Ahora para instalar esta aplicación deben ir a la pagina donde se publico mediante el protocolo HTTP

en este caso seria así: http://servidor.com/instaladorPrograma/publish.htm 
la pagina publish.htm se crea automáticamente. Eso también se puede configurar para que la cree con otro nombre si quieren.
Y la pagina debería ser algo así:



donde el nombre del publicador y la versión de publicación se puede configurar.

Para instalar simplemente hacen clic en el botón instalar.
se les baja un archivo SETUP.EXE
el mismo lo abren y les instala solo el programa.

Con esto hecho cada vez que abran la aplicación buscara actualizaciones.

Recuerden que el programa se actualizara cada vez que hagan una publicación nueva no con cada compilación (ya sea en DEBUG o RELASE).

Las configuraciones se deberían guardar todas.


Espero que les haya sido de utilidad.

lunes, 20 de enero de 2014

Android: ResourcesLoweCase y AndroidStudioUpdateCompativility

Buenas.
Yo programo en android, usando el nuevo Android Studio presentado en la Google I/O del 2013
actualmente la versión 0.4.2 (preview). Anda muy bien el programa y cada vez anda mejor. la verdad que lo recomiendo mucho para los que tengan ganas de programar para esta plataforma y tengan algo de conocimiento de Java.

Bueno en esta plataforma de trabajo he tenido varios problemas que a medida que me acuerde ire relatando.

Sobre todo la que me hizo dar mucha vuelta fue esta:
Execution failed for task ':ClaudeGarnie:mergeDebugResources'.
> C:\Users\Guille\Documents\Android\ClaudeGarnieProject\ClaudeGarnie\src\main\res\layout\Abc.xml: Error: Invalid file name: must contain only lowercase letters and digits ([a-z0-9_.])

En fin despues de un rato largo de dar vuelta ( creo que en la versión en la que me paso el problema no estaba tan explicito el problema). En fin una vez bien leído el problema descubrí que el nombre de los resources de android solo pueden estar en MINÚSCULAS o con números.

Ahí aprendí a leer bien los problemas.


Luego un problema reciente causado por la actualizacion de la plataforma a la version 0.4.2

A problem occurred evaluating project ':ClaudeGarnie'.
> Gradle version 1.6 is required. Current version is 1.9

Para esto habían varias variantes y varias soluciones.

Mi problema: Se actualizo Android Studio junto con el gradle y se ve que hubo un problema de compatibilidad con el que trabaja el proyecto actual.

Mi Solución: simplemente modificar el archivo build.gradle en la linea:
   classpath 'com.android.tools.build:gradle:0.5.+'
a : classpath 'com.android.tools.build:gradle:0.7.+'
y rehacer el proyecto ( ctrl + F9 )
Bueno esas fueron los primeros problemas