Archivos del mes: 30 octubre 2012

SQLite, Android y Phonegap, adios Localstorage

Conforme la aplicación fue avanzando nos vimos obligados a cambiar el sistema de almacenamiento de datos para hacerlo un poco más robusto. Para ello optamos por implementar SQLite en la aplicación.

SQLite viene por defecto en la API de Android y no es necesario incluir ninguna librería extra. Como introducción está bien, pero vamos a pasar a lo interesante.

Para crear la Base de Datos que va a usar la aplicación solo necesitamos instanciar una clase que extienda de SQLiteOpenHelper. Cuando se haga esa llamada al constructor de la clase, el método super, comprobará internamente si existe la base de datos, en caso contrario la creará inmediatamente y ejecutará el método onCreate donde tendremos las queries que queremos ejecutar al iniciar. Este método sólo se ejecutará si la base de datos no existía. En cualquier otra instanciación de la clase DataBase no se ejecutará.

private String CREATE_USER_SQL = "CREATE TABLE accounts (_id INTEGER PRIMARY KEY AUTOINCREMENT, nif VARCHAR(10), name TEXT, bolsa TEXT)";

private String CREATE_POSITIONS_SQL = "CREATE TABLE positions (_id INTEGER PRIMARY KEY AUTOINCREMENT, general INTEGER, sevilla INTEGER, nif VARCHAR(10), fecha DATETIME DEFAULT CURRENT_TIMESTAMP)";

public class DataBase extends SQLiteOpenHelper{

     public DataBase(Context context) {
         super(context,InfobolsaConstants.DATABASE_NAME, null, InfobolsaConstants.DATABASE_VERSION);
     }

     @Override
     public void onCreate(SQLiteDatabase db) {
         db.execSQL(CREATE_USER_SQL);
         db.execSQL(CREATE_POSITIONS_SQL);
     }

     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         if(oldVersion == 1){
	     db.execSQL(InfobolsaConstants.ALTERTABLE_POSITIONS_SQL);
	     db.execSQL(InfobolsaConstants.CREATE_POSITIONS_SQL)
        }
        if(newVersion == InfobolsaConstants.DATABASE_VERSION){
             db.execSQL(InfobolsaConstants.ALTERTABLE_BOLSAS_SQL);
             db.execSQL(InfobolsaConstants.CREATE_BOLSAS_SQL);
             db.execSQL(InfobolsaConstants.ALTERTABLE_BOLSAS_DATA_SQL);
        }
     }
}

Posteriormente, si la versión de la base datos es superior a la que había antes, se ejecutará el método onUpgrade que o bien podemos dejar vacío o bien podemos ejecutar una SQL que nos permita hacer una migración o actualización de datos. Para ello, podemos usar los parámetros oldVersion y newVersion para saber con cual versión queremos que se ejecute dicha actualización.

Leer más →

Anuncios

Usar ADMOB en Android

Admob

Sistema de publicidad de Google

Los creadores de aplicaciones para Android pensamos en crear bien la aplicación de pago, algo muy complicado en esta plataforma tan fácilmente pirateable o bien poner en la aplicación publicidad. Pues bien, nosotros optamos por ADMOB que es la más sencilla y más fácil de configurar, pero eso sí, es muy difícil conseguir dinero con ello.

Antes de nada, es necesario registrarse en la plataforma de ADMOB para obtener un identificador de la aplicación. Una vez obtenido el código único para nuestra aplicación, pasamos al desarrollo.

Para empezar con el desarrollo, lo primero es descargarse la SDK de ADMOB para dispositivos móviles de esta página. Una vez descargado el paquete, es se añade el lib de Android dentro de la carpeta libs de nuestra aplicación. Es un JAR muy ligero y no hará que la aplicación pese mucho.

Leer más →

Localstorage en Android y cualquier otro sistema

Con la llegada de HTML5 llegó el uso de localstorage para poder almacenar datos en cliente. En los navegadores de escritorio es necesario pedir permiso al usuario para permitir este alojamiento, pero en los dispositivos móviles no es necesario realizarlo.

Vamos a explicar un poco como se usa este localstorage con Javascritp. Para empezar, es necesario para versiones de Android superiores a la 4.0  informarlo en el Activity por defecto.

@Override public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     super.init();

     super.appView.getSettings().setDomStorageEnabled(true);
     ......
     ......
}

Leer más →

A %d blogueros les gusta esto: