SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Cursos de Verano
Desarrollo de aplicaciones móvil Android




        Centro de Estudios de Ingeniería de Software
       María José Rioseco, maria.rioseco@opensystem.cl
Objetivos del Curso


      Dar a conocer las tecnologías de hoy en día a los alumnos.
      Comprender el funcionamiento de Android
      Aprender a manejar el entorno de desarrollo para diseñar aplicaciones Android.




                                Planificación Curso
Lunes 9 de enero de 2012: 10:50 – 13:30 hrs.

          ˃ Sesión 1:

                  +   Presentación,

                  +   Introducción al mundo de la Informática,

                  +   Introducción Android.

Martes 10 de enero de 2012: 14:30 – 18:30 hrs.

          ˃ Sesión 2:

                  +   Inicio de ejemplo de aplicación Android

                  +   Explicar modelo de desarrollo de la aplicación

                  +   Desarrollo de aplicación en Android.



Miércoles 11 de enero de 2012: 10:50 a 13:30 hrs.

          ˃ Sesión 3:

                  +   Finalización de la App ejemplo en el taller

                  +   Formar grupos de trabajo y pensar la idea a desarrollar




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Jueves 12 de enero de 2012: 10:50 a 13 hrs y 14:30 a 18:30 hrs.

           ˃ Sesión 4 :

                  +   Desarrollo de aplicación por grupos.

           ˃ Sesión 5

                  +   Finalización y presentación de la aplicación por grupos.




Sesión I
   1   .- Aprendiendo un poco de modelos …
   2   .- ¿Qué es Android?
   3   .- ¿Qué es un Sistema operativo?
   4   .- ¿Qué es una aplicación?
   5   .- La tienda de aplicaciones de Android




1 .Aprendiendo un poco de modelos
Existen hoy 4 modelos que nos describen como funciona hoy la comunicación hombre –
computadora:

   o   La computadora personal
   o   La realidad virtual
   o   La realidad aumentada
   o   La realidad ubicua




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
La computadora personal, es la comunicación        donde un usuario interactúa con su
computadora.




                            Computadora Personal

La realidad virtual es el sistema donde la interacción y sensación de presencia son igual
al del mundo real.

Para que exista la realidad virtual, tiene que existir algún medio tecnológico que nos
brinde la posibilidad de sensación de presencia física a través de sensores visuales,
auditivos y ópticos.

También debe existir una manera fácil de manipular los objetos virtuales, de la misma
forma que los reales.




                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
Realidad Virtual



La realidad aumentada mezcla la realidad con el mundo virtual, para crear una realidad
mixta en tiempo real.

En la realidad aumentada nos permiten añadir información al mundo real, no es igual a la
realidad virtual, ya que esta sustituye la realidad física por la virtual, lo cual no sucede en
la realidad aumentada.




                                      Realidad Aumentada



La realidad ubicua permite que la información este en todas partes, ya sea en dispositivos
grandes o pequeños.

La computación ubicua forma parte del mundo real y amplia las posibilidades en el.
                        Centro de Estudios de Ingeniería de Software
                       María José Rioseco, maria.rioseco@opensystem.cl
Realidad ubicua



Uno de los medios de estar siempre comunicados, es la telefonía celular, la cual ha tenido
un gran avance este último tiempo:




                               Avances telefonía celular



En esta imagen podemos darnos cuenta como ha avanzado esta, hace poco tiempo
escuchábamos de los “celulares ladrillos”, los cuales fácilmente han quedado en el olvido
y han evolucionado a los modernos Smartphone, que son denominados comercialmente
como celulares inteligentes, y nos permiten más cosas que los teléfonos móviles común,
tienen teclado, pantallas táctiles diferentes.
                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
2. ¿Qué es Android?
Android es un sistema operativo creado por Google para smartphone, el cual es usado
por muchas marcas que existen en el mercado, Motorola, Samsung, LG, entre muchas
otras.

Android es de código abierto, lo cual significa que miles de miles de programadores
alrededor del mundo pueden crear aplicaciones sin restricciones para nuestros
smartphone.




3. ¿Qué es un sistema operativo?
Es un programa que gestiona varios procesos (editores de textos, antivirus, juegos, etc.)
los más conocidos para pc son Windows de Microsoft, también podemos mencionar a
Ubuntu de Linux, Snow Leopard de Mac.

Para celulares también tenemos sistemas operativos, no son los mismos, ya que su nivel
de trabajo es menor que un computador por ende se crean sistemas operativos especiales
pensando en los dispositivos móviles:

Los más conocidos son Android de Google que será en el que trabajaremos, a Windows
Mobile de Microsoft y a IOS de Apple.

4. ¿Qué es una aplicación?
Una aplicación es un programa de software, como un juego, un antivirus, una calculadora,
etc.




                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
5. Tienda de aplicaciones de Android: Android Market
Android nos ofrece su tienda de aplicaciones, donde podremos encontrar muchas App, de
diferentes tipos, deportes, ocio, productividad, y más.

En la Market encontraremos aplicaciones gratuitas y de pago, pero las de pago son de
costos bajos




Sesión II
   1 .- Inicio de ejemplo de aplicación Android
   2 .- Explicar modelo de desarrollo de la aplicación
   3 .- Desarrollo de aplicación en Android.



   1. Inicio ejemplo de aplicación en Android
   Para poder conocer más acerca de Android, y ver que la realización de aplicaciones
   para este, son entretenidas, y realizables, crearemos una aplicación que maneje las
   notas de sus asignaturas y nos entregue el promedio que llevan general con todas las
   asignaturas.

   Para poder expandir el conocimiento aprendido en esta semana, crearemos esta
   aplicación bajo el “Modelo 3 capas” el cual consta:

   Capa 1 -> Datos


                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
Capa 2 -> Lógica de Datos

   Capa 3 -> Interfaz de usuario



   No se pretende que logren un manejo inmediato de estos conceptos, pero que si se
   entienda la idea, cuando hablamos que en la capa 1, tenemos los datos, nos referimos
   que es lugar donde almacenaremos información, por ejemplo el registro civil tiene
   gran cantidad de información de todas las personas que existen y que no en nuestro
   país, imaginemos que el lugar donde se encuentra es toda esa información es un gran
   contenedor llamado base de datos o banco de datos.




                                    Contenedor de datos

En la capa 2 mencionamos a la lógica de negocio, este nombre no nos dice mucho de que
se trata, pero debemos quedarnos con que es aquel que maneja los datos de nuestro
contenedor, saca datos, agrega datos, elimina datos, etc.

Se encuentra en una posición intermedia porque es el que recibe ordenes, recibe una
petición de algo y el la ejecuta y responde al que le pregunto.



En la capa 3, mencionamos a la interfaz de usuario, la que fácilmente definiremos como
aquella que el usuario visualiza, es el producto final.

Esta capa recibe peticiones de usuario, la cual la enviar a la capa de negocio y recibe la
respuesta y realiza lo pedido por el usuario.




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Capa de
                                   Negocio




                            Modelo de 3 capas




Creación del modelo de datos

Para poder crear el modelo de datos, nos apoyamos en un software llamado Visual
Paradigm, es uno de muchos que nos ayudan a crear estos modelos.




                                   Visual Paradigm




               Centro de Estudios de Ingeniería de Software
              María José Rioseco, maria.rioseco@opensystem.cl
Para poder crear el modelo debemos darle el nombre a nuestro contenedor, le
llamaremos notas_app, y crearemos un espacio donde dejaremos la información o
datos, llamada “TABLA” de nombre Asignatura, dentro de esta tabla dejaremos en
cada columna un dato específico, como nombre de la asignatura y sus notas
correspondientes.




                                Tabla: Asignatura




Creación modelo de negocio

Una vez creado nuestro modelo de datos, pasamos al siguiente paso, que es crear
el modelo de negocio, crearemos las posibles solicitudes de datos que le hará la
interfaz de usuario.

Para realizar esto, trabajaremos en el IDE Eclipse 3.6 bajo el lenguaje de
programación Java.
Si bien programamos en Java, no deberás realizar esto, ya que se requiere un nivel
de programación maduro.
El modelo de negocio será una caja negra en como se hizo, pero si conocerás como
podrás comunicarte con el y como se comunicará contigo.




               Centro de Estudios de Ingeniería de Software
              María José Rioseco, maria.rioseco@opensystem.cl
Lógica o modelo de negocio



La manera en que podrás comunicarte con el modelo de negocio será a través de
agregarAsignatura y el modelo te responderá por medio de mostrarPromedio.

Creación cliente

Una vez listas ambas capas, comenzaremos con la creación de nuestra interfaz de
usuario, que será la capa 3, y que será creada en Android.




Sesión III:

Creación cliente en Android

Retomando la última parte, debemos construir la interfaz de usuario en Android.
Primero creamos un proyecto de aplicación de nombre NotasAsigDAEM, de la
siguiente forma:

1. - Click derecho -> New -> Android Project




               Centro de Estudios de Ingeniería de Software
              María José Rioseco, maria.rioseco@opensystem.cl
2.- Nos aparecerá una ventana como la siguiente y digitamos el nombre que
      dijimos anteriormente, NotasAsigDAEM:




                                  Nuevo Proyecto Android

3.- Presionamos Next ->, y nos aparecerá una ventana donde tendremos que seleccionar
la versión de Android en que trabajaremos, nosotros ocuparemos la versión 2.1.




                     Centro de Estudios de Ingeniería de Software
                    María José Rioseco, maria.rioseco@opensystem.cl
Seleccionar versión de Android a trabajar




 Centro de Estudios de Ingeniería de Software
María José Rioseco, maria.rioseco@opensystem.cl
4.- Presionamos Next -> nuevamente y nos aparece una ventana donde deberemos dar la
última información de configuración, en Package Name digita notas.daem y Finish.




5.- Una vez finalizado, nos aparecerá nuestro proyecto de esta forma:




                                   Nuevo proyecto

                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Ahora comencemos armas nuestra App, nos vamos a res -> Layout-> main.xml




                                     *Árbol de la App



Con ayuda del editor grafico que nos facilita Android, para crear las pantallas editaremos
el main.xml




                                 Editor gráfico de Android



                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Arrastraremos un TextView, un EditText y un Button, y vamos personalizando cada
componente.

El TextView, le hacemos click derecho Edit Text:




Y agregamos un nuevo String, en el botón de abajo New String.




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
1
                                   2




En String colocamos el texto que queremos que se vea (1) y en New R.String (2) como se
llamará interno, le damos a OK y luego la seleccionamos y a Ok de nuevo.

Repitamos los mismos pasos para el texto del Botón, y nos diga Agregar Notas.

El EditText, será el encargado de recibir lo que el usuario escriba en la pantalla, lo
personalizaremos, pero en el caso de su ID, que será el que nos servirá para identificarlo,
click derecho Edit ID -> y le ponemos como id editasignatura.

Ya terminamos con una pantalla, ahora crearemos otra nueva que aparecerá cuando
presionemos el botón Agregar Notas.

Vamos a Layout -> (click derecho) -> New -> Android XML File




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Creación de un XML nuevo



En File debemos colocar el nombre que le pondremos a nuestros xml, los nombres son en
minúscula, sin espacios, le pondremos notas.xml




                            Nombre de Android XML File

                     Centro de Estudios de Ingeniería de Software
                    María José Rioseco, maria.rioseco@opensystem.cl
Una vez creado nuestro xml notas.xml, le agregaremos los componentes de la misma
manera que lo hicimos en el main.xml.

Agregaremos:

1 TextView para el nombre de la Asignatura,

1 TableLayout para agregar dentro las notas,

   3 TableRow

     Dentro de cada TableRow agregaremos un TextView y un EditText

1 Button para enviar las notas.

Debería quedar como se muestra en la siguiente imagen.




                              notas.xml con sus componentes.

Partamos dándole nombres más representativos a nuestros componentes, el TextView no
tendrá texto, se cargará desde la pantalla anterior, mas adelante veremos eso, así que hay
que quitarle el texto que trae por defecto.

Los TextView dentro de la TableLayout, deben ir con los nombre Nota 1, Nota 2 y Nota 3, y
los EditText, debes editar los Identificadores, Edit ID, por editnota1, editnota2 y editnota3.

                        Centro de Estudios de Ingeniería de Software
                       María José Rioseco, maria.rioseco@opensystem.cl
Al botón también hay que cambiar el texto, por el texto “Enviar Notas”, y estaríamos listos
con nuestro notas.xml



Nota: La interfaz se puede mejorar, pero no esencial en este instante.



La programación quedará a disposición de lo que quieren profundizar en el código, pero
no se explicará como se realizó. Al final de este informe se adjuntará como anexo el
código fuente.

Al finalizar la aplicación podremos ver en el emulador de Android la aplicación como
sigue:




                                      App de Notas




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Sesión 4
       1 .- Desarrollo de aplicación por grupos.
       2 .- Finalización de la App y presentación.




Para la última sesión, se desafiará a los participantes a la creación de alguna aplicación
sencilla, y fácil que se pueda desarrollar en grupo.

Se deben tener en cuenta algunos puntos para poder desarrollar la idea:

      Se debe buscar satisfacer una necesidad.
      Debe ser sencilla
      Beneficios o mejoras al realizar la App.




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
Anexos

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class NotasAsigDAEMActivity extends Activity {

       EditText nombreasignatura;
       Button btnguardaasig;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    nombreasignatura = (EditText)findViewById(R.id.editasignatura);
    btnguardaasig = (Button)findViewById(R.id.btnguardaasig);

    btnguardaasig.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {

                           String nameAsignatura =
nombreasignatura.getText().toString();
                           if(!("").equals(nameAsignatura) && nameAsignatura != null){

                                    Intent i = new Intent();
                                    i.setClass(getApplicationContext(), NotaApp.class);
                                    i.putExtra("asignatura", nameAsignatura);
                                    startActivity(i);

                            }

                            else{
                                   Toast.makeText(getApplicationContext(), "No ha
digitado una asignatura", Toast.LENGTH_LONG).show();
                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
}
                     }
              });
    }
}




Clase Nota.java

import ws.Conexionws;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class NotaApp extends Activity {

        TextView textoAsignatura;
        EditText nota1;
        EditText nota2;
        EditText nota3;
        Button btnagregarnotas;
        Conexionws cws = new Conexionws();
        String asignatura = "";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
               // TODO Auto-generated method stub
               super.onCreate(savedInstanceState);
               setContentView(R.layout.notas);


              textoAsignatura = (TextView) findViewById(R.id.textAsignatura);

                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
nota1 = (EditText) findViewById(R.id.editnota1);
              nota2 = (EditText) findViewById(R.id.editnota2);
              nota3 = (EditText) findViewById(R.id.editnota2);
              btnagregarnotas =(Button)findViewById(R.id.btnguardabd);

              Bundle extras = getIntent().getExtras();
              if (extras != null) {
                       asignatura = extras.get("asignatura").toString();
                       if (asignatura != null) {
                                textoAsignatura.setText(asignatura);

                     }
              }


              btnagregarnotas.setOnClickListener(new OnClickListener() {

                     @Override
                     public void onClick(View v) {

                             int n1 = Integer.valueOf(nota1.getText().toString());
                             int n2 = Integer.valueOf(nota2.getText().toString());
                             int n3 = Integer.valueOf(nota3.getText().toString());


                             String resultado = cws.guardanotas(asignatura,n1,n2,n3 , 1);

                            if(("2").equals(resultado)){
                                     Toast.makeText(getApplicationContext(), "Fue
ingresada satisfactoriamente", Toast.LENGTH_LONG).show();
                            }
                            else{
                                     Toast.makeText(getApplicationContext(), "NO pudo
ser guardada", Toast.LENGTH_LONG).show();
                            }
                      }
               });
       }

       /**
        * Menu opcional Volver
        */
       @Override
       public boolean onCreateOptionsMenu(Menu menu) {
                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
MenuInflater inflater = getMenuInflater();
              inflater.inflate(R.menu.menupromedio, menu);
              return true;
       }

       /**
        * Evento que se genera al seleccionar alguna opcion en el menu opcional
        */
       @Override
       public boolean onOptionsItemSelected(MenuItem item) {
              // Handle item selection
              switch (item.getItemId()) {
              case R.id.idconocerprom:

                     String resultado = cws.pedirPromedio(1);
                     Toast.makeText(getApplicationContext(), "Tú promedio es :
"+resultado, Toast.LENGTH_LONG).show();

                     return true;
              default:
                     return super.onOptionsItemSelected(item);
              }
       }

}




Clase Webservice Conexión.java

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;


public class Conexionws {

       private static String METHOD_NAME ;

                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
private static String NAMESPACE ;
      private static String URL;
      String datosJsonString= "";

      public void coneccionwsPropio(){


              NAMESPACE = "http://webservices";
              URL =
"http://186.10.199.201:8080/NotasDaem/services/NotasDaemApp?wsdl";
       }

      public void coneccionwsExterno(){


              NAMESPACE = "http://webservices";
              URL =
"http://200.13.4.205:8080/NotasDaem/services/NotasDaemApp?wsdl";
       }



      /**
       *
       * @param asignaturatex
       * @param n1
       * @param n2
       * @param n3
       * @param idpersona
       * @return
       */
      public String guardanotas(String asignaturatex, int n1,int n2, int n3, int idpersona){

             coneccionwsExterno();

             METHOD_NAME = "agregaAsignatura";

             String SOAP_ACTION = NAMESPACE + METHOD_NAME;

             SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
             PropertyInfo asignatura = new PropertyInfo();
             asignatura.setName("asignatura");
             asignatura.setValue(asignaturatex);
             asignatura.setType(String.class);
                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
PropertyInfo nota1 = new PropertyInfo();
              nota1.setName("nota1");
              nota1.setValue(n1);
              nota1.setType(int.class);

              PropertyInfo nota2 = new PropertyInfo();
              nota2.setName("nota2");
              nota2.setValue(n2);
              nota2.setType(int.class);

              PropertyInfo nota3 = new PropertyInfo();
              nota3.setName("nota3");
              nota3.setValue(n3);
              nota3.setType(int.class);

              PropertyInfo ida = new PropertyInfo();
              ida.setName("idalumno");
              ida.setValue(idpersona);
              ida.setType(int.class);

              request.addProperty(asignatura);
              request.addProperty(nota1);
              request.addProperty(nota2);
              request.addProperty(nota3);
              request.addProperty(ida);

               SoapSerializationEnvelope soapEnvelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
               soapEnvelope.dotNet = true;
               soapEnvelope.implicitTypes =true;
               soapEnvelope.setOutputSoapObject(request);

              AndroidHttpTransport aht = new AndroidHttpTransport(URL);


              try
              {
                    aht.call(SOAP_ACTION, soapEnvelope);
                    SoapPrimitive resultString =
(SoapPrimitive)soapEnvelope.getResponse();
                    datosJsonString =resultString.toString();
                    return datosJsonString;
              }
                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl
catch (Exception e)
             {
                    e.printStackTrace();
                    datosJsonString = "Error Conexion";}
             return datosJsonString;


      }
      /**
       * Metodo que calcula el promedio general de las notas
       * @param idperso
       * @return
       */
      public String pedirPromedio(int idperso){

             coneccionwsExterno();

             METHOD_NAME = "mostrarPromedio";

             String SOAP_ACTION = NAMESPACE + METHOD_NAME;

             SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

             PropertyInfo ida = new PropertyInfo();
             ida.setName("idPersona");
             ida.setValue(idperso);
             ida.setType(int.class);

             request.addProperty(ida);

               SoapSerializationEnvelope soapEnvelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
               soapEnvelope.dotNet = true;
               soapEnvelope.implicitTypes =true;
               soapEnvelope.setOutputSoapObject(request);

             AndroidHttpTransport aht = new AndroidHttpTransport(URL);


             try
             {
                    aht.call(SOAP_ACTION, soapEnvelope);
                    SoapPrimitive resultString =
(SoapPrimitive)soapEnvelope.getResponse();
                      Centro de Estudios de Ingeniería de Software
                     María José Rioseco, maria.rioseco@opensystem.cl
datosJsonString =resultString.toString();
               return datosJsonString;
        }
        catch (Exception e)
        {
               e.printStackTrace();
               datosJsonString = "Error Conexion";}
        return datosJsonString;

    }

}




                Centro de Estudios de Ingeniería de Software
               María José Rioseco, maria.rioseco@opensystem.cl
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="notas.daem"
  android:versionCode="1"
  android:versionName="1.0" >

  <uses-sdk android:minSdkVersion="7" />

  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
      android:name=".NotasAsigDAEMActivity"
      android:label="@string/app_name" >
      <intent-filter>
         <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name="NotaApp"></activity>

  </application>

  <uses-permission android:name="android.permission.INTERNET"></uses-permission>


</manifest>




                       Centro de Estudios de Ingeniería de Software
                      María José Rioseco, maria.rioseco@opensystem.cl

Weitere ähnliche Inhalte

Andere mochten auch

File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution SolutionAbimael Desales López
 
Factorial again! Olimpiada Informática Media IOI- ACM
Factorial again! Olimpiada  Informática Media IOI- ACMFactorial again! Olimpiada  Informática Media IOI- ACM
Factorial again! Olimpiada Informática Media IOI- ACMVictor Aravena
 
Estrategia e Implementación de Sistema Sidra en Chile!!!
Estrategia e Implementación de Sistema Sidra en Chile!!!Estrategia e Implementación de Sistema Sidra en Chile!!!
Estrategia e Implementación de Sistema Sidra en Chile!!!Victor Aravena
 
Taller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeansTaller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeansVictor Aravena
 
El mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosEl mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosAbimael Desales López
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Victor Aravena
 
1. instalaciondeconstruct2 2014
1.  instalaciondeconstruct2 20141.  instalaciondeconstruct2 2014
1. instalaciondeconstruct2 2014Victor Aravena
 
Instructivo dia 1_curso_flex
Instructivo dia 1_curso_flexInstructivo dia 1_curso_flex
Instructivo dia 1_curso_flexVictor Aravena
 
Instructivo dia 3_curso_flex
Instructivo dia 3_curso_flexInstructivo dia 3_curso_flex
Instructivo dia 3_curso_flexVictor Aravena
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistenciaVictor Aravena
 
3. tutorialguiabasico 2014
3.  tutorialguiabasico 20143.  tutorialguiabasico 2014
3. tutorialguiabasico 2014Victor Aravena
 
Instructivo dia 2_curso_flex
Instructivo dia 2_curso_flexInstructivo dia 2_curso_flex
Instructivo dia 2_curso_flexVictor Aravena
 
Manual desarrollo extensiones typo3
Manual desarrollo extensiones typo3Manual desarrollo extensiones typo3
Manual desarrollo extensiones typo3Victor Aravena
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducciónVictor Aravena
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparoVictor Aravena
 
Formulario de implementación de componentes de software transaccional de amb...
Formulario de implementación de  componentes de software transaccional de amb...Formulario de implementación de  componentes de software transaccional de amb...
Formulario de implementación de componentes de software transaccional de amb...Victor Aravena
 
Personajes y comerciantes del mercado municipal
Personajes y comerciantes del mercado municipalPersonajes y comerciantes del mercado municipal
Personajes y comerciantes del mercado municipalVictor Aravena
 

Andere mochten auch (20)

File Processing - Process Execution Solution
File Processing - Process Execution SolutionFile Processing - Process Execution Solution
File Processing - Process Execution Solution
 
Factorial again! Olimpiada Informática Media IOI- ACM
Factorial again! Olimpiada  Informática Media IOI- ACMFactorial again! Olimpiada  Informática Media IOI- ACM
Factorial again! Olimpiada Informática Media IOI- ACM
 
Estrategia e Implementación de Sistema Sidra en Chile!!!
Estrategia e Implementación de Sistema Sidra en Chile!!!Estrategia e Implementación de Sistema Sidra en Chile!!!
Estrategia e Implementación de Sistema Sidra en Chile!!!
 
Taller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeansTaller generación codigopersistenciaderby-netbeans
Taller generación codigopersistenciaderby-netbeans
 
El mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a serviciosEl mejor enfoque para una arquitectura orientada a servicios
El mejor enfoque para una arquitectura orientada a servicios
 
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
Insertar Elemento de Contenido PHP en Typo3 6.0+ 6.2+
 
Tutorial - Ordenar listas Java
Tutorial   - Ordenar listas JavaTutorial   - Ordenar listas Java
Tutorial - Ordenar listas Java
 
1. instalaciondeconstruct2 2014
1.  instalaciondeconstruct2 20141.  instalaciondeconstruct2 2014
1. instalaciondeconstruct2 2014
 
Instructivo dia 1_curso_flex
Instructivo dia 1_curso_flexInstructivo dia 1_curso_flex
Instructivo dia 1_curso_flex
 
Instructivo dia 3_curso_flex
Instructivo dia 3_curso_flexInstructivo dia 3_curso_flex
Instructivo dia 3_curso_flex
 
Taller1 generación codigopersistencia
Taller1 generación codigopersistenciaTaller1 generación codigopersistencia
Taller1 generación codigopersistencia
 
3. tutorialguiabasico 2014
3.  tutorialguiabasico 20143.  tutorialguiabasico 2014
3. tutorialguiabasico 2014
 
Instructivo dia 2_curso_flex
Instructivo dia 2_curso_flexInstructivo dia 2_curso_flex
Instructivo dia 2_curso_flex
 
Manual desarrollo extensiones typo3
Manual desarrollo extensiones typo3Manual desarrollo extensiones typo3
Manual desarrollo extensiones typo3
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducción
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparo
 
Formulario de implementación de componentes de software transaccional de amb...
Formulario de implementación de  componentes de software transaccional de amb...Formulario de implementación de  componentes de software transaccional de amb...
Formulario de implementación de componentes de software transaccional de amb...
 
Encuentro linux 2013
Encuentro linux 2013Encuentro linux 2013
Encuentro linux 2013
 
Personajes y comerciantes del mercado municipal
Personajes y comerciantes del mercado municipalPersonajes y comerciantes del mercado municipal
Personajes y comerciantes del mercado municipal
 
Manual Typo3
Manual  Typo3Manual  Typo3
Manual Typo3
 

Ähnlich wie Planificación Cursos Android

Parte II Curso Android
Parte II Curso AndroidParte II Curso Android
Parte II Curso AndroidVictor Aravena
 
El Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoEl Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoIng-D-SW-TorresKhano--ME
 
Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Selin Carrasco
 
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...Jornadas TIC
 
Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Selin Carrasco
 
Informatica,diseño grafico
Informatica,diseño graficoInformatica,diseño grafico
Informatica,diseño graficoaileenmc
 
TENDENCIAS
TENDENCIASTENDENCIAS
TENDENCIASLoreafp
 
Transit Map - Tecnologia Emergente conclusiones.pptx
Transit Map - Tecnologia Emergente  conclusiones.pptxTransit Map - Tecnologia Emergente  conclusiones.pptx
Transit Map - Tecnologia Emergente conclusiones.pptxANDRESMONTERROSOAREV
 
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptx
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptxTransit_Map_-_Tecnologia_Emergente_conclusiones.pptx
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptxssuser6fd5a81
 
Trabajo veronica almeida
Trabajo veronica almeidaTrabajo veronica almeida
Trabajo veronica almeidaindoamerica
 
Google apps yesmith bautista (2)
Google apps yesmith bautista (2)Google apps yesmith bautista (2)
Google apps yesmith bautista (2)yesmithbautista
 

Ähnlich wie Planificación Cursos Android (20)

Parte II Curso Android
Parte II Curso AndroidParte II Curso Android
Parte II Curso Android
 
El Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un EnsayoEl Modelado de Negocios y la Producción del Software, un Ensayo
El Modelado de Negocios y la Producción del Software, un Ensayo
 
El Diccionario Pictórico Rubi
El Diccionario Pictórico RubiEl Diccionario Pictórico Rubi
El Diccionario Pictórico Rubi
 
Módulo 6 IC3
Módulo 6 IC3Módulo 6 IC3
Módulo 6 IC3
 
Tecnologia web 2
Tecnologia web 2Tecnologia web 2
Tecnologia web 2
 
Parte I Curso Android
Parte I Curso AndroidParte I Curso Android
Parte I Curso Android
 
Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010
 
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...
Exp. 8: “Potenciar el imaginario de estudiantes de ingeniería informática med...
 
Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010Presentación jornadas tic santiago chile 2010
Presentación jornadas tic santiago chile 2010
 
Informatica,diseño grafico
Informatica,diseño graficoInformatica,diseño grafico
Informatica,diseño grafico
 
Los APIs De Telecomunicaciones
Los APIs De TelecomunicacionesLos APIs De Telecomunicaciones
Los APIs De Telecomunicaciones
 
TENDENCIAS
TENDENCIASTENDENCIAS
TENDENCIAS
 
77882
7788277882
77882
 
Ada 3 (1)
Ada 3 (1)Ada 3 (1)
Ada 3 (1)
 
Ada 3 (3)
Ada 3 (3)Ada 3 (3)
Ada 3 (3)
 
Transit Map - Tecnologia Emergente conclusiones.pptx
Transit Map - Tecnologia Emergente  conclusiones.pptxTransit Map - Tecnologia Emergente  conclusiones.pptx
Transit Map - Tecnologia Emergente conclusiones.pptx
 
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptx
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptxTransit_Map_-_Tecnologia_Emergente_conclusiones.pptx
Transit_Map_-_Tecnologia_Emergente_conclusiones.pptx
 
Contenidos digitales
Contenidos digitalesContenidos digitales
Contenidos digitales
 
Trabajo veronica almeida
Trabajo veronica almeidaTrabajo veronica almeida
Trabajo veronica almeida
 
Google apps yesmith bautista (2)
Google apps yesmith bautista (2)Google apps yesmith bautista (2)
Google apps yesmith bautista (2)
 

Mehr von Victor Aravena

Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...
Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...
Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...Victor Aravena
 
Introdución Typo3 6.2
Introdución Typo3 6.2Introdución Typo3 6.2
Introdución Typo3 6.2Victor Aravena
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducciónVictor Aravena
 
6. revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame
6.  revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame6.  revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame
6. revisión y modificación del juego -“space blaster”- Construct 5 - VideoGameVictor Aravena
 
2. principales elementos
2.  principales elementos2.  principales elementos
2. principales elementosVictor Aravena
 
5. taller tutorial-guiabasica 2014
5.  taller tutorial-guiabasica 20145.  taller tutorial-guiabasica 2014
5. taller tutorial-guiabasica 2014Victor Aravena
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparoVictor Aravena
 
Acm ioi-olimpiada informática - universidad frontera 2013
Acm ioi-olimpiada informática - universidad frontera 2013Acm ioi-olimpiada informática - universidad frontera 2013
Acm ioi-olimpiada informática - universidad frontera 2013Victor Aravena
 
Curso veranovideojuegos 2014
Curso veranovideojuegos 2014Curso veranovideojuegos 2014
Curso veranovideojuegos 2014Victor Aravena
 
Programación avanzada torneo acm
Programación avanzada   torneo acmProgramación avanzada   torneo acm
Programación avanzada torneo acmVictor Aravena
 
Parte III Curso Android
Parte III Curso AndroidParte III Curso Android
Parte III Curso AndroidVictor Aravena
 

Mehr von Victor Aravena (13)

Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...
Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...
Presentación CISTI 2016 "Distinciones Conceptuales para la Trazabilidad de l...
 
Introdución Typo3 6.2
Introdución Typo3 6.2Introdución Typo3 6.2
Introdución Typo3 6.2
 
1. tutorial unity3d introducción
1.  tutorial unity3d introducción1.  tutorial unity3d introducción
1. tutorial unity3d introducción
 
6. revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame
6.  revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame6.  revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame
6. revisión y modificación del juego -“space blaster”- Construct 5 - VideoGame
 
2. principales elementos
2.  principales elementos2.  principales elementos
2. principales elementos
 
5. taller tutorial-guiabasica 2014
5.  taller tutorial-guiabasica 20145.  taller tutorial-guiabasica 2014
5. taller tutorial-guiabasica 2014
 
2. tutorial unity3d-disparo
2.  tutorial unity3d-disparo2.  tutorial unity3d-disparo
2. tutorial unity3d-disparo
 
Acm ioi-olimpiada informática - universidad frontera 2013
Acm ioi-olimpiada informática - universidad frontera 2013Acm ioi-olimpiada informática - universidad frontera 2013
Acm ioi-olimpiada informática - universidad frontera 2013
 
Curso veranovideojuegos 2014
Curso veranovideojuegos 2014Curso veranovideojuegos 2014
Curso veranovideojuegos 2014
 
Programación avanzada torneo acm
Programación avanzada   torneo acmProgramación avanzada   torneo acm
Programación avanzada torneo acm
 
Parte III Curso Android
Parte III Curso AndroidParte III Curso Android
Parte III Curso Android
 
Clases scratch
Clases scratchClases scratch
Clases scratch
 
Ppt Curso Flex
Ppt Curso FlexPpt Curso Flex
Ppt Curso Flex
 

Planificación Cursos Android

  • 1. Cursos de Verano Desarrollo de aplicaciones móvil Android Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 2. Objetivos del Curso  Dar a conocer las tecnologías de hoy en día a los alumnos.  Comprender el funcionamiento de Android  Aprender a manejar el entorno de desarrollo para diseñar aplicaciones Android. Planificación Curso Lunes 9 de enero de 2012: 10:50 – 13:30 hrs. ˃ Sesión 1: + Presentación, + Introducción al mundo de la Informática, + Introducción Android. Martes 10 de enero de 2012: 14:30 – 18:30 hrs. ˃ Sesión 2: + Inicio de ejemplo de aplicación Android + Explicar modelo de desarrollo de la aplicación + Desarrollo de aplicación en Android. Miércoles 11 de enero de 2012: 10:50 a 13:30 hrs. ˃ Sesión 3: + Finalización de la App ejemplo en el taller + Formar grupos de trabajo y pensar la idea a desarrollar Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 3. Jueves 12 de enero de 2012: 10:50 a 13 hrs y 14:30 a 18:30 hrs. ˃ Sesión 4 : + Desarrollo de aplicación por grupos. ˃ Sesión 5 + Finalización y presentación de la aplicación por grupos. Sesión I 1 .- Aprendiendo un poco de modelos … 2 .- ¿Qué es Android? 3 .- ¿Qué es un Sistema operativo? 4 .- ¿Qué es una aplicación? 5 .- La tienda de aplicaciones de Android 1 .Aprendiendo un poco de modelos Existen hoy 4 modelos que nos describen como funciona hoy la comunicación hombre – computadora: o La computadora personal o La realidad virtual o La realidad aumentada o La realidad ubicua Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 4. La computadora personal, es la comunicación donde un usuario interactúa con su computadora. Computadora Personal La realidad virtual es el sistema donde la interacción y sensación de presencia son igual al del mundo real. Para que exista la realidad virtual, tiene que existir algún medio tecnológico que nos brinde la posibilidad de sensación de presencia física a través de sensores visuales, auditivos y ópticos. También debe existir una manera fácil de manipular los objetos virtuales, de la misma forma que los reales. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 5. Realidad Virtual La realidad aumentada mezcla la realidad con el mundo virtual, para crear una realidad mixta en tiempo real. En la realidad aumentada nos permiten añadir información al mundo real, no es igual a la realidad virtual, ya que esta sustituye la realidad física por la virtual, lo cual no sucede en la realidad aumentada. Realidad Aumentada La realidad ubicua permite que la información este en todas partes, ya sea en dispositivos grandes o pequeños. La computación ubicua forma parte del mundo real y amplia las posibilidades en el. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 6. Realidad ubicua Uno de los medios de estar siempre comunicados, es la telefonía celular, la cual ha tenido un gran avance este último tiempo: Avances telefonía celular En esta imagen podemos darnos cuenta como ha avanzado esta, hace poco tiempo escuchábamos de los “celulares ladrillos”, los cuales fácilmente han quedado en el olvido y han evolucionado a los modernos Smartphone, que son denominados comercialmente como celulares inteligentes, y nos permiten más cosas que los teléfonos móviles común, tienen teclado, pantallas táctiles diferentes. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 7. 2. ¿Qué es Android? Android es un sistema operativo creado por Google para smartphone, el cual es usado por muchas marcas que existen en el mercado, Motorola, Samsung, LG, entre muchas otras. Android es de código abierto, lo cual significa que miles de miles de programadores alrededor del mundo pueden crear aplicaciones sin restricciones para nuestros smartphone. 3. ¿Qué es un sistema operativo? Es un programa que gestiona varios procesos (editores de textos, antivirus, juegos, etc.) los más conocidos para pc son Windows de Microsoft, también podemos mencionar a Ubuntu de Linux, Snow Leopard de Mac. Para celulares también tenemos sistemas operativos, no son los mismos, ya que su nivel de trabajo es menor que un computador por ende se crean sistemas operativos especiales pensando en los dispositivos móviles: Los más conocidos son Android de Google que será en el que trabajaremos, a Windows Mobile de Microsoft y a IOS de Apple. 4. ¿Qué es una aplicación? Una aplicación es un programa de software, como un juego, un antivirus, una calculadora, etc. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 8. 5. Tienda de aplicaciones de Android: Android Market Android nos ofrece su tienda de aplicaciones, donde podremos encontrar muchas App, de diferentes tipos, deportes, ocio, productividad, y más. En la Market encontraremos aplicaciones gratuitas y de pago, pero las de pago son de costos bajos Sesión II 1 .- Inicio de ejemplo de aplicación Android 2 .- Explicar modelo de desarrollo de la aplicación 3 .- Desarrollo de aplicación en Android. 1. Inicio ejemplo de aplicación en Android Para poder conocer más acerca de Android, y ver que la realización de aplicaciones para este, son entretenidas, y realizables, crearemos una aplicación que maneje las notas de sus asignaturas y nos entregue el promedio que llevan general con todas las asignaturas. Para poder expandir el conocimiento aprendido en esta semana, crearemos esta aplicación bajo el “Modelo 3 capas” el cual consta: Capa 1 -> Datos Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 9. Capa 2 -> Lógica de Datos Capa 3 -> Interfaz de usuario No se pretende que logren un manejo inmediato de estos conceptos, pero que si se entienda la idea, cuando hablamos que en la capa 1, tenemos los datos, nos referimos que es lugar donde almacenaremos información, por ejemplo el registro civil tiene gran cantidad de información de todas las personas que existen y que no en nuestro país, imaginemos que el lugar donde se encuentra es toda esa información es un gran contenedor llamado base de datos o banco de datos. Contenedor de datos En la capa 2 mencionamos a la lógica de negocio, este nombre no nos dice mucho de que se trata, pero debemos quedarnos con que es aquel que maneja los datos de nuestro contenedor, saca datos, agrega datos, elimina datos, etc. Se encuentra en una posición intermedia porque es el que recibe ordenes, recibe una petición de algo y el la ejecuta y responde al que le pregunto. En la capa 3, mencionamos a la interfaz de usuario, la que fácilmente definiremos como aquella que el usuario visualiza, es el producto final. Esta capa recibe peticiones de usuario, la cual la enviar a la capa de negocio y recibe la respuesta y realiza lo pedido por el usuario. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 10. Capa de Negocio Modelo de 3 capas Creación del modelo de datos Para poder crear el modelo de datos, nos apoyamos en un software llamado Visual Paradigm, es uno de muchos que nos ayudan a crear estos modelos. Visual Paradigm Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 11. Para poder crear el modelo debemos darle el nombre a nuestro contenedor, le llamaremos notas_app, y crearemos un espacio donde dejaremos la información o datos, llamada “TABLA” de nombre Asignatura, dentro de esta tabla dejaremos en cada columna un dato específico, como nombre de la asignatura y sus notas correspondientes. Tabla: Asignatura Creación modelo de negocio Una vez creado nuestro modelo de datos, pasamos al siguiente paso, que es crear el modelo de negocio, crearemos las posibles solicitudes de datos que le hará la interfaz de usuario. Para realizar esto, trabajaremos en el IDE Eclipse 3.6 bajo el lenguaje de programación Java. Si bien programamos en Java, no deberás realizar esto, ya que se requiere un nivel de programación maduro. El modelo de negocio será una caja negra en como se hizo, pero si conocerás como podrás comunicarte con el y como se comunicará contigo. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 12. Lógica o modelo de negocio La manera en que podrás comunicarte con el modelo de negocio será a través de agregarAsignatura y el modelo te responderá por medio de mostrarPromedio. Creación cliente Una vez listas ambas capas, comenzaremos con la creación de nuestra interfaz de usuario, que será la capa 3, y que será creada en Android. Sesión III: Creación cliente en Android Retomando la última parte, debemos construir la interfaz de usuario en Android. Primero creamos un proyecto de aplicación de nombre NotasAsigDAEM, de la siguiente forma: 1. - Click derecho -> New -> Android Project Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 13. 2.- Nos aparecerá una ventana como la siguiente y digitamos el nombre que dijimos anteriormente, NotasAsigDAEM: Nuevo Proyecto Android 3.- Presionamos Next ->, y nos aparecerá una ventana donde tendremos que seleccionar la versión de Android en que trabajaremos, nosotros ocuparemos la versión 2.1. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 14. Seleccionar versión de Android a trabajar Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 15. 4.- Presionamos Next -> nuevamente y nos aparece una ventana donde deberemos dar la última información de configuración, en Package Name digita notas.daem y Finish. 5.- Una vez finalizado, nos aparecerá nuestro proyecto de esta forma: Nuevo proyecto Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 16. Ahora comencemos armas nuestra App, nos vamos a res -> Layout-> main.xml *Árbol de la App Con ayuda del editor grafico que nos facilita Android, para crear las pantallas editaremos el main.xml Editor gráfico de Android Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 17. Arrastraremos un TextView, un EditText y un Button, y vamos personalizando cada componente. El TextView, le hacemos click derecho Edit Text: Y agregamos un nuevo String, en el botón de abajo New String. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 18. 1 2 En String colocamos el texto que queremos que se vea (1) y en New R.String (2) como se llamará interno, le damos a OK y luego la seleccionamos y a Ok de nuevo. Repitamos los mismos pasos para el texto del Botón, y nos diga Agregar Notas. El EditText, será el encargado de recibir lo que el usuario escriba en la pantalla, lo personalizaremos, pero en el caso de su ID, que será el que nos servirá para identificarlo, click derecho Edit ID -> y le ponemos como id editasignatura. Ya terminamos con una pantalla, ahora crearemos otra nueva que aparecerá cuando presionemos el botón Agregar Notas. Vamos a Layout -> (click derecho) -> New -> Android XML File Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 19. Creación de un XML nuevo En File debemos colocar el nombre que le pondremos a nuestros xml, los nombres son en minúscula, sin espacios, le pondremos notas.xml Nombre de Android XML File Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 20. Una vez creado nuestro xml notas.xml, le agregaremos los componentes de la misma manera que lo hicimos en el main.xml. Agregaremos: 1 TextView para el nombre de la Asignatura, 1 TableLayout para agregar dentro las notas, 3 TableRow Dentro de cada TableRow agregaremos un TextView y un EditText 1 Button para enviar las notas. Debería quedar como se muestra en la siguiente imagen. notas.xml con sus componentes. Partamos dándole nombres más representativos a nuestros componentes, el TextView no tendrá texto, se cargará desde la pantalla anterior, mas adelante veremos eso, así que hay que quitarle el texto que trae por defecto. Los TextView dentro de la TableLayout, deben ir con los nombre Nota 1, Nota 2 y Nota 3, y los EditText, debes editar los Identificadores, Edit ID, por editnota1, editnota2 y editnota3. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 21. Al botón también hay que cambiar el texto, por el texto “Enviar Notas”, y estaríamos listos con nuestro notas.xml Nota: La interfaz se puede mejorar, pero no esencial en este instante. La programación quedará a disposición de lo que quieren profundizar en el código, pero no se explicará como se realizó. Al final de este informe se adjuntará como anexo el código fuente. Al finalizar la aplicación podremos ver en el emulador de Android la aplicación como sigue: App de Notas Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 22. Sesión 4 1 .- Desarrollo de aplicación por grupos. 2 .- Finalización de la App y presentación. Para la última sesión, se desafiará a los participantes a la creación de alguna aplicación sencilla, y fácil que se pueda desarrollar en grupo. Se deben tener en cuenta algunos puntos para poder desarrollar la idea:  Se debe buscar satisfacer una necesidad.  Debe ser sencilla  Beneficios o mejoras al realizar la App. Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 23. Anexos import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class NotasAsigDAEMActivity extends Activity { EditText nombreasignatura; Button btnguardaasig; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); nombreasignatura = (EditText)findViewById(R.id.editasignatura); btnguardaasig = (Button)findViewById(R.id.btnguardaasig); btnguardaasig.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String nameAsignatura = nombreasignatura.getText().toString(); if(!("").equals(nameAsignatura) && nameAsignatura != null){ Intent i = new Intent(); i.setClass(getApplicationContext(), NotaApp.class); i.putExtra("asignatura", nameAsignatura); startActivity(i); } else{ Toast.makeText(getApplicationContext(), "No ha digitado una asignatura", Toast.LENGTH_LONG).show(); Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 24. } } }); } } Clase Nota.java import ws.Conexionws; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class NotaApp extends Activity { TextView textoAsignatura; EditText nota1; EditText nota2; EditText nota3; Button btnagregarnotas; Conexionws cws = new Conexionws(); String asignatura = ""; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.notas); textoAsignatura = (TextView) findViewById(R.id.textAsignatura); Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 25. nota1 = (EditText) findViewById(R.id.editnota1); nota2 = (EditText) findViewById(R.id.editnota2); nota3 = (EditText) findViewById(R.id.editnota2); btnagregarnotas =(Button)findViewById(R.id.btnguardabd); Bundle extras = getIntent().getExtras(); if (extras != null) { asignatura = extras.get("asignatura").toString(); if (asignatura != null) { textoAsignatura.setText(asignatura); } } btnagregarnotas.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int n1 = Integer.valueOf(nota1.getText().toString()); int n2 = Integer.valueOf(nota2.getText().toString()); int n3 = Integer.valueOf(nota3.getText().toString()); String resultado = cws.guardanotas(asignatura,n1,n2,n3 , 1); if(("2").equals(resultado)){ Toast.makeText(getApplicationContext(), "Fue ingresada satisfactoriamente", Toast.LENGTH_LONG).show(); } else{ Toast.makeText(getApplicationContext(), "NO pudo ser guardada", Toast.LENGTH_LONG).show(); } } }); } /** * Menu opcional Volver */ @Override public boolean onCreateOptionsMenu(Menu menu) { Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 26. MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menupromedio, menu); return true; } /** * Evento que se genera al seleccionar alguna opcion en el menu opcional */ @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.idconocerprom: String resultado = cws.pedirPromedio(1); Toast.makeText(getApplicationContext(), "Tú promedio es : "+resultado, Toast.LENGTH_LONG).show(); return true; default: return super.onOptionsItemSelected(item); } } } Clase Webservice Conexión.java import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.PropertyInfo; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.AndroidHttpTransport; public class Conexionws { private static String METHOD_NAME ; Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 27. private static String NAMESPACE ; private static String URL; String datosJsonString= ""; public void coneccionwsPropio(){ NAMESPACE = "http://webservices"; URL = "http://186.10.199.201:8080/NotasDaem/services/NotasDaemApp?wsdl"; } public void coneccionwsExterno(){ NAMESPACE = "http://webservices"; URL = "http://200.13.4.205:8080/NotasDaem/services/NotasDaemApp?wsdl"; } /** * * @param asignaturatex * @param n1 * @param n2 * @param n3 * @param idpersona * @return */ public String guardanotas(String asignaturatex, int n1,int n2, int n3, int idpersona){ coneccionwsExterno(); METHOD_NAME = "agregaAsignatura"; String SOAP_ACTION = NAMESPACE + METHOD_NAME; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo asignatura = new PropertyInfo(); asignatura.setName("asignatura"); asignatura.setValue(asignaturatex); asignatura.setType(String.class); Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 28. PropertyInfo nota1 = new PropertyInfo(); nota1.setName("nota1"); nota1.setValue(n1); nota1.setType(int.class); PropertyInfo nota2 = new PropertyInfo(); nota2.setName("nota2"); nota2.setValue(n2); nota2.setType(int.class); PropertyInfo nota3 = new PropertyInfo(); nota3.setName("nota3"); nota3.setValue(n3); nota3.setType(int.class); PropertyInfo ida = new PropertyInfo(); ida.setName("idalumno"); ida.setValue(idpersona); ida.setType(int.class); request.addProperty(asignatura); request.addProperty(nota1); request.addProperty(nota2); request.addProperty(nota3); request.addProperty(ida); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.implicitTypes =true; soapEnvelope.setOutputSoapObject(request); AndroidHttpTransport aht = new AndroidHttpTransport(URL); try { aht.call(SOAP_ACTION, soapEnvelope); SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse(); datosJsonString =resultString.toString(); return datosJsonString; } Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 29. catch (Exception e) { e.printStackTrace(); datosJsonString = "Error Conexion";} return datosJsonString; } /** * Metodo que calcula el promedio general de las notas * @param idperso * @return */ public String pedirPromedio(int idperso){ coneccionwsExterno(); METHOD_NAME = "mostrarPromedio"; String SOAP_ACTION = NAMESPACE + METHOD_NAME; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo ida = new PropertyInfo(); ida.setName("idPersona"); ida.setValue(idperso); ida.setType(int.class); request.addProperty(ida); SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); soapEnvelope.dotNet = true; soapEnvelope.implicitTypes =true; soapEnvelope.setOutputSoapObject(request); AndroidHttpTransport aht = new AndroidHttpTransport(URL); try { aht.call(SOAP_ACTION, soapEnvelope); SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse(); Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 30. datosJsonString =resultString.toString(); return datosJsonString; } catch (Exception e) { e.printStackTrace(); datosJsonString = "Error Conexion";} return datosJsonString; } } Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl
  • 31. AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="notas.daem" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".NotasAsigDAEMActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="NotaApp"></activity> </application> <uses-permission android:name="android.permission.INTERNET"></uses-permission> </manifest> Centro de Estudios de Ingeniería de Software María José Rioseco, maria.rioseco@opensystem.cl