Android

Aplicaciones Android.

iPhone

Aplicaciones iPhone/iPad.

HTML5

Aplicaciones moviles web en HTML5.
 

XMLAdapters Ejemplo de Android con fallo

sábado, 25 de febrero de 2012

El XMLAdapters es un ejemplo muy bueno de la mejora que se hizo en Android para realizar el parser de los archivos XML, este cambio esta desde Android 3.0 (Honeycomb). El problema es que al tratar de probarlo te encuentras con un error, lo cual lo hace pensar que uno tiene algo desconfigurado o cualquier otra cosa menos que el ejemplo viene con un error, pero así es.

La solución es modificar el manifest y cambiar la linea del provider.

<provider android:name="com.example.android.xmladapters.XmlDocumentProvider"
                  android:authorities="xmldocument" />

Manipular base de datos SQLite de app Android

viernes, 24 de febrero de 2012

SQLite Manager es una herramienta que les sera de gran utilidad a la hora de crear, monitorear y manipular sus bases de datos en dispositivos móviles, aunque no solo para ellos pues también esta siendo utilizada en los browser y otros.

Tan solo tienen que tener instalado Firefox ir al menú Herramientas>Complementos pasar a la ficha extensiones y buscar el SQLite Manager, descargarlo, reiniciar el Firefox y ya lo encontraran en el menú Herramientas>SQLiteManager. Una vez abierto pueden cargar o crear un archivo sqlite y manipularlo




Como sacar nuestra base de datos de la aplicación Android
Cuando lancen la aplicación ya sea sobre el emulador o sobre el dispositivo (desde luego que conectado), sobre su Eclipse pasan a la perspectiva DDMS y en la ficha FileExplorer en el directorio data>data>tu.paquete>databases>data, una vez estén sobre el archivo en la parte superior derecha encontraran el botón con un disquete que les permite guardar el archivo en un directorio de tu maquina, y listo, ya puedes cargarlo sobre el SQLite.



Referencias
http://code.google.com/p/sqlite-manager/

Porque algunas variables en Android comienzan con 'm'

Es común y a la vez curioso en un principio, encontrar que en los ejemplos de Android algunas variables comenzaran siempre con 'm', la razón es que esto esta especificado en la guía de codificación de Android.


Por lo tanto ellos recomiendan que para la variables 'member' se les coloque una m al principio, eso quiere decir que las variables privadas y protegidas que se utilizaran dentro de la clase llevaran la m. Y las que no deben de llevar nada al comienzo las denominan 'local' osea las que estén dentro de un método o son son publicas en la clase.


Acá les coloco la parte de la guía donde explican el resto de convenciones para las variable, un ejemplo 


Follow Field Naming Conventions

  • Non-public, non-static field names start with m.
  • Static field names start with s.
  • Other fields start with a lower case letter.
  • Public static final fields (constants) are ALL_CAPS_WITH_UNDERSCORES.
For example:
public class MyClass {
    public static final int SOME_CONSTANT = 42;
    public int publicField;
    private static MyClass sSingleton;
    int mPackagePrivate;
    private int mPrivate;
    protected int mProtected;
}
Fuentes
http://source.android.com/source/code-style.html#follow-field-naming-conventions

http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html

http://stackoverflow.com/questions/2092098/why-most-of-android-tutorials-variables-start-with-m

query() vs rawQuery()

Estos dos metodos de SQLiteDatabase, realizan la misma funcion de traer los datos al realizar un SELECT, pero su diferencia esta en el rendimiento y en la construccion del query.
Utiliza rawQuery(), cuando tengas un Select directo.
constantsCursor
= db.rawQuery("SELECT _ID, title, value " + "FROM constants ORDER BY title", null);

Utiliza query() cuando tienes en Select variable donde sus parametros pueden cambiar y puedes aprovechar para pasarlos en el array de String. mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
                KEY_BODY}, null, null, null, null, null);

nullColumnHack parametro en SQLiteDatabase.insert()

jueves, 23 de febrero de 2012

Sì el parametro nullColumnHack se pasa en null quiere decir que todos los campos deben de ser NOT NULL
private static final String DATABASE_CREATE =
        "create table notes (_id integer primary key autoincrement, "
        + "title text not null, body text not null);";
mDb.insert(DATABASE_TABLE, null, initialValues);


Pero si se desea permitir que alguno de ellos sea null entonces, solo se requiere pasar el nombre de alguna de la las columnas que permitira ser null, no se debe poner todas, solo una.
db.execSQL("CREATE TABLE constants (_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, value REAL);");
db.insert("constants", TITLE, cv);

Lorem

Please note: Delete this widget in your dashboard. This is just a widget example.

Ipsum

Please note: Delete this widget in your dashboard. This is just a widget example.

Dolor

Please note: Delete this widget in your dashboard. This is just a widget example.