0
Android Bootcamp 101:Mi primera Aplicación Android          Leo Fishman         leo@gtugs.org       Buenos Aires GTUG
Descarga de ArchivosPor favor, copie la carpeta BOOTCAMP a su      escritorio (o para donde prefiera)
¿Que es Android?
Componentes de una aplicación                                 Activities                                        Represent...
Intents Los activities, Service y Broadcast Recivers se activanmediante mensajes llamados Intents que pueden ser de la    ...
Manifest                    AndroidManifest.xml , en el carpeta raiz de la aplicación                            Registr...
Activity Lifecycle
             Objetivos1.Instalar IDE (Eclipse).2.Instalar el Plugin ADT.3.Configurar al menos un “Virtual Device” (AVD) o...
Instalación del Plugin ADT                En Eclipse:   Help -> Install New Software.... -> Add           Name: Android Pl...
Crear un Virtual DeviceWindow -> AVD Manager -> Virtual Devices->New               Name: MyAVD             Target: Android...
Proyecto Hello World     File -> New -> Android Project        Project Name:   HelloWorld         Build Target: Android 2....
src/com/example/HelloActivity.java            - onCreate()    - Bundle savedInstanceState  - setContentView(R.layout.main);
res/layout/main.xmlDefine el layout de la Activity
res/layout/main.xml   LinearLayout
res/layout/main.xml       android:orientation="vertical"android:layout_width / android:layout_height                "fill_...
res/values/strings.xmlCadenas de caracteres de la aplicación
Prueba  Project -> Run(Ctrl + Shift + F11)
Esto es una Activity
Upgrade: Una lista
Crear res/layout/list_item.xml [1]          <?xml version="1.0" encoding="utf-8"?>                          <TextViewxmlns...
Modificar res/layout/main.xml [2]          <?xml version="1.0" encoding="utf-8"?>                       <LinearLayoutxmlns...
HelloActivity.java [2]      public class HelloActivity extends Activity i {      static final String[] COUNTRIES = { "Braz...
Prueba  Project -> Run(Ctrl + Shift + F11)
HelloActivity.java [2]   public class HelloActivity extends Activity implements                       OnItemClickListener ...
Prueba  Project -> Run(Ctrl + Shift + F11)
EditText y Botón para Añadir
Modificar main.xml [4]                     <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schem...
Prueba  Project -> Run(Ctrl + Shift + F11)
Ahora vamos a implementar...
HelloActivity.java [5]             package com.example.helloworld;                         import ...        public class ...
... HelloActivity.java [5]     public void onItemClick(AdapterView<?> parent,                View view, int pos, long id) ...
Prueba  Project -> Run(Ctrl + Shift + F11)
ExperimentoCerrar la aplicación (oprimiendo "Home") Arrancarla nuevamente desde el menú            de aplicaciones.       ...
ExperimentoEl contenido se queda en la lista!      ¿Por qué pasa eso?
Experimento       Porque Android hace "Activity Lifecycle Management"y puede mantener activas o cerrar Activities conforme...
Experimento 2Cerrar la aplicación (oprimindo "Home") Hacer Force Close a traves del menú         Menu -> Manage Apps ->   ...
Experimento 2    Resultado:El contenido se fué.
¿Como grabar el contenido de una   manera que sea persistente entre sesiones de mi aplicación?
Fácil -> SharedPreferencesCompleto -> Base de datos SQLite
SharedPreferences         SharedPreferences sp =    getPreferences(MODE_PRIVATE);                     Leer:String x = sp.g...
HelloActivity.java [6]                  void saveData() {             SharedPreferences.Editor spe =           getPreferen...
HelloActivity.java [6]   public void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);...
HelloActivity.java [6]      public void onClick(View view) {            EditText et = (EditText)         findViewById(R.id...
Prueba  Project -> Run(Ctrl + Shift + F11)
El "Toast" que aparece cuando se hace      click en la lista es aburrido...¿Como se puede implementar un Web    Search en ...
... HelloActivity.java [7]    public void onItemClick(AdapterView<?>                    parent,           View view, int p...
¿Preguntas?
Referencias:     Elaborado (con adaptaciones) a partir de los tutoriales:http://developer.android.com/resources/tutorials/...
http://bsas.gtugs.org/
Upcoming SlideShare
Loading in...5
×

ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPRENDIMIENTO DE APLICACIONES MÓVILES

1,239

Published on

Este “Bootcamp” es la primera de una serie de capacitaciones que se dictarán en varios lugares y contextos. Durante este “Bootcamp” se verán las bases para crear aplicaciones Android usando eclipse + ADT (Android Development Tools).


Durante el curso cubriremos:

Descripción básica de sistemas Android y sus principales beneficios para usuarios, desarrolladores y empresas.

Instalación y configuración del ambiente de desarrollo.

Creación de una aplicación. Emulador y deploy en dispositivos android.

Conceptos básicos sobre arquitectura y ciclos de vida de aplicaciones Android. Layouts e Intents.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,239
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
36
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPRENDIMIENTO DE APLICACIONES MÓVILES"

  1. 1. Android Bootcamp 101:Mi primera Aplicación Android Leo Fishman leo@gtugs.org Buenos Aires GTUG
  2. 2. Descarga de ArchivosPor favor, copie la carpeta BOOTCAMP a su escritorio (o para donde prefiera)
  3. 3. ¿Que es Android?
  4. 4. Componentes de una aplicación Activities  Representa una Pantalla con UI  Son independientes entre ellas Se pueden referenciar Activities de otras aplicaciones (vía Intent)  Extienden de la clase Activity Services  Corren en el background  Para porcesos complejos o para servir a llamadas remotas  No proveen UI  Extienden de la clase Service Content Providers  Comparten un conjunto de información de la aplicación  Pueden leer/escribir informacion privada de la aplicación  Extienden de la clase ContentProvider Broadcast Recievers  Responden a “mensajes generales”  Pueden crear notificaciones en la barra de estado  Extienden de la clase BroadcastReciever
  5. 5. Intents Los activities, Service y Broadcast Recivers se activanmediante mensajes llamados Intents que pueden ser de la propia aplicación o de otras.Para Activities y Services los intents se configuran con una Accion (VIEW , SEND; etc.) y una URI que especifica la ubicacion de la informacion sobre la que se va a actuar. Para los Broadcast Recievers los intents incluyen unicamente el “mensaje” que se envió.
  6. 6. Manifest  AndroidManifest.xml , en el carpeta raiz de la aplicación  Registra todos los componentes que conforman la aplicación y sus capacidades de recibir intents.  Identifica los permisos que requiere la aplicación.  Define el nivel mínimo de API a utilizar. Define requerimientos de hardware o software requeridos por la aplicación.  Define los APIs ( ademas del Android Framework API) con los que la aplicación va a interactuar.
  7. 7. Activity Lifecycle
  8. 8.  Objetivos1.Instalar IDE (Eclipse).2.Instalar el Plugin ADT.3.Configurar al menos un “Virtual Device” (AVD) o“Hardware Device”.4.Crear un Proyecto Android.5.Construir una aplicación Android.6.Desplegar la aplicación en un dispositivo
  9. 9. Instalación del Plugin ADT En Eclipse: Help -> Install New Software.... -> Add Name: Android Plugin Archive: ADT-10.0.0.zip (en la carpeta BOOTCAMP) [x] Developer Tools[ ] DESMARQUE "Check all update sites..." Next, next, next....., restart.
  10. 10. Crear un Virtual DeviceWindow -> AVD Manager -> Virtual Devices->New Name: MyAVD Target: Android 2.1 Skin: HVGA Create AVD Close
  11. 11. Proyecto Hello World File -> New -> Android Project Project Name:   HelloWorld Build Target: Android 2.1 Properties:   Application Name:  HelloWorld  Package Name:  com.example.helloworld   Create Activity:  HelloActivity
  12. 12. src/com/example/HelloActivity.java - onCreate() - Bundle savedInstanceState - setContentView(R.layout.main);
  13. 13. res/layout/main.xmlDefine el layout de la Activity
  14. 14. res/layout/main.xml LinearLayout
  15. 15. res/layout/main.xml android:orientation="vertical"android:layout_width / android:layout_height "fill_parent" "wrap_content“ String Resources: en Java: R.string.string_name en XML:@string/string_name
  16. 16. res/values/strings.xmlCadenas de caracteres de la aplicación
  17. 17. Prueba Project -> Run(Ctrl + Shift + F11)
  18. 18. Esto es una Activity
  19. 19. Upgrade: Una lista
  20. 20. Crear res/layout/list_item.xml [1] <?xml version="1.0" encoding="utf-8"?> <TextViewxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:textSize="16sp" > </TextView> Define el layout de cada iten en la lista
  21. 21. Modificar res/layout/main.xml [2] <?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/mylistview"  android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
  22. 22. HelloActivity.java [2] public class HelloActivity extends Activity i {     static final String[] COUNTRIES = { "Brazil",              "Argentina","Mexico" }; @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);    ListView lv = (ListView) findViewById(R.id.mylistview);     lv.setAdapter(new ArrayAdapter<String>(this,          R.layout.list_item,         COUNTRIES));      }
  23. 23. Prueba Project -> Run(Ctrl + Shift + F11)
  24. 24. HelloActivity.java [2] public class HelloActivity extends Activity implements OnItemClickListener {     static final String[] COUNTRIES = { "Brazil",              "Argentina","Mexico" }; @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);    ListView lv = (ListView) findViewById(R.id.mylistview);     lv.setAdapter(new ArrayAdapter<String>(this,          R.layout.list_item,         COUNTRIES));     lv.setOnItemClickListener(this); } public void onItemClick(AdapterView<?> parent, View view,      int pos, long id) {     Toast.makeText(getApplicationContext(),          ((TextView) view).getText(),         Toast.LENGTH_SHORT).show(); }
  25. 25. Prueba Project -> Run(Ctrl + Shift + F11)
  26. 26. EditText y Botón para Añadir
  27. 27. Modificar main.xml [4] <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" >     <LinearLayout         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:orientation="horizontal">         <EditText              android:id="@+id/mytextview"             android:layout_width="200sp"             android:layout_height="wrap_content"             android:text=""/>         <Button              android:id="@+id/mybutton"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:text="Añadir"/>     </LinearLayout>     <ListView         android:id="@+id/mylistview"         android:layout_width="fill_parent"         android:layout_height="fill_parent"/> </LinearLayout>
  28. 28. Prueba Project -> Run(Ctrl + Shift + F11)
  29. 29. Ahora vamos a implementar...
  30. 30. HelloActivity.java [5] package com.example.helloworld;  import ... public class HelloActivity extends Activity     implements OnItemClickListener, OnClickListener {     private List<String> countries =          new ArrayList<String>();     private ArrayAdapter<String> adapter;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         countries.add("Mexico");         ListView lv = (ListView)              findViewById(R.id.mylistview);         adapter = new ArrayAdapter<String>(             this, R.layout.list_item, countries);         lv.setAdapter(adapter);         lv.setOnItemClickListener(this);        Button btn = (Button) findViewById(R.id.mybutton);         btn.setOnClickListener(this); } ...
  31. 31. ... HelloActivity.java [5] public void onItemClick(AdapterView<?> parent,     View view, int pos, long id) {     Toast.makeText(getApplicationContext(),                     ((TextView)view).getText(),     Toast.LENGTH_SHORT).show(); } public void onClick(View view) {    EditText et = (EditText) findViewById(R.id.mytextview);     countries.add(et.getText().toString());     adapter.notifyDataSetChanged(); }
  32. 32. Prueba Project -> Run(Ctrl + Shift + F11)
  33. 33. ExperimentoCerrar la aplicación (oprimiendo "Home") Arrancarla nuevamente desde el menú de aplicaciones. ¿Cual es el resultado?
  34. 34. ExperimentoEl contenido se queda en la lista! ¿Por qué pasa eso?
  35. 35. Experimento Porque Android hace "Activity Lifecycle Management"y puede mantener activas o cerrar Activities conforme la necesidad
  36. 36. Experimento 2Cerrar la aplicación (oprimindo "Home") Hacer Force Close a traves del menú Menu -> Manage Apps -> Hello World -> Force CloseArrancarla nuevamente desde el menú de aplicaciones. ¿Cual es el resultado?
  37. 37. Experimento 2 Resultado:El contenido se fué.
  38. 38. ¿Como grabar el contenido de una manera que sea persistente entre sesiones de mi aplicación?
  39. 39. Fácil -> SharedPreferencesCompleto -> Base de datos SQLite
  40. 40. SharedPreferences SharedPreferences sp = getPreferences(MODE_PRIVATE); Leer:String x = sp.getString("key", "defaultvalue"); Grabar: SharedPreferences.Editor spe = sp.edit(); spe.putString("key", "value"); spe.commit();
  41. 41. HelloActivity.java [6] void saveData() {     SharedPreferences.Editor spe =         getPreferences(MODE_PRIVATE).edit();     StringBuilder sb = new StringBuilder();     for (int i = 0; i < countries.size(); i++)         sb.append( ((i == 0) ? "" : ";")             + countries.get(i));     spe.putString("countries", sb.toString());     spe.commit(); } void loadData() {     SharedPreferences sp =                  getPreferences(MODE_PRIVATE);     String countryList =     sp.getString("countries",         "Argentina;Brazil;Chile;Mexico");    for (String country : countryList.split(";"))         countries.add(country); }
  42. 42. HelloActivity.java [6] public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     loadData();     ListView lv = (ListView)     findViewById(R.id.mylistview);     adapter = new ArrayAdapter<String>(this,     R.layout.list_item, countries);     lv.setAdapter(adapter);     lv.setOnItemClickListener(this);    Button btn = (Button) findViewById(R.id.mybutton);     btn.setOnClickListener(this); }
  43. 43. HelloActivity.java [6] public void onClick(View view) {     EditText et = (EditText)     findViewById(R.id.mytextview);    countries.add(et.getText().toString());     adapter.notifyDataSetChanged();     saveData(); }
  44. 44. Prueba Project -> Run(Ctrl + Shift + F11)
  45. 45. El "Toast" que aparece cuando se hace click en la lista es aburrido...¿Como se puede implementar un Web Search en lugar del Toast?
  46. 46. ... HelloActivity.java [7] public void onItemClick(AdapterView<?> parent,      View view, int pos, long id) {     Uri uri =        Uri.parse("http://en.wikipedia.org/" +         "wiki/" +     Uri.encode(countries.get(pos), null));     Intent intent = new Intent(     Intent.ACTION_VIEW, uri);     startActivity(intent); }
  47. 47. ¿Preguntas?
  48. 48. Referencias: Elaborado (con adaptaciones) a partir de los tutoriales:http://developer.android.com/resources/tutorials/hello-world.htmlhttp://developer.android.com/resources/tutorials/views/index.html Para mas información http://developer.android.com/index.html Android Bootcamp 102 ( próximamente )
  49. 49. http://bsas.gtugs.org/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×