AppMed

En esta sección se atenderán las dudas relacionadas con sistemas de gestión de la calidad, procedimientos, buenas prácticas, normas y todo lo relacionado con aseguramiento de la calidad

Moderator: julianmartinez16

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Thu Mar 01, 2018 11:04 pm

Sprint 5 (Feb 23 - Mar 1)

Creación de logo AppMed (4/4)
Implementación del Software de Calidad (4/4)
Desarrollo del checklist automatizado (1/5)

Esfuerzo: 3
Velocidad: 4

Burndown
Image

¿Qué se ha hecho?

William Sotelo:
- Finalización del logo
Juan David Giraldo:
- Finalización de la implementación de SonarQube con Android Lint
- Correción de algunos errores recomendados por Android Lint
- Actualización de las keys de Google Maps y Firebase por keys de una cuenta propia para la aplicación (upb.appmed@gmail.com)
Cristian Toro
- Continuación de investigación de Firebase Authentication
- Desarrollo del Checklist

Evidencias
Image

Image

Image

¿Qué vamos a hacer?
Vamos a continuar con la investigación e implementación de Google Maps y Google Places
Revisaremos el checklist y se aplicarán las correcciones recomendadas por Android Lint

¿Qué dificultades tuvimos?
Semana de parciales
Last edited by JuanDGiraldoM on Mon May 21, 2018 9:02 am, edited 1 time in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Mon Mar 05, 2018 9:31 pm

¿Qué se ha hecho?
Se mejoró la automatización del checklist y completó el listado de pautas

¿Qué se va a hacer?
Vamos a continuar con el cumplimiento de las pautas del checklist

¿Qué dificultades tuvimos?
Ninguna
Last edited by JuanDGiraldoM on Mon Mar 19, 2018 4:16 pm, edited 1 time in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Thu Mar 08, 2018 9:57 pm

Sprint 6 (Mar 2 - Mar 8)

Implementar un SplashScreen (3/4)
Implementación del logo (4/4)

Esfuerzo: 4
Velocidad: 3

Burndown
Image

¿Qué se ha hecho?
Se ha implementado el Splash Screen

Se ha actualizado el archivo de gitgnore porque tenemos algunos inconvenientes con algunos archivos de configuración del IDE

Se han hecho correcciones sugeridas por Android Lint

Evidencias
Image

Code: Select all

package co.edu.upb.calidad.appmed;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.Window;
import android.view.WindowManager;

/**
 * Clase que inicia la aplicación
 */

public class SplashScreen extends AppCompatActivity {

    /**
     * Método constructor
     *
     * @param savedInstanceState savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash_screen);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(SplashScreen.this, MainActivity.class);
                startActivity(intent);
                finish();
            }
        }, 1500);
    }
}
¿Qué se va a hacer?
Vamos a continuar con la investigación de la Autenticación por Firebase y de la implementación de Google Maps y Google Places

¿Qué dificultades tuvimos?
Carga académica
Last edited by JuanDGiraldoM on Mon May 21, 2018 9:02 am, edited 3 times in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Fri Mar 16, 2018 9:58 pm

Sprint 7 (Mar 9 - Mar 15)

Esfuerzo: 4
Velocidad: 3

Burndown
Image

¿Qué se ha hecho?
Se ha pulido el checklist, con la adición de nuevas tareas por cumplir para seguir mejorando la calidad

Se ha continuado con la corrección de errores y recomendaciones hechas por Android Lint

Se ha continuado con la investigación y las pruebas de autentucación por medio de Facebook

Evidencias
Image

Code: Select all

package co.edu.upb.calidad.appmed;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

/**
 * Clase Login que realiza la autenticación en Facebook, Google
 */
public class LoginActivity extends AppCompatActivity {

    private LoginButton loginButton;
    private CallbackManager callbackManager;

    /**
     * Método que crea la instancia del objeto
     * @param savedInstanceState savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        callbackManager = CallbackManager.Factory.create();
        loginButton = findViewById(R.id.login_button);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                goMainScreen();
            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), R.string.cancel_login, Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getApplicationContext(), R.string.error_login, Toast.LENGTH_SHORT).show();
            }
        });
    }


    /**
     * Método para redirigir a la pantalla de inicio
     */
    private void goMainScreen() {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

    }

    /**
     * Método que obtiene el resultado de la actividad
     * @param requestCode requestCode
     * @param resultCode resultCode
     * @param data data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
}

Code: Select all

package co.edu.upb.appmed.feature;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

import co.edu.upb.appmed.feature.Utilities.Utilities;

/**
 * Actividad principal
 */
public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {


    /**
     * Método constructor de la actividad
     *
     * @param savedInstanceState savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
    }


    /**
     * Método que captura el evento generado al presionar la tecla de retoceso
     */
    @Override
    public void onBackPressed() {
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    /**
     * Método que verifica
     *
     * @param menu
     * @return
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    /**
     * Método que captura el evento generado al presionar un ítem del menú de opciones
     *
     * @param item item seleccionado
     * @return true cuando finaliza correctamente
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }


    /**
     * Método que captura los eventos generados al presionar algún ítem del menú de navegación
     *
     * @param item item seleccionado
     * @return true cuando finaliza correctamente
     */
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {

        Intent intent = new Intent(this, SitesListActivity.class);

        int i = item.getItemId();

        if (i == R.id.nav_hospital) {
            intent.putExtra("activity", Utilities.HOSPITALS);
            startActivity(intent);
            return true;
        } else if (i == R.id.nav_wifi) {
            intent.putExtra("activity", Utilities.WIFI_STATIONS);
            startActivity(intent);
            return true;
        } else if (i == R.id.nav_station) {
            intent.putExtra("activity", Utilities.SERVICE_STATIONS);
            startActivity(intent);
            return true;


        } //TODO: else if (i == R.id.nav_map)
        else {
            DrawerLayout drawer = findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }
    }
}
¿Qué se va a hacer?
Se va a implementar comentarios tipo "TODO" para que manejemos un orden de las tareas faltantes respecto al código fuente

Vamos a continuar con el cumplimiento del checklist

¿Qué dificultades tuvimos?
Carga académica
Last edited by JuanDGiraldoM on Mon May 21, 2018 9:03 am, edited 3 times in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Mon Mar 19, 2018 4:15 pm

¿Qué se ha hecho?
Se ha modificado el tablero de trello con el backlog porque hemos incumplido una de las normas más importantes de Kanban: superar el límite de tareas por integrantes del equipo.

¿Qué se va a hacer?
Hemos trasladado las tareas en proceso y vamos a reunirnos para organizar y volver a asignar tareas por integrante.

¿Qué dificultades tuvimos?
Carga académica.
Last edited by JuanDGiraldoM on Tue Apr 03, 2018 9:51 pm, edited 2 times in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Thu Mar 22, 2018 9:27 pm

Sprint 8 (Mar 16 - Mar 22)

Desarrollo del checklist automatizado (5/5)
Migración del proyecto (Instant App) (1/4)

Esfuerzo: 6
Velocidad: 3

Burndown
Image

¿Qué se ha hecho?
Se corrigieron errores del checklist automatizado, el correo estaba incompleto cuando se generaba el informe.

Gracias a la reciente actualización de Android (3.1) se hizo la investigación del por qué la actualización y encontramos que se ha implementado Android Instant App que son aplicaciones que ofrecen un novedoso sistema de ejecución sin previa instalación.

Estamos investigando sobre el tema y estamos debatiendo si hacemos la migración del proyecto o no.

Evidencias




¿Qué se va a hacer?
Vamos a seguir investigando a fondo sobre el tema, cómo funciona y si es viable tomarnos el tiempo necesario que lleva a cabo la migración del proyecto a Instant App.

¿Qué dificultades tuvimos?
Ninguna
Last edited by JuanDGiraldoM on Mon May 21, 2018 9:03 am, edited 3 times in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
cristiantorol
Posts: 9
Joined: Mon Jul 18, 2016 9:00 am

Re: AppMed

Post by cristiantorol » Mon Apr 02, 2018 4:50 pm

¿Qué se ha hecho?

Se ha investigado sobre el API de Uber y el API de AirBnb a la aplicación y se han pedido las autorizaciones necesarias para el uso de estos en la aplicación.

Image


¿Qué vamos a hacer?
Se terminará la implementación del API de Uber a la aplicación.

¿Qué dificultades tuvimos?
Investigando se encontró que AirBnb no cuenta con API oficial.
Cristhian Daniel Toro López
Gestión de Calidad

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Thu Apr 05, 2018 2:06 pm

Sprint 9 (Abr 2 - Abr 5)

Esfuerzo: 4
Velocidad: 1

Burndown
Image

¿Qué se ha hecho?
Se ha estado migrando el proyecto a la estructura de una aplicación instantánea de Android

Evidencias
Image

¿Qué se va a hacer?
Vamos a continuar con la migración de la aplicación a la nueva estructura

¿Qué dificultades hemos tenido?
No tenemos suficiente conocimiento de la nueva estructura de Instant App, pero vamos consultando e investigando
Last edited by JuanDGiraldoM on Mon May 21, 2018 9:04 am, edited 2 times in total.
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

User avatar
xacarana
Site Admin
Posts: 1019
Joined: Fri Jan 15, 2016 6:13 pm

Re: AppMed

Post by xacarana » Tue Apr 10, 2018 9:57 am

Image
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
JuanDGiraldoM
Posts: 31
Joined: Mon Jan 22, 2018 11:23 am

Re: AppMed

Post by JuanDGiraldoM » Thu Apr 12, 2018 10:21 am

Pre-Entrega



Prueba
Aplicaciones Móviles
Juan David Giraldo Marín
juand.giraldom@upb.edu.co

Post Reply