👨‍💻 Bases de datos en Android con ROOM

  Рет қаралды 29,387

DevExpert - Programación Android y Kotlin

DevExpert - Programación Android y Kotlin

Күн бұрын

Пікірлер: 200
@johnalejandrogarciaarias9756
@johnalejandrogarciaarias9756 4 жыл бұрын
Excelente video Antonio!... Tengo 3 preguntas para ti. 1. Podrías hacer un video avanzado de Room, en donde incluyas migración de base de datos y unit testing? 2. Que tal sencillo seria construir el DAO desde un archivo .db ya existente? 3. Seria estupendo ver un ejemplo corto pero con más detalle del uso de Room + Livedata
@devexpert_io
@devexpert_io 4 жыл бұрын
Tengo pendiente hacer vídeos del 1 y del 2. Para el 2 hay una nueva funcionalidad en Room que te permite prepoblar la base de datos, pero no sé cómo funciona ni de dónde se obtienen los datos. Lo que pasa que se me van acumulando temas, así que no puedo prometer cuándo los haré 😅
@javiertorres-qs5bh
@javiertorres-qs5bh 3 жыл бұрын
Muy buen video, bien explicado. Sobre el error que últimamente a la mayoría les sucede sobre "on a null object reference" en "val app = applicationContext as PersonApp" Lo solucione cambiando "val app = applicationContext as PersonApp" Por val app by lazy { applicationContext as PersonApp } Además que la clase "MyActivity" no sea "abstract"
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias! Sí, es que en ese punto aún no se puede acceder al contexto, lo grabé mal. Esta es una solución perfectamente válida.
@javiertorres-qs5bh
@javiertorres-qs5bh 3 жыл бұрын
@@devexpert_io Me siguió causando problemas y ni agregando la clase al manifest pude solucionarlo. Termine cambiando solo un poco el codigo en base a otro tutorial y eliminando el PersonApp. Gracias por tu contenido, sigo al pendiente
@devexpert_io
@devexpert_io 4 жыл бұрын
Si aún no te decides sobre si Kotlin es el lenguaje que deberías aprender, te animo a que te apuntes a mi masterclass gratuita 👉 bit.ly/3eRcwfu
@ssmgeo3846
@ssmgeo3846 Жыл бұрын
Madre mía!!!En 16 minutos de video me acabas de aclarar 20 páginas de uso de SQLite y dos horas de videos de programación multimedia y dispositivos móviles de DAM de Ilerna....y oye, mira que los has explicado bien, fácil, y claro. Qué sería de los que estamos empezando sin estos videos maravillosos. Mil gracias!!!!
@devexpert_io
@devexpert_io Жыл бұрын
Oh! Pues ya está, me has alegrado el día 🥰. Muchas gracias por tus palabras!
@alexisrivas433
@alexisrivas433 4 жыл бұрын
Muy bueno , sería bueno que tocaras algo de test con room....
@devexpert_io
@devexpert_io 4 жыл бұрын
Tomo nota! Gracias!
@ruif3r
@ruif3r 4 жыл бұрын
Me sumo a esta peticion
@devexpert_io
@devexpert_io 4 жыл бұрын
@@ruif3r ok! Gracias!
@camilochico3786
@camilochico3786 3 жыл бұрын
Hola profe , ella un año este video y se le entiende a la perfección siga así , y gracias por tus consejos sirven mucho
@devexpert_io
@devexpert_io 3 жыл бұрын
Muchas gracias Camilo, en esas estoy!! 😉
@JoseRodriguez-lu4ce
@JoseRodriguez-lu4ce 3 жыл бұрын
Me estás ayudando un montón para hacer mi proyecto final de la FP. ¡Muchas gracias!
@devexpert_io
@devexpert_io 3 жыл бұрын
oh! qué ilusión, gracias a ti! Si ves que no encuentras algo, dime, por si tengo algún artículo que no tenga en formato vídeo o lo que sea
@bigotes20random86
@bigotes20random86 3 жыл бұрын
Muchas gracias por compartir tus conocimientos :D
@devexpert_io
@devexpert_io 3 жыл бұрын
Un placer!
@bitabrah940
@bitabrah940 2 жыл бұрын
🙌🏼🙌🏼🙌🏼 se agradece el vidio!
@devexpert_io
@devexpert_io 2 жыл бұрын
Muchas gracias!! 🤩
@orlandosandovalm.9218
@orlandosandovalm.9218 4 жыл бұрын
Una vez más agradezco este material, es de mucha ayuda. Gracias Antonio!
@devexpert_io
@devexpert_io 4 жыл бұрын
A ti por estar y comentar siempre! Me ayuda mucho a seguir creando contenido. Un abrazo y muchas gracias!
@magic8994
@magic8994 3 жыл бұрын
Excelente explicacion Antonio, me ayudo mucho, muchas gracias !!
@devexpert_io
@devexpert_io 3 жыл бұрын
Que alegría! Gracias a ti!
@edudlebal
@edudlebal 4 жыл бұрын
¡Excelente! Este tema ya lo dominaba pero nunca viene mal recordarlo.
@devexpert_io
@devexpert_io 4 жыл бұрын
Genial! Gracias por echarle un ojo aún así ☺️
@tomas.menniti
@tomas.menniti 3 жыл бұрын
Muy didáctico y preparado el tutorial. Gracias por compartir, Antonio!
@devexpert_io
@devexpert_io 3 жыл бұрын
Muchas gracias!
@albertoluisrinconbarajas9282
@albertoluisrinconbarajas9282 4 жыл бұрын
Genial! Cómo todos tus videos! Todo muy claro 🤓👏👨‍💻
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias Alberto!
@orlandosandovalm.9218
@orlandosandovalm.9218 4 жыл бұрын
A la espera!!!
@devexpert_io
@devexpert_io 4 жыл бұрын
Ole!
@augustorojas9996
@augustorojas9996 4 жыл бұрын
Antonio , gracias por compartir tu conocimiento, tu libro es una obra maestra!
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias Augusto!
@CornetaSantaCruz
@CornetaSantaCruz 4 жыл бұрын
Excelente video Antonio. Estaría muy bien ver más en detalle el apartado de migración así cómo el uso de flow con Room. Un saludo y gracias.
@devexpert_io
@devexpert_io 4 жыл бұрын
Perfecto, gracias por el feedback!
@pablodavidflorezjaramillo2658
@pablodavidflorezjaramillo2658 3 жыл бұрын
Muchas gracias Antonio por tan valiosa informacion.
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias!
@luisrobertonavarro7581
@luisrobertonavarro7581 4 жыл бұрын
El video es excelente, pero me tira error al poner val app = applicationContext as PersonApp en el MainActivity
@devexpert_io
@devexpert_io 4 жыл бұрын
Habría que ver un poco más. Qué error te da?
@16jeremias
@16jeremias 4 жыл бұрын
@@devexpert_io me arroja el mismo error en esa linea
@16jeremias
@16jeremias 4 жыл бұрын
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.proyectobasededatos/com.example.proyectobasededatos.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
@16jeremias
@16jeremias 4 жыл бұрын
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
@devexpert_io
@devexpert_io 4 жыл бұрын
Ya veo... No está bien hacer una property como hice porque en ese punto puede que el application context aún no exista. Poned esa línea después del "setContentView". O se puede usar esa property pero usar el delegado "lazy". Otra opción interesante es hacer una función de extensión con esa línea, pero eso quizá daría para otro video 😅
@gastondipierro
@gastondipierro 3 жыл бұрын
Muy bueno Antonio... sería interesante ver las migraciones de base de datos y algo de test ! Muchas gracias !!!
@devexpert_io
@devexpert_io 3 жыл бұрын
Lo tendré en cuenta. Gracias!
@diegoalarcon7010
@diegoalarcon7010 4 жыл бұрын
Muy buen video Antonio. Me gustaria si podes explicar como usar Flow en vez de LiveData. Saludos!
@devexpert_io
@devexpert_io 4 жыл бұрын
Tengo pendiente hacer una serie de vídeos sobre Flow, y justo para eso hice este vídeo 😬, para luego poder usar una base de datos con Flow sin tener que explicar Room. Así que ahí va el spoiler 😆😆
@chescored5887
@chescored5887 4 жыл бұрын
Gracias Antonio por el vídeo, a mí me encanta el autocompletado de las Query, cuando tienes muchas entidades ayuda mucho. Los quebraderos de cabeza los tengo con los Date 🤦 y todavía no tengo claro si meter suspend, LiveData, los dos, sigo ejemplos y me apaño pero tengo que experimentar más con eso, saludos!!!
@chescored5887
@chescored5887 4 жыл бұрын
He visto comentarios con los problemas que comento, la comunidad está en todo!
@devexpert_io
@devexpert_io 4 жыл бұрын
Gracias por tus comentarios! Sí, hay muchos pequeños detalles que intentaré ir resolviendo en siguientes vídeos.
@leorodseg
@leorodseg 3 жыл бұрын
Estoy empezando a crear apps pero no tengo claro como poner una base de datos que tengo en local (tabla de Excel por ejemplo) en la propia app, es posible eso?? Muchas gracias por tus vídeos!!
@devexpert_io
@devexpert_io 3 жыл бұрын
Echa un ojo a esto a ver si te vale developer.android.com/training/data-storage/room/prepopulate
@leorodseg
@leorodseg 3 жыл бұрын
@@devexpert_io muchas gracias!!
@tadeogonzalezalvarez6488
@tadeogonzalezalvarez6488 4 жыл бұрын
Como siempre un gran vídeo, muchas gracias!!, me gustaría que indagaras mas con un ejemplo ORM para no realizar consultas sql directas a la BD.
@devexpert_io
@devexpert_io 4 жыл бұрын
Ok, lo apunto! Aunque últimamente veo poco uso de este tipo de librerías
@activoysaludable
@activoysaludable 3 жыл бұрын
Buen vídeo Bro. Aquí aprendiendo sobre room ahora jajjajaja
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias! Te estás dando un buen repaso a todos los vídeos, enhorabuena!
@mateoflorezjaramillo6808
@mateoflorezjaramillo6808 3 жыл бұрын
Excelente contenido!! Bien hecho, tambien hace videos para java android ?
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias! No, solo hago con Kotlin
@gersalvarez8800
@gersalvarez8800 4 жыл бұрын
Excelente video como siempre, estaría bien tener un ejemplo con una base de datos más grande y verlo en algun modelo de presentación
@devexpert_io
@devexpert_io 4 жыл бұрын
Gracias! Me apunto como idea algún vídeo más avanzado. Lo de modelo de presentación te refieres a algo como MVP o MVVM? En realidad eso tiene poco que contar. Sería igual pero en otra clase. Si no lo he entendido bien, cuéntame!
@gersalvarez8800
@gersalvarez8800 4 жыл бұрын
@@devexpert_io Así es con MVP O MVVM en qué parte estaría implementada la DB y organizada la estructura que mencionas en este video 😃. Quedamos ansiosos de ver más de tu contenido y videos muchas gracias por todo.
@luchonetvv
@luchonetvv 4 жыл бұрын
Excelente video!!!, otro video interesante podría ser otras alternativas que existen ademas de SQLite y Room, como por ejemplo Realm.
@devexpert_io
@devexpert_io 4 жыл бұрын
Tomo nota para echarle un ojo, porque me da la sensación de que hoy en día todo se está abandonando en favor de Room
@luchonetvv
@luchonetvv 4 жыл бұрын
@@devexpert_io muy cierto, actualmente la preferencia para nuevo desarrollo viene siendo Room inclusive proyectos legacy vienen haciendo transición poco a poco aprovechando que Room tiene muchas ventajas y sobre todo se acopla muy bien con la Arquitectura de Componentes, y muchísimas gracias, ya estoy ansioso por ver que nuevo material prepararás 😁😁😁
@joseluiscobian4331
@joseluiscobian4331 3 жыл бұрын
Algo que sería interesante y que ya comentaron es que se hablara del pre-populate o la aplicación de las migraciones.
@devexpert_io
@devexpert_io 3 жыл бұрын
Sí, está apuntado, a ver si algún día puedo grabarlo. Gracias!
@YukoshiHub
@YukoshiHub 3 жыл бұрын
Claro como el agua. Muchas gracias.
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias a ti!
@d-landjs
@d-landjs 2 ай бұрын
Super entendible maestro, sera que tendrás un video más actualizado con Compose y probando eñ room
@devexpert_io
@devexpert_io 2 ай бұрын
En el curso de 3 horas de Kotlin Multiplatform que publiqué el jueves se usa Room
@jairomarcelo1816
@jairomarcelo1816 4 жыл бұрын
Buenísimo video Antonio, sería bueno que toques el tema de migraciones de base de datos
@devexpert_io
@devexpert_io 4 жыл бұрын
Gracias Jairo! Lo tengo anotado para próximos vídeos, aunque la lista no para de crecer 😅
@axeljurczuk1724
@axeljurczuk1724 3 жыл бұрын
Excelente video! Gracias!
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias!
@rogersandresdiazbeltran2223
@rogersandresdiazbeltran2223 4 жыл бұрын
Muy buenos contenidos Antonio!
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias!
@rogersandresdiazbeltran2223
@rogersandresdiazbeltran2223 4 жыл бұрын
@@devexpert_io tengo ya varios años de exp en desarrollo android pero con java. Al ver tus vídeos usando kotlin me dan muchas ganas de aprender el lenguaje.
4 жыл бұрын
Antonio muchas gracias por el contenido. Como sugieres en el vídeo sería genial tratar un poco el tema de las migraciones. Nuevamente muchas gracias.
@devexpert_io
@devexpert_io 4 жыл бұрын
Apuntado queda. Gracias!
@gustavoaguilargarcia9665
@gustavoaguilargarcia9665 2 жыл бұрын
Muchas gracias por el video. Como siempre, claro y directo. Tengo un par de preguntas: 1. He visto en algunos tutoriales que la base de datos la crean siguiendo un patrón singleton con algunas especificaciones para evitar problemas por acceso "multi-threading". ¿Cuál de los dos enfoques es más conveniente? 2. ¿Hay algún problema en que las dataclasses que son las entities de room incluyan funcionalidad adicional (aparte de la implícita de las dataclasses)? Es decir, funciones a medida particulares para la realización de determinadas tareas.
@devexpert_io
@devexpert_io 2 жыл бұрын
1. Pudiendo crearlo en el application, o inyectado con un inyector de dependencias, no veo la necesidad de un singleton. 2. Creo que técnicamente no hay problema, aunque no lo he probado...
@gustavoaguilargarcia9665
@gustavoaguilargarcia9665 2 жыл бұрын
Gracias por la respuesta. 1. ok. Es que nunca había extendido la Application para nada. 2. Efectivamente, no parece que haya problema. He probado con una clase muy simple, con un par de métodos (en este caso, en un companion object) y ha funcionado: los datos se guardan y recuperan correctamente. Ha funcionado tanto si califico la clase como 'data class' como si no. Saludos.
@cjuggernaut6634
@cjuggernaut6634 2 ай бұрын
buenas, como puedo obtener un campo en room a partir del valor de una variable?? *tengo 3 columnas id word defword la variable recibe un valor que esta en la columna "word" y en base a esto me devuelve el valor de "defword" gracias!
@amilcar2406
@amilcar2406 2 жыл бұрын
hola antonio creo que realice todo tal cual explicas en el video pero al momento de ejecutar la app me da un error algo como "entities and pojos must have a usable public constructor and kotlin", como lo corrijo. muchas gracias
@devexpert_io
@devexpert_io 2 жыл бұрын
Entra en el discord y nos compartes código, así podemos ver por qué puede ser: devexperto.com/discord
@paimei4815
@paimei4815 3 жыл бұрын
Muy buen video la mejor explicación de implementación de room, no se si exista una forma de actualizar la base de datos con la inyección de un JSON o podrías hacer un video sobre eso
@devexpert_io
@devexpert_io 3 жыл бұрын
Te refieres a precargar la base de datos la primera vez que se abre la App, o a descargar un json de un servidor y cargarlo en una base de datos? Gracias!
@paimei4815
@paimei4815 3 жыл бұрын
@@devexpert_io Pues Antonio seria en ambas situaciones porque ese tema aun no lo tengo muy claro y los ejemplos que he visto me generan mas confusión
@adrieleduardopalestinohern8535
@adrieleduardopalestinohern8535 2 жыл бұрын
te amo!
@devexpert_io
@devexpert_io 2 жыл бұрын
Jajaja 🥰
@SoyChoquero
@SoyChoquero Жыл бұрын
Vendría bien este CRUD completo de Kotlin, mostrando como trabajar con ROOM y como integrarlo con la UI.
@devexpert_io
@devexpert_io Жыл бұрын
Tomo nota!
@sergioalvarez9913
@sergioalvarez9913 4 жыл бұрын
Genial Antonio! ¿Tienes pensado Ampliar sobre este tema? A un curso sobre esto yo me apuntaría.. :D
@devexpert_io
@devexpert_io 4 жыл бұрын
Qué te gustaria ver en un curso así?
@sergioalvarez9913
@sergioalvarez9913 4 жыл бұрын
@@devexpert_io pues un curso de room, de cero a casos prácticos!
@sergioalvarez9913
@sergioalvarez9913 4 жыл бұрын
@@devexpert_io este video despierta mucho el interés
@devexpert_io
@devexpert_io 4 жыл бұрын
@@sergioalvarez9913 ok, tengo algunas cosas en mente donde algo así podría encajar. Pero tengo que definirlo bien y ver si es viable. Pensaré en ello! Gracias 🙇
@jesusdevandroid1930
@jesusdevandroid1930 3 жыл бұрын
Excelente video !!!
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias!
@luisrobertonavarro7581
@luisrobertonavarro7581 3 жыл бұрын
Buenos días Antonio. Hoy actualicé mi Android Studio a la versión estable de 4.1. Y me encontré con el problema de no poder agregar en el build.gradle(:app) apply plugin: 'kotlin-kpt'. Por lo poquito que entiendo ahora en esta versión se ha modificado la estructura de este archivo ¿PUEDE SER? De entrada cuando inicio un nuevo proyecto viene con la siguiente estructura : plugins { id 'com.android.application' }
@devexpert_io
@devexpert_io 3 жыл бұрын
Pues la verdad que no lo sé, yo he actualizado literalmente hace 5 minutos. Esa es la nueva forma de definir los plugins en Gradle, me sorprende que hayan pasado por dejar de soportar la antigua sin deprecarla antes, pero todo puede ser... La nueva forma para el plugin de KAPT sería así, por si te sirve: kotlinlang.org/docs/reference/kapt.html#using-in-gradle
@luisrobertonavarro7581
@luisrobertonavarro7581 3 жыл бұрын
Ahí logré registrar el Kapt en el Gradle. Pero el problema inicial continua. Tratando de depurar veo que es cuando val room = Room .databaseBuilder(this, PeopleDb::class.java, "person") .build(). Y se rompe la ejecución en el emulador "LA APLICACION SE DETUVO"
@devexpert_io
@devexpert_io 3 жыл бұрын
Pero entiendo que el logcat te dará un error más o menos claro, no? Si quieres pásamelo por email, que hoy vi uno tuyo pero no lo pude contestar. Aunque creo que es eso que ya has solucionado
@drackon1995
@drackon1995 2 жыл бұрын
Excelente video. Tengo una duda, como podria resetear el contador id, cuando elimino todos los elementos de mi tabla? Es que cuando comienzo a meter registros empieza agregar desde el ultimo id que habia generado anteriormente. Te agradeceria mucho si me pudieras ayudar. Saludos desde Mexico.
@devexpert_io
@devexpert_io 2 жыл бұрын
Pues la verdad que no lo sé, nunca lo he necesitado... Haciendo una búsqueda, esto es lo primero que me aparece, no parece que haya una opción muy directa... stackoverflow.com/questions/50878734/android-room-how-to-reset-auto-generated-table-primary-key-on-each-app-run
@drackon1995
@drackon1995 2 жыл бұрын
@@devexpert_io Vale vale muchas gracias por tu respuesta. Ahí lo checo. Saludos 🙋🏻
@ddeandroid5279
@ddeandroid5279 4 жыл бұрын
Hola Antonio, excelente video. Solo me queda una duda. Por qué al final cuando dices que se puede ocupar con LiveData se le tiene que quitar el suspend?. Esa función de getAll ya no se llamaria desde la corutina entonces? Muchas Gracias de nuevo por esta serie de videos
@devexpert_io
@devexpert_io 4 жыл бұрын
No hace falta porque Room se encarga de ejecutar las peticiones en segundo plano si usas un Observable (como LiveData)
@luisgamarrarosado3565
@luisgamarrarosado3565 3 жыл бұрын
Muchas gracias
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias por comentar
@gabrielcastillo7692
@gabrielcastillo7692 2 жыл бұрын
Buenas, estaba siguiendo el vídeo y cuando quise hacer pruebas, me arrojaba la siguiente excepción Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference, no sé a qué se deba, gracias.
@devexpert_io
@devexpert_io 2 жыл бұрын
Necesitas crear la base de datos en el onCreate() de application
@gabrielcastillo7692
@gabrielcastillo7692 2 жыл бұрын
@@devexpert_io La tengo como se hace en el minuto 11:47 y de igual forma creo en el main activity la variable app, cómo se crearía en ese caso?, gracias
@devexpert_io
@devexpert_io 2 жыл бұрын
@@gabrielcastillo7692 a ver si escribo un artículo o algo. En el vídeo hay un fallo, pero ya no se puede cambiar. Es lo que te digo, crear la base de datos en el onCreate del application, en vez de hacerlo directamente como una property
@josephpaucar2179
@josephpaucar2179 2 жыл бұрын
Pudiste resolverlo?
@lujossan.8508
@lujossan.8508 4 жыл бұрын
Muy buen video, solo te tengo 2 dudas, ¿se pueden usa llaves foráneas con room? y si es así ¿qué sintaxis lleva?
@devexpert_io
@devexpert_io 4 жыл бұрын
En Room directamente puedes hacer que un objeto contenga otro objeto, y automáticamente es capaz de buscarlo en tabla correspondiente y recuperarlo. En algún momento haré un vídeo sobre esto, pero mientras puedes echar un ojo a la doc oficial para ver cómo se hace: developer.android.com/training/data-storage/room/relationships
@cjuggernaut6634
@cjuggernaut6634 2 ай бұрын
como puedo definir un string como primaryKey?
@fabriziovit.developerandro8522
@fabriziovit.developerandro8522 3 жыл бұрын
Hola antonio como siempre muchas gracias por tus videos, una consulta como podria guardar un texto ya creado osea un tipo "text" en un apartado de favoritos que tengo en mi app y tambien como quitarlo de favoritos con room. Tendras algun tutorial sobre ello? Gracias
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias! No te sigo muy bien con la pregunta. Si quieres únete al Discord y por allí lo podemos hablar más tranquilamente: devexperto.com/comunidad
@miguelramirezagustin2037
@miguelramirezagustin2037 4 жыл бұрын
muy bueno el video, podrías explicar como las migraciones de db, seria de mucha ayuda Saludos
@devexpert_io
@devexpert_io 4 жыл бұрын
Claro! Lo tengo apuntado, pero se me acumulan los temas 😅. En cuanto pueda le hago un hueco.
@JHONESTIVENGonzalez
@JHONESTIVENGonzalez 2 жыл бұрын
Hola, muchas gracias, excelente video, tengo una duda si me puedes ayudar, al usar esta librería cada vez que agrego una nueva tabla, me pide eliminar la app de manera completa, como puedo hacer para que esto no ocurra?, gracias!!!
@devexpert_io
@devexpert_io 2 жыл бұрын
Muchas gracias Jhon, te invito a que te unas y traslades tus dudas por Discord, un saludo! 👉 devexperto.com/comunidad
@devexpert_io
@devexpert_io 2 жыл бұрын
Sí, cuando cambia la estructura de la base de datos, hay que reinstalar, o bien configurar el mecanismo de actualización de la base de datos. Si estás programando y los usuarios no están usando la app, lo mejor es simplemente reinstalar la app y listo
@JHONESTIVENGonzalez
@JHONESTIVENGonzalez 2 жыл бұрын
@@devexpert_io Muchas gracias por invitarme, ya me he unido, he estado leyendo de apoco porque hay mucha información importante y aprendiendo un poco de como usar discord. Paso también para agradecerte por el materia tan bueno que se comparte por el canal de youtube
@devexpert_io
@devexpert_io 2 жыл бұрын
@@JHONESTIVENGonzalez gracias!
@jonathanfuentes3702
@jonathanfuentes3702 3 жыл бұрын
muy bueno el video, bien explicado, queria consultar sobre personapp que extiende de application, solo hay que aclarar el name en el manisfest no? xq me da error cuando quiero iniciar la val app en el MainActivity, Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference por lo que entiendo en es el context en PersonApp, cuando construyo el room
@devexpert_io
@devexpert_io 3 жыл бұрын
Si, el contexto del application
@djuradof
@djuradof 3 жыл бұрын
Hola, a qué te refieres con lo de ' aclarar el name en el manisfest', tengo ese mismo error y no sé cómo resolverlo. Ya añadí al manifest el nombre pero nada, sigo con el error al ejecutar la app Esto fue lo que añadí al manifest:
@agustinkuran
@agustinkuran 3 жыл бұрын
que bueno sería encontrar un tutorial con esta claridad pero en JAVA.
@devexpert_io
@devexpert_io 3 жыл бұрын
Yo no hago vídeos en Java sorry, la mayor parte de la gente lo busca ya todo en Kotlin
@roofedforest7937
@roofedforest7937 4 жыл бұрын
Tengo una duda, yo se java, pero quiero hacer desarrollo android ¿Me conviene aprender con kotlin Por mas que yo ya sepa java y nada de kotlin?
@devexpert_io
@devexpert_io 4 жыл бұрын
Si te quieres dedicar profesionalmente a ello, te lo recomiendo sí o sí. Apúntate a mi Training gratuito (lo puedes encontrar en el primer comentario o en la descripción) porque ahí te doy números para que veas la situación. Un abrazo!
@nomadeandy
@nomadeandy 4 жыл бұрын
Además de todas las ventajas sobre Java, las búsquedas laborales de Android ya hace tiempo que vienen pidiendo Kotlin como excluyente. Te recomiendo que encares por ese lado totalmente!
@danielsacchi649
@danielsacchi649 4 ай бұрын
Excelente explicacion. Siendo 4/2024, ¿Hay algo deprecated en este video?
@devexpert_io
@devexpert_io 4 ай бұрын
Solo que ahora se usa ksp en lugar de kapt para las dependencias que generan código. En este caso para el compilador de Room. Pero si no lo pones Android Studio te da un warning, así que seguramente lo detectarás rápido.
@t91040
@t91040 3 жыл бұрын
Hola Antonio, muchas gracias por sus tutoriales, necesito pedirle un favor grande, necesito que nos regales unos tutoriales de GraphQL en Android, para reemplazar retrofit. Y por otro lado quería preguntarle, conoces la app indriver? Si, si, sabes con qué tecnología se pudo haber programado le sección de esa app dónde se negocia los precios de una carrera y el cliente puede ir viendo la lista de solicitudes del transportador que le la lista puede ser un recyclerview pero cada una de las cardview tienen una linea de progreso que disminuye cuando los segundos se acaben, cuando el tiempo se acaba para que en cliente escoja la oferta. Esa sección es en tiempo real, he pensado en socket, he pensado en rx Java, en corrutinas, realmente pienso que indriver está hecha en firebase realtime database.
@devexpert_io
@devexpert_io 3 жыл бұрын
Hola Erik, pues no conozco nada de ninguno de los dos temas, sorry...
@cermenoandres9843
@cermenoandres9843 4 жыл бұрын
Excelente Antonio, siempre muy claro y explicaciones fáciles de entender. Me hubiese gustado que trataras el caso especial de los campos tipo Fecha (Date) ya que no es soportado por SQL lite y tu siempre me agregas algo nuevo que no se jejejejeje... Saludos
@devexpert_io
@devexpert_io 4 жыл бұрын
Eso se hace con TypeConverters, pero me lo apunto para otro vídeo. Gracias!
@shiden16
@shiden16 3 жыл бұрын
Muy buen video bien explicado, solo me quedo una duda, es posible realizar cualquier tipo de Query con Dao?, por ejemplo hacer el uso de SUM() o COUNT()?, para tenerlos en variables con LiveData?, Gracias y que tengan buen dia.
@devexpert_io
@devexpert_io 3 жыл бұрын
Sí, se pueden hacer queries de ese tipo contra Room
@TheMarsal8
@TheMarsal8 3 жыл бұрын
¿Cómo se podría añadir otra tabla en la base de datos? Solo hay una tabla..
@devexpert_io
@devexpert_io 3 жыл бұрын
El proceso es el mismo, puede añadir tantas como quieras
@TheMarsal8
@TheMarsal8 3 жыл бұрын
@@devexpert_io es decir, creando mas clases e interfaces? ej. ProductoDb, Producto, ProductoApp, ProductoDao. Serías así? ¿Y en cuanto a las relaciones de la base de datos? Sería de gran ayuda!! Muchas gracias!
@devexpert_io
@devexpert_io 3 жыл бұрын
Para crear una tabla solo necesitas una entity y añadirla en la anotación de @Database, en el listado de entities. Luego si es una entity que tiene vida propia más allá de formar parte de otras entities, entonces merecerá la pena crearle un Dao propio. Lo de las relaciones es otro tema. Tengo pendiente hacer un vídeo en algún momento, pero si no en la referencia de Android está explicado
@melchiah6603
@melchiah6603 4 жыл бұрын
¿Se pueden realizar mapeos para hacer relaciones con otras tablas, algo similar a JPQL (Spring)?
@devexpert_io
@devexpert_io 4 жыл бұрын
Sí, te dejo el enlace a la doc oficial developer.android.com/training/data-storage/room/relationships
@dinodesa9894
@dinodesa9894 3 жыл бұрын
Hola Antonio espero estes bien... tu video está muy bueno (bien explicado)... he realizado al pie todo lo que expones... al final se me genera un error "on a null object reference" en val app = applicationContext as PersonApp... espero puedas ayudarme con ello... Gracias por tu amable contribución.
@devexpert_io
@devexpert_io 2 жыл бұрын
Hola Dino, estoy centralizando las respuestas para todos en Discord, así que te invito a que te unas y traslades tus dudas allí, un saludo! 👉 devexperto.com/comunidad
@jeremiasivanchiricocmartin9047
@jeremiasivanchiricocmartin9047 4 жыл бұрын
saludos, que tanto varia el desarrollo con java, ya que tu lo haces con kotlin
@devexpert_io
@devexpert_io 4 жыл бұрын
Es prácticamente igual, no sé usa ninguna feature de Kotlin que Java no tenga en este vídeo
@enriquemartindelpomarleon
@enriquemartindelpomarleon 3 жыл бұрын
Buen video, y si emulas el código para ver su función en la app?
@devexpert_io
@devexpert_io 3 жыл бұрын
No entiendo muy bien la pregunta, qué necesitas exactamente?
@enriquemartindelpomarleon
@enriquemartindelpomarleon 3 жыл бұрын
@@devexpert_io pregunta podrías correr el código en el emulador para ver?
@usuario534
@usuario534 3 жыл бұрын
Me aparece este error: A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
@devexpert_io
@devexpert_io 2 жыл бұрын
Hola Jesús, estoy centralizando las respuestas para todos en Discord, así que te invito a que te unas y traslades tus dudas allí, un saludo! 👉 devexperto.com/comunidad
@seba23571
@seba23571 3 жыл бұрын
y en que directorio del sistema operativo android va a parar la base de dato sqlite ? gracias
@devexpert_io
@devexpert_io 3 жыл бұрын
Genera una carpeta privada para esa App a la que solo puede acceder ella, por seguridad. En teléfonos rooteados te puedes saltar esa seguridad
@seba23571
@seba23571 3 жыл бұрын
@@devexpert_io gracias logre encontrar esta en el directorio data/data/project-package/ en telefono rooteado o en elmulador no hizo falta que este en root .. muchas gracias
@ssmgeo3846
@ssmgeo3846 Жыл бұрын
Buenas de nuevo!! Una pregunta que no he visto formulada. Si tienes una DB con tres o cuatro entities, cómo haces para añadirlas dentro de @Database? he probado dentro de los corchetes y da error y no encuentro nada en developer.android. ¿O tengo que crear una nueva base de datos?. Mil gracias!!!
@devexpert_io
@devexpert_io Жыл бұрын
Deberías poder. Qué error te da? Si quieres entra en nuestro Discord y te intentamos ayudar por allí: devexperto.com/discord
@ssmgeo3846
@ssmgeo3846 Жыл бұрын
@@devexpert_io , me da este error: "Type mismatch: inferred type is KClass but Array was expected". Pero me meto en discord a preguntar desde ahí. Mil gracias!!!😃
@eduaguilar5004
@eduaguilar5004 4 ай бұрын
Pero cuando llamas a room no estas creando una y otra vez la bd?
@devexpert_io
@devexpert_io 4 ай бұрын
No, la base de datos se crea solo una vez, luego realizas conexiones a la misma base de datos
@criptomonedasconmarshall7869
@criptomonedasconmarshall7869 3 жыл бұрын
solo una pequeña aclaración, el campo edad(age) no se debe considerar ponerlo, ya que la edad es un dato calculado, se debería poner la fecha de nacimiento. Saludos
@devexpert_io
@devexpert_io 3 жыл бұрын
Gracias! Un apunte importante, sin duda
@GRANDELIAS
@GRANDELIAS 4 жыл бұрын
Muy bueno
@devexpert_io
@devexpert_io 4 жыл бұрын
Muchas gracias!
@alexandervcc
@alexandervcc 3 жыл бұрын
Hola buen video. Talvez alguien me puede ayudar porfa, al ejecutar el codigo, me da un error de tratar de ejecutar el metodo en un objeto con referencia null. Haciendo referencia a la linea donde se instancia el PersonApp desde el Main
@devexpert_io
@devexpert_io 3 жыл бұрын
Es complicado saber sin ver el código, sorry...
@leor285
@leor285 3 жыл бұрын
@@devexpert_io Buenas tardes. A mi me ocurre exactamente lo mismo. Error: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference Lei que pusiste de poner la linea donde creo el app luego del setContentView, pero luego el error es: java.lang.ClassCastException: android.app.Application cannot be cast to com.example.personasenbbdd.PersonaApp
@devexpert_io
@devexpert_io 3 жыл бұрын
Comprobad que el contexto que le pasáis a la BD no es nulo
@ruif3r
@ruif3r 4 жыл бұрын
Excelente video como siempre. Que lindas las waifus en la estanteria
@devexpert_io
@devexpert_io 4 жыл бұрын
😂 no son waifus pero gracias!
@cesarruiz7105
@cesarruiz7105 Жыл бұрын
Sabes ¿cuál es el límite de campos que me permite manejar ROOM en las Entities?.
@devexpert_io
@devexpert_io Жыл бұрын
En principio el límite de SQLite es 2000, pero no sé si Room aplicará algún límite extra, no creo
@salazarw700
@salazarw700 2 жыл бұрын
Hola , tendras algun video de room pero con java ?
@devexpert_io
@devexpert_io 2 жыл бұрын
No, lo siento...
@marvinguillen3211
@marvinguillen3211 2 жыл бұрын
podes hacerlo para mssql server
@devexpert_io
@devexpert_io 2 жыл бұрын
Si quieres proponer temas, puedes hacerlo en: devexperto.com/video-klisst
@BitacoraTIMX
@BitacoraTIMX 3 жыл бұрын
En resumen, ROOM = Un ORM inspirado en SpringData para Android
@devexpert_io
@devexpert_io 3 жыл бұрын
Ni idea 😅, pero si se parece a SpringData, puede ser.
@RANDONcrafting
@RANDONcrafting 3 жыл бұрын
pues no me funciona...
@devexpert_io
@devexpert_io 3 жыл бұрын
qué te falla?
@RANDONcrafting
@RANDONcrafting 3 жыл бұрын
@@devexpert_io en la parte que justo decías que no era necesario implementarlo en el manifest, pará que a mí me funcione tuve que implementarlo según lo que encontré en un foro.
@RANDONcrafting
@RANDONcrafting 3 жыл бұрын
Y además del uso de singleton
@maikolsoro1835
@maikolsoro1835 3 жыл бұрын
¿Cuál es la mejor manera de traer 3 tablas relacionadas con room ?
@devexpert_io
@devexpert_io 3 жыл бұрын
Tengo pendiente hacer un vídeo del tema, pero puedes leer sobre ello aquí developer.android.com/training/data-storage/room/relationships
@maikolsoro1835
@maikolsoro1835 3 жыл бұрын
@@devexpert_io Gracias
@davidhernando4716
@davidhernando4716 Жыл бұрын
se sigue importando lifecycleScope? no me da a pesar de tener: implementation "androidx.room:room-ktx:2.5.0" kapt "androidx.room:room-compiler:2.5.0" implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" en mi buildgradle
@devexpert_io
@devexpert_io Жыл бұрын
Hay que importar activity-ktx para el lifecyclescope
Qué es una Activity 📱 en Android | ADC#4
24:23
DevExpert - Programación Android y Kotlin
Рет қаралды 14 М.
Room en Android - Base de Datos Local
18:41
Martin Kiperszmid | Programador
Рет қаралды 6 М.
Or is Harriet Quinn good? #cosplay#joker #Harriet Quinn
00:20
佐助与鸣人
Рет қаралды 58 МЛН
Girl, dig gently, or it will leak out soon.#funny #cute #comedy
00:17
Funny daughter's daily life
Рет қаралды 44 МЛН
Magic or …? 😱 reveal video on profile 🫢
00:14
Andrey Grechka
Рет қаралды 88 МЛН
SCHOOLBOY. Мама флексит 🫣👩🏻
00:41
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 7 МЛН
🔹Flows en Kotlin: Todo lo que necesitas saber
14:09
DevExpert - Programación Android y Kotlin
Рет қаралды 10 М.
🗡Dagger HILT: How to do DEPENDENCY INJECTION on Android ⚡
22:50
DevExpert - Programación Android y Kotlin
Рет қаралды 12 М.
Kafka: Qué es y cómo funciona (en menos de 10')
6:45
Jonathan Gonzalez @ SAFE BYTE LABS
Рет қаралды 42 М.
Arquitecturas Android en 2023 ► MVP, MVVM y Clean Architecture [+GUÍA GRATIS 🎁]
39:27
DevExpert - Programación Android y Kotlin
Рет қаралды 29 М.
Coroutines in Kotlin 👉 Learn how to use them in 5 minutes 🙌
7:24
DevExpert - Programación Android y Kotlin
Рет қаралды 25 М.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 42 М.
DiffUtil para tu RECYCLERVIEW en Kotlin - Optimiza tus recyclerview en Android con Kotlin.
26:57
Programación Android by AristiDevs
Рет қаралды 10 М.
Base de datos Sqlite Dispositivos Móviles en Kotlin
1:52:16
Viera Class
Рет қаралды 9 М.
👨‍💻 TESTING en Android ► ¿Qué es? 😏 TIPOS de tests
27:03
DevExpert - Programación Android y Kotlin
Рет қаралды 11 М.
Or is Harriet Quinn good? #cosplay#joker #Harriet Quinn
00:20
佐助与鸣人
Рет қаралды 58 МЛН