- Видео 308
- Просмотров 424 615
Charfaoui Younes
Алжир
Добавлен 7 окт 2016
Hey there 👋, If you're new to my videos, my name is Charfaoui Younes; I am an Android Developer. I create Android and software engineering-related tutorials 📚 & videos to help you make & create your Android apps and best practices.
Subscribe for new videos every week covering intermediate to advanced lessons about Android, Kotlin, Software Engineering, productivity tips, and much more 📈.
Thanks for your support ✅.
Subscribe for new videos every week covering intermediate to advanced lessons about Android, Kotlin, Software Engineering, productivity tips, and much more 📈.
Thanks for your support ✅.
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...
🚀 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!
7 ADB Commands That Will Make You Android Ninja!
Просмотров 1,6 тыс.6 месяцев назад
7 ADB Commands That Will Make You Android Ninja!
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.
This example is to show how the feature work, but the use cases may differ from one to one.
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.
Sir waiting for next one..
Great! Exactly what I was looking for. Very well explained.
I hope that you do a playlist about jetpack compose
Thanks that's useful to know!
Type shit!! This was helpful bro!
hello thanks for video wha is 0:45 simple 0% seems like a plugin for good code?
Yeah, it is Code Complexity Plugin.
this is awesome!!
Thank you. I no longer need to pass a class parameter for simple inline functions. Thank you once again.
Happy to help!
Thanks for this amazing video.
Our pleasure!
I'm a bit confused on what spotless is doing that ktlint does not by itself. Thank you for a nice video!
i realy need to contact you Younes
sure, here is my email: mxcsyounes@gmail.com
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
Interesting.
Glad you think so!
Thank you for your job!!
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.
This is awesome.
Great video buddy 🔥
Thanks for the visit
In the video at 1:13 , I made a mistake about the ktLint version; it is "1.3.1" and NOT "1.31.1"
Thanks for the update dude
Really always your videos so interesting thanks alot for great videos keep it up sir😍❤
This video helps me too much. thank you
By your solution a hacker just need 5 minutes to find the key in apk.
Really? which solution do you mean?
Hi sir , can we get your whatsapp ?
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
Thanks for this guide !
Glad it helped!
i got no idea. No concept of what is that and what for.
Thanks mate 🤞
Thanks. I implemented it in my project and it is amazing.
Excellent explanation. Thank you for sharing.
Thanks for Sharing one question android studio which plugin keyboard shortcut show in display
Nice share ❤🎉
Thanks for visiting brew!
Please do a vidéo for sharing a kmm library
Thank u very much. your video is really good. Your explanation is solid too. hope your video will reach more people
I hope so too, Thanks a lot!
Can you tell me what is plugin you use for terminal in android studio to be aware of git
It is lazygit, here is a Video I made it for this tool: ruclips.net/video/4OtNZqhvlUI/видео.htmlsi=wSsFiF0FKGItiIAS
Informative content. Thank you for sharing.
Glad it was helpful!
@@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?
Man those book covers need a refactor
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
Spotless uses Ktlint to automate the process.
Pls why would someone want to do a compose test?
tying follow this hint and finish the project while the deadline is approaching :sweatyspeedrunner: xdddd
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 .
Thank you. This is a nice clean, modern example.
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 🔥👨💻🚀
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
Very useful and informative content.Thanks for sharing.
AndroidWeekly brought me here
🫡🫡🫡
WOW Interesting Video. if possible directory code copy in main package not build package
Than You for that tutorial. Let the peace be with You.
In addition to what you said, Launched Effect is also used to execute Coroutines in the background since it provides a CoroutineScope.
Nice explanation!