Gradle for Beginners (Build Types, Product Flavors, Build Variants, Source Sets)
Vložit
- čas přidán 27. 06. 2024
- This video covers the core concepts of Android Gradle. That includes different build types (debug, release, etc.), product flavors and their use, build variants and how to make use of different source sets.
Get the multi-module course here:
elopage.com/s/philipplackner/...
💻 Let me personally review your code and provide individual feedback, so it won't backfire and cost you a fortune in future:
elopage.com/s/philipplackner/...
Subscribe to my FREE newsletter for regular Android, Kotlin & Architecture advice!
pl-coding.com/newsletter
Join this channel to get access to perks:
/ @philipplackner
Join my Discord server:
/ discord
Regular programming advice on my Instagram page: / _philipplackner_
Checkout my GitHub: github.com/philipplackner
You like my free content? Here you can buy me a coffee:
www.buymeacoffee.com/philippl...
00:00 - What is Gradle?
03:18 - Gradle Groovy vs. Gradle Kotlin DSL
05:07 - The Gradle wrapper
08:38 - Build types
12:42 - Product flavors
19:22 - Source sets
You sir is a gift from heaven for us Intermediate developers.
Why is it that ever time I go searching for an explanation of something in Android development I always seem to end up on this channel? Thanks for all of this information, Philipp! Danke Schoen!
Hoooray! Finally ! This is soo important to learn as early as possible in your dev career and many of us fail to do so! Thanks a lot Philipp
you're right, I've postponed learning Gradle till this video and I've suffered the consequences
After years of android development, finally I'm going to understand product flavors!
Great work
Thanks
Just what I needed, thank you
Thank you for doing this..For a Gradle beginner, this is such a good start
Thanks Philipp for this video. You're the best.
Fantastic video. I learned a lot on something I have wanted to learn about. Got some good notes from this and I am looking forward to watching more of your content.
I m really glad I follow this channel.. Thanks Philip! Your content is really helpful
Nice one! waiting for next video on gradle. thank you Philipp
Content and knowledge, up to the mark as always ❣️
Thank you for creating this video, it is so helpful mate.
Thanks, I faced with Flavors just 2 weeks ago on a new job :)
It may be not 100% clear from this video, but you can use different res folders as well.
Waiting for the next part!
Thank you for this video Philipp!
I can't wait for the next video ... *You are the best*
Best Gradle video ever. I'm desperately waiting for the next part in this series. Also, If we don't want to have 2 apks for free and paid features, instead we want to have it in one apk, and unlock paid feature modules on subscription basis. How to manage this use case? Please make a video on this. There's literally no video on it.
If that is your usecase, then you don't need to create a buildFlavor. You just need to create a different module to separate the concern for free and paid features.
@@stephensiapno7361 Thanks. Sure I'll try the multi-modular approach.
@@devenderchaturvedi9903 If it's one apk and it's in app subscription, just use the billing library with multi module I guess
Thanks mate, really good content and very helpful as always
OP explanation Philipp, Good Job!
You do have a way of making complex concepts "almost" simple ;)
Thanks for another great video ...
i was waiting for so long
I really needed this, thank you!
You're welcome!
Thanks for the video .. its helpful at right time ....
Really great explanation, thank you.
Thanks brother! good job! 🙏
Very useful video. Expecting more like this.
Sure 👍
Always amazing philipp ,, keep up the good tutorials ❤❤
More to come!
Thank you so much for this helpful video
Superb Explanation
I wish i could like your video 100 times!
God bless you for treating this topic
Gradle is most confusing thing when I start to learn Android development. Thank you so much for such useful content. I hope you will making tutorials on working with rich text formatting on typing.
Interesting. Thanks Philip 😊.
This videos tutorials is very helpful to me .
Really helpful. Good one. Thank You
I didn't watched it yet But of course I LIKED IT
Because You decided to talk about something has a lack of resources, I appreciate it ❤️
❤️
Helpful Content.. Thanks
Great explanation for beginner, its complicated sometime for new comers who learn Android Apps to know what is Gradle actually. thank you Philipp
You're very welcome!
2 german dudes making amazing android content.
1. Philip
2. Florin walther from coding in flow
So thanks!!!You help me a lot!!
😲
Great topic. Thanks a lot
love you man
Thanks Phil, sekarang saya lebih mengerti tentang Flavors
Amazing video!
Please do a video about Kotlin DSL also.
Very cool video thank you BRO 🔥🔥🔥 👍👍👍
Great video...!! Thanks
what a great video thanks
As always: super helpful! I would love to have more insights on how do you know what folder to choose from that long list when you type "test" or "testDebug".
It's really just about deciding which build variant you have specific behavior or specific resources for and then picking the folder for that build variant. Usually, you either select the /java folder or /res folder depending on what differs for that variant. If you write tests for it, you of course choose the test or androidTest source set depending on the type of tests.
Thank you for this awesome video , Wil you organize it with the second video in a playlist?! I couldn't find the other one
Thanks for this. Gradle is a bit of a mystery to me and I never really understood what it was doing.
Hope it helped!
Beg you:
Make a detailed video about Gradle version catalogs. Really need it now
Thank you so much!
very nice topic
Great tutorial. Just one more question. If we have some flavours, do we use source sets to implement the flavour specific functionality? Like one source set for the free app and one source set for the paid one?
Philipp! Make a video explaining build variants and flavors (release, debug, etc) please
Great and easy to understand as always! Philip could you make a video with explanation of MVI architecture? Or Even some application with usage of this architecture? More and more companies are asking for MVI as it suit pretty well with jetpack compose. I think lot of people would appreciate it. Thank y :-)!
Great Idea, also I would like to see series or maybe a 3hour long video of him making a real app from absolute scratch (with setting up gradle, manifest file, all the implementations) and show the process of uploading it into play store
Did you read about Elmslie from vivid money? It’s good library to understand mvi flow
This is an amazing MVI talk imho
czcams.com/video/PXBXcHQeDLE/video.html
Thanks man
Nice vid!
great video!
Glad you enjoyed it
It helped me, bump
Amazing
Thannkkk Yooouuuuu!!!!
Automatically like
Thanks
Simple and easy to understand. Thank you. Could you make a videos about applying pro guard and r8 for a project as well ?
Already have that, search on my channel 😁
@@PhilippLackner ah my bad !. Thanks again
Awesome
thank you
thanku so much
Nice video as always.... Android/Google team needs to make gradle thing similar to iOS... If a fresher gets a gradle sync failed error it's a nightmare for them....
🔥
On the Minimum SDK part, how do you then upload to the store targeting difference SDK if you can only upload one apk/bundle ?
Or by building it packages both and on installing on individual device, it will target the device API and choose appropriately ?
thanks for sharing great knowledge sir.
sir i created an app for multiple people from the same source with different name, themes, server and google's .json configuration file. the problem is when i update one i need to update others too.
is there a why to create multiple apps from the same source with different name, themes, server and google's .json configuration file from one project with different source sets.
thanks.
For Android instrumentation test with release build, what build configuration does gradle use? Specifically what proguard file does it use?
Nice video. Thank you.
I have a question: For example in my project I have 4 variants/ product flavours. I have one file which is already created in main folder but I want to use the same file with extra code for different product flavours. So is that possible via source set? I tried it but it won’t work.
Example: I have xyz class in main folder. I cretaed 4 product flavours in build.gradle. Now I want to use the same xyz file with some extra code. I tried to copy and pasted the same file into newly created sourceset folder with some extra connection. But it won’t work that way.
Just a small correction. At 2:29 you say "package name" when highlighting the "applicationId" in the IDE. Package name is not the same thing as application ID.
Thank you for the cool video. I just encountered an issue after uograde to kotlin 1.6.10. i have fragments with tablayout and viewpager fragments. When i go to another screen and come back, it is not loading viewpager fragments. This happened after upgrading kotlin to 1.6.10. Do you have any idea why? Could you please help?
Hi, is ktor currently a good choice for backend development?
Two questions:
1.) How do we define from where the implementations SDKs are pulled from? I know it's usually from maven repository but is it defined in the gradle someplace?
2.) Does anyone have any good resources for establishing a "bypassLogin" build that would have all mock data provided for all API responses?
Please Help
I am new to this channel
First I started learning kotlin language and fundamental tutorial and I am currently working on an application. Is the next step to learn Corotin Course or mvvm and add there are two mvvm series on the channel what is the difference between them
thank you philipp
thanks ,videos CI/CD
Is there a way to config a flavor with plugin com.android.application and other flavor with com.android.library. If so, how to config it?
I guess i'm missing something about products flavor and having one app that can have different minsdk ;
If you have one product flavor with minSdk 21 and one with minSdk 18, when the app is released on store will it be available to phone with sdk 18 ?
Even with product flavor you are forced to release 2 app with different minsdk, dont you?
Great video as always
yes, but you still have one code base instead of two
Thanks for the vid.
Why would we need apks with different minSdk? Anyway we need to handle API check logic in code if we use new features.
If a whole feature is only for a certain min sdk, you don't want to include all that code in an app which can't even use that feature
Can you show Generating Multiple APKs for Android ABIs (diff CPUs) in Gradle?!
Wow, this is cool Man, can you create a GradleBasicplaylist please 🙏, this is soooooo important. There are no videos talking about Android Gradle exactly like this 😀.
This video is about gradle basics 😅
does gradle HAVE to be in C drive? I need to move it to D, would that be possible? If so, how do I point to the directory? Thanks in advance everyone!
👍
bro please help me my gradle wrapper build fails
Hi Phillip, can you make a video how to use AD (Banner or Native) in recicleview but gettind data from api? I'm bennigner in android and i'm trying this, i see a lot tutorial but don't work with getting data from api
I'll put it on my list :)
@@PhilippLackner Tks a lot
i want to learn MVVM but i dont understand the code you wrote in the
build.gradle (project) ..
because it involves buildscript object and allprojects object..
in my project it only contains plugins object..so that s why i am here
in recent android studio versions the items in the gradle are displayed a little bit differently from olders version. If you want to add buildScript to your project level gradle just add it above the plugins block
I did as you did in the tutorial but i could not use freeMinSdk21DebugImplementation, for some reason it did not work for me.
Lastly, you didnt cover splits... is there a reason for that?
Awesome, more stupid system for building apps than Gradle I never met. Nice,that somebody tried to explain it.
I'm completely newby in this topic. And I have problems with run your old and new examples from Github. I don't undestand how people maintains android projects, if when I or someone else try to run this project on his local mashine and need to fight with many buid issues, which is not have relation to real code writing. This is a big pain in my life now...
It that course price really 28900 euros??
If it is in India it’s like 2.4 Millions an average person don’t even earn that much in there entire life 🌝
Gradle takes endless time to build?
Oh boy, have you ever used Maven to build Java/Kotlin project?
Clean Task is no longer necessary, it's default now.
Had to wait till 2:20 to actually find an answer to "What the fook is gradle?"
I recommend you upgrade your microphone. Sound quality on your channel is no good
I hate gradle
Hi Philipp, after a year of absence in the Android development, I noticed the build.gradle project level has a different setup. It was like this before with dependencies, etc.
dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Was there an explanation (been googling for answers) on converting this to the new format shown at 2:45? Thanks in advance