Curso de Desarrollo de Aplicaciones con Huawei

Clases del Curso de Desarrollo de Aplicaciones con Huawei

Instruido por:
Juan Camilo Sandoval
Juan Camilo Sandoval
Intermedio
4 horas de contenido
Ver la ruta de aprendizaje
Cámara de selfies inteligente
Proyecto del curso
Cámara de selfies inteligente

Usando inteligencia artificial detecta el rostro y emociones de tu usuario para tomar fotos solo con una sonrisa. Además, implementa servicios de autenticación y notificaciones para tener una aplicación lista para el mercado.

Curso de Desarrollo de Aplicaciones con Huawei

Curso de Desarrollo de Aplicaciones con Huawei

Progreso del curso:0/31contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/31contenidos(0%)

Introducción a HMS Core

Material Thumbnail

Bienvenida

01:10 min

Material Thumbnail

¿Qué es HMS Core?

02:50 min

Material Thumbnail

Creación del proyecto en Android Studio

02:18 min

Material Thumbnail

Creación de la aplicación en App Gallery Connect

03:28 min

Configuración de firma SHA-256

01:35 min

Material Thumbnail

Configuración de APIs

03:14 min

Material Thumbnail

Configuración de Android Studio y Gradle

09:25 min

Material Thumbnail

Probando la sincronización de la aplicación

03:12 min

Debugging en la nube con Huawei

02:26 min

Autenticación con HMS Account Kit

Material Thumbnail

Diseñando nuestra pantalla de login

10:47 min

Material Thumbnail

Agregando los métodos de autenticación

08:39 min

Material Thumbnail

Verificando la autenticación

01:30 min

Material Thumbnail

Agregando el método de logout

10:25 min

Construyendo nuestra cámara de selfies con HMS ML Kit

Material Thumbnail

Machine Learning con Huawei

10:05 min

Material Thumbnail

Agregando los permisos para acceder a la cámara

17:18 min

Material Thumbnail

Diseñando la pantalla personalizada de la cámara

10:20 min

Material Thumbnail

Creando la capa de gráficos de la cámara

08:05 min

Material Thumbnail

Creando el layout para nuestro rostro

10:58 min

Material Thumbnail

Creando el layout del lente de la cámara

13:16 min

Material Thumbnail

Creando nuestra actividad de cámara

11:54 min

Material Thumbnail

Agregando nuestra cámara personalizada a la actividad

12:18 min

Material Thumbnail

Agregando los métodos de verificación de rostro

10:01 min

Material Thumbnail

Agregando la detección de rostro y sonrisa individual

11:37 min

Material Thumbnail

Agregando la detección de rostro y sonrisa grupal

10:47 min

Material Thumbnail

Tomar nuestra imagen y agregar un método de re-toma de foto

11:27 min

Material Thumbnail

Guardar la foto en nuestra galeria

07:56 min

Aplicando notificaciones push con HMS Push kit

Material Thumbnail

Crear el servicio de push notifications

07:48 min

Material Thumbnail

Agregar el servicio de HMS Push kit

05:10 min

Material Thumbnail

Verificar la conectividad de las notificaciones en App Gallery Connect

04:23 min

Conclusiones y consejos

Material Thumbnail

Tips y solución de inconvenientes frecuentes

01:33 min

Material Thumbnail

¿Qué más tiene Huawei?

01:15 min

nuevosmás votadossin responder
Christian Mauricio Bravo Peña
Christian Mauricio Bravo Peña
Estudiante

Pregunta, puedo usar pushKit desde un télefono Xioami o hay algùn tipo incompatibilidad ? y de ser así. ¿ a qué se debe ?

1
André Michel Andy Pozos
André Michel Andy Pozos
Estudiante

¿No es peligroso tener este tipo de información en el build.gradle? ¿Hay forma de leerla desde otro archivo para que dicho archivo no sea añadido a Git?

0
Marcela Patricia
Marcela Patricia
Estudiante

No logro hacer que la pantalla muestre la camara

en el log veo el siguiente error:

Query huawei_module_mlkit_face unavailable, errorCode:2

en la web no hay info al respecto 😦

0
Marcela Patricia
Marcela Patricia
Estudiante

Me sale el siguiente error :

A problem occurred evaluating project ‘:app’.

No signature of method: build_7tbhvu2n2hpo77prblhdv2pzr.android() is applicable for argument types: (build_7tbhvu2n2hpo77prblhdv2pzr$_run_closure1) values: [build_7tbhvu2n2hpo77prblhdv2pzr$_run_clo[email protected]]

al comentarear en build types lo que se modifico en release y en debug funciona pero si dejo el codigo me sale el error

signingConfigs {
release {
storeFile file(“HmsDemo”)
keyAlias "HmsDemo"
keyPassword "Miauchis1"
storePassword "Miauchis1"
v1SigningEnabled true
v2SigningEnabled true
}
}

buildTypes {
    release {
        signingConfigs signingConfigs.release
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        signingConfigs signingConfigs.release
        debuggable true
    }
}
0
Ferbmr
Ferbmr
Estudiante

Si ya tengo una app creada y subida a PlayStore, Puedo hacer solo una copia del proyecto y subirla a App Gallery con el mismo Package Name? (La app no usa nada de google services, firebase, google cloud)

2
Brian Smith Chuquiruna Leon
Brian Smith Chuquiruna Leon
Estudiante

Las aplicaciones desarrolladas con HMS core solo funcionan para los celular huawei? o sirve para cualquier tipo o marca de celular en el mercado?

2
Luis Salas
Luis Salas
Estudiante

¿Hasta acá, a todos les ha funcionado el código?

1
Luis Salas
Luis Salas
Estudiante

Hola
Mi código ha tirado un error … Básicamente es un NullPointerException XD:

E/SurfaceView: Exception configuring surface
    kotlin.KotlinNullPointerException
        at com.pirris.hselfiecamera.camera.LensEnginePreview.startIfReady(LensEnginePreview.kt:139)
        at com.pirris.hselfiecamera.camera.LensEnginePreview$SurfaceCallback.surfaceCreated(LensEnginePreview.kt:164)
        at android.view.SurfaceView.updateSurface(SurfaceView.java:728)
        at android.view.SurfaceView$2.onPreDraw(SurfaceView.java:151)
        at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2573)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1558)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7463)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1041)
        at android.view.Choreographer.doCallbacks(Choreographer.java:847)
        at android.view.Choreographer.doFrame(Choreographer.java:774)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1027)
        at android.os.Handler.handleCallback(Handler.java:809)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7555)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

Al parecer el error se encuentra en las líneas 139 y 164 de la clase LensEnginePreview, acá el código del método startIfReady():

//Función para verificar que la cámara se encuentra lista para funcionar
    @Throws(IOException::class)
    fun startIfReady() {
        if (mStartRequested && mSurfaceAvailable) {
            mLensEngine!!.run(mSurfaceView.holder)
            if (overlay != null) {
                val size: Size = mLensEngine!!.displayDimension
                val min: Int = size.width.coerceAtMost(size.height)
                val max: Int = size.width.coerceAtLeast((size.height))
                if (Configuration.ORIENTATION_PORTRAIT == mContext.resources.configuration.orientation) {

                    mOverlay!!.setCameraInfo(min, max, mLensEngine!!.lensType) // ESTA ES LA LÍNEA 139
                } else {
                    mOverlay!!.setCameraInfo(max, min, mLensEngine!!.lensType)
                }
                mOverlay!!.clear()
            }
            mStartRequested = false
        }
    }

Como dato interesante, revisando el código, detecté que al crear el inner class SurfaceCallback, la clase padre SurfaceHolder,Callback no me permite declarar los parámetros tipo SurfaceHolder como nullsafety… Ver a continuación:

private inner classSurfaceCallback: SurfaceHolder.Callback{overridefunsurfaceChanged(
            p0: SurfaceHolder,
            p1: Int,
            p2: Int,
            p3: Int) {
        }

        overridefunsurfaceDestroyed(p0: SurfaceHolder) {
            mSurfaceAvailable = false
        }

        overridefunsurfaceCreated(p0: SurfaceHolder) {
            mSurfaceAvailable = truetry {
                startIfReady()
            }catch (e: IOException){
                Log.e("Error:", "No pudimos iniciar la camara $e")
            }
        }

    }
}

En el código ejemplo de la clase, cuando el profesor implementa los miembros de la clase, los mismos se incorporan automáticamente como nullsafety para los parámetros tipo SurfaceHolder, no obstante en mi caso si los intento declarar como nullsafety(?) me marca un error… es como si se tratase de clases completamente diferentes…
Agradezco de antemanos cualquier ayuda.

2
Luis Salas
Luis Salas
Estudiante

Con respecto a esta clase, tengo curiosidad por saber ¿porqué CommonUtils se declaró como un archivo tipo objeto y no como una clase de Kotlin?
Muchas gracias

2
Luis Salas
Luis Salas
Estudiante

Hola
Quisiera entender un poco más acerca de la parametrización de clases abstractas… Honestamente he buscado en muchos sitios web y hasta este momento tenía entendido que no era posible instanciar o declarar parámetros en clases abstractas.
Agradezco de antemano al que me pueda sacar de este bug mental jaja.
Saludos

1