Charfaoui Younes
Charfaoui Younes
  • 306
  • 415 431
Gilded Rose Refactoring (3/4)
In this video of the Refactoring GildedRose Mini series, we will keep refactoring the code to get more insights and introduce new features requested.
▶️ 0:00 Gilded Rose Refactoring
▶️ 0:19 Problem Statement & Repository
▶️ 1:12 Other Videos For the Kata
▶️ 1:50 Project Setup
▶️ 2:50 Domain Understanding
▶️ 4:18 Adding Tests
▶️ 6:43 Running the Coverage
▶️ 7:18 Outro
🔗 Links:
- GildedRose Repository - github.com/emilybache/GildedRose-Refactoring-Kata
🚀 Online course - Refactoring Legacy Code - bit.ly/47dzTLT
👾 FREE Interview Question PDF - bit.ly/AndroidInterviewQuestion
💻 Android Code Review Checklist - bit.ly/android-checklist
✅ FREE Notion Compose Checklist - sendfox.com/lp/m2v8l6
💚 Join my newsletter - bit.ly/YCNewsletter102
👨🏽‍🏭 Who I am:
I'm Younes Charfaoui, a Software Engineer and an Android Developer. I make videos about Android development, Technology, and productivity for software engineers.
😋 Be My Friend:
💻 GitHub - github.com/Younes-Charfaoui/
🐦 Twitter - CharfaouiYounes
📑 Medium - medium.com/@mxcsyounes
📷 Instagram - charfaoui.younes
🌍 My website - www.younescharfaoui.com
มุมมอง: 4

วีดีโอ

Gilded Rose Refactoring (2/4)
มุมมอง 13514 ชั่วโมงที่ผ่านมา
In this video of the Refactoring GildedRose Mini series, we will start refactoring the challenge introduced in the last video by removing the clutter, reducing the complexity of the code, and adding new requirements. ▶️ 0:00 Gilded Rose Refactoring ▶️ 0:40 Test Coverage Isn't Enough ▶️ 1:45 Removing the Clutter ▶️ 2:36 Analyzing & Refactoring ▶️ 13:00 Checking Complexity ▶️ 14:30 Analyzing & Re...
Gilded Rose Refactoring (1/4)
มุมมอง 311วันที่ผ่านมา
In this video of the Refactoring GildedRose Mini series, we will begin the refactoring challenge by introducing the Kata and adding the necessary setup and tests to ensure the best possible refactoring experience! ▶️ 0:00 Gilded Rose Refactoring ▶️ 0:19 Problem Statement & Repository ▶️ 1:12 Other Videos For the Kata ▶️ 1:50 Project Setup ▶️ 2:50 Domain Understanding ▶️ 4:18 Adding Tests ▶️ 6:4...
The Reason We Need Compose Keys!
มุมมอง 64014 วันที่ผ่านมา
In this video, we will see in-depth why we need to set up some keys when working with Lazy List in Compose. We will understand the concept and see how we can apply it in action by using another composable key when not using LazyList. Enjoy! ▶️ 0:00 Intro ▶️ 0:26 App & Code Showcase ▶️ 2:19 What's Happening? ▶️ 3:35 Fixing Recomposition! ▶️ 4:20 The Key Composable ▶️ 6:40 Compose Groups ▶️ 8:12 ...
DON'T Do this Mistake with derivedStateof!
มุมมอง 73921 วันที่ผ่านมา
In this video, we will learn a common pitfall we make in Compose when using derivedStateOf. You will understand the issue in depth and see how we can fix it using another side effect called rememberStateOf. Enjoy. 🚀 Online course - Refactoring Legacy Code - bit.ly/47dzTLT 👾 FREE Interview Question PDF - bit.ly/AndroidInterviewQuestion 💻 Android Code Review Checklist - bit.ly/android-checklist ✅...
Automatically Make YOUR Code Spotless!
มุมมอง 636หลายเดือนก่อน
In this video, we will learn how to set up and use a Spotless plugin to fix linting and formatting in an Android codebase. We will cover the setup process, running the task, making it automatic when running your Android app, and integrating it into your CI pipeline. ▶️ 0:00 Spotless ▶️ 0:57 Plugin ▶️ 1:10 Setup ▶️ 5:45 Running Spotless ▶️ 6:57 Automatic Spotless ▶️ 8:30 Github Action Setup ▶️ 1...
How To Automate Network Layer Creation in Android!
มุมมอง 797หลายเดือนก่อน
💻 Join my new Refactoring Legacy Code course now: bit.ly/47dzTLT In this video, we will explore a powerful method for simplifying the creation of the network layer in Android. We will demonstrate how to set up a generator using the OpenAPI Spec and walk through an example using the GitHub API. 🔗 Links: - Docs- openapi-generator.tech/docs/generators - Github - github.com/OpenAPITools/openapi-gen...
Why we write Bad Code?!
มุมมอง 484หลายเดือนก่อน
💻 Grab my Refactoring Legacy Code course here: bit.ly/47dzTLT 🤩 35% OFF Code Promo: AUGUST2024 In this video, we will discuss why we write bad code as software engineers, the reasons behind it, and then explore how to fix the problem by approaching the code we add to the codebase from a different angle. 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 disc...
3 Small Tips To Improve Your Refactoring!
มุมมอง 2.2Kหลายเดือนก่อน
💻 Grab my Refactoring Legacy Code course here: bit.ly/47dzTLT 🤩 35% OFF Code Promo: AUGUST2024 In this video, we will discuss how sealed classes and interfaces can improve your code and examine the differences between them. By learning about these things, you will be able to use them better in your own code. 🔗 Links: - Code Complexity - plugins.jetbrains.com/plugin/21667-code-complexity 📩 Sign ...
The Difference between Sealed Interfaces & Sealed Classes!
มุมมอง 6922 หลายเดือนก่อน
💻 Grab my Refactoring Legacy Code course here: bit.ly/47dzTLT In this video, we will discuss how sealed classes and interfaces can improve your code and examine the differences between them. By learning about these things, you will be able to use them better in your own code. 🔗 Links: - jorgecastillo.dev/sealed-interfaces-kotlin 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my C...
Use THESE Tricks for Efficient Bug Fixing 🐞!
มุมมอง 5792 หลายเดือนก่อน
💻 Join the waiting list for the Security Masterclass Course I am building: security.younescharfaoui.com/ In this video, we will share several tips and tricks that can help you fix bugs quickly and efficiently. We will cover some tools alongside the right mindset to handle various aspects of bug fixing. 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 disco...
DON'T HAVE These UseCases in your Android Code!
มุมมอง 8212 หลายเดือนก่อน
💻 Grab my Refactoring Legacy Code course here: bit.ly/47dzTLT In this video, we will explore the incorrect use of the use case pattern in your Android app. We will discuss why this approach is suboptimal and how to make room for much better implementations of this pattern. 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 discord.gg/nKgZd6E3Db 👨🏽‍🏭 Who I am...
The only way to Secure API Keys in Android!
มุมมอง 1.3K2 หลายเดือนก่อน
💻 Join the waiting list for the Security Masterclass Course I am building: security.younescharfaoui.com/ In this video, we will explore the challenges of securing API Keys in Android projects, showcasing the only way you can secure it from all types of attacks. 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 discord.gg/nKgZd6E3Db 👨🏽‍🏭 Who I am: I'm Younes...
a Singleton Twist Interview Question with Kotlin!
มุมมอง 9162 หลายเดือนก่อน
📩 Sign up for my new newsletter here: bit.ly/YCNewsletter102 💻 Join my new Refactoring Legacy Code course now: bit.ly/47dzTLT In this video, we will solve an interview question about Singleton with Kotlin. We will provide not only the solution but also common tips to communicate in the interview. 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 discord.gg/...
Maintain consistency in your Kotlin Codebase with Konsist!
มุมมอง 7063 หลายเดือนก่อน
💻 Join my new Refactoring Legacy Code course now: bit.ly/47dzTLT In this video, we will explore the world of Static Code Analyzers with an easy-to-use library called Konsist. This will help you ensure the consistency of your codebase! 🔗 Links: - Docs- docs.konsist.lemonappdev.com/ 📩 Sign up for my new newsletter 👇 bit.ly/YCNewsletter102 Join my Community on Discord 👇 discord.gg/nKgZd6E3Db 👨🏽‍🏭 ...
Search Like a Pro: 3 Game-Changing Techniques Developers Ignore!
มุมมอง 6833 หลายเดือนก่อน
Search Like a Pro: 3 Game-Changing Techniques Developers Ignore!
Get to Know one of The Best Testing Libraries for Kotlin!
มุมมอง 8193 หลายเดือนก่อน
Get to Know one of The Best Testing Libraries for Kotlin!
The Ultimate Jetpack Compose Creation Checklist!
มุมมอง 8253 หลายเดือนก่อน
The Ultimate Jetpack Compose Creation Checklist!
The Best Way to Learn as an Android Developer!
มุมมอง 1.2K4 หลายเดือนก่อน
The Best Way to Learn as an Android Developer!
Debug Your Jetpack Compose UIs Effortlessly!
มุมมอง 5714 หลายเดือนก่อน
Debug Your Jetpack Compose UIs Effortlessly!
Prepare your next Android Interview with these questions!
มุมมอง 1.3K4 หลายเดือนก่อน
Prepare your next Android Interview with these questions!
The Easiest Way to Start Test Driven Development (TDD)!
มุมมอง 4774 หลายเดือนก่อน
The Easiest Way to Start Test Driven Development (TDD)!
Dagger Hilt - Custom Qualifiers For Hilt in Android!
มุมมอง 5405 หลายเดือนก่อน
Dagger Hilt - Custom Qualifiers For Hilt in Android!
Don't Use Inheritance Until You Watch This!
มุมมอง 6445 หลายเดือนก่อน
Don't Use Inheritance Until You Watch This!
4 Ways To Debug Recomposition in Your Jetpack Compose UI!
มุมมอง 1.2K5 หลายเดือนก่อน
4 Ways To Debug Recomposition in Your Jetpack Compose UI!
Kotlin Context Receivers Made Easy!
มุมมอง 9565 หลายเดือนก่อน
Kotlin Context Receivers Made Easy!
Compose Preview Parameter Provider
มุมมอง 4195 หลายเดือนก่อน
Compose Preview Parameter Provider
7 ADB Commands That Will Make You Android Ninja!
มุมมอง 1.5K6 หลายเดือนก่อน
7 ADB Commands That Will Make You Android Ninja!
Implementing Type Writer Effect in Jetpack Compose!
มุมมอง 6146 หลายเดือนก่อน
Implementing Type Writer Effect in Jetpack Compose!
5 Android App Ideas You Need to Develop!
มุมมอง 3K6 หลายเดือนก่อน
5 Android App Ideas You Need to Develop!

ความคิดเห็น

  • @MirrorsEdgeGamer01
    @MirrorsEdgeGamer01 4 วันที่ผ่านมา

    Thank you. I no longer need to pass a class parameter for simple inline functions. Thank you once again.

  • @safionweb
    @safionweb 11 วันที่ผ่านมา

    Thanks for this amazing video.

  • @nicklasnilsson8217
    @nicklasnilsson8217 12 วันที่ผ่านมา

    I'm a bit confused on what spotless is doing that ktlint does not by itself. Thank you for a nice video!

  • @Akro22
    @Akro22 13 วันที่ผ่านมา

    i realy need to contact you Younes

    • @CharfaouiYounes
      @CharfaouiYounes 13 วันที่ผ่านมา

      sure, here is my email: mxcsyounes@gmail.com

  • @god_bika
    @god_bika 13 วันที่ผ่านมา

    Your speech and the sample were simple, consistent, concise and with immaculate language unlike other similar videos with same topic.Imo. But what was missed imo, I didnt find where to place to those @qualifiers. I mean they used to create separate kotlin/java files for MainActivity or for @module stuff or for a class using those dependencies. Should i create a file for qualifiers as well? Thanks in advance

  • @vengateshm2122
    @vengateshm2122 13 วันที่ผ่านมา

    Interesting.

  • @MurtiYama
    @MurtiYama 16 วันที่ผ่านมา

    Thank you for your job!!

  • @cryingsoul226
    @cryingsoul226 18 วันที่ผ่านมา

    hello i need helpp this is not working for me. I put the TAG nothing shows im using firebase but the tag is not showing anything.

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

    This is awesome.

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

    Great video buddy 🔥

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

    In the video at 1:13 , I made a mistake about the ktLint version; it is "1.3.1" and NOT "1.31.1"

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

      Thanks for the update dude

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

    Really always your videos so interesting thanks alot for great videos keep it up sir😍❤

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

    This video helps me too much. thank you

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

    By your solution a hacker just need 5 minutes to find the key in apk.

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

      Really? which solution do you mean?

  • @Akro22
    @Akro22 20 วันที่ผ่านมา

    Hi sir , can we get your whatsapp ?

  • @yeljayad
    @yeljayad 20 วันที่ผ่านมา

    u need to add this part for dependency injection : To integrate dependency : project.afterEvaluate { publishing { publications { libraryProject(MavenPublication) { groupId = 'com.xxxx.xxxxx' artifactId = 'arxxxxxx' version = '0.1' artifact bundleReleaseAar pom.withXml { def dependenciesNode = asNode().appendNode('dependencies') configurations.implementation.allDependencies.each { dependency -> def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', dependency.group) dependencyNode.appendNode('artifactId', dependency.name) dependencyNode.appendNode('version', dependency.version) } } } } } } <3

  • @demadima3135
    @demadima3135 20 วันที่ผ่านมา

    Thanks for this guide !

  • @god_bika
    @god_bika 22 วันที่ผ่านมา

    i got no idea. No concept of what is that and what for.

  • @legendx08377
    @legendx08377 25 วันที่ผ่านมา

    Thanks mate 🤞

  • @ziglee
    @ziglee 26 วันที่ผ่านมา

    Thanks. I implemented it in my project and it is amazing.

  • @vengateshm2122
    @vengateshm2122 26 วันที่ผ่านมา

    Excellent explanation. Thank you for sharing.

  • @CodingMeet26
    @CodingMeet26 27 วันที่ผ่านมา

    Thanks for Sharing one question android studio which plugin keyboard shortcut show in display

  • @mahendranv6264
    @mahendranv6264 27 วันที่ผ่านมา

    Nice share ❤🎉

    • @CharfaouiYounes
      @CharfaouiYounes 27 วันที่ผ่านมา

      Thanks for visiting brew!

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

    Please do a vidéo for sharing a kmm library

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

    Thank u very much. your video is really good. Your explanation is solid too. hope your video will reach more people

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

      I hope so too, Thanks a lot!

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

    Can you tell me what is plugin you use for terminal in android studio to be aware of git

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

      It is lazygit, here is a Video I made it for this tool: th-cam.com/video/4OtNZqhvlUI/w-d-xo.htmlsi=wSsFiF0FKGItiIAS

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

    Informative content. Thank you for sharing.

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

      Glad it was helpful!

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

      @@CharfaouiYounes ktlint_ rules are ignored. I have underscore in package name however disabling the rule still throws error while running spotlessCheck. Any inputs on this?

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

    Man those book covers need a refactor

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

    Thanks for nice video. I would like to have the implementation of the Git. What the advantage is of having spotless and ktlint over ktlint only

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

      Spotless uses Ktlint to automate the process.

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

    Pls why would someone want to do a compose test?

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

    tying follow this hint and finish the project while the deadline is approaching :sweatyspeedrunner: xdddd

  • @Adnankhan-dq9rx
    @Adnankhan-dq9rx หลายเดือนก่อน

    Why you are not returning "Flow<List<Words>>" rather then List<Words> because it i think every one using Flow to getting data from Room databas .

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

    Thank you. This is a nice clean, modern example.

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

    Hello Charfaoui, great video. Thaks. Pls can you provide github repo for this video? Maybe I'm doing some wrong and I need to check it what is in my project wrong! I’m 🔥👨‍💻🚀

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

    i am learning app development and working on app clone (instagram to be specific) but i don't understand how is it going to be useful for anyone obviously i can only make a clone out of it

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

    Very useful and informative content.Thanks for sharing.

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

    AndroidWeekly brought me here

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

    WOW Interesting Video. if possible directory code copy in main package not build package

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

    Than You for that tutorial. Let the peace be with You.

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

    In addition to what you said, Launched Effect is also used to execute Coroutines in the background since it provides a CoroutineScope.

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

    Nice explanation!

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

    I was taught that the next developer to read my code might be a homicidal maniac who knows where I live, and I should write code that wont give them a reason to use that information. In this age of high performance compute resources, readability is a whole lot more important than those few microseconds you can catch by making the code more cryptic.

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

    This is my first time watching one of your videos. I wanted to see what the three tips are quickly because I don't know you and I don't want to waste much time watching someone I don't know, so I looked for chapters, but there are no chapters. I then looked in the description, but there weren't any bullet points. I then decided it wasn't worth watching a five minute video to find out what random ideas random guy has, so I decided to leave. But before that I left this comment so that you can know why I bounced off your channel, because even though I have limited time and attention, I still genuinely wish you the best of luck with your channel. Another great coding channel is always welcome.

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

      I concur

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

    When thinking of algorithms or structure i turn off the music

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

      Which means its a distraction 🫡

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

    Wow, well explained

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

    Awesome tips, thank you.

  • @AbdouDk-o9l
    @AbdouDk-o9l หลายเดือนก่อน

    Maybe we'll work together in My project 🎉

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

    Your playlist abou tests seems very cool, I am goin to be watching ot soon.

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

    Hello! Do you think that, in the simple casese where we don't need a complex hierarchy, sealed classes and sealed interfaces are interchageable? I'm working on a project where developers tend to migrate from sealed classes to sealed interface for the sole purpose of sparing a couple of parenthesis. In my mind, the interface approach is more appropriate when there's behaviours (rather than properties) than need to be shared, so it leads to unproductive discussions :) It seems that Kotlin basically provides 2 ways to achieve very similar results, but they both stem from different concepts at the Java level. What do you think about this?

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

    Unfortunately, 😕 I'd say languages as basic as Python have better lambda syntax. Wth was the language designer thinking with this whole caller{ } Syntax??? Why not just do caller({ }) ??