Charfaoui Younes
Charfaoui Younes
  • Видео 308
  • Просмотров 424 615
A Beginner Guide to Compose Locals!
In this video, we will see in-depth how you can use an excellent feature of compose to allow us to share some objects within the compose tree to achieve many behaviors; we will see a practical case in this video and how to use it in general, so Enjoy!
🚀 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 en...
Просмотров: 312

Видео

Gilded Rose Refactoring (4/4)
Просмотров 124День назад
In this final video of the Refactoring GildedRose Mini series, we will perform the final touches to the kata by using the abstraction we created, converting mutable properties to immutable ones, and much more. 🔗 Links: - GildedRose Repository - github.com/emilybache/GildedRose-Refactoring-Kata 🚀 Online course - Refactoring Legacy Code - bit.ly/47dzTLT 👾 FREE Interview Question PDF - bit.ly/Andr...
Gilded Rose Refactoring (3/4)
Просмотров 13114 дней назад
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 Repos...
Gilded Rose Refactoring (2/4)
Просмотров 19121 день назад
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)
Просмотров 357Месяц назад
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!
Просмотров 696Месяц назад
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!
Просмотров 768Месяц назад
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!
Просмотров 717Месяц назад
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!
Просмотров 8272 месяца назад
💻 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?!
Просмотров 4972 месяца назад
💻 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,2 тыс.2 месяца назад
💻 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!
Просмотров 7182 месяца назад
💻 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 🐞!
Просмотров 6042 месяца назад
💻 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!
Просмотров 8313 месяца назад
💻 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,4 тыс.3 месяца назад
💻 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!
Просмотров 9293 месяца назад
a Singleton Twist Interview Question with Kotlin!
Maintain consistency in your Kotlin Codebase with Konsist!
Просмотров 7433 месяца назад
Maintain consistency in your Kotlin Codebase with Konsist!
Search Like a Pro: 3 Game-Changing Techniques Developers Ignore!
Просмотров 6874 месяца назад
Search Like a Pro: 3 Game-Changing Techniques Developers Ignore!
Get to Know one of The Best Testing Libraries for Kotlin!
Просмотров 8684 месяца назад
Get to Know one of The Best Testing Libraries for Kotlin!
The Ultimate Jetpack Compose Creation Checklist!
Просмотров 8464 месяца назад
The Ultimate Jetpack Compose Creation Checklist!
The Best Way to Learn as an Android Developer!
Просмотров 1,2 тыс.4 месяца назад
The Best Way to Learn as an Android Developer!
Debug Your Jetpack Compose UIs Effortlessly!
Просмотров 5864 месяца назад
Debug Your Jetpack Compose UIs Effortlessly!
Prepare your next Android Interview with these questions!
Просмотров 1,3 тыс.5 месяцев назад
Prepare your next Android Interview with these questions!
The Easiest Way to Start Test Driven Development (TDD)!
Просмотров 4905 месяцев назад
The Easiest Way to Start Test Driven Development (TDD)!
Dagger Hilt - Custom Qualifiers For Hilt in Android!
Просмотров 5655 месяцев назад
Dagger Hilt - Custom Qualifiers For Hilt in Android!
Don't Use Inheritance Until You Watch This!
Просмотров 6515 месяцев назад
Don't Use Inheritance Until You Watch This!
4 Ways To Debug Recomposition in Your Jetpack Compose UI!
Просмотров 1,3 тыс.6 месяцев назад
4 Ways To Debug Recomposition in Your Jetpack Compose UI!
Kotlin Context Receivers Made Easy!
Просмотров 9656 месяцев назад
Kotlin Context Receivers Made Easy!
Compose Preview Parameter Provider
Просмотров 4316 месяцев назад
Compose Preview Parameter Provider
7 ADB Commands That Will Make You Android Ninja!
Просмотров 1,6 тыс.6 месяцев назад
7 ADB Commands That Will Make You Android Ninja!

Комментарии

  • @robchr
    @robchr 4 дня назад

    Per the documentation a CompositionLocal should have a good default value. Avoid CompositionLocal for concepts that aren't thought as tree-scoped or sub-hierarchy scoped. A CompositionLocal makes sense when it can be potentially used by any descendant, not by a few of them. This example is not how it should be used.

    • @CharfaouiYounes
      @CharfaouiYounes 4 дня назад

      This example is to show how the feature work, but the use cases may differ from one to one.

  • @skarloti
    @skarloti 4 дня назад

    While CompositionLocal can make testing more difficult due to implicit state and dependencies, using techniques like CompositionLocalProvider or manually overriding values during tests can help alleviate some of these challenges. However, for most stateful composables, hoisting state is generally preferred for its testability and transparency.

  • @BHARATGARANDE
    @BHARATGARANDE 4 дня назад

    Sir waiting for next one..

  • @TightPhysics
    @TightPhysics 5 дней назад

    Great! Exactly what I was looking for. Very well explained.

  • @Benianus3D
    @Benianus3D 5 дней назад

    I hope that you do a playlist about jetpack compose

  • @yassinesafraoui
    @yassinesafraoui 6 дней назад

    Thanks that's useful to know!

  • @stevensilitonga
    @stevensilitonga 11 дней назад

    Type shit!! This was helpful bro!

  • @rogercolque
    @rogercolque 12 дней назад

    hello thanks for video wha is 0:45 simple 0% seems like a plugin for good code?

  • @riddhishah7708
    @riddhishah7708 19 дней назад

    this is awesome!!

  • @MirrorsEdgeGamer01
    @MirrorsEdgeGamer01 24 дня назад

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

  • @safionweb
    @safionweb Месяц назад

    Thanks for this amazing video.

  • @nicklasnilsson8217
    @nicklasnilsson8217 Месяц назад

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

  • @Akro22
    @Akro22 Месяц назад

    i realy need to contact you Younes

    • @CharfaouiYounes
      @CharfaouiYounes Месяц назад

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

  • @god_bika
    @god_bika Месяц назад

    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 Месяц назад

    Interesting.

  • @MurtiYama
    @MurtiYama Месяц назад

    Thank you for your job!!

  • @cryingsoul226
    @cryingsoul226 Месяц назад

    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 Месяц назад

    This is awesome.

  • @Mohanraj29399
    @Mohanraj29399 Месяц назад

    Great video buddy 🔥

  • @CharfaouiYounes
    @CharfaouiYounes Месяц назад

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

  • @sekiro8987
    @sekiro8987 Месяц назад

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

  • @됬
    @됬 Месяц назад

    This video helps me too much. thank you

  • @dmrichprince
    @dmrichprince Месяц назад

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

  • @Akro22
    @Akro22 Месяц назад

    Hi sir , can we get your whatsapp ?

  • @yeljayad
    @yeljayad Месяц назад

    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 Месяц назад

    Thanks for this guide !

  • @god_bika
    @god_bika Месяц назад

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

  • @legendx08377
    @legendx08377 Месяц назад

    Thanks mate 🤞

  • @ziglee
    @ziglee Месяц назад

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

  • @vengateshm2122
    @vengateshm2122 Месяц назад

    Excellent explanation. Thank you for sharing.

  • @CodingMeet26
    @CodingMeet26 Месяц назад

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

  • @mahendranv6264
    @mahendranv6264 Месяц назад

    Nice share ❤🎉

  • @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

  • @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: ruclips.net/video/4OtNZqhvlUI/видео.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 2 месяца назад

    Very useful and informative content.Thanks for sharing.

  • @Benny_San
    @Benny_San 2 месяца назад

    AndroidWeekly brought me here

  • @CodingMeet26
    @CodingMeet26 2 месяца назад

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

  • @sebastiankupis4448
    @sebastiankupis4448 2 месяца назад

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

  • @abdoumhn6324
    @abdoumhn6324 2 месяца назад

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

  • @tahabenly
    @tahabenly 2 месяца назад

    Nice explanation!