SlideShare a Scribd company logo
1 of 31
Download to read offline
Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
  
                           Profesorado:	
  
                                         Jorge	
  E.	
  Carballo	
  Franquis	
  
                                           David	
  D.	
  Harjani	
  Harjani	
  
                           Director:	
  
                                                           José	
  Luis	
  Roda	
  
Índice	
  

•  SQLite	
  
•  Tabs	
  
•  Closing	
  




11/7/11	
        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	
  

11/7/11	
                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,	
  BlackBerry	
  OS,	
  
   webOS)	
  
11/7/11	
            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	
  
11/7/11	
                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	
  



11/7/11	
               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	
  


11/7/11	
                   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)	
  {}	
  
     	
  



11/7/11	
                         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	
  




11/7/11	
               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)	
  {}	
  
	
  



11/7/11	
                   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	
  
•  More…	
  	
  
         –  Google	
  I/O	
  2009	
  
         –  Google	
  I/O	
  2010	
  
         –  Google	
  I/O	
  2011	
  
         –  Autores	
  
              •  Mark	
  Murphy	
  
              •  Reto	
  Meier	
  
              •  Ed	
  Burnete	
  
         –  Las	
  API	
  Demos	
  que	
  provee	
  el	
  SDK,	
  hechas	
  por	
  el	
  
            propio	
  equipo	
  de	
  Android	
  

11/7/11	
                       Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     15	
  
Closing	
  

•  Seguridad	
  en	
  Smartphones	
  
         –  En	
  la	
  mayoría	
  de	
  procesadores,	
  los	
  algoritmos	
  de	
  
            cifrado	
  más	
  importantes	
  están	
  implementados	
  en	
  el	
  
            chip	
  (hard-­‐wired)	
  
         –  UWlizamos	
  algoritmos	
  de	
  seguridad	
  constantemente	
  
            en	
  Internet	
  (redes	
  Wi-­‐Fi,	
  protocolo	
  HTTPS)	
  
         –  Podemos	
  acceder	
  a	
  ellos	
  a	
  través	
  de	
  la	
  librería	
  java	
  
            crypto	
  (pero	
  no	
  es	
  trivial)	
  
         –  Es	
  recomendable	
  guardar	
  las	
  contraseñas	
  encriptadas,	
  
            y	
  si	
  es	
  posible,	
  no	
  usar	
  algoritmos	
  débiles	
  como	
  MD5,	
  
            SHA-­‐1	
  
11/7/11	
                       Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     16	
  
Closing	
  

•  Power	
  Efficiency	
  
         –  Los	
  Smartphones	
  se	
  construyen	
  siguiendo	
  la	
  
            ideología	
  System-­‐on-­‐a-­‐Chip	
  (SoC)	
  
         –  Todos	
  los	
  componentes	
  (procesador,	
  módem	
  
            [radios],	
  adaptador	
  de	
  pantalla,	
  cámaras,	
  GPS,	
  
            micrófonos,	
  etc.)	
  están	
  en	
  una	
  sola	
  placa	
  o	
  chip	
  
         –  Un	
  Smartphone	
  no	
  posee	
  un	
  único	
  procesador,	
  
            sino	
  uno	
  específico	
  para	
  determinadas	
  funciones	
  
         –  Cuando	
  hablamos	
  de	
  un	
  ARM11,	
  ARM	
  Cortex	
  A8/
            A9,	
  hablamos	
  del	
  procesador	
  de	
  aplicaciones	
  
11/7/11	
                      Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     17	
  
Closing	
  
•  La	
  industria	
  de	
  hardware	
  en	
  smartphones	
  es	
  bastante	
  
   diferente	
  a	
  la	
  de	
  los	
  PCs	
  
•  Actualmente,	
  hablamos	
  de	
  que	
  una	
  implementación	
  de	
  
   ARM	
  Cortex	
  A8	
  puede	
  variar	
  entre	
  1000	
  y	
  2000	
  MIPS	
  
   (Million	
  instrucWons	
  per-­‐second),	
  siendo	
  un	
  procesador	
  
   súper	
  escalar	
  
•  Un	
  ARM	
  Cortex	
  A9	
  alcanza	
  perfectamente	
  4000	
  MIPS,	
  con	
  
   promesas	
  de	
  hasta	
  8000	
  
•  Los	
  fabricantes	
  de	
  smartphones	
  piden	
  los	
  componentes	
  a	
  
   disWntas	
  empresas	
  (la	
  pantalla,	
  los	
  botones,	
  los	
  plásWcos,	
  el	
  
   SoC,	
  etc.)	
  y	
  luego	
  los	
  ensamblan	
  en	
  sus	
  fábricas	
  
•  La	
  media	
  de	
  Wempo	
  de	
  desarrollo	
  de	
  un	
  smartphone,	
  desde	
  
   su	
  concepción	
  hasta	
  el	
  mercado,	
  es	
  de	
  18	
  meses	
  


11/7/11	
                   Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     18	
  
Closing	
  
•  Actualmente,	
  estamos	
  entrando	
  en	
  la	
  tercera	
  
   generación	
  de	
  disposiWvos	
  Android	
  (Galaxy	
  Nexus	
  
   S,	
  Samsung	
  Galaxy	
  S	
  II,	
  HTC	
  SensaWon,	
  LG	
  
   OpWmus	
  2X)	
  
•  Comienzan	
  a	
  aparacer	
  tablets	
  con	
  Android	
  
   (Samsung	
  Galaxy	
  Tab	
  10.1,	
  Motorola	
  Xoom)	
  
•  La	
  verdadera	
  explosión	
  de	
  los	
  teléfonos	
  mul$	
  
   core	
  (Cortex	
  A9)	
  está	
  aún	
  por	
  llegar	
  
•  Intel,	
  con	
  su	
  «Atom	
  reducido»,	
  no	
  sigue	
  la	
  
   arquitectura	
  ARM	
  sino	
  la	
  x86.	
  

11/7/11	
             Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     19	
  
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	
  
11/7/11	
               Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     20	
  
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	
  


11/7/11	
                Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     21	
  
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	
  
11/7/11	
                  Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     22	
  
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	
  

11/7/11	
                        Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     23	
  
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	
  el	
  Market;	
  especial	
  mención	
  
            merecen	
  la	
  Amazon	
  Android	
  Appstore	
  y	
  Getjar	
  
11/7/11	
                      Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     24	
  
Closing	
  

•  Eficiencia	
  
         –  Cuando	
  programamos	
  para	
  un	
  ordenador,	
  hacer	
  
            un	
  bucle	
  como:	
  	
  
              •  for	
  (int	
  k	
  =	
  0;	
  k	
  <	
  S[i][j]*R[i][j]	
  +	
  1;	
  k++)	
  
         –  No	
  Wene	
  graves	
  consecuencias,	
  pero	
  en	
  un	
  móvil	
  
            sí,	
  porque	
  repeWmos	
  el	
  gasto	
  de	
  batería	
  para	
  la	
  
            misma	
  operación	
  
         –  De	
  hecho,	
  este	
  bucle	
  «clásico»	
  ya	
  es	
  ineficiente:	
  
              •  For	
  (int	
  i	
  =	
  0;	
  i	
  <	
  myString.length;	
  i++)	
  


11/7/11	
                               Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     25	
  
Closing	
  
•  Eficiencia	
  
         –  Cuando	
  escribimos	
  código	
  y	
  llamamos	
  código	
  desde	
  
            las	
  acWvidades,	
  estamos	
  ejecutando	
  desde	
  el	
  hilo	
  de	
  la	
  
            UI	
  
         –  Si	
  el	
  código	
  que	
  ejecutamos	
  tarda	
  más	
  de	
  5	
  segundos,	
  
            Android	
  detectará	
  que	
  la	
  UI	
  ha	
  dejado	
  de	
  responder	
  
            ante	
  el	
  usuario	
  y	
  le	
  preguntará	
  si	
  quiere	
  cerrarla	
  
         –  Debemos	
  separar	
  el	
  código	
  lento	
  en	
  un	
  nuevo	
  hilo,	
  y	
  
            mantener	
  el	
  hilo	
  de	
  la	
  UI	
  ocupado	
  con	
  un	
  
            ProgressDialog	
  
         –  También	
  podemos	
  hacer	
  uso	
  de	
  los	
  Tasks,	
  que	
  son	
  
            clases	
  que	
  nos	
  permiten	
  ejecutar	
  código	
  en	
  hilos	
  
            disWntos	
  a	
  la	
  UI	
  con	
  una	
  interfaz	
  pre-­‐definida	
  

11/7/11	
                       Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     26	
  
Closing	
  

•  ¿Es	
  importante	
  tener	
  un	
  disposiWvo	
  Android	
  
   de	
  verdad	
  como	
  desarrollador?	
  
         –  La	
  respuesta	
  es	
  siempre	
  SÍ	
  




11/7/11	
                      Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     27	
  
Closing	
  

•  ¿Vale	
  la	
  pena	
  gastarse	
  tanto	
  dinero?	
  
         –  Depende	
  de	
  si	
  vamos	
  a	
  inverWr	
  horas	
  en	
  
            desarrollar	
  aplicaciones	
  y	
  colocarlas	
  en	
  el	
  Android	
  
            Market	
  




11/7/11	
                     Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     28	
  
Closing	
  
•  Hay	
  tantos	
  disposiWvos	
  que	
  no	
  sé	
  cuál	
  comprar.	
  
   ¿Qué	
  es	
  lo	
  ideal?	
  
         –  Lo	
  ideal	
  es	
  tener	
  uno	
  de	
  cada	
  Wpo	
  de	
  pantalla	
  
         –  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:	
  
   uno	
  de	
  gama	
  baja/media	
  (HTC	
  Wildfire	
  S,	
  HTC	
  
   Legend,	
  etc.)	
  y	
  uno	
  de	
  gama	
  alta	
  (Galaxy	
  Nexus,	
  
   Samsung	
  Galaxy	
  S	
  II,	
  HTC	
  SensaWon,…)	
  
         	
  
11/7/11	
                        Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     29	
  
Closing	
  

•  ¿Algo	
  más	
  que	
  se	
  les	
  ocurra?	
  




11/7/11	
               Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     30	
  
Closing	
  

                    ¡¡¡Gracias!!!	
  



Jorge	
  Carballo	
  Franquis	
  	
  
  	
  (jelcaf@gmail.com)	
  
David	
  Dinesh	
  Harjani	
  Harjani	
  
      (goldrunner192287@gmail.com,	
  @dinesharjani)	
  

11/7/11	
         Desarrollo	
  de	
  Aplicaciones	
  Móviles	
  en	
  Android	
     31	
  

More Related Content

Viewers also liked

Baromètre Mobile Marketing Association France : Déc 2013 - infographie
Baromètre Mobile Marketing Association France : Déc 2013 - infographieBaromètre Mobile Marketing Association France : Déc 2013 - infographie
Baromètre Mobile Marketing Association France : Déc 2013 - infographiePhilippe Dumont
 
Presentación II MKT Intelligence - Christina Saksanian - Hedaz
Presentación II MKT Intelligence - Christina Saksanian - HedazPresentación II MKT Intelligence - Christina Saksanian - Hedaz
Presentación II MKT Intelligence - Christina Saksanian - HedazNeo Consulting
 
Cocktails Mariage 2012
Cocktails Mariage 2012Cocktails Mariage 2012
Cocktails Mariage 2012leprefleuri
 
Digital Education: a vision
Digital Education: a visionDigital Education: a vision
Digital Education: a visionmaxhamann
 
La vidéo comme aide à l’entraînement
La vidéo comme aide à l’entraînementLa vidéo comme aide à l’entraînement
La vidéo comme aide à l’entraînementCREPS de Montpellier
 
Guide tva travaux dans logement
Guide tva travaux dans logementGuide tva travaux dans logement
Guide tva travaux dans logementMira Lavandier
 
Trabajo ppt programa formativo
Trabajo ppt programa formativoTrabajo ppt programa formativo
Trabajo ppt programa formativoJwilfre Enalvi
 
Introduccion al mercadeo en red ein sof_network
Introduccion al mercadeo en red ein sof_networkIntroduccion al mercadeo en red ein sof_network
Introduccion al mercadeo en red ein sof_networkAntonio Ang
 
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...JUAN AGUILAR
 
Induccion general sgi
Induccion general sgiInduccion general sgi
Induccion general sgiGloria Daza
 
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisDossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisBâle Région Mag
 
Chats guerisseurs
Chats guerisseursChats guerisseurs
Chats guerisseursSaqqarah 31
 
02 nuevas tecnologías en investigación medioambiental
02 nuevas tecnologías en investigación medioambiental02 nuevas tecnologías en investigación medioambiental
02 nuevas tecnologías en investigación medioambientalIES Montes de Toledo
 

Viewers also liked (20)

Baromètre Mobile Marketing Association France : Déc 2013 - infographie
Baromètre Mobile Marketing Association France : Déc 2013 - infographieBaromètre Mobile Marketing Association France : Déc 2013 - infographie
Baromètre Mobile Marketing Association France : Déc 2013 - infographie
 
Presentación II MKT Intelligence - Christina Saksanian - Hedaz
Presentación II MKT Intelligence - Christina Saksanian - HedazPresentación II MKT Intelligence - Christina Saksanian - Hedaz
Presentación II MKT Intelligence - Christina Saksanian - Hedaz
 
Cocktails Mariage 2012
Cocktails Mariage 2012Cocktails Mariage 2012
Cocktails Mariage 2012
 
Digital Education: a vision
Digital Education: a visionDigital Education: a vision
Digital Education: a vision
 
Tob13 12
Tob13 12Tob13 12
Tob13 12
 
Administracion de proyectos li
Administracion de proyectos liAdministracion de proyectos li
Administracion de proyectos li
 
La vidéo comme aide à l’entraînement
La vidéo comme aide à l’entraînementLa vidéo comme aide à l’entraînement
La vidéo comme aide à l’entraînement
 
Guide tva travaux dans logement
Guide tva travaux dans logementGuide tva travaux dans logement
Guide tva travaux dans logement
 
Trabajo ppt programa formativo
Trabajo ppt programa formativoTrabajo ppt programa formativo
Trabajo ppt programa formativo
 
Introduccion al mercadeo en red ein sof_network
Introduccion al mercadeo en red ein sof_networkIntroduccion al mercadeo en red ein sof_network
Introduccion al mercadeo en red ein sof_network
 
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...
Objetos de aprendizaje multimedia en asignaturas de grado en ingeniería: Vide...
 
Induccion general sgi
Induccion general sgiInduccion general sgi
Induccion general sgi
 
100%la tex beamer
100%la tex beamer100%la tex beamer
100%la tex beamer
 
PIE247 Lead capture pages
PIE247 Lead capture pagesPIE247 Lead capture pages
PIE247 Lead capture pages
 
Ensemble pour vaincre la pauvreté
Ensemble pour vaincre la pauvretéEnsemble pour vaincre la pauvreté
Ensemble pour vaincre la pauvreté
 
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-LouisDossier de presse février 2014 Théâtre La Coupole Saint-Louis
Dossier de presse février 2014 Théâtre La Coupole Saint-Louis
 
Se presenter3ºeso
Se presenter3ºesoSe presenter3ºeso
Se presenter3ºeso
 
Chats guerisseurs
Chats guerisseursChats guerisseurs
Chats guerisseurs
 
02 nuevas tecnologías en investigación medioambiental
02 nuevas tecnologías en investigación medioambiental02 nuevas tecnologías en investigación medioambiental
02 nuevas tecnologías en investigación medioambiental
 
Java Efficace
Java EfficaceJava Efficace
Java Efficace
 

Similar to Curso de android

Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp UneMarcos Jara
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de androidwiliam lliulli herrera
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones androidedwin
 
Android la plataforma móvil open source
Android la plataforma móvil open sourceAndroid la plataforma móvil open source
Android la plataforma móvil open sourceIsrael Camacho
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasScio Consulting
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.Internet Security Auditors
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 
Cómo construir portales para móviles y tables con Liferay 6.1
Cómo construir portales para móviles y tables con Liferay 6.1Cómo construir portales para móviles y tables con Liferay 6.1
Cómo construir portales para móviles y tables con Liferay 6.1Julio Camarero
 
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...Ivan Petrlik
 

Similar to Curso de android (20)

Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
#Cappacitate2015 Bogota
#Cappacitate2015 Bogota#Cappacitate2015 Bogota
#Cappacitate2015 Bogota
 
Cappacitate Pereira
Cappacitate PereiraCappacitate Pereira
Cappacitate Pereira
 
Android Basics v2.5
Android Basics v2.5Android Basics v2.5
Android Basics v2.5
 
Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp Une
 
R esume libro el gran libro de android
R esume libro el gran libro de androidR esume libro el gran libro de android
R esume libro el gran libro de android
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Aplicaciones android
Aplicaciones androidAplicaciones android
Aplicaciones android
 
Android la plataforma móvil open source
Android la plataforma móvil open sourceAndroid la plataforma móvil open source
Android la plataforma móvil open source
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles Híbridas
 
Sesion uno azuay
Sesion uno azuaySesion uno azuay
Sesion uno azuay
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Android Pres3
Android Pres3Android Pres3
Android Pres3
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Cómo construir portales para móviles y tables con Liferay 6.1
Cómo construir portales para móviles y tables con Liferay 6.1Cómo construir portales para móviles y tables con Liferay 6.1
Cómo construir portales para móviles y tables con Liferay 6.1
 
Atix20
Atix20Atix20
Atix20
 
Gps
GpsGps
Gps
 
Gps
GpsGps
Gps
 
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...GUIA DE  LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
GUIA DE LABORATORIO DEL USO DE LOS FRAMEWORS PHONEGAP Y JQUERY MOBILE EN APL...
 

Curso de android

  • 1. Desarrollo  de  Aplicaciones  Móviles  en  Android   Profesorado:   Jorge  E.  Carballo  Franquis   David  D.  Harjani  Harjani   Director:   José  Luis  Roda  
  • 2. Índice   •  SQLite   •  Tabs   •  Closing   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   2  
  • 3. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   3  
  • 4. 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,  BlackBerry  OS,   webOS)   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   4  
  • 5. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   5  
  • 6. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   6  
  • 7. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   7  
  • 8. 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)  {}     11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   8  
  • 9. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   9  
  • 10. 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)  {}     11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   10  
  • 11. Pestañas   •  Las  pestañas  o  Tabs  facilitan  la  navegación  en   nuestra  aplicación  
  • 12. 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  
  • 13. 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>  
  • 14. 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());  
  • 15. Closing   •  More…     –  Google  I/O  2009   –  Google  I/O  2010   –  Google  I/O  2011   –  Autores   •  Mark  Murphy   •  Reto  Meier   •  Ed  Burnete   –  Las  API  Demos  que  provee  el  SDK,  hechas  por  el   propio  equipo  de  Android   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   15  
  • 16. Closing   •  Seguridad  en  Smartphones   –  En  la  mayoría  de  procesadores,  los  algoritmos  de   cifrado  más  importantes  están  implementados  en  el   chip  (hard-­‐wired)   –  UWlizamos  algoritmos  de  seguridad  constantemente   en  Internet  (redes  Wi-­‐Fi,  protocolo  HTTPS)   –  Podemos  acceder  a  ellos  a  través  de  la  librería  java   crypto  (pero  no  es  trivial)   –  Es  recomendable  guardar  las  contraseñas  encriptadas,   y  si  es  posible,  no  usar  algoritmos  débiles  como  MD5,   SHA-­‐1   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   16  
  • 17. Closing   •  Power  Efficiency   –  Los  Smartphones  se  construyen  siguiendo  la   ideología  System-­‐on-­‐a-­‐Chip  (SoC)   –  Todos  los  componentes  (procesador,  módem   [radios],  adaptador  de  pantalla,  cámaras,  GPS,   micrófonos,  etc.)  están  en  una  sola  placa  o  chip   –  Un  Smartphone  no  posee  un  único  procesador,   sino  uno  específico  para  determinadas  funciones   –  Cuando  hablamos  de  un  ARM11,  ARM  Cortex  A8/ A9,  hablamos  del  procesador  de  aplicaciones   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   17  
  • 18. Closing   •  La  industria  de  hardware  en  smartphones  es  bastante   diferente  a  la  de  los  PCs   •  Actualmente,  hablamos  de  que  una  implementación  de   ARM  Cortex  A8  puede  variar  entre  1000  y  2000  MIPS   (Million  instrucWons  per-­‐second),  siendo  un  procesador   súper  escalar   •  Un  ARM  Cortex  A9  alcanza  perfectamente  4000  MIPS,  con   promesas  de  hasta  8000   •  Los  fabricantes  de  smartphones  piden  los  componentes  a   disWntas  empresas  (la  pantalla,  los  botones,  los  plásWcos,  el   SoC,  etc.)  y  luego  los  ensamblan  en  sus  fábricas   •  La  media  de  Wempo  de  desarrollo  de  un  smartphone,  desde   su  concepción  hasta  el  mercado,  es  de  18  meses   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   18  
  • 19. Closing   •  Actualmente,  estamos  entrando  en  la  tercera   generación  de  disposiWvos  Android  (Galaxy  Nexus   S,  Samsung  Galaxy  S  II,  HTC  SensaWon,  LG   OpWmus  2X)   •  Comienzan  a  aparacer  tablets  con  Android   (Samsung  Galaxy  Tab  10.1,  Motorola  Xoom)   •  La  verdadera  explosión  de  los  teléfonos  mul$   core  (Cortex  A9)  está  aún  por  llegar   •  Intel,  con  su  «Atom  reducido»,  no  sigue  la   arquitectura  ARM  sino  la  x86.   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   19  
  • 20. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   20  
  • 21. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   21  
  • 22. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   22  
  • 23. 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   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   23  
  • 24. 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  el  Market;  especial  mención   merecen  la  Amazon  Android  Appstore  y  Getjar   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   24  
  • 25. Closing   •  Eficiencia   –  Cuando  programamos  para  un  ordenador,  hacer   un  bucle  como:     •  for  (int  k  =  0;  k  <  S[i][j]*R[i][j]  +  1;  k++)   –  No  Wene  graves  consecuencias,  pero  en  un  móvil   sí,  porque  repeWmos  el  gasto  de  batería  para  la   misma  operación   –  De  hecho,  este  bucle  «clásico»  ya  es  ineficiente:   •  For  (int  i  =  0;  i  <  myString.length;  i++)   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   25  
  • 26. Closing   •  Eficiencia   –  Cuando  escribimos  código  y  llamamos  código  desde   las  acWvidades,  estamos  ejecutando  desde  el  hilo  de  la   UI   –  Si  el  código  que  ejecutamos  tarda  más  de  5  segundos,   Android  detectará  que  la  UI  ha  dejado  de  responder   ante  el  usuario  y  le  preguntará  si  quiere  cerrarla   –  Debemos  separar  el  código  lento  en  un  nuevo  hilo,  y   mantener  el  hilo  de  la  UI  ocupado  con  un   ProgressDialog   –  También  podemos  hacer  uso  de  los  Tasks,  que  son   clases  que  nos  permiten  ejecutar  código  en  hilos   disWntos  a  la  UI  con  una  interfaz  pre-­‐definida   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   26  
  • 27. Closing   •  ¿Es  importante  tener  un  disposiWvo  Android   de  verdad  como  desarrollador?   –  La  respuesta  es  siempre  SÍ   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   27  
  • 28. Closing   •  ¿Vale  la  pena  gastarse  tanto  dinero?   –  Depende  de  si  vamos  a  inverWr  horas  en   desarrollar  aplicaciones  y  colocarlas  en  el  Android   Market   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   28  
  • 29. Closing   •  Hay  tantos  disposiWvos  que  no  sé  cuál  comprar.   ¿Qué  es  lo  ideal?   –  Lo  ideal  es  tener  uno  de  cada  Wpo  de  pantalla   –  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:   uno  de  gama  baja/media  (HTC  Wildfire  S,  HTC   Legend,  etc.)  y  uno  de  gama  alta  (Galaxy  Nexus,   Samsung  Galaxy  S  II,  HTC  SensaWon,…)     11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   29  
  • 30. Closing   •  ¿Algo  más  que  se  les  ocurra?   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   30  
  • 31. Closing   ¡¡¡Gracias!!!   Jorge  Carballo  Franquis      (jelcaf@gmail.com)   David  Dinesh  Harjani  Harjani   (goldrunner192287@gmail.com,  @dinesharjani)   11/7/11   Desarrollo  de  Aplicaciones  Móviles  en  Android   31