introduccion del curso
TRANSCRIPT
![Page 1: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/1.jpg)
Introducción a Desarrollo de Aplicaciones en Android
Wilfredo Nieves
![Page 2: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/2.jpg)
Objetivos del curso• Reconocer conceptos básicos de la plataforma Android y su historia.
• Adquirir destrezas para planificar, desarrollar probar y lanzar una
aplicación móvil para teléfonos Android.
• Adquirir conocimiento básico en lenguaje de programación Java.
• Analizar e implementar elementos de interface gráfica que cumpla
con los estándares de Interacción Humana.
![Page 3: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/3.jpg)
Materiales• Android Studio
• Android Developer (http://developer.android.com)
• Github (https://github.com/wnieves19)
• Slideshare (http://www.slideshare.net/WilfredoNieves)
• Teléfono Android (físico o emulador; Genymotion)
![Page 4: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/4.jpg)
Libros• Head First Java, 2nd Edition
• Android Programming: The Big Nerd Ranch
Guide
• Advanced Android Application Development (4th
Edition)
![Page 5: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/5.jpg)
Bosquejo del Curso• Parte I • Introducción a la programación (Java)• Introducción a la plataforma Android
• Parte II• Planificar nuestra Aplicación (Music Player)• Ejecutar el plan• Probar la aplicación
• Parte III• Subir el app al Play Store• Actualizar el app
![Page 6: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/6.jpg)
¿Qué es Android?• Sistema operativo abierto (celulares, tv’s, relojes,
autos)
• Lanzado en el 2008 por Google
• Versión Actual 6.0 (Marshmellow)
• Android SDK
![Page 7: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/7.jpg)
Android SDK• Software Development Kit
• Android Studio
![Page 8: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/8.jpg)
Ventajas de Android• 1.6B de teléfonos con Android
• Gran comunidad de desarrolladores
• Muchos recursos y documentación (www.stackoverflow.com)
• Librerías externas (Third-party libraries )
• Play Store
• Muchos trabajos!
![Page 9: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/9.jpg)
¿Qué necesito?• Programar en Java
• Android Studio
• Dispositivo para hacer pruebas
• Mucha paciencia
![Page 10: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/10.jpg)
Programación• Serie de instrucciones escritas (source code) en la computadora
para formar un programa (software).
• Básicamente es decirle a la computadora que hacer.
• Manipular diferentes tipos de objetos (numeros, palabras,
imágenes, sonidos, etc.)
• Construir un buen programa requiere buena planificación
![Page 11: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/11.jpg)
It has often been said that a person does not really understand something until he teaches it to someone
else. Actually a person does not really understand something until after teaching it to a computer, i.e.,
express it as an algorithm."
(Donald Knuth, in "American Mathematical Monthly,"
81)
![Page 12: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/12.jpg)
Lenguaje de Programación• Es un traductor entre los programadores y la computadora
• En su nivel mas bajo, las computadoras hablan números
binarios (1 y 0)
• Existen diferentes tipos de lenguajes de programación
• Su diferencia principal es en sintaxis y sus reglas
![Page 13: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/13.jpg)
Java• Lenguaje de programación Orientado a Objetos (OOP)
• Las aplicaciones desarrolladas en java corren en el Java
Virtual Machine (JVM).
• Es uno de los lenguajes mas populares que existen
• Android esta contruido en Java
![Page 14: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/14.jpg)
Java Virtual Machine• Es un proceso abstract0 que le permite a las
computadoras correr programas en Java.• Entiende clases compiladas (bytecode)
![Page 15: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/15.jpg)
¿De que se componen los programas?• Archivos llamados clases
• Son de extensión .java• Una clase es una pieza del programa
public class Dog {
}
![Page 16: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/16.jpg)
Metodos• Las clases contienen métodos
public class Dog {
void play(){
}
void bark(){
}
}
![Page 17: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/17.jpg)
Declaraciones• Los métodos contienen declaraciones (statements)
public class Dog {
void play(){statement1;
}void bark(){
statement1;statement2;
}
}
![Page 18: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/18.jpg)
Inicio de un programa• El JVM busca el método main declarado de esta
manera• Esto significa el comienzo del programa• Solo debe de haber un método main en todo en
programapublic class MyClass {
public static void main(String[] args){
}
}
![Page 19: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/19.jpg)
Inicio de un programa• En java todas las declaraciones (métodos y statements)
van dentro de una clase.
• El JVM luego convierte nuestras clases (con
extension .java) en bytecode (extension .class) y
presenta el programa en el sistema en que se encuentre.
![Page 20: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/20.jpg)
Declaraciones (statements)• Es donde suceden las cosas en nuestro programa.
• Estas son las verdaderas instrucciones que le damos a
la computadora.
• Haz algo!
![Page 21: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/21.jpg)
Declaraciones (cont.)• Completa una acción
public class MyClass {
public static void main(String[] args){int x= 3;x = x * 5;
System.out.println(”The value of x = ” + x);//this is a comment
}
}
![Page 22: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/22.jpg)
Operadores aritméticos• Suma: +• Resta: -• Multiplicación: *• División: /• Residuo: %
![Page 23: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/23.jpg)
Variables• Es un espacio en memoria para guardar un valor
• Este valor debe de ser de algún tipo (int, float, boolean,
double, etc.)
• Pueden ser utilizados en nuestros statements para
cambiar re-utilizar o cambiar su valor
![Page 24: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/24.jpg)
Tipos de variables• Primitivos
• byte: es un entero de 8 bit• short: es un entero de 16 bit; tiene de valor minimo -32,768 y
maximo 32, 768 inclusivo• char representa un solo carácter e.g. “M”• int: representa un número entero e.g. 356• float: representa un numero decimal de 32 bit• double: representa un número décimal de 64 bit• long: es un entero de 64 bit; se debe de usar cuando la cantidad
sobrepasa a las de int• boolean: tiene solamente dos opciones: true o false• String: Representa una serie de caracteres alfanumericos
![Page 25: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/25.jpg)
El compilador• Convierte nuestro código (.java) en bytecode (.class)
para que asi pueda ser procesado por el JVM• Se encarga de que no ocurran errores de compilación
int x = 3.14;boolean bool = 55;
![Page 26: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/26.jpg)
Metodos• Además, los métodos pueden devolver algún valor
(Opcional)• El valor puede ser de cualquier tipo de variablepublic class Dog {
public String play(){
String sentences= “This is a sentence”;
return sentence;}
}
![Page 27: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/27.jpg)
Métodos (cont.)• Tambien, pueden aceptar valores
public class Car{
public void moveForward(int speed){System.out.println(“The car accelerate to ”+ speed);
} }
![Page 28: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/28.jpg)
Ejemplo de programación public static void main(String[] args){
System.out.println("Bienvenidos al programa de suma simple");
System.out.println("Si entras dos números los sumare por ti");
Scanner reader = new Scanner(System.in); System.out.println("Entra un numero: "); int n = reader.nextInt();
System.out.println("Entra otro numero"); int y = reader.nextInt();
int total = n + y;
System.out.println("La suma de ambos numero es "+ total); }
![Page 29: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/29.jpg)
Otras acciones• Repetitivas (Loops)
public class MyClass {
public static void main(String[] args){//for loopfor (int i = 0; i<10; i++){
System.out.println(i+""); }
//while loopint i = 0;
while(i< 12){ System.out.println(i+""); i++; }}
}
![Page 30: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/30.jpg)
Otras acciones (cont.)• Relacionales
public class MyClass {
public static void main(String[] args){int x = 8;
if(x > 10){ System.out.println("x is greater than 10"); }else{ System.out.println("x is less than 10"); } }
}
![Page 31: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/31.jpg)
Operadores Relacionales• Mayor que: >• Menor que: <• Igual que: ==• No igual que: !=• Mayor o igual que : >=• Menor o igual que: <=
![Page 32: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/32.jpg)
Operadores Condicionales
• Y: &&• ó: ||
public class MyClass {
public static void main(String[] args){
int x = 13; if(x > 10 && x < 20){ System.out.println("x is between 10 and 20"); }
}
![Page 33: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/33.jpg)
Clases• Las clases se componen de métodos y variables de
instancia• Esto se traduce a comportamientos y estados
respectivamente VehiclespeedcolormakemoveForward()stop()steer()
Campos de Instancia
Comportamiento
![Page 34: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/34.jpg)
Reusar las clases (Herencia)Vehicle
speedcolormakemoveForward()stop()steer()
Car Motorcycle Bicycle
Superclase
Subclases
![Page 35: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/35.jpg)
VehiclespeedcolormakemoveForward()stop()steer()
Car Motorcycle Bicycle Dronefly()//codigo especifico //de dronesland()
![Page 36: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/36.jpg)
Crear clases• Para crear clases pensemos en cosas que ese objeto sabe y en cosas que ese objeto hace.
Songartistalbum
setArtist()setAlbum()play()
Sabe
Hace
![Page 37: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/37.jpg)
Objetos• Los objetos son referencias de las clases• Son un tipo de variable no-primitiva• El JVM sabe como utilizar esta referencia para acceder
el objetopublic class MyClass {
public static void main(String[] args){
Song song = new Song();
song.play();
}}
![Page 38: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/38.jpg)
Objetos vs Clases• Las clases no son objetos
• Las clases son un mecanismo de mezclar comportamientos y acciones en una sola unidad
• Visualícenlo como un plano de un casa
• Los objetos son instancias de las clases
• Son la existencia física de la clase
• La clase le dice al JVM como crear los objetos
• Los objetos vendrían siendo la casa
![Page 39: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/39.jpg)
Herenciapublic class Vehicle {
private int speed;private String color;private String make;
public void moveForward(){System.out.println("Vehicle moving forward");
}
public void stop(){System.out.println("Vehicle is stopping");
}
public void steer(){System.out.println("Vehicle is steering");
}
}
![Page 40: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/40.jpg)
Herencia (cont.)
public class Car extends Vehicle {
int wheelSize = 16;
public void openTrunk(){//Opening trunk code}
}
![Page 41: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/41.jpg)
Herencia(cont.)
public class MyClass {
public static void main(String[] args){
Car car = new Car();car.moveForward();}
}
![Page 42: Introduccion del curso](https://reader036.vdocuments.co/reader036/viewer/2022062316/589ddb651a28ab77148b5195/html5/thumbnails/42.jpg)