viernes, 28 de octubre de 2016

PiratasGames-2017

Apps-PiratasGames, Aplicación Android, Versión del Juego la Culebra, pero con Piratas.

El presente juego tiene la presente trayectoria, una vez buscando en internet un curso bueno, bonito y barato para aprender a programar bajo Android me encontré con que GOOGLE, está dictando y lo sigue haciendo al día de hoy 14 de Mayo del 2017, cursos gratis con la universidad complutense de Madrid, España, al final del curso el cual lo recomiendo al 100% google te entrega un Diploma una vez apruebes el curso junto a la Universidad, que más se puede pedir, lo recomiendo al 1000% excelente curso, aquí le dejo el enlace para los que quieran iniciar este tipo de curso. https://cursos.formacionactivate.es/apps-moviles/curso , luego de este curso mi meta era desarrollar una aplicación android de entretenimiento, y buscando y buscando me encontré con https://videotutoriales.com y realicé un curso gratis en línea de como hacer un juego de piratas, y bueno me puse manos a las obras.

Al final del curso modifique todas las interfaces, todas las clases y los temas internos, es decir modifique todo al 100% y el resultado fue que pude crear mi propio framework para juego el cual les presento, https://github.com/tarsicio/Framework-Juegos-Android, dicho framework es libre GNU, en el está el código fuente del mismo y el archivo classes.jar el cual es el nucleo del juego.

Una vez terminado el Framework culminé la parte del juego el cual le presento, espero les guste. 

El juego completo y 100% Operativo  lo pueden DESCARGAR desde la siguiente dirección URL https://github.com/tarsicio/PiratasGames/releases 
Apps-PiratasGames-Android-2017 Aplicación de Juego PiratasGame-2017 para plataforma Android.
El presente juego, está basado en el juego de la culebra, pero con Barcos, Piratas, Tesoros y por supuesto en el Mar, si tocas la flecha verde del lado derecho del juego el barco girará en sentido de las agujas del reloj y si tocas la flecha verde del lado izquierdo del juego el barco girará en sentido contrario de las agujas del reloj.

El barco puede salir por un lado de la pantalla del teléfono y entrará por el lado contrario, es decir puede entrar por cualquier lado del teléfono y el mismo saldrá por el lado opuesto, cada vez que el barco recoja el botín, se suma  un pirata al barco y este va un poco más rápido, al ir tomando más tesoros sigue aumentando su velocidad y se va sumando el total de tesoro recolectado, el puntaje más alto se guarda en el teléfono, si el barco toca a un pirata de la cola el juego culmina y debe iniciar de nuevo, guardando el puntaje más alto.

Las imágenes fueron tomadas de Internet, imágenes GNU, todo esto por lo del tema de propiedad intelectual, se trató de buscar imágenes que fueran agradables a la vista humana y fácil de usar y comprender, si necesita pausar el juego lo puedes hacer en cualquier momento en el botón superior Izquierdo, el juego presenta dos tipos de pantallas, los tesoros aparecen en cualquier parte de la pantalla de forma aleatoria.

Cada vez que el banco toma un tesoro, este va sumando el puntaje en la parte inferior media del juego, el presente juego lo puedes utilizar desde la versión Android 2.3


La intención del presente juego es buscar el entretenimiento continuo y que todos los puedan disfrutar, espero cumplir con esta expectativa, sabemos que hoy en día los usuarios son muy exigentes en esta materia, pero este es mi primer juego hecho en Android, espero haberlo hecho bien, para ustedes.


Espero que se diviertan un rato, este Juego, nos permite crear nuestro propio Framework de juego base, con el cual pretendemos realizar nuestro segundo juego el "El-Quinto-Elemento" ó "The-Fifth-Element", esperalo, está en Diseño y Desarrollo, una vez culminado lo publicaremos en la Apps de Google, y por esta misma vía te lo comunicaremos o por Twitter

El presente Juego se realizó con nuestro Framework, el cual contiene las siguientes Interfaces y Clases, Te lo puedes descargar desde: https://github.com/tarsicio/Framework-Juegos-Android 

INTERFACES

En la parte del Framework te mostramos todas interfaces, no es nuestra intención mostrarte todo en ésta página, te lo puedes descargar de github y ver tú mismo todo el código fuente JAVA.

  • Acelerometro
  • Input
  • Teclado (KeyEvent)
  • Audio
  • Sonido
  • Gráficos
  • Pantalla
  • SingleTouch
  • MultiTouch
  • Pool
  • Pixmap
  • FileIO (Manejo de Archivos)
  • Juego
Todas estas interfaces son implementadas luego, como podemos ver se maneja lo necesario para manipular cada acción del teléfono, como es la pantalla, sonido, gráfico, audio, archivos, entre otros.

Por ejemplo la interface FileIO se observa de la siguiente manera.

package com.tarsicio.bibliotecagamesve.interfaces;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Creado por el Autor el día 19/05/2016.
 * @author  Tarsicio Carrizales, twitter: @tarsicio_tic, Mail: telecom.com.ve@gmail.com
 * @version 1.0
 * Aplicación de Juego el Pirata (PiratasGames)
 */

public interface FileIO {

    /**
     * Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     *
     * El metodo leerAssets busca un archivo en particular dentro de la carpeta assets
     * dentro del proyecto del juego y lo retorna
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public InputStream leerAsset(String nombreArchivo) throws IOException;

    /**
     *Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public InputStream leerArchivo(String nombreArchivo) throws IOException;

    /**
     *Metodo público sin implementar por la interface FileIO.java
     * La implementación se realiza en la clase AndroidFileIO.java
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    public OutputStream escribirArchivo(String nombreArchivo) throws IOException;
}

En la presente imagen se pueden observar el total de inteface.

CLASES

Al igual que las interface, se muestran las Clases, las cuales implementa todas y cada una de las interface, para seguir los pasos vamos a mostrar la Clase que implementa la interface FileIO.

la Clase AndroidFileIO.java la cual esta dentro del paquete modelo, queda de la siguiente manera.

package com.tarsicio.bibliotecagamesve.modelo;

import android.content.res.AssetManager;
import android.os.Environment;

import com.tarsicio.bibliotecagamesve.interfaces.FileIO;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Creado por el Autor el día 19/05/2016.
 * @author  Tarsicio Carrizales, twitter: @tarsicio_tic, Mail: telecom.com.ve@gmail.com
 * @version 1.0
 * @see FileIO
 * Aplicación de Juego el Pirata (PiratasGames)
 */

public class AndroidFileIO implements FileIO {

    private AssetManager assets;
    private String rutaAlmacenamientoExterno;

    /**
     *
     * @param assets
     */
    public AndroidFileIO(AssetManager assets){
        setAssets(assets);
        setRutaAlmacenamientoExterno();
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public InputStream leerAsset(String nombreArchivo) throws IOException{
        return assets.open(nombreArchivo);
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public InputStream leerArchivo(String nombreArchivo) throws IOException{
        return new FileInputStream(getRutaAlmacenamientoExterno() + nombreArchivo);
    }

    /**
     *
     * @param nombreArchivo
     * @return
     * @throws IOException
     */
    @Override
    public OutputStream escribirArchivo(String nombreArchivo) throws IOException{
        return new FileOutputStream(getRutaAlmacenamientoExterno() + nombreArchivo);
    }

    /**
     *
     * @param assets
     */
    private void setAssets(AssetManager assets){
        this.assets = assets;
    }

    /**
     *
     */
    private void setRutaAlmacenamientoExterno(){
        this.rutaAlmacenamientoExterno = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + File.separator;
    }

    /**
     *
     * @return
     */
    public AssetManager getAssets(){
        return this.assets;
    }

    /**
     *
     * @return
     */
    public String getRutaAlmacenamientoExterno(){
        return this.rutaAlmacenamientoExterno;
    }
}

Espero que lo disfruten y ayuden en su proyecto personal o de trabajo.

Saludos a todos
Atentamente,
Tarsicio Carrizales

jueves, 27 de octubre de 2016

LARAVEL 5.3


Aplicación Completa CRUD Users-Rol-Permissions, con Acacha adminlte-laravel Operativo al 100%, el presente CRUD fué realizada con una plantilla propia, la cual se diseñó para el presente trabajo así con los diferentes controladores, el modelo User fué modificado y adaptado al presente proyecto, de forma que cumpla con los objetivos planteados, ya que se incluyó los siguientes campos en la tabla (FechaInicio, FechaFin, CuentaActiva, entre otros)


Plantilla Completa de Laravel V-5.3 al 100% modificada por su servidor. la plantilla de Acacha adminlte-laravel se modificó para adaptarla al presente proyecto, se dejó todo lo de bootstrap hojas de estilos (CSS) sin modificar así como bootstrap.js (JavaScript)
La presente plantilla está realizada con Laravel versión 5.3, todo lo referente a los Roles, Permisos, y Usuarios, Operativa al 100% para sus proyectos de Laravel.


Se crearon Los Modelos, Controladores y Vistas para ser utilizados en la presente plantilla. La intención es que usted pueda iniciar sus proyectos sin preocuparse del tema de la seguridad, en cuanto a los roles, permisos y usuarios.

CRUD USUARIO


La plantilla para Visualizar los Usuarios, cuenta con los campos que se consideran necesarios a mostrar, usted los puede modificar de acuerdo a sus necesidades, recuerde, en la presente página usted puede utilizar los niveles de seguridad implementados en  Bincan/Roles, los cuales les permiten determinar los niveles de acceso programados para cada usuario, por ejemplo:

@ROLE('root') // @if(Auth::check() && Auth::user()->isRole('root'))
// Usuario administrador super root
@endrole
@Permission('crear.usuarios') // @if(Auth::check() && Auth::user()->can('crear.usuario'))
// El usuario puede crear
@endpermission
@Level(2) // @if(Auth::check() && Auth::user()->level() >= 2)
// Nivel 2 o superior
@endlevel

Con este esquema le permite ahorro de líneas de código y determinar la seguridad de acceso a cada página del sistema.  


Recuerde que debe realizar ajustes en cada Vista del presente CRUD, de acuerdo a sus necesidades especiales, tome en cuenta que si actualiza a Laravel a la Versión 5.4, es posible que tenga que verificar los paquetes asociados en el presente proyecto, ya dichos cambios afectan la forma en cómo se comportan los demás componentes integrados en esta aplicación.

En la presente Ventana le permite Modificar a un usuario del Sistema en Particular, es decir puede modificar, la clave, la ficha de Inicio y Fin en la cual el Usuario puede utilizar la aplicación, así como a que grupo de trabajo pertenece, todo esto para el tema del Uso de recursos en la aplicación, tales como poder modificar, imprimir, leer, y crear entre otros.

en esta pantalla no está permitido modificar el login de usuario ni su correo, pero usted lo puede modificar de acuerdo a sus necesidades, usted puede modificar el código, recuerde que el presente proyecto esta bajo licencia libre GNU. 


La presente plantilla está 100% operativa a la Versión 5.3 de Laravel, La parte gráfica de esta plantilla está hecha con "acacha/admin-lte-template-laravel": "2.", y la parte de Seguridad, Roles y Permisos hecha con "bican/roles": "2.1.", con esto tiene una vista agradable al usuario final, la sección de Bincan/Roles, fue modificada por completo

CRUD-ROL-PERMISSIONS

Se tiene una página con todos los perfiles del sistema, usted puede elegir que perfiles crear, para asignar a los grupos de usuarios, puedes utilizar todo lo indicado hasta el momento y de esta manera aumentar los niveles de seguridad en su aplicación y hacer una aplicación robusta de acuerdo a sus necesidades.


La parte de "bincan/roles" fue modificada para su mejor funcionamiento.
También se agregaron otros componentes que permitan un mejor desarrollo en el presente proyecto, los cuales pueden visualizar en el archivo "composer.json"
Para facilitar su trabajo una vez instalada la aplicación puede ejecutar el comando: php artisan migrate:refresh --seed esto le permitirá crear las tablas para su base de datos y cargar los registros básicos de inicio, los cuales le permitirán trabajar con la aplicación.
Recuerde crear la base de datos, con su gestor preferido, y configurar el archivo .env dentro de la aplicación
Una vez culminado la instalación de la aplicación entre con el correo de ejemplo telecom.com.ve@gmail.com clave: 123456 ó si lo desea, en el seeder de usuario, cambie los datos por los de su preferencia.




LOGIN - MENÚ


El sistema de autenticación es el que trae laravel, en este caso se modificó y se le agregó el middleware de Autenticación para hacer el sistema más seguro el cual maneja la propiedad TOKEN, usted puede modificar el presente programa y elegir un tipo de seguridad adaptada a sus necesidades.


Se realizó un sistema de Menú con imágenes el cual hace el manejo de las páginas de una forma mucho más amigable e interactivas, si usted considera que este tipo de práctica no es conveniente, las puede cambiar a la ventana izquierda como la mayoría de sistema existentes, recuerde que a este nivel con BiCan-Roles puede hacer que no se muestren algunos Iconos de acuerdo a la configuración de cada perfil de usuario.


Aquí pueden visualizar un sub menú al cual les pueden aplicar todas las características del primer menú, o el principal. 


No hace falta que utilice el comando composer update, ya que este repositorio está completo con todos los componentes que necesita para trabajar.
Cuando usted termine de configurar esta aplicación, recuerde de quitar la opción de debuger, para que no se muestre al usuario final y si lo desea lo puede colocar en el idioma de su preferencia (Español, Inglés u otros), por defecto esta en español
Pueden realizar sus comentarios directamente por esta vía
De necesitar ayuda no dude en comunicarse con nosotros, que con gusto le podemos ayudar en el presente proyecto
Atte,
Tarsicio Carrizales

martes, 3 de mayo de 2016

App Android + MySql, Servicios Web (PHP) y JSON

App Android + MySql, Servicios Web (PHP) y JSON.

 Bajar el proyecto completo y Gratis (Sin Costo) (Descargar Gratis Aquí), el cual contiene:
  • Código 100% operativo y Gratis (Sin Costo), Código Documentado
  • Código fuente completo Android, Desarrollado bajo Eclipse
  • Código fuente completo del Servicio Web Desarrollado bajo PHP
  • Archivo de la base de datos de prueba en formato *.sql de MySql para ahorrarle tiempo.
  • Instalador APK de la aplicación, ustedes pueden generar su propio instalador una vez modifique la aplicación cliente Android.
  • Archivo Leer.txt 

    Luego de tanto buscar ejemplos prácticos sobre programación bajo Android, JSON, Servicios Web, y Bases de datos en un sólo proyecto entre otros, fue mucho pedir, por tal motivo recopilamos información por separado y luego le fuimos dando forma a esta primera práctica integral entre Android, Servicios Web y Base de datos.
    El presente proyecto pretende contribuir con el conocimiento libre, para que la humanidad pueda lograr de una forma más dinámica, obtener los conocimientos necesarios para el logro de sus diferentes objetivos. Por ejemplo en nuestro caso no sabíamos nada de Android hasta hace un par de meses, bueno nos pusimos manos a las obras e iniciamos nuestra búsqueda por INTERNET, abrimos el navegador WEB y de la mano de Mamá Google, como decimos por estos lados, nos dimos a la tarea de buscar y leer, realizar cuantos ejercicios nos encontramos, algunos no muy claros otros incompletos, pero lo bueno de todo eso fue que no nos rendimos y hoy le queremos presentar el fruto del trabajo constante y sin parar, en verdad nada complicado al final del camino.

    La aplicación en cuestión le permite visualizar los registros guardados en una Base de Datos Mysql Versión 5.5.35 y guardar datos en la misma Base de Datos, con una aplicación Bajo Android.

La imagen Superior, es la Ventana de Inicio de la aplicación, en ella encontraran 4 Botones, el primer Botón le llevará a la Ventana para colocar información y guardarla en su base de datos colocada en INTERNET. El segundo Botón Le lleva a otra Ventas en la cual con un ListView podrán Ver la Información que guardaron. En el Tercer Botón podrán colocar la URL ó la Dirección IP Pública o Privada para tener acceso al Servicio Web que le Permitirá Gestionar el trabajo. Y por último el Botón Salir.



Ventana para guardar datos en la Base de datos Vía INTERNET

Para agilizar el tema se asume que el participante tiene un conocimiento previo sobre:
  • Programación en JAVA
  • Manejo del IDE Eclipse Versión 3.8
  • Debe configurar el entorno Eclipse para Trabajar con Android
  • Tener Instalado Apache2 Versión 2.2.22-13
  • Instalar MySql Versión 5,5,35
  • PHP-PEAR Versión 5.4.4-14 para el Servicio WEB
  • Conocimiento en programación bajo ambiente Android (Dispositivos Móviles)
Nota: Todos estos elementos indicados, se instalaron en el sistema Operativo Debian Versión 7.0, Si su caso es que tienen instalado Windows, no importa deben buscar en la WEB los instaladores para su sistema operativo, igual si tienen MAC.
Bueno no pretendo desanimarlos con tantas cosas que se deben de manejar, pero es necesario para poder comprender lo que se esta haciendo y viendo.



ListView Que le Permite Ver lo que tiene su Base de datos en INTERNET Utilizando JSON

La aplicación cuenta con Ejemplos sobre AsyncTask (Manejo de Hilos en Segundo Plano) Bajo Android, como cargar un ListView con información de una Base de datos MySql colocada en Internet, Manejo de una Base de datos local instalada en el Teléfono bajo SQlite, Como insertar (INSERT) datos localmente y como Actualizar (UPDATE)

También podrán manejar el método OnClick de cada Ventana, el método finish() para cerrar una ventana, el manejo try – catch, para el manejo de errores. El manejo de la clase JSON en Android, esta clase le permite manipular los datos que recibe del Servicio Web y envía a éste, en nuestro caso veremos como manipulamos los datos que nos envía el Servicio Web en JSON, para luego ser mostrado en un ListView.

Se utilizó JSON, ya que las mejores prácticas indican que los tiempos de transmisión Asincrónico de datos son más bajos que los Utilizados por XML, entre otros y la lectura bajo JSON resulta más fácil de comprender y manejar a la hora de programar.

Algo muy importante, en el presente diseño, Utilizamos el Patrón de Programación MODELO-VISTA-CONTROLADOR (MVC) todo esto para realizar de alguna manera el código más ordenado, en el caso de la clase AsyncTask se dejo dentro de los controladores, para que como ejercicio la pasen al MODELO, nada complicado, en muchos ejemplos en internet el AsyncTask esta ligado con la Activity, pero se puede poner por separado. Nosotros utilizamos el patrón MVC, pero ustedes pueden utilizar el patrón que más se adapte a sus necesidades.

Se puede manejar el tema de Variables Globales, para ellos en el Archivo AndroidManifest.xml en la Pestaña (Application) en la parte superior en donde esta “Defines the attributes specific to the application.” en el Recuadro “NAME” puedes construir la clase para las Variables Globales.

El Servicio Web que se diseñó con PHP, es de los mas básicos, pero si lo desean pueden utilizar .Net de Microsoft, SOAP, u Otros para proyectos más robustos en el manejo de datos e integración con aplicaciones de sus clientes, en este caso se escogió PHP como lenguaje fácil de comprender para el presente ejemplo. Es de hacer notar que muchas empresas utilizan a PHP para construir sus Servicios Web, lo único es que se debe mejorar el tema de seguridad.


Ventana que le permite modificar la URL/IP para su Servicio Web

Bueno esto es todo por los momentos, si tiene alguna inquietud, estamos para ayudar, en la actualidad estamos desarrollando el Proyecto HORMIGA (Descargar pdf Aquí), para la toma de pedidos, no hay límites para la imaginación de lo que podemos hacer con estas herramientas de desarrollo.
Todo el código incluido esta Documentado para que puedan visualizar y comprender un poco lo que se quiso hacer a la hora de programar, a pesar de lo que se dice en el trabajo de programación, (Programador que se respeta no Documenta el Código)

Todo el Trabajo queda bajo “Licencia de Creative Commons Reconocimiento 4.0 Internacional”

Att,
Tarsicio Carrizales
Twitter: @tarsicio_tic
Un saludo a todos.