Renaro Santos
Renaro Santos
  • 21
  • 88 368
SOLID - Single Responsibility principle in 3 minutes
The SOLID principles are very popular principles in software development.
Specially during interview, knowing how to explain the SOLID principles might give you and extra advantage over other candidates.
Understand in this video what is the Single Responsibility principle.
มุมมอง: 3 918

วีดีโอ

Coding challenge for $200
มุมมอง 248ปีที่แล้ว
I proposed a coding challenge to 3 of my subscribers, the one who implements the best UI improvement gets $200 dollars. Check the result in the end of the video and the comments of each Pull Request. Can you do better? Subscribe and comment to have a chance to participate in the next videos. Connect with me on LinkedIn: www.linkedin.com/in/renaro/
Biggest mistake when building BIG apps.
มุมมอง 2322 ปีที่แล้ว
The dependencies of your app can either save or kill it. Understand how to maintain and implement them. If you have questions let me know in the comments! You can also reach me on LinkedIn. If you wanna know more in depth about this type of content check my course. Link for the course: ~ 📚 www.skillshare.com/en/r/profile/Renaro-Santos/362049881?gr_tch_ref=on&gr_trp=on or here: ~ 📚 www.udemy.com...
Error handling in Android : easy way!
มุมมอง 4.5K2 ปีที่แล้ว
Error handling is very important for any Android project, you do not have to make it in a complicated way. Here I show a simple but effective way to handle errors in Android. If you have questions let me know in the comments! You can also reach me on LinkedIn. If you wanna know more in depth about this type of content check my course. Link for the course in SkillShare: ~ 📚 www.skillshare.com/en...
Android Interview soft skills (as interviewer)
มุมมอง 2882 ปีที่แล้ว
There are 3 common mistakes that very often people are making during online interviews. Here I explain how to do not make those same mistakes. If you wanna learn how to implement Clean Architecture MVVM checkout my course : ~ 📚 www.skillshare.com/en/r/profile/Renaro-Santos/362049881?gr_tch_ref=on&gr_trp=on or here: ~ 📚 www.udemy.com/course/android-clean-architecture-mvvm-jetpack/?referralCode=4...
YAGNI in 2 min - XP Programming
มุมมอง 8712 ปีที่แล้ว
Here I explain what is YAGNI and why you should avoid writing unnecessary code. Whenever you can YAGNI it. If you find this coding tip useful share it with your colleagues. Follow me if you are interested in Clean Architecture, Android Development and IT career tips. If you wanna follow my course about Clean Architecture , MVVM find it here: ~ 📚 www.skillshare.com/en/r/profile/Renaro-Santos/362...
Room database 5.1 EASY steps in Android
มุมมอง 2852 ปีที่แล้ว
Room helps you to use a database in a very easy and maintainable way, using it is very easy. Here I explain how to do it. If you have questions let me know in the comments! You can also reach me on Instagram and LinkedIn. If you wanna know how to implement it in a real Android app check my course. In Skill Share (multiple courses): ~ 📚 www.skillshare.com/en/r/profile/Renaro-Santos/362049881?gr_...
Android Testing ViewModel - Common problems
มุมมอง 8K2 ปีที่แล้ว
Unit tests are very important in software development, they are much faster and more reliable than UI/Integration tests. A lot of companies are interested in finding people that know the best practices of unit tests. Here I will explain about the common issues you might face when testing your ViewModel. If you have questions let me know in comments or in my social networks! If you wanna know ho...
Implement MVVM in Android with Kotlin - Part 3
มุมมอง 1.3K2 ปีที่แล้ว
In this series I show how to implement MVVM for an e-commerce app, following the concepts of Clean Architecture. This part we will talk about the repository layer. Please don't forget to like and subscribe if you liked it. Source code: ~ github.com/renaro/ecommerce-android-app If you wanna know IN DETAILS how to implement check my course: ~ 📚 Udemy: www.udemy.com/course/android-clean-architectu...
Salary Negotiation tips: what NOT to do
มุมมอง 3752 ปีที่แล้ว
3 Tips to help you on how to negotiate a better salary. A salary negotiation starts right in the first call, so pay attention during the whole process so you can have higher chances of getting a better offer. Here are 3 tips that I share about salary negotiation and interview process: - Don't share too much. - Don't go to an interview without enough information. - Don't provide a salary range. ...
How to implement MVVM + Clean Architecture - Part 2
มุมมอง 1.6K2 ปีที่แล้ว
In this series I show how to implement MVVM for an e-commerce app, following the concepts of Clean Architecture. This part we will talk about the domain/business layer. Please don't forget to like and subscribe if you liked it. Source code: ~ github.com/renaro/ecommerce-android-app If you wanna know IN DETAILS how to implement check my course: ~ 📚 Udemy: www.udemy.com/course/android-clean-archi...
How to implement MVVM + Clean Architecture - Part 1
มุมมอง 7K2 ปีที่แล้ว
In this series I show how to implement MVVM for an e-commerce app. This part we will start with the ViewModel Fragment. Please don't forget to like and subscribe if you liked it. Source code: ~ github.com/renaro/ecommerce-android-app If you wanna know IN DETAILS how to implement check my course: ~ 📚 www.udemy.com/course/android-clean-architecture-mvvm-jetpack/?referralCode=42035AE05A7789FD6920 ...
Clean Architecture in Android in 5 minutes
มุมมอง 22K2 ปีที่แล้ว
Clean architecture is very important in the software development. A lot of companies are interested in finding people that know the concepts of Clean Architecture, SOLID, clean code among others. Here I explain about it. If you have questions let me know! If you wanna know how to implement it in a real Android app check my course. Link for the course: ~ 📚 bit.ly/cleancoderenaro If you prefer ac...
Reactive Programming with Kotlin - RxJava - Part 1
มุมมอง 1.8K6 ปีที่แล้ว
Reactive Programming with Kotlin - RxJava - Part 1
How to implement and visualize K-Means algorithm
มุมมอง 1.5K7 ปีที่แล้ว
How to implement and visualize K-Means algorithm
Android Studio Tips/Features to speed up coding
มุมมอง 2517 ปีที่แล้ว
Android Studio Tips/Features to speed up coding
Android MVP - Part 3 (Model)
มุมมอง 3.7K7 ปีที่แล้ว
Android MVP - Part 3 (Model)
Android MVP - Part 2 (Presenter)
มุมมอง 7K7 ปีที่แล้ว
Android MVP - Part 2 (Presenter)
Android MVP - Part 1 (VIEW)
มุมมอง 23K7 ปีที่แล้ว
Android MVP - Part 1 (VIEW)

ความคิดเห็น

  • @sadiquereyaz
    @sadiquereyaz วันที่ผ่านมา

    nice video

  • @martapfahl940
    @martapfahl940 10 วันที่ผ่านมา

    This is from Clean Architecture right? 😅

  • @EricWalker-i4u
    @EricWalker-i4u 20 วันที่ผ่านมา

    Really good video. You almost made it until you got to the data layer. The details and conformance to the contracts defined in the domain layer should NOT live in the center of the onion. that is a violation of CLEAN which dictates that dependencies flow in and external concrete implementations that depend on external resources for instance live on the outside of the onion, on the edges.

    • @Renaro
      @Renaro 19 วันที่ผ่านมา

      @@EricWalker-i4u the details of the implementatation ate not in the center of the architecture but in the outer most layer, the data layer, or did I miss something?

  • @shaharts8333
    @shaharts8333 3 หลายเดือนก่อน

  • @cosmicdioxide
    @cosmicdioxide 5 หลายเดือนก่อน

    Wow thank you! Such compact yet very clear explanation

  • @Smael64
    @Smael64 7 หลายเดือนก่อน

    Where's the D?

  • @durgaprasaddas6494
    @durgaprasaddas6494 8 หลายเดือนก่อน

    clean and precise

  • @jackli1924
    @jackli1924 9 หลายเดือนก่อน

    awsome!cool!

  • @siddharthshah4220
    @siddharthshah4220 11 หลายเดือนก่อน

    Amazing video! Thank you for explaining this. One doubt: So, if we move away from coroutines, livedata to something else, our Unit Tests needs to be changed as well. Aren't Unit tests suppose to be independent of the implementation details?

  • @АлександрБауэр-о4й
    @АлександрБауэр-о4й ปีที่แล้ว

    Stop calling Android architecture principles from google documentation "Clean architecture". Android documentation make it clear that your data layer is the most important/source of truth etc. In real clean architecture you make Repository an interface located in domain layer. That way you follow Inversion of Control principle to make domain the most important layer in your application. It is very frustrating and brings a lot of confusion. By the way it does not mean that architecture in your video aka Google recommended architecture is wrong, it is just not Clean Architecture from Uncle Bob book.

    • @jackeblan
      @jackeblan 9 หลายเดือนก่อน

      I agree. This is not Uncle Bob's CA. This is just a modified MVVM.

  • @sebastianvargas2517
    @sebastianvargas2517 ปีที่แล้ว

    Hey Renaro, great video! Thanks for explaining it so simple!

    • @devnagringa
      @devnagringa ปีที่แล้ว

      Happy that you liked it.

  • @waltersantanna5468
    @waltersantanna5468 ปีที่แล้ว

    Wow, good job Gabriel.

  • @alexandr.semen4uk
    @alexandr.semen4uk ปีที่แล้ว

    So bad code...

  • @gearboxworks
    @gearboxworks ปีที่แล้ว

    Excellent! So many people get S.R.P. wrong, but you nailed it! How do I know? Because I've studied what Uncle Bob who defined the S.R.P. has had to say about S.R.P. And clearly, you have too! Good job. 🎉

  • @subyk6046
    @subyk6046 ปีที่แล้ว

    If you use it for api call, make sure, that you will handle errors from api, because errors from api are in the end successful api call... I recommend try/catch block and use if/else in try (simple example how i mean it): try { if(client.status.code in 200-299) { return AsyncResult.Success(data) } else { AsyncResult.Error(Exception("${client.status.code} -> $data")) //error msg from api is usual string } } catch (e: Exception) { AsyncResult.Error(e) }

  • @mouzinu
    @mouzinu ปีที่แล้ว

    Que vídeo bom mano!!! Por favor, faz uma série de test em android, tem pouquissimo conteúdo sobre.

  • @jiegao-k3f
    @jiegao-k3f ปีที่แล้ว

    great video. I have learned more, You have another about Unit tests and UI tests can share me

  • @francotavares5448
    @francotavares5448 ปีที่แล้ว

    Conteúdo de primeira linha!! Tem pouquíssimo conteúdo por aí sobre testes no Android e vc me ajudou muito nesse vídeo, valeuu

  • @name1566
    @name1566 ปีที่แล้ว

    Understood

  • @dragonzhao433
    @dragonzhao433 ปีที่แล้ว

    this only check for state change but how we verify the livedata changed with observer?

  • @nurlanikhsan3692
    @nurlanikhsan3692 ปีที่แล้ว

    Great!

  • @nurlanikhsan3692
    @nurlanikhsan3692 ปีที่แล้ว

    amazing

  • @thecreative9102
    @thecreative9102 ปีที่แล้ว

    A lot of boiler plate code to use observer in the test class, instead create a separate LiveDataUtil file

    • @Renaro
      @Renaro ปีที่แล้ว

      Indeed that could help!

  • @abhasarya7152
    @abhasarya7152 ปีที่แล้ว

    wow, fantastic explanation!

    • @Renaro
      @Renaro ปีที่แล้ว

      Glad to read!

  • @janbrs7040
    @janbrs7040 ปีที่แล้ว

    Another treasure I just found.

  • @patrikcodes
    @patrikcodes ปีที่แล้ว

    Hello, I would like to participate in your next code challenge.

  • @rithulraj3348
    @rithulraj3348 ปีที่แล้ว

    Where should we put service, broadcast receiver, work manager etc

    • @Renaro
      @Renaro ปีที่แล้ว

      They are the implementation details of "a repository" so they should go in the data/repository layer

  • @InimigoDaEscala6x1
    @InimigoDaEscala6x1 ปีที่แล้ว

    nice video, thanks

  • @My_words.3
    @My_words.3 ปีที่แล้ว

    My name is yagni

  • @ArturoDevA
    @ArturoDevA ปีที่แล้ว

    no deberia haber ninguna instancia de un repository en el viewmodel, ya que es el caso de uso quien se comunica con el repository

    • @Renaro
      @Renaro ปีที่แล้ว

      Good point, very often Use Cases does nothing but call the repositories, if there is no "use case" for a use case then there is no problem having a repository in the viewModel, as long as the repository is an interface

  • @DanielIderiba
    @DanielIderiba ปีที่แล้ว

    Thank you for the video. Your explanation was quite clear despite the content being quite complex. I confess I must see the video 2 or 3x to absorb the content. Helped a lot!

  • @andrevini8099
    @andrevini8099 ปีที่แล้ว

    Hi, I am having a problem that my viewModel uses the function init{} and it is pointing that I Method getMainLooper in android.os.Looper not mocked. for this, any tips?

    • @Renaro
      @Renaro ปีที่แล้ว

      I would recommend injecting a dispatcher as an argument to the viewModel, then you can easily replace it for a Test dispatcher for unit tests, see it here: developer.android.com/kotlin/coroutines/coroutines-best-practices

    • @andrevini8099
      @andrevini8099 ปีที่แล้ว

      @@Renaro Thank you very much Renaro, what I did was instantiate my view model inside my setup function after Dispatchers.setMain(dispatcher)

  • @RajvardhanShinde-wh1ok
    @RajvardhanShinde-wh1ok ปีที่แล้ว

    Found a good video, that actually makes sense.

  • @thencode8403
    @thencode8403 ปีที่แล้ว

    I am having trouble testing cold flows. Stateflow create with stateIn function. I need to collect it first before I can check it new not initial value

  • @thencode8403
    @thencode8403 ปีที่แล้ว

    You're awesome ❤

  • @cvbarros
    @cvbarros ปีที่แล้ว

    Concise, clear and to the point. Excellent explanation and disambiguation! Very well laid out 👏

  • @nymexe
    @nymexe ปีที่แล้ว

    What about the kotlin.Result class?

    • @Renaro
      @Renaro ปีที่แล้ว

      Indeed you should be careful to import the correct class, better name it something other than Result

    • @nymexe
      @nymexe ปีที่แล้ว

      @@Renaro I mean, what is wrong with kotlin.Result class? You are creating your own, I think it's just more code to maintain.

    • @Renaro
      @Renaro ปีที่แล้ว

      @@nymexe Indeed a good option as well for the network layer, there you will always have either a success with data or an exception, but for domain errors you might want to define more different types of errors, think for example about a backend response with an invalid input field and validations, then you might need some other types of errors that Result from Kotlin does not support.

    • @nymexe
      @nymexe ปีที่แล้ว

      @@Renaro Got it. Thank you!

    • @ggwp57229
      @ggwp57229 ปีที่แล้ว

      ​@@Renaro But your class also have 2 (error, success) types like a kotlin.Result approach. You can wrap any Throwable to Failure. So I think don't need to create bicycles.

  • @larrystreehouse1124
    @larrystreehouse1124 ปีที่แล้ว

    When to use state flow when to use live data? I hear that we need a real time observer for observing the live data change...

  • @potavios
    @potavios ปีที่แล้ว

    Top!

  • @adebayoolawale6396
    @adebayoolawale6396 ปีที่แล้ว

    One thing i love so much about your videos is that, you always break the complex to the simplest form and you always do that in an unimaginable shortest time. Thank you very much.

    • @devnagringa
      @devnagringa ปีที่แล้ว

      Thanks for the kind words Ade! 👏👏👏

  • @andyli619
    @andyli619 ปีที่แล้ว

    great video great explaination of unit test. I learned a lot from this awesomevideo thank you bro!

    • @Renaro
      @Renaro ปีที่แล้ว

      Happy to read this!

  • @andyli619
    @andyli619 ปีที่แล้ว

    waiting for the unit testing video

    • @Renaro
      @Renaro ปีที่แล้ว

      Hey man, thanks! It is here: th-cam.com/video/UNLOX4U3CQA/w-d-xo.html

    • @andyli619
      @andyli619 ปีที่แล้ว

      @@Renaroamazing!

  • @andyli619
    @andyli619 ปีที่แล้ว

    awsome video thanks bro

  • @andyli619
    @andyli619 ปีที่แล้ว

    awesome! thanks a lot

  • @Sok4h
    @Sok4h ปีที่แล้ว

    Your channel is really useful, can't wait to see more content from you

    • @Renaro
      @Renaro ปีที่แล้ว

      So glad to read that! Thank you very much!

  • @Klash1100
    @Klash1100 ปีที่แล้ว

    Dude, thank you!

  • @sulemankhan523
    @sulemankhan523 ปีที่แล้ว

    Thanks for the great explanation Also autogenerated subtitles are perfect in your videos, thats really great too

    • @Renaro
      @Renaro ปีที่แล้ว

      Glad to read this!

  • @morrisbarnett4457
    @morrisbarnett4457 ปีที่แล้ว

    promo sm ✅

  • @MarcosMendes-ej1oy
    @MarcosMendes-ej1oy ปีที่แล้ว

    Hi Renaro, i'm a Brazilian. I'm fluent in english and I started studying Android development this year. I'm studying all day and everyday but I dont have a degree. I'm in a bootcamp right now and as soon as finish, I'll do your course on udemy. But, my question is about college... I dont have a degree and my goal is to work for foreign companies. What would you recommend me to do ? Am I in the right path, learning to create real apps for android through bootcamps and courses ? Or is there other things that I should focus? Sorry for this extensive question ;( i'm unemployed and I'm dedicating in this field as a hope to get a job.

    • @Renaro
      @Renaro ปีที่แล้ว

      Hey Marcos, very nice that you are studying hard! I recommend that first you find a job in smaller companies and then work your way up to bigger start-ups, they don't care that much if you have a degree or not, as long as you have knowledge. Once you have experience, you can apply for foreign companies and you will look more attractive to them if you are working. I would recommend a "Tecnologo" as well, in 3 years you have a degree a no more problems with that. Good luck!

    • @MarcosMendes-ej1oy
      @MarcosMendes-ej1oy ปีที่แล้ว

      @@Renaro Thanks for answering me, Renaro! I'll keep up the hard work,and within some months i'll take your course to go to another level by learning the MVVM archicteture and best practices. Maybe can even participate of your code challenges sooner hahahaha I'm a new subscriber in your channel and I liked the way you teach with a clear english! Congrats! When I start working, will look for a tecnologo degree!

    • @Renaro
      @Renaro ปีที่แล้ว

      Hey Marcos you can use this code and get the course for free: www.udemy.com/course/android-clean-architecture-mvvm-jetpack/?couponCode=D7A30B4076017EE45E90 Don't forget to give me a good review later ;)

    • @MarcosMendes-ej1oy
      @MarcosMendes-ej1oy ปีที่แล้ว

      @@Renaro Oohhh! Dps dessa vou ter que te agradecer em portugues hahahaha Renaro, muitissimo obrigado por esse presente cara! Por mais pessoas como voce nesse mundo. Sou de origem humilde, nascido e criado em uma favela do RJ, área de risco. Nunca me vitimizei e aprendi ingles por conta, com muita garra comprei um pc gamer de um amigo e um notebook usado pra aprender programação. To desempregado mas tenho a ferramenta pra aprender essa nova profissão e to me dedicando ao máximo. To te falando isso pq creio que daqui a uns anos vou estar em outra realidade graças a programação e ao ingles. E com certeza voce já está fazendo parte dessa historia importante da minha vida! pode deixar que vou deixar minha avaliação lá! Tmj irmão, muitissimo grato!

    • @Renaro
      @Renaro ปีที่แล้ว

      Tamo junto, qualquer dúvida pode perguntar, me add lá no LinkedIn