Capítulo por escrito cursokotlin.com/mvvm-en-android-con-kotlin-implementando-retrofit-corrutinas-y-clean-architecture/
@briamflorestorres7063
3 жыл бұрын
BRUTAAAL, Ya subeeee la 3 parteeeeee
@AristiDevs
3 жыл бұрын
Muchas gracias!
@aribo9523
Жыл бұрын
Bro no sabes lo que me ayudaste con todos tus videos. Para alguien que estas iniciando o se manda a hacer un proyecto con esta tecnologia, como es mi caso, tus videos son lo mas util que hay por internet.... Te lo recontra agradezco.
@casfefusan
3 жыл бұрын
La parte 3 por favor!!!! ya te di likes por todas partes!
@hernnymalaver3427
Жыл бұрын
aqui estamos viendo el tuto porque ya la chamba la tengo. Gracias bro.
@AntonioSanchez-bi3nu
Жыл бұрын
Que difícil es esto. Ha habido actualizaciones en estos 2 años o no?
@armandosanchtz
3 жыл бұрын
Eres un crack! como me has ayudado en esta nueva etapa como freelance!
@israelrd1883
Жыл бұрын
Soy estupido. No entiendo una m*****
@carlosgusman963
3 жыл бұрын
10/10 esteramos la siguiente parte . Que bueno nos mandas los libros que leiste para aprender mas rapido.
@juanivanvillasiordia4172
3 жыл бұрын
Excelente vídeo amigo!! Esperamos la parte 3, estaría genial incluir un recyclerview para ver cómo interactúan la view y un adapter con MVVM. Saludos desde Teotihuacán México :-)
@jeckefe
3 жыл бұрын
De hecho ahi ando atorado, el adapter como lo actualizo
@nicolaspinobello
3 жыл бұрын
@@jeckefe mediante el observer, creas una lista y a traves del patron observer si existe un cambio haces un notifydatachange()
@blackzero4703
2 жыл бұрын
pudiste implentar eso en un recyclerview quiero recuperar todas las quotes pero no se como... alguien alguna idea .. para no mandar el random y pasar la lista completa
@yoryi4428
3 жыл бұрын
Que buen video, esta es la primera vez que veo el video, pero creo que por el volumen de información, debo verlo nuevamente, muchisimas gracias, aprendiendo bastante
@giovannyavila8105
3 жыл бұрын
Que buen video!!! espero con ansias la parte en la que se implemente Dagger Hilt y una parte donde se pueda implementar Pruebas unitarias
@albertorobles4738
3 жыл бұрын
grande crack! Una cosa, estaría bien agrupar todos estos conocimientos y los previos en una pequeña app
@chavechavero2317
Жыл бұрын
Sos crack Aris! Despues de dos años de desarrollo en Mobile me vi el curso devuelta y esta genial refrescar un par de cosas desde cero, me llamaras loco, pero me sirvio jaja Quiero aprovechar para dejarte una duda que no logro encontrar una claridad jaja, espero puedas y quieras ayudarme. En resumen tengo que agregar la capa de domain(UseCase) a un proyecto que esta en MVVM, pero no lo hicieron con esta capa. (El viewModel, pide y envia todo directo al repositorio) Mi duda es, el UseCase se utiliza solo como pedido de informacion? (Ya sea local o internet) O tambien para el envio? (Ya sea enviar las credenciales de un usuario para hacer login o actualizar algun dato en el preference). Como no encontre ningun ejemplo que diga algo TEXTUAL, y por lo que investigue, llegue a la conclucion que los UseCase se usan como getters, formateos o armados de clases. Pero al momento de enviarle algo al repository, lo hace el viewModel directamente, estoy en lo correcto? EJ: Al hacer login, el viewModel recibe las credenciales ingresadas por el usuario, le pide al UseCase que formatee la clase(Body) que necesita para enviarlas al BackEnd. Utiliza este resultado, para enviarle al repositorio, el cual lo envia y recibe una respuesta... Esta respuesta seria manejada completamente por el viewModel o deberia de pasar por un UseCase tambien? No se, me hice un poco de bola, seguramente quede a la imaginacion de cada dev, pero quiero trabajarlo de la manera mas "convencional" posible y no tengo muchos referentes a donde apuntar. Un saludo desde Argentina, perdon por el aprovechamiento y la consulta, sin compromiso si no queres o podes responder esta todo mas que bien. Muchas gracias por todo el contenido!
@luismortello5496
Жыл бұрын
Seguí al pie de la letra y la aplicación se cerraba al tratar de conectar Retrofit, faltaba agregar esta linea a Manifest: android:usesCleartextTraffic="true" Excelentes video bro, saludos 😎✌
@deliaramirezmedina
3 жыл бұрын
Me encanta como simplificas los procesos, hace poco realice un curso para programar en android y veo que todavía me falta un montón para aprender más cosas, tus apuntes, los vídeos y las demás alternativas para aprender estan muy buenas :), muchas gracias. Lo que si cache que cuando me meto para ver los capítulos del curso esta hasta la 30 (el listado de los capítulos), para seguir con el resto apreté el botón de abajo para seguir xD, lo más probable es que tengas muchas cosas que hacer :), pero me encanta todo y muchas gracias, seguiré estudiando y viendo de nuevo todos los contenidos porque me falta mucha practica y conceptos nadando xD
@AristiDevs
3 жыл бұрын
Tengo que actualizar el listado! Me alegra que te guste el contenido, un saludo y a darle caña!
@appprueba5766
2 жыл бұрын
Si hay algun error en el servicio por ejemplo 404. Como haria para volver a llamar al servicio y verificar que funcione nuevamente, por ejemplo con un boton de reintentar?
@envoladedeporte
3 жыл бұрын
Genial el video!!! podrías hacer un video de Clean Architecture porfis??? sería genial. Gracias :D!
@appprueba5766
Жыл бұрын
Ssi necesitas pasar un context. es recomedable pasarlo al view model? o crear un factory para ese caso por el contexto?. ya que dicen que no es recomendable pasar un contexto a view model por fugas de memoria. como seria recomendable hacerlo?
@MrRaptors93
3 жыл бұрын
Genio! Muy buen video! Me ayudaste a entender varias cosas sobre las que aun tenia dudas.
@bailandoconhumo9549
10 ай бұрын
joe como te curras los tutoriales!!!!! mil gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@unamRatiug
8 ай бұрын
MVVM no es un patrón de arquitectura como tal, se podría decir que es un patrón de diseño de la capa de presentación.
@facundoarielverdugomendez5601
4 ай бұрын
buenas tengo una duda, en la foto de clean architecture la capa de use case esta afuera de la de dominio. En el ejemplo que estamos viendo en el video el caso de uso pertenece al dominio y la capa interna es la data. ¿No debería la capa de dominio ser la misma que la capa de casos de uso?
@leonelp9593
Жыл бұрын
che pueden haber varias clases repository dependiendo del UseCase que lo utilice?
@onzulingamer4735
3 жыл бұрын
Hola pues estoy siguiendo el curso y la verdad es que se nota que falta un tercer video, para terminar al menos de aprender MVVM en Android aunque ciertamente me parece complicado MVVM el patron en si que tambien lo he intentado aprender en las aplicaciones Windows Presentation Foundation pero sinceramente me parece bien complicado MVVM, por eso estaria muy bien que hicieras tercera parte de este vídeo muchas gracias y valiosa informción.
@AristiDevs
3 жыл бұрын
Ya está disponible la tercera parte, es el vídeo de dagger hilt
@tatnaitech3410
Жыл бұрын
Hola, voy siguiendo la seria de videos pero en este cuando intento hacer el get no regresa el Json, tampoco en posman, tal ves algo hice mal
@danielcervantes607
3 жыл бұрын
woooooow eres grande, justo lo que queria aprender, muchas gracias!!!!
@TheAlver11
3 жыл бұрын
Esperando la parte 3!!! buenísimo el videoooo!!! Sos un GENIO
@alexsalcedosilva4183
2 жыл бұрын
Saludos, la url del firebase no funciona drawsomething-59328-default-rtdb.europe-west1.firebasedatabase.app/
@RichardNetClass
3 жыл бұрын
Excelente video, gracias por los aportes y esperamos el siguiente video.
@VocesDelAyer777
Жыл бұрын
al mover el view y viewmodel al paquete ui empezó a salir este error al ejecutar: E/AndroidRuntime: FATAL EXCEPTION: main Process: pe.com.example_mvvm, PID: 498
@welomehell
3 жыл бұрын
Excelente, por favor continúa con esta serie. Es super útil.
@rogertello2947
2 жыл бұрын
Seria muy cool que mostraras como hiciste la API Rest de este proyecto, comentas que usaste firebase. Saludos de un fan!! tus videos me estan salvando la vida como no te imaginas.
@jhonnysan2026
10 ай бұрын
x2 me gustaria entender que hiciste en firebase
@samsony1144
3 жыл бұрын
Sos un genio!!! Ayudas muchisimo! GRACIAS
@JohanMosqueraYT
3 жыл бұрын
Excelente Aristiv, gracias por compatir el conocimiento. Esperando la siguiente parte 🔥
@RubenYebran
3 жыл бұрын
10/10 como siempre! Grande Ari!
@bernardoflores4831
Жыл бұрын
para arreglar la funcion RandomQuote en el minuto 30:34 es asi: fun randomQuote(){ isLoading.postValue(true) val quote = getRandomUserCase() quote?.let { quoteModel.postValue(it) } isLoading.postValue(false) }
@erickfarinas6148
3 жыл бұрын
Excelente video! Al fin estoy entendiendo bien como implementar clean architecture
@mayra_vgm9011
3 жыл бұрын
Admirable ya te di like.. Me encanta tu forma de explicar
@yeraydeniz
2 жыл бұрын
Buenas, jefe. En el minuto 20, justo cuando cierras pestañas, mi android studio me marca error en random() (lo pone rojo), el random de val currentQuote: QuoteModel = QuoteProvider.random() de la función randomQuote() de la clase QuoteViewModel. Cuando pongo el ratón sobre random me pone esto: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: y no tengo ni idea que pasó, macho...
@yeraydeniz
2 жыл бұрын
nada, avancé un minuto y vi el error XD saludos
@marcoherrera9118
3 жыл бұрын
Hola, me encanta ver tus videos de los mejores que encuentro en la red, espero pronto continúes con este tema de mvvm, saludos y gracias por compartir tus conocimientos
@josemanuelparedesramirez5067
3 жыл бұрын
Excelente vídeo, gracias Aris 😎✌️
@JulioGalli
3 жыл бұрын
Excelente tutorial. También estoy a la espera del tercero
@n3twork550
2 жыл бұрын
En la interface QuoteAPI veo que la función getAllQuotes retorna un Response, pero he visto que la mayoría utiliza Call allí. Por qué utilizas response en vez de call? Gracias
@leonelp9593
Жыл бұрын
lastima que no hay 3era parte :c 21:56 27:59
@VICMAGUCAS
2 жыл бұрын
En Ingeniería de Software, usamos mucho el termino casos de uso y hay un lenguaje para crearlo lógicamente, denominado UML...
@marcelozair4263
Жыл бұрын
That's amazing, you are a good instructor
@toledomatias
3 жыл бұрын
Creas 2 corrutinas anidadas, una en el viewmodel, con viewmodelscope, y otra en el Quoteservice, la primera es necesaria? No es suficiente con la segunda? Olvidaba, muy buenos tus videos, muy agradecido
@AristiDevs
3 жыл бұрын
La idea es lanzarlo en el viewmodel para realizar la lógica desde ahí
@manuelalejandroibarragonza797
3 жыл бұрын
Gracias, son excelentes videos, explicado, sin rollos, perfectos!!. Pd. Esperando con ansia la parte 3
@danielsacchi649
5 ай бұрын
Bajé el Jellyfish y me estoy volviendo loco tratando de que funcione este proyecto (que andaba bien en Jirafa)
@AristiDevs
5 ай бұрын
Me va tocando hacer update del curso 😬
@MarioPerez-dn8ek
3 жыл бұрын
Es necesario el withContext? Me parece que retrofit al ser una función de suspensión sabe que tiene que ejecutarse en un hilo diferente al de la vista, esto mismo pasa con con room
@AristiDevs
3 жыл бұрын
tecnicamente no se ejecutaría si no es suspend
@diegoobando525
3 жыл бұрын
Grandee!!, que bueno que encontré tu canal 👌👌
@axeritor
3 жыл бұрын
excelente video cuando estoy a la espera de la tercera parte
@rcandidoa
3 жыл бұрын
He comentado en el video anterior pero mereces mas... jeje No soy de android soy de iOS pero tengo que hacer un pequeño proyecto en Android para un bootcamp y de verdad me has dado el gustillo por Android. Seguramente vere todos tus videos!! Son muy buenos
@AristiDevs
3 жыл бұрын
Muchísimas gracias! Me alegra que te guste ^^
@ENRIQUEMARTINEZ-gt9dr
2 жыл бұрын
Cuando vas a implementar Room
@cristiansanabria2210
2 жыл бұрын
Ya lo descubrí, copie el formato de tu json lo importe en Realtime Database y ahí vi como lo armaste. Muchas gracias igualmente por compartir estos excelentes tutoriales!
@MauroMontenegro2013
Жыл бұрын
Hice una API Rest local en Node JS, que devuelve el JSON con algunas frases, pero no se por qué el emulador no envía el GET solicitando los datos. Hice todo tal cual el video, pero no funca. Con Postman ejecuto el GET, y me muestra el json, pero con retrofit, no se qué onda.
@AristiDevs
Жыл бұрын
Tendrás que poner unos logs pero parece que no estás llamando al método que hace la llamada
@MauroMontenegro2013
Жыл бұрын
@@AristiDevs Del MainActivity llama al quoteViewModel.onCreate.. En el onCreate llama getQuotesUseCase De la clase GetQuotesUseCase llama al repository.getAllQuotesFromApi.. De la función getAllQuotesFromApi llama al api.getQuotes Del QuoteService llama al api.getAllQuotes Y de ahí va al QuoteApiClient.. pero no se en qué parte llama al RetrofitHelper.. Hice una API Rest en node.js.. pero por la consola del paquete nodemon de npm.. no me aparece que hace la petición a la URL.. Cuando hago la petición con Postman.. si me aparece.. Puede ser que no haya una comunicación entre el emulador y el servidor en node?
@66Heinkel
2 жыл бұрын
Ese onCreate en la capa viewmodel es innecesaria. En kotlin existe el bloque reservado init{...} que se ejecuta apenas se crea la clase.
@AristiDevs
2 жыл бұрын
Muy buen apunte, si señor! (a mi también se me escapan cosillas haha)
@MrCharson1
2 жыл бұрын
tengo una duda, cual es la diferencia entre CoroutineScope y withContext?
@xabutencolorado1587
2 жыл бұрын
una pregunta sobre esto Aris, si yo quisiera pedir datos desde firestore database o realtime database, tambien debería hacerlo así? porque yo lo hago un metodo totalmente diferente
@valdemirsimon8825
3 жыл бұрын
Genial.!!!, Muchas gracias Ari.
@federicogiorno
3 жыл бұрын
Excelente!!!! Espero el 3 y siguientes
@racoomcity
2 жыл бұрын
Como siempre las mejores explicaciones, tengo una pregunta, cuando tienes un @POST como puedes pasar parámetros?
@braianstivenpenamorales3349
Жыл бұрын
Aris muy buenos tus videos como siempre, ahora estoy siguiendo los pasos pero implementando firebase firestore, logro traer datos pero con el metodo get si uso el snapshotlistener no me funciona y necesito los datos en tiempo real, algun consejo ?
@perezoso210
3 жыл бұрын
Tercera Parte amigo !!! Por favor 🙏, saludos desde México !!!
@4bekas
2 жыл бұрын
Muchas felicidades Aristi, una consulta bro, ya salio la serie de videos de la app mas robusta?
@deambrose4292
2 жыл бұрын
Super el video bro, pero quisiera un ejemplo de como capturar errores api rest con clean usando el Response
@malcubas1
3 жыл бұрын
Gracias AristiDevs ... Maestro!
@bryanvelasquez5368
Жыл бұрын
Aris una duda, he visto videos donde se usa el valor directamente ejemplo isLoading.value = valor, mientras que tu veo que utilizas el postvalue, existe alguna diferencia, ventaja, u ejemplo donde se deba usar uno y no otro? gracias
@Hollow_Crafter
Жыл бұрын
te haz ganado un suscriptor nuevo, tus videos me estan siendo de mucha ayuda para mi trabajo
@kevincandiav.795
Жыл бұрын
En mi caso aparece el loading con los textos hello world, que podria ser?
@AristiDevs
Жыл бұрын
No le has puesto la visibilidad a gone
@engellopez541
2 жыл бұрын
saludos, excelente video me ha ayudado muchísimo, seria brutal incluir una parte con un formulario y una petición post , o completar un pequeño CRUD...estaría BRUTAL...saludos desde venezuela
@dannysaman6707
3 жыл бұрын
Genial , muy buen contenido ! 🔥
@martinballester7914
2 жыл бұрын
capoooo!!!! explicas perfecto, se nota la experiencia en cada cosa que hablas.
@webserveis3498
3 жыл бұрын
Geniaaaaal, muy bien explicado
@barbaronivel7024
2 жыл бұрын
la funcion dawdawda delata la esencia gamer, like si estas de acuerdo.
@AristiDevs
2 жыл бұрын
Me has pillado HAHAHAHA
@luisandersonbrunoruiz6462
3 жыл бұрын
Estaba esperando la segunda parte !!
@JuanDQT
3 жыл бұрын
Buenísimo! 👏🏼
@dashcode2892
2 жыл бұрын
Eres un crack! Soy nuevo y estoy siguiendo tus videos
@alexalba2441
3 жыл бұрын
Esta muy chevere todo lo que se aprende ..esperamos que ya salga la 3 parte
@AristiDevs
3 жыл бұрын
Ya está, busca el vídeo de inyección de dependencias de hilt, es la tercera parte!
@dariannacruzdelarosa6356
2 жыл бұрын
Crackkkkkkkk🤌🏼
@atherbsc5384
2 жыл бұрын
Con retrofit no tuve ningún problema, pero con volley llevo batallando horas y no logro que se conecte con el repository
@AristiDevs
2 жыл бұрын
No te recomiendo en pleno 2021 usar Volley la verdad
@atherbsc5384
2 жыл бұрын
@@AristiDevs Estoy coincidiendo con tu idea, en proyectos java me funcionaba bien, pero ahora que me mude a Kotlin(estoy aprendiendo) me esta costando horrores, y en san google no encontré casi nada, tal parece que hay muchos problemas en usar volley con el patrón mvvm, la única solución que pude fue usar interfaces para traer del repository al viewmodel pero no me acaba de convencer aparte de que no se ve vistoso, tal parece que la mejor opcion es retrofit asi que toca aprender, le voy a dar una ojeada a tu video. Saludos
@resman2511
3 жыл бұрын
aqui esperando la tercera parte aún ya han pasado 84 años :''v
@AristiDevs
3 жыл бұрын
Ya está grabado 👀
@resman2511
3 жыл бұрын
@@AristiDevs a que esperas?, suscríbete. ah esa es tu linea, a que esperas?, subela
@cristiangutierrez2335
3 жыл бұрын
grande crack!!! que bien explicado todo! felicitaciones! quedo a la espera de la tercera parte !
@javicamar
2 жыл бұрын
Muy buena serie de videos, gracias compi
@norDevCommand
2 жыл бұрын
Me convenciste de suscribirme con esas quote
@AristiDevs
2 жыл бұрын
AHHAHAHAH
@anallamas9401
2 жыл бұрын
Aris, como siempre de 10!! Y si añadieras una parte de gestión de errores sería de matricula!!! 😎
@bryanortega9755
2 жыл бұрын
Que belleza y facil que se hace seguir tus tutoriales!!! toma tu like y estrellita en git ♥
@malpv
2 жыл бұрын
Muy buen vídeo, tengo una duda porque usar class en los useCases y no object ?
@AristiDevs
2 жыл бұрын
Porque la idea es una clase privada a la cual solo se acceda por una instancia de esta (clean code y todo ese rollo)
@malpv
2 жыл бұрын
@@AristiDevs Muchas gracias por la respuesta hace mucho tenía esa duda, Gracias!
@SergioAndresSierraPayares
2 жыл бұрын
Aristi, la 3ra parte por favor :D plis
@AristiDevs
2 жыл бұрын
Si lleva tiempo disponible! Es el vídeo de Dagger Hilt
@aEstrada_
2 жыл бұрын
28:47 🤣🤣🤣🤣🤣 que grande. Me he encontrado con estos videos de casualidad y estoy flipando! Graaaaaaaaaande
@AristiDevs
2 жыл бұрын
hahahah Much´ˆsimas gracias!
@oscarhumbertotorresmoreno2395
3 жыл бұрын
Excelente, video muy bien explicado. Solo tengo una pregunta, no veo donde se gestionan los errores, excepciones solo falta eso para quedar 100%
@AristiDevs
3 жыл бұрын
Poco a poco! Hay mas cositas que podemos ponerle también :)
@martinmori2634
3 жыл бұрын
Consulta, Retrofit no se encarga directamente de hacer el request en un hilo de IO? es necesario el Dispatcher de la corutina?
@AristiDevs
3 жыл бұрын
Justo!
@JesusRodriguez-zo9bb
3 жыл бұрын
Increible el video, necesitamos mas
@AristiDevs
3 жыл бұрын
Pues atento esta tarde 👀
@JesusMarfilMX
3 жыл бұрын
excelente video, espero con gusto el siguiente
@corinthiomrx
3 жыл бұрын
Como seria si quiero traer informacion de un usuario como nombre, telefono, email, etc de cloudFirestore?
@AristiDevs
3 жыл бұрын
En la capa de data en vez de acceder a retrofit accedes a firestore
@sepa1234
2 жыл бұрын
no entiendo porque me marca error en QuoteApiClient , me dice que Cannot resolve symbol 'suspend' , pero en el gradle tengo está dependencia :O implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6'
@AristiDevs
2 жыл бұрын
Intenta importarlo manualmente, coge los imports de mi github y ponlos
@juanbastias4144
3 жыл бұрын
Hola Aris.! saludos y felcidades por tus videos los he visto todos y he aprendido un monton.! Sabes que habia visto que subistes el video#3 de MVVM pero ahora buscandolo no lo ubico. paso algo? o subiras otro ?Muchas gracias
@AristiDevs
3 жыл бұрын
Es el vídeo de dagger hilt!
@juanbastias4144
3 жыл бұрын
@@AristiDevs muchas gracias Aris.! ya lo veo. Eres el mejor.!
@carlosgonzalez1464
3 жыл бұрын
vi el cap uno de MVVM y me aclaraste muchisimo, ahora voy a este. Por favor no te olvides de dagger lo esperare
Пікірлер: 165