Está en la página 1de 25

Desarrollo

 de  Aplicaciones  Móviles  en  Android  


Profesorado:  
Jorge  E.  Carballo  Franquis  
David  D.  Harjani  Harjani  
Director:  
José  Luis  Roda  
Índice  

•  SQLite  
•  Tabs  
•  Closing  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   2  


SQLite  
•  Base  de  datos  relacional  para  sistemas  
embebidos  
•  Ocupa  únicamente  unos  225KB  en  memoria  
•  No  se  trata  de  un  proceso,  sino  de  una  librería  
que  se  añade  dinámicamente  a  las  aplicaciones  
que  quieren  uWlizar  SQLite  
•  Implementa  la  mayor  parte  del  estándar  SQL-­‐92,  
pero  con  restricciones  
•  Soporte  para  ALTER_TABLE  limitado  
•  Las  columnas  no  Wenen  Wpos  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   3  


SQLite  

•  Existen  diferentes  herramientas,  como  sqlite3,  


disponible  desde  sqlite.org  
•  Existen  un  plugin  de  Firefox  para  visualizar  
bases  de  datos  SQLite  (recomendado)  
•  Se  uWliza  internamente  en  Firefox  y  
Thunderbird  
•  Lo  uWlizan  la  mayoría  de  las  plataformas  
móviles  (iOS,  Android,  WP7-­‐8,  BlackBerry  OS,  
el  desaparecido  webOS)  
10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   4  
SQLite  en  Android  

•  Existen  múlWples  formas  de  atacar  SQLite  


•  Nosotros  veremos  una  en  la  que  separamos  el  
acceso  a  la  base  de  datos  del  objeto  Java  que  
representa  cada  fila  de  la  base  de  datos  
•  No  existen  las  claves  ajenas  o  foráneas,  y  en  el  
caso  de  necesitarlas,  debemos  forzarlas  “a  
mano”  
•  Es  relaWvamente  fácil  conectar  una  base  de  
datos  a  una  lista  
10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   5  
SQLite  en  Android  

•  La  base  de  datos  está  protegida  dentro  de  la  


memoria  interna  del  disposiWvo  
•  Mientras  trabajamos  con  el  emulador  (donde  
tenemos  acceso  root),  podemos  extraer  (con  
DDMS)  el  archivo  de  la  base  de  datos  y  
visualizarlo  
•  En  general,  el  acceso  suele  ser  rápido  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   6  


SQLite  en  Android  

•  Nosotros  queremos  guardar  un  objeto  Java  


(un  JavaBean  o  un  POJO)  en  una  base  de  datos  
•  El  objeWvo  es  que  cada  fila  de  la  tabla  de  la  
base  de  datos  represente  unívocamente  a  un  
objeto  Java  
•  Por  tanto,  necesitamos  dos  clases:  
–  Objeto  Java  con  modificaciones  
–  Clase  SQLiteOpenHelper  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   7  


SQLite  en  Android  

•  En  nuestro  objeto  Java  tendremos  los  


siguientes  métodos:  
-­‐  public  sta+c  Cursor  getAll(SQLiteDatabase  db)  {}  
 
-­‐  public  sta+c  DbCryptoAlgorithm  
loadFrom(SQLiteDatabase  db,  long  id)  {}  
 
-­‐  public  DbCryptoAlgorithm  loadFrom(Cursor  c)  {}  
 
-­‐  public  long  save(SQLiteDatabase  db)  {}  
 

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   8  


SQLite  en  Android  

•  La  SQLiteOpenHelper  es  una  clase  que  


exWende  la  anterior  para  crear  nuestras  tablas  
en  la  base  de  datos  
•  Además,  conWene  información  como  el  
nombre  de  la  base  de  datos,  el  nombre  de  la  
tabla  y  la  versión  actual  del  esquema  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   9  


SQLite  en  Android  

•  Los  métodos  de  la  clase  que  exWende  


SQLiteOpenHelper  son:  

-­‐  public  void  onCreate(SQLiteDatabase  db)  {}  


 
-­‐  public  void  onUpgrade(SQLiteDatabase  db,  int  
versionAn+gua,  int  versionNueva)  {}  
 
-­‐  public  void  onOpen(SQLiteDatabase  db)  {}  
 

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   10  


Pestañas  

•  Las  pestañas  o  Tabs  facilitan  la  navegación  en  


nuestra  aplicación  
Creación  de  Pestañas    

•  Se  necesitara  un  TabHost  y  un  TabWidget


•  El  TabHost  deberá  ser  el  nodo  padre  del  
layout  
–  TabWidget  (Pestañas)  
–  FrameLayout (Contenido  de  las  pestañas)  
•  Dos  formas  de  implementación  
–  Diferentes  Views  en  la  misma  acWvidad  
–  Diferentes  acWvidades  
Cada  pestaña  una  acWvidad  

•  Cada  acWvidad  será  una  de  nuestras  pestañas  


<?XML  version="1.0"  encoding="ur-­‐8"?>  
<TabHost  xmlns:android="htp://schemas.android.com/apk/res/android"  
       android:id="@android:id/tabhost"  
       android:layout_width="fill_parent"  
       android:layout_height="fill_parent">  
       <LinearLayout  
               android:orientaWon="verWcal"  
               android:layout_width="fill_parent"  
               android:layout_height="fill_parent"  
               android:padding="5dp">  
               <TabWidget  
                       android:id="@android:id/tabs"  
                       android:layout_width="fill_parent"  
                       android:layout_height="wrap_content"  />  
               <FrameLayout  
                       android:id="@android:id/tabcontent"  
                       android:layout_width="fill_parent"  
                       android:layout_height="fill_parent"  
                       android;padding="5dp"  />  
       </LinearLayout>  
</TabHost>  
AcWvidad  principal  

•  Deberá  extender  de  TabActivity


•  En  el  método  onCreate()
TabHost  tabHost  =  getTabHost();    //  The  acWvity  TabHost  
 TabHost.TabSpec  spec;    //  Reusable  TabSpec  for  each  tab  
 Intent  intent;    //  Reusable  Intent  for  each  tab  
 
 //  Create  an  Intent  to  launch  an  AcWvity  for  the  tab  (to  be  reused)  
 intent  =  new  Intent().setClass(this,  ArWstsAcWvity.class);  
 
 //  IniWalize  a  TabSpec  for  each  tab  and  add  it  to  the  TabHost  
 spec  =  tabHost.newTabSpec("arWsts").setIndicator("ArWsts",  
                                           res.getDrawable(R.drawable.ic_tab_arWsts))  
                                   .setContent(intent);  
 tabHost.addTab(spec);  

       tabHost.setCurrentTab(getIntent());  
Closing  
•  Android  es  la  plataforma  que  más  está  creciendo  
en  popularidad  en  Estados  Unidos,  y  ya  ha  
superado  a  iOS  como  líder  en  cuota  de  mercado,  
pero  sólo  en  smartphones  
•  Es  líder  en  tráfico  de  móviles  (según  AdMob)  
superando  incluso  a  iOS  (anWguamente  iPhone  
OS)  
•  En  Europa  está  extendiéndose  como  plataforma,  
pero  desgraciadamente  la  mayoría  de  usuarios  
no  saben  que  Wenen  Android  ni  lo  que  es  
•  Falta  un  mayor  empuje  de  publicidad  que  resalte  
las  buenas  cualidades  de  los  disposiWvos  
10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   15  
Closing  
•  El  mercado  de  aplicaciones  móviles  (tablets  y  
smartphones)  crece  año  tras  año  
•  Se  espera  que  el  número  de  aplicaciones  
descargadas  crezca  de  8,2  mil  millones  de  2010  a  
los  17,7  mil  millones  en  2011  
•  Los  beneficios  obtenidos  en  2010  por  
aplicaciones  móviles  se  esWmó  en  5,2  mil  
millones  de  dólares,  y  para  2011  se  espera  que  
crezca  hasta  los  15,1  mil  millones  
–  Fuente:  GARTNER  
 htp://www.gartner.com/it/page.jsp?id=1529214  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   16  


Closing  
•  ¿Por  qué?  
•  El  consumidor  general  está  comenzando  a  entender  la  
existencia  de  los  smartphones,  ni  los  servicios  que  
ofrece  
•  Los  smartphones  apenas  representan  un  10  ó  15%  de  
las  ventas  de  móviles,  pero  son  los  que  más  beneficios  
reportan  a  fabricantes  y  operadoras  
•  En  los  mercados  emergentes,  se  produce  un  número  
millonario  de  altas  nuevas  cada  mes  
•  La  concienciación  sobre  los  smartphones  crece  poco  a  
poco,  y  el  número  de  usuarios  conWnuará  aumentando  
•  Muchos  creen  que  aún  no  se  ha  producido  la  
verdadera  explosión  de  usuarios  
10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   17  
Closing  
•  Android  Market  
–  Actualmente  está  en  pleno  apogeo,  con  más  de  
500,000  aplicaciones  
–  No  importa  el  número,  sino  la  calidad  
–  Para  ser  desarrollador,  solamente  es  necesario  pagar  
25  euros  una  sola  vez  
–  Podemos  subir  todas  las  aplicaciones  que  queramos,  
aparecen  automáWcamente  
–  Si  nuestra  aplicación  es  de  pago,  no  la  veremos  en  
nuestro  disposiWvo  (no  podemos  comprar  nuestras  
aplicaciones)  
–  El  raWo  es  70%  para  el  desarrollador  y  30%  para  el  
operador,  no  Google  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   18  


Closing  

•  Android  Market  
–  Existen  diferentes  estrategias  para  vender  
aplicaciones:  publicidad,  versiones  “Donate”,  etc.  
–  La  posibilidad  de  realizar  compras  desde  la  propia  
aplicación  abre  paso  a  una  vieja  costumbre,  el  
shareware  
–  Los  pagos  se  realizan  a  través  de  Google  Checkout  
–  Como  Android  es  libre,  existen  otros  mercados  
que  compiten  con  Google  Play;  especial  mención  
merecen  la  Amazon  Android  Appstore.  
10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   19  
Closing  

•  ¿Es  importante  tener  un  disposiWvo  Android  


de  verdad  como  desarrollador?  
–  La  respuesta  es  siempre  SÍ  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   20  


Closing  

•  ¿Vale  la  pena  gastarse  tanto  dinero?  


–  Depende  de  si  vamos  a  inverWr  horas  en  
desarrollar  aplicaciones  y  colocarlas  en  el  Android  
Market  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   21  


Closing  
•  Hay  tantos  disposiWvos  que  no  sé  cuál  comprar.  ¿Qué  es  lo  
ideal?  
–  Lo  ideal,  lo  perfecto,  sería  disponer  uno  por  cada  Wpo  de  
pantalla  disponible.  
–  La  pantalla  y  los  controles  marcan  la  diferencia  entre  un  
disposiWvo  y  otro;  podemos  hacernos  una  idea  de  cómo  
funciona  un  pad  en  lugar  de  un  teclado,  pero  no  podemos  
imaginarnos  una  pantalla  con  una  determinada  resolución  
•  Lo  que  recomendamos  es  tener  2  disposiWvos:  un  teléfono  
de  gama  media/alta  y  un  tablet,  sea  de  7”  o  de  10”.  
–  El  teléfono  puede  ser  de  cualquier  marca  
–  El  tablet  recomendamos  que  sea  un  Nexus,  sea  el  7  o  el  10,  
debido  a  que  ofrecen  la  mejor  experiencia  y  son  los  que  más  se  
van  a  vender.  
 

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   22  


Closing  

•  Una  úlWma  nota…  

Hay   infinidad   de   cosas   que   no   hemos   podido   cubrir   y   ni   tan   siquiera  


mencionar   en   este   curso   introductorio,   pero   esperamos   que   hayáis  
podido  disfrutar  de  él,  y  lo  más  importante,  que  hayáis  aprendido  cómo  
funciona  Android,  en  lugar  de  sus  APIs.  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   23  


Closing  

•  ¿Algo  más  que  se  os  ocurra?  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   24  


Closing  

¡¡¡Gracias!!!  

Jorge  Carballo  Franquis    


 (jelcaf@gmail.com,  @jelcaf,  +Jorge  Carballo)  
David  Dinesh  Harjani  Harjani  
(goldrunner18725@gmail.com,  @dinesharjani,  
+Dinesh  Harjani)  

10/12/12   Desarrollo  de  Aplicaciones  Móviles  en  Android   25  

También podría gustarte