PUE: Desarrollo de Aplicaciones Android – Primera lección

El día 16 de Mayo de 2018 empecé el curso “Desarrollo de Aplicaciones Android” en el PUE.

Agradecimientos a Eloi Rifà por darme a conocer el PUE y también a Ricardo Jaume, profesor del curso y que ha empezado con muy buen pie! Un maestro de la vieja escuela!!

Estoy poniendo en marcha http://android.sergioguillen.com pero hasta que no lo tenga listo, iré colgando un post para cada clase a la que asista, con tal de resumir el contenido de la clase del día.

ATENCIÓN: este post es un borrador! Estoy construyendo http://android.sergioguillen.com donde pondré el contenido del curso de forma bien estructurada e iré colgando mis proyectos y aplicaciones en Android.

Para desarrollar aplicaciones en el entorno Android, podemos utilizar 2 lenguajes: el clásico Java o el nuevo Kotlin.

Java, que es un lenguaje de programación orientado a objetos.
Su nombre viene de una isla en Indonesia llamada “Java”:

Y el nombre de Kotlin viene por una isla cerca de San Petesburgo:

Son los dos lenguajes oficiales para el desarrollo de aplicaciones nativas en Android.

Este curso se centra en Java así que como dice Ricardo… Chicos, ¡vamos a por ello!

Podemos considerar 2 ramas en programación y en Java:

Nativo (Usando Java tal cual) o híbrido (usando frameworks, con lo que dependes de sus actualizaciones, como por ejemplo “Ionic“.

A la hora de compilar, se trabaja con Bundles: son empaquetados contenedores del código y los recursos de la aplicación que meteremos en el SmartPhone.
APK: Android PacKage.

Al igual que utilizamos SEO para mejorar el posicionamiento de las páginas web en Google, utilizaremos ASO para mejorar el posicionamiento de las aplicaciones en Google Play.

En el lanzamiento de una APP, existen 2 fases: el PRE y el POST.

El PRE consiste en el desarrollo de la aplicación en sí y para ello utilizaremos el entorno de programación “Android Studio”, que se ajusta a la arquitectura y componentes de Android.

El POST consiste en hacer ASO y promover nuestra aplicación por las diferentes redes sociales.

Es importante tener buenas Reviews, ya que con 3 ó 4 malas Reviews, ya podemos cambiar el nombre de nuestra APP porque estará conenada al fracaso y a que quede “aparcada”.

Lo más importante de una aplicación: que aporte VALOR!

Los orígenes de Java se remontan a Sun MicroSystems, cuando lanzaban servidores como la Sun Spark, corriendo Unix y pudiendo utilizarse JAVA para programar. Esas máquinas las conocí en 1996, cuando empecé a trabajar en La Vanguardia.

Respecto a JAVA, tenemos 2 grandes distribuciones:

  • Java EE: Enterprise Edition
  • Java SE: Standar Edition (en la que se centra este curso)

En este curso utilizaremos JAVA SE v8.

Para ver la versión de JAva que tenemos instalada en la máquina, basta con abrir una pantalla de terminal y escribir “java -version”:

Para descargar e instalar Java SE, basta con buscar en Google “oracle java 8” y buscar el link “Java SE Development Kit 8 Downloads.

Java API (8) -> Todo lo que podemos usar en Java (paquetes/clases)

Google “java api”: java api specifications java SE 8: información de paquetes y clases.

Paquete java.util: muestra todo lo que podemos utilizar de ese paquete.

“Ecosistema Android”, Java orientado a Android (no a páginas web).

developer.android.com: desde aquí podremos descargar el Android Studio

Configure->SDK Manager

API Level 27



*Soporte orquilla

Finish

Gradle: sistema que te indexa, que te gestiona las piezas/dependencias

Si sale el aviso del FireWall, darle al Permitir

Esperemos  que acbe de indexr


Java MainActivity:

package com.sergioguillen.android.holamundo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Configuracion :


<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
    package=”com.sergioguillen.android.holamundo”>

    <application
        android:allowBackup=”true”
        android:icon=”@mipmap/ic_launcher”
        android:label=”@string/app_name”
        android:roundIcon=”@mipmap/ic_launcher_round”
        android:supportsRtl=”true”
        android:theme=”@style/AppTheme”>
        <activity android:name=”.MainActivity”>
            <intent-filter>
                <action android:name=”android.intent.action.MAIN” />

                <category android:name=”android.intent.category.LAUNCHER” />
            </intent-filter>
        </activity>
    </application>

</manifest>

Le damos l play:

Necesitamos dispositivo físico o virtual (AVD ndroid virtual device)

Drivers disponibles para muchas marcas: https://developer.android.com/studio/run/oem-usb

Unknown sources

Tema “huella digital”

Creamos una aplicaci´pn de consola

Zona escritura d ecódigopackage com.sergioguillen.android;


public class Main {

    public static void main(String[] args) {
   // write your code here
    }
}

punto de entrada: lugar por donde ese ejcuta la aplicción

es el public static void main(String[] args

Todo e Java es un objeto! (P.O.O.)

Signific que todo el código que haga es una clase q tiene un nombre

Cuando la clase tiene un nombre y un método llamado main ese es el método de entrd

Escirbe(“hola”)

Lo pondrá en la consola

sout y tabulador escribe toda la función (ayuda):


package com.sergioguillen.android;

public class Main {

    public static void main(String[] args) {
   // write your code here
        System.out.println(“Hola Mundo”);
    }
}

sout y tabulador escribe toda la función (ayuda):

Ejercicio Lanzmiento de Martillo

Clase/objeto Random:

New crea objeto que proviene de la clase random que se llama generador

A partir de la clase random, cre el objeto randomresultado = generador.

Te muestra los métodos de ese objeto

Control+Alt+M, genera la función tirarMartillo();


refactor

method, fabrica la función

Ctrl mayúsculas F10 ejecutapackage com.sergioguillen.android;



CÓDIGO DEL EJERCICIO DE TIRO DE MARTILLO (Contiene fallos):

import java.util.Random;

public class Main {

    public static void main(String[] args) {
   // write your code here

        System.out.println(“Programa lanzamiento de martillo”);

        // Tenemos 5 atletas lanzadores de martillo
        // Sólo puede ganar uno
        // El tope de longitud en la final es de 200m
        // Hay una fase eliminatoria donde quedarán los que igualen o superen la marca de 120 metros

        // Creación de atletas
        String atleta1 = “Sergio”;
        String atleta2 = “Pepe”;
        String atleta3 = “Marta”;
        String atleta4 = “Berta”;
        String atleta5 = “Ricardo”;

        //Creación de un array donde guardar las mrcas de los 5 atletas:
        int[] marcas= new int[5];
        int[] finalistas = new int[5];


        // Lanzar martillo tantas veces como atletas haya

        // Obtener finalistas (los que han superado los 120 metros

        // Obtener ganador (de entre todos los finalistas)

        //Entero [0..200]
        //int es primitivo (solo es un valor)
        //Integer (es un objeto)
ejecutarEliminatoria(marcas);
verElementos(marcas);

obtenerFinalistas(marcas, finalistas);

verElementos(finalistas);


    }

    private static void obtenerFinalistas(int[] marcas, int[] finalistas) {
        int j=0;

        for(int i=0;i<marcas.length;i++)
        {
            int marca=marcas[i];
            if(marca>=120)
            {
                finalistas[j]=marca;
                j=j+1;
            }
        }
    }

    private static void verElementos(int[] items) {
        for(int i=0;i<5;i++) {
            System.out.println(items[i]);
        }

    }

    //El paso es por referencia! Se modifica el array marcas!!
    private static void ejecutarEliminatoria(int[] marcas) {
        //estructura iterativa
        for(int i=0;i<5;i++){
            int marca = tirarMartillo();
            marcas[i]=marca;
           // System.out.printf(“Marca: ” + marca + “\n”);
        }
    }

    private static int tirarMartillo() {
        int resultado; //declaramos resultado
        resultado = 0;

        // objeto de tipo Random
        Random generador = new Random();    //Random está en el paquete util (ver declaración de la clase
        resultado = generador.nextInt(  200); //bound=limite

        return resultado;
    }








}

“La Orquilla de compatibilidad” (versión Android): versión MÁXIMA y versión minima.

SERVICIOS: han de estar declarados en el Manifest!

MANIFEST.XML: “Lista de todos los participantes de la fiesta” – Ricardo Jaume

Recordad traer un teléfono Android y el cable USB!

JAVA

intelJ: entorno que usaremos para las aplicaciones de terminal

idealC, versión Community IntelliJIDEA (jetbrains.com)

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies