Hope these timecodes will help someone 😌 1:30 What will we cover 1:44 What is Jetpack Compose 3:00 First app 7:00 Component Modifiers 12:30 Position and layouts 20:17 Images 22:15 Conditional statements 24:02 Lists - LazyRow and LazyColumn 27:35 State 33:15 State - remember function 35:50 Example: textfield, button and a list 37:05 Text fields
A lot of tutorials online and on youtube tend to be code-along style which is often bad for new learners. Most of the stuff end up forgotten and many features already used in code are unknown to them too. Like how to write first unit tests (but the test example code has DI, Room, MVVM etc). Better way would be how to write tests for basic sum methods , then for basic gestures , then for the view model and so on . Simple things first are the best way to go before more intermediate and practical stuff. Cheat-sheets are gold too. Tutorials covering them even more so . Video like this crash course is quite great .
if any1 hated writing "modifier = Modifier" as much as I did; (or something else I guess) Go to file->settings->Live Templates and press the "+" then put your preferred abbreviation, in my case "mod" and to Template text write "modifier = Modifier". Now, whenever you write mod and then press tab it autocompletes
Philipp, just wanna say big big thanks for your contributions you are really making a big difference in people's lives and for android development in general. I finally got an android job a month ago and your videos helped me big time through my journey. I am currently refactoring code with bad practices and your big focus on patterns and good code is making a difference even here in Sweden. Next I wanted to learn jetpack compose and boom, you come with an awesomely packaged video. Thanks again man and looking forward to more content.
Man, you've just inspired one more person to get back to his projects. I mean its illegal for recycler view to be so simple. You've got a talent to teach things.
I am from india and i loved ur content i started ur playlist from basics of kotlin... And ur way of explaning concept is ossum . thanks for this ossum content .....🔥🔥🔥🔥
Thank you so much for making this great tutorial!!! i have been wanting to create apps for so long and i never really liked the way designing UI worked, and i LOVE this way using code to make UI!
Man, i wish this type of vid was abailable on yt when i was just starting, this will be very helpful to new compose learners. Great content as always philipp
Best android introduction, straight to point and gives you idea about how things work ui wise , how ui renders , kind of give beginners like me a starting point to explore. Just want to say thank you very much man, and really appreciate all of your efforts.
No matter how much I thank you, I will never give you the thanks you really deserve, Philip ♥️ You are truly a person of great value to the Android and mobile developer community in general I wish you all the best and give us more ♥️🙏🇪🇬
This is exactly what I needed, thank you! Returning to Android development after not doing it for a few years, I was like, "What the heck is this Composable stuff?!"
Just brilliant.. Excellent Phillip..I have been using Android XML files all these years.. U explained the basics of Jetpack Compose so well that makes u feel that it's easy, interesting and learnable . Thanks.
Hey Philipp, ich hab bei dir häufig das Gefühl, dass du genau das Video machst, was ich in diesem Moment brauche. Nicht nur hier, sondern auch in vielen anderen Fällen in der Vergangenheit. Auch deine Shorts sind fast immer hilfreich! Vielen Dank für deinen absoluten top content!
thank you for this guide. just got into kmp and was watching your video, when you you mentioned that you also have compose guides that one should watch so i did now. I am currently searching for a software dev job as i freshly graduated. But it takes so much time that i though fk it, i ll develope an app and publish it and your videos are a great entry
Hey, Philipp. Danke dir für all deine tollen Videos!! Du erklärst super gut und hilfst mir so sehr in verschiedene Topics einzusteigen und zu wissen, was man alles können sollte, um eine gute Android Developerin zu werden.
This is exactly what I needed in native Android development! The syntax is so cool and easy to understand if you are familiar with React or Flutter. Much better than XML of course! I think I might go all in native if I continue to use Jetpack Compose! Thanks a lot Phillip!
This video is very, very clear and easy to follow and understand. I'm very, very thankful for you, it makes me to start get the idea of jetpack compose, and for sure this is the future of Android UI Design
i never worked with Compose, and just a little bit with XML. Also i started to learn Kotlin. And as an Professional Java Developer i can say: This Video is Awesom, with Compose App-Development feels easier like never before! Also i like that you share your knowlege with us! Good Job!
This tutorial was just great to get me up and going. I learned Java and XML in my uni course but I thought it would be better to switch to Kotlin and JetCompose. Thanks a lot for this man! Its much better than the tutorials on the android website
hi from Greece. You were the one who introduced me to xml and now you are the one who introduced me to compose. You explain things very well and the pace is just right. THANK YOU.
I am Learning Compose, and Unlike many other ways of learning I have used before, I find mixing the Docs and Your tutorials Yours only, to be working. I dont want to go into the tutorial loop just yet, maybe later on when I get most of the basic conepts and can now make the skills as diverse as they can be
Phillipp, Thanks for your excellent content, if you make an entire Android course and Upload it to Udemy/UA-cam, which is ok if it is paid course which includes all basics and some projects that help many Android (jetpack) learners, you have a 10 week course on your official site. Still, as a student, that is not affordable, hope you keep this in your mind and make an excellent android course that can be enrolled by even students. Thank you again for your great content; I love you so much.
Great video. I love this declarative way of UI programming. I did a lot QML before but now I have to switch to Kotlin and was really afraid of diving into XML^^ In your video there is just one point that I do not understand: why is it necessary to assign the new text value to the member text value inside the onValueChanged ? Actually I would assume that this slot is called when changing the member. At least in QML it is how it works.
Hope these timecodes will help someone 😌
1:30 What will we cover
1:44 What is Jetpack Compose
3:00 First app
7:00 Component Modifiers
12:30 Position and layouts
20:17 Images
22:15 Conditional statements
24:02 Lists - LazyRow and LazyColumn
27:35 State
33:15 State - remember function
35:50 Example: textfield, button and a list
37:05 Text fields
A lot of tutorials online and on youtube tend to be code-along style which is often bad for new learners. Most of the stuff end up forgotten and many features already used in code are unknown to them too. Like how to write first unit tests (but the test example code has DI, Room, MVVM etc). Better way would be how to write tests for basic sum methods , then for basic gestures , then for the view model and so on . Simple things first are the best way to go before more intermediate and practical stuff. Cheat-sheets are gold too. Tutorials covering them even more so . Video like this crash course is quite great .
Hey Man,
You doing a great job by providing these aesthetic tutorials free of cost, keep up the good work!
Glad you like them!
Composable is very easy to understand if someone already had played with Dart/Flutter. Thanks for this Crash course!
It also feels almost identical to SwiftUI, but with a few differences in design choices here and there
if any1 hated writing
"modifier = Modifier" as much as I did; (or something else I guess)
Go to file->settings->Live Templates and press the "+"
then put your preferred abbreviation, in my case "mod"
and to Template text write "modifier = Modifier".
Now, whenever you write mod and then press tab it autocompletes
To the point and no nonsense! I will keep this in my favourite list to revise the course when ever I need. Thank you Philipp!
Using jetpack after a long time, needed the revision. Your video was a great help as it covers most of the points without wasting any time.
Philipp, just wanna say big big thanks for your contributions you are really making a big difference in people's lives and for android development in general. I finally got an android job a month ago and your videos helped me big time through my journey. I am currently refactoring code with bad practices and your big focus on patterns and good code is making a difference even here in Sweden. Next I wanted to learn jetpack compose and boom, you come with an awesomely packaged video. Thanks again man and looking forward to more content.
Man, you've just inspired one more person to get back to his projects. I mean its illegal for recycler view to be so simple. You've got a talent to teach things.
was l am annoyed
😅 I Did it in java and XML. It's painful
My senior recommends your channel for Compose tutorial, and this is just so easy to understand. Much thanks for the tutorial :D
This new UI way seemed a little mixture of flutter and react and I love this
For those who have issues with the newer versions, I found the issue (you need to remove the .fillMaxSize() of the Row and add it to the LazyColumn) :
here is a repaired script :
package com.example.myapplication
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.text.BasicText
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Outline
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.myapplication.ui.theme.MyApplicationTheme
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
var name by remember {
mutableStateOf("")
}
var names by remember {
mutableStateOf(listOf())
}
Column(
modifier = Modifier.fillMaxSize()
)
{
Row (
){
OutlinedTextField(
value = name,
onValueChange = {text ->
name = text},
modifier = Modifier.weight(1f)
)
Spacer(modifier = Modifier.width(16.dp))
Button(onClick = {
if(name.isNotBlank()){
names += name
}
}) {
Text(text = "Add")
Icon(imageVector = Icons.Default.Add, contentDescription = "")
}
}
LazyColumn(modifier = Modifier.fillMaxSize()){
items(names){currentName->
Log.d("COMPOSE", "This get rendered $currentName")
Text(
text = currentName,
modifier = Modifier.fillMaxSize().padding(16.dp)
)
}
}
}
}
}
}
}
I am from india and i loved ur content i started ur playlist from basics of kotlin... And ur way of explaning concept is ossum
. thanks for this ossum content .....🔥🔥🔥🔥
Thank you man, you make this community great!
Thank you so much for making this great tutorial!!!
i have been wanting to create apps for so long
and i never really liked the way designing UI worked,
and i LOVE this way using code to make UI!
Man, i wish this type of vid was abailable on yt when i was just starting, this will be very helpful to new compose learners.
Great content as always philipp
Best android introduction, straight to point and gives you idea about how things work ui wise , how ui renders , kind of give beginners like me a starting point to explore. Just want to say thank you very much man, and really appreciate all of your efforts.
No matter how much I thank you, I will never give you the thanks you really deserve, Philip ♥️ You are truly a person of great value to the Android and mobile developer community in general I wish you all the best and give us more ♥️🙏🇪🇬
I am waiting for tutorials like this, thanks 👍
This is exactly what I needed, thank you! Returning to Android development after not doing it for a few years, I was like, "What the heck is this Composable stuff?!"
Just brilliant.. Excellent Phillip..I have been using Android XML files all these years.. U explained the basics of Jetpack Compose so well that makes u feel that it's easy, interesting and learnable . Thanks.
as new learner I can say it's one of the best video I found on youtube, thanks philipp
Hey Philipp, ich hab bei dir häufig das Gefühl, dass du genau das Video machst, was ich in diesem Moment brauche. Nicht nur hier, sondern auch in vielen anderen Fällen in der Vergangenheit. Auch deine Shorts sind fast immer hilfreich! Vielen Dank für deinen absoluten top content!
Danke dir, das freut mich!🙌🙏
thank you for this guide. just got into kmp and was watching your video, when you you mentioned that you also have compose guides that one should watch so i did now. I am currently searching for a software dev job as i freshly graduated. But it takes so much time that i though fk it, i ll develope an app and publish it and your videos are a great entry
Great timing! Am actually converting an existing project from flutter to native for better performance and control of device sensors.
Adding a Column puts the text into separate rows. Good Job Google. Very intuitive :D
The elements are arranged in a column though. Calling this a row I'd consider the most unintuitive thing ever 😄
It's your the best video!!! And it's the best video in the history of online programming teaching!!!
Haha thank you mate!🙌🙌
Hey, Philipp. Danke dir für all deine tollen Videos!! Du erklärst super gut und hilfst mir so sehr in verschiedene Topics einzusteigen und zu wissen, was man alles können sollte, um eine gute Android Developerin zu werden.
Danke das freut mich 🙌
This is exactly what I needed in native Android development! The syntax is so cool and easy to understand if you are familiar with React or Flutter. Much better than XML of course! I think I might go all in native if I continue to use Jetpack Compose!
Thanks a lot Phillip!
yes it's a lot like flutter, which is one of its big advantages, it's just so simple to create layouts this way
This video is very, very clear and easy to follow and understand. I'm very, very thankful for you, it makes me to start get the idea of jetpack compose, and for sure this is the future of Android UI Design
i never worked with Compose, and just a little bit with XML. Also i started to learn Kotlin. And as an Professional Java Developer i can say: This Video is Awesom, with Compose App-Development feels easier like never before!
Also i like that you share your knowlege with us! Good Job!
I can't thank you enough, this is a great crash course for Jetpack compose
This tutorial was just great to get me up and going.
I learned Java and XML in my uni course but I thought it would be better to switch to Kotlin and JetCompose.
Thanks a lot for this man! Its much better than the tutorials on the android website
hi from Greece. You were the one who introduced me to xml and now you are the one who introduced me to compose. You explain things very well and the pace is just right. THANK YOU.
From watching this video i learned a lot about compose. Thanks keep it up
Hi,
I'm a c# programmer (Xamarin)
Was curious about Android programming with Kotlin.
Thanks for your good videos they help me a lot.
The Best Android Teacher!
Thanks for really well explaining the topic in simple terms!
Awesome! So cool! You and Compose is Amazing!
Hands down the best instruction I've seen on jetpack compose. And I've seen tons of vids and scads of websites. Thank you!
I've just started your compose play list. it's good you uploaded it thanks
Thanks for this video, much valuable as I am entering this Kotlin - jetpack world from Php
Thank you Philipp, this is so amazing tutorial with well summarized version of jetpack compose course. Great Work!!!
Do more compose content, i see a lot of devs struggling with it. And i can totally relate, i'm glad i dived head first when it came out.
Thank you for this! I totally understand how advantageous Compose is compared to the old style. Now it's Compose for me all the way.
Certainly found it helpful, very clear explanation. A huge thumbsup for the content.
I am Learning Compose, and Unlike many other ways of learning I have used before, I find mixing the Docs and Your tutorials Yours only, to be working. I dont want to go into the tutorial loop just yet, maybe later on when I get most of the basic conepts and can now make the skills as diverse as they can be
Thank you so much, it really helped me to understand the basics of Jetpack Compose and see the benefits of using it for my current project!
One of the best tutorials for compose beginners
clear and concise intro to jetpack compose, thank you for sharing :)
Came here to find out what is jetpack compose. And got the answer, thanks!
The way it works it looks more like imperative than declarative. In declarative style the order usually doesn't matter, and here it does
Hey Philip,
Amazing job! This is so much better than the official videos provided by Google.
Thank you! Keep it up. :D
Thank you!
Glad i decided to check this video out before trying to learn with XML,
Easy to understand from flutter framework. Thanks a lot.
Amazing Content Phillip.
Thanks for this video .I was able to understand it very well .
Cool crash course man. No BS. Just to the point.
nice introduction to jetpack compose, thank you
Thank you Philip for your tutorial, it was very helpful.
Thank you Phillipp for these videos. These are gem.
Amazing tutorial Bro, This introduction was really simple and helpful with clarity Thank you 🙏🙏
Nice and Epic video for Jetpack compose learners
stumbled onto this, but it's really great!
i'm not watched fully video but yes i'm 100% sure this is best content. thanks in advance ♥
Thank you!!
Insane Video, Thank you very much for the introduction to Jetpack Compose!
Your free content helped me so much! Thanks for everything Philipp.
Thank you, this is great to start on jetpack compose
This video acctually did teach me a lot, thank you!
Thank you as always Philipp Great job. Very useful
Compose feels like Flutter which was inspired by React Native which a variation of React which was created a decade ago.
I'm new to Android dev btw😇
Thanks Philipp . You gave a better start to me.
Thanks for teaching me Compose, Ludwig
As a React developer, this looks very familiar. Thanks for this
Excellent! Thank you so much this really helped me
Thank you, that helped me to learn the basics
PHILLIPP YOU ARE THE MAN
Love this 😍
I am sure that Kotlin and Jetpack Compose would never survive without hard work of blogger Phillip Lackner!!!
Totally awesome! Thank you for this information.
Coming from iOS development with SwiftUI it’s so funny seeing Google copying Apple. Makes it a lot easier to transition at least. Lol 19:56
Thank You, Philipp!
love this video so much!!!
Very informative and clear 👍
Thank you bro, very succinct and sweet summary
please make videos about jetpack compose more
You got a new follower!
Thank you Philipp!! :3
Adding these compose function parameter arguments is giving me CSS vibes.
Thank you so much, great examples!!
Thanks for the course!
Great tutorial, easy to follow, thank you!
Thank you for the video, much appreciated!!!
Phillipp, Thanks for your excellent content,
if you make an entire Android course and Upload it to Udemy/UA-cam, which is ok if it is paid course which includes all basics and some projects that help many Android (jetpack) learners, you have a 10 week course on your official site. Still, as a student, that is not affordable, hope you keep this in your mind and make an excellent android course that can be enrolled by even students. Thank you again for your great content; I love you so much.
This looks so much better than views and xml
Thanks man, very helpful
Thx for this updated video
Nice work bro hitting the subscribe button
Great video. I love this declarative way of UI programming. I did a lot QML before but now I have to switch to Kotlin and was really afraid of diving into XML^^
In your video there is just one point that I do not understand: why is it necessary to assign the new text value to the member text value inside the onValueChanged ? Actually I would assume that this slot is called when changing the member. At least in QML it is how it works.
I just move my entire Project to Jetpack Compose. Its mineblowing.
Now i dont want use XML anymore.
Thanks man, very good content!