The Jetpack Compose Beginner Crash Course for 2023 💻 (Android Studio Tutorial)

Поділитися
Вставка
  • Опубліковано 16 лис 2024

КОМЕНТАРІ • 285

  • @neogeor2011
    @neogeor2011 2 місяці тому +33

    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

  • @grimreaper7059
    @grimreaper7059 Рік тому +101

    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 .

  • @bharatpanjwani8518
    @bharatpanjwani8518 Рік тому +156

    Hey Man,
    You doing a great job by providing these aesthetic tutorials free of cost, keep up the good work!

  • @nero1375
    @nero1375 Рік тому +23

    Composable is very easy to understand if someone already had played with Dart/Flutter. Thanks for this Crash course!

    • @seifenspender
      @seifenspender 2 місяці тому +1

      It also feels almost identical to SwiftUI, but with a few differences in design choices here and there

  • @MrBottleNeck
    @MrBottleNeck Місяць тому +6

    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

  • @udaysharma5228
    @udaysharma5228 Рік тому +16

    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!

  • @Kaif_Ali_8302
    @Kaif_Ali_8302 8 місяців тому +1

    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.

  • @str8busta
    @str8busta Рік тому +26

    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.

  • @JIUHKK-r6g
    @JIUHKK-r6g Рік тому +4

    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.

  • @daffanashwanpramono4149
    @daffanashwanpramono4149 Рік тому +2

    My senior recommends your channel for Compose tutorial, and this is just so easy to understand. Much thanks for the tutorial :D

  • @goblin69_420
    @goblin69_420 11 місяців тому +1

    This new UI way seemed a little mixture of flutter and react and I love this

  • @volkovolko
    @volkovolko Рік тому +9

    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)
    )
    }
    }
    }
    }
    }
    }
    }

  • @GTA_33
    @GTA_33 Рік тому +12

    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 .....🔥🔥🔥🔥

  • @Rajmanov
    @Rajmanov Рік тому +4

    Thank you man, you make this community great!

  • @LucasHedegaardGertsen
    @LucasHedegaardGertsen 10 місяців тому +1

    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!

  • @David-zb8br
    @David-zb8br Рік тому +4

    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

  • @prasadsawant9122
    @prasadsawant9122 Рік тому +2

    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.

  • @hossamqandel5303
    @hossamqandel5303 Рік тому +5

    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 ♥️🙏🇪🇬

  • @SouthernPole
    @SouthernPole Рік тому +4

    I am waiting for tutorials like this, thanks 👍

  • @ralphm.881
    @ralphm.881 Рік тому

    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?!"

  • @lakshmianjan7424
    @lakshmianjan7424 Місяць тому

    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.

  • @deathrain1832
    @deathrain1832 3 місяці тому

    as new learner I can say it's one of the best video I found on youtube, thanks philipp

  • @Narazgul
    @Narazgul Рік тому +11

    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!

  • @Remirured
    @Remirured 2 місяці тому

    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

  • @manjaro675
    @manjaro675 Рік тому +2

    Great timing! Am actually converting an existing project from flutter to native for better performance and control of device sensors.

  • @brand-konto9377
    @brand-konto9377 28 днів тому

    Adding a Column puts the text into separate rows. Good Job Google. Very intuitive :D

    • @PhilippLackner
      @PhilippLackner  28 днів тому

      The elements are arranged in a column though. Calling this a row I'd consider the most unintuitive thing ever 😄

  • @СергейБезногов-т6у

    It's your the best video!!! And it's the best video in the history of online programming teaching!!!

  • @stockiber7656
    @stockiber7656 Рік тому +2

    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.

  • @MaxProgramming
    @MaxProgramming Рік тому +7

    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!

    • @yassinesafraoui
      @yassinesafraoui Рік тому +3

      yes it's a lot like flutter, which is one of its big advantages, it's just so simple to create layouts this way

  • @wilsonpedrotamegajunior1053
    @wilsonpedrotamegajunior1053 9 місяців тому

    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

  • @ChristianMielke
    @ChristianMielke 8 місяців тому +1

    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!

  • @prudhvimadasu
    @prudhvimadasu 4 місяці тому

    I can't thank you enough, this is a great crash course for Jetpack compose

  • @fuzzy-02
    @fuzzy-02 9 місяців тому

    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

  • @Imperial_Dynamics
    @Imperial_Dynamics Рік тому

    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.

  • @eazyfrizzy7983
    @eazyfrizzy7983 Рік тому +1

    From watching this video i learned a lot about compose. Thanks keep it up

  • @Thaizer
    @Thaizer Рік тому

    Hi,
    I'm a c# programmer (Xamarin)
    Was curious about Android programming with Kotlin.
    Thanks for your good videos they help me a lot.

  • @valeryegorov2616
    @valeryegorov2616 Рік тому +1

    The Best Android Teacher!

  • @andreymerc1
    @andreymerc1 2 місяці тому

    Thanks for really well explaining the topic in simple terms!

  • @OCEH6
    @OCEH6 Рік тому +1

    Awesome! So cool! You and Compose is Amazing!

  • @scottbiggs8894
    @scottbiggs8894 Рік тому

    Hands down the best instruction I've seen on jetpack compose. And I've seen tons of vids and scads of websites. Thank you!

  • @serlok4688
    @serlok4688 Рік тому +1

    I've just started your compose play list. it's good you uploaded it thanks

  • @mihaes7172
    @mihaes7172 Рік тому +1

    Thanks for this video, much valuable as I am entering this Kotlin - jetpack world from Php

  • @begmyratmammedov9357
    @begmyratmammedov9357 Рік тому +2

    Thank you Philipp, this is so amazing tutorial with well summarized version of jetpack compose course. Great Work!!!

  • @henriquepetters
    @henriquepetters Рік тому +2

    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.

  • @haxificality
    @haxificality Рік тому +1

    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.

  • @vibhuvineet
    @vibhuvineet Рік тому +1

    Certainly found it helpful, very clear explanation. A huge thumbsup for the content.

  • @codewithsebastian
    @codewithsebastian 8 місяців тому

    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

  • @faustipez
    @faustipez 4 місяці тому

    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!

  • @AfzalAli-n6d
    @AfzalAli-n6d 11 місяців тому

    One of the best tutorials for compose beginners

  • @Terik17
    @Terik17 3 місяці тому

    clear and concise intro to jetpack compose, thank you for sharing :)

  • @Hobynist
    @Hobynist Рік тому

    Came here to find out what is jetpack compose. And got the answer, thanks!

  • @Rundik
    @Rundik 2 місяці тому

    The way it works it looks more like imperative than declarative. In declarative style the order usually doesn't matter, and here it does

  • @DyotakT
    @DyotakT 10 місяців тому +1

    Hey Philip,
    Amazing job! This is so much better than the official videos provided by Google.
    Thank you! Keep it up. :D

  • @Goose____
    @Goose____ 5 місяців тому

    Glad i decided to check this video out before trying to learn with XML,

  • @masterwayne9790
    @masterwayne9790 2 місяці тому

    Easy to understand from flutter framework. Thanks a lot.

  • @kyeiiih4422
    @kyeiiih4422 Рік тому +1

    Amazing Content Phillip.

  • @Khush-f6s
    @Khush-f6s 16 днів тому

    Thanks for this video .I was able to understand it very well .

  • @rizwansworld
    @rizwansworld 5 місяців тому

    Cool crash course man. No BS. Just to the point.

  • @yandimosi
    @yandimosi 3 місяці тому

    nice introduction to jetpack compose, thank you

  • @alireza-qy8wh
    @alireza-qy8wh Місяць тому

    Thank you Philip for your tutorial, it was very helpful.

  • @niazsagor3241
    @niazsagor3241 Рік тому

    Thank you Phillipp for these videos. These are gem.

  • @manishprajapati8544
    @manishprajapati8544 Рік тому +2

    Amazing tutorial Bro, This introduction was really simple and helpful with clarity Thank you 🙏🙏

  • @nikinsk
    @nikinsk Рік тому +1

    Nice and Epic video for Jetpack compose learners

  • @andersmembers1309
    @andersmembers1309 Рік тому +1

    stumbled onto this, but it's really great!

  • @jayeshkarale9118
    @jayeshkarale9118 Рік тому +2

    i'm not watched fully video but yes i'm 100% sure this is best content. thanks in advance ♥

  • @pengottv589
    @pengottv589 Рік тому

    Insane Video, Thank you very much for the introduction to Jetpack Compose!
    Your free content helped me so much! Thanks for everything Philipp.

  • @williamgiraldo996
    @williamgiraldo996 Рік тому +1

    Thank you, this is great to start on jetpack compose

  • @mergenstudios8779
    @mergenstudios8779 4 місяці тому

    This video acctually did teach me a lot, thank you!

  • @flaviocatuara7488
    @flaviocatuara7488 Рік тому +1

    Thank you as always Philipp Great job. Very useful

  • @typosbro_
    @typosbro_ Рік тому +1

    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😇

  • @MRBala-xx5si
    @MRBala-xx5si Рік тому

    Thanks Philipp . You gave a better start to me.

  • @jamsberries
    @jamsberries Рік тому

    Thanks for teaching me Compose, Ludwig

  • @Dipj01
    @Dipj01 5 місяців тому

    As a React developer, this looks very familiar. Thanks for this

  • @mikethemonsta15
    @mikethemonsta15 Рік тому +1

    Excellent! Thank you so much this really helped me

  • @firefed
    @firefed Рік тому +1

    Thank you, that helped me to learn the basics

  • @dabert5972
    @dabert5972 6 місяців тому

    PHILLIPP YOU ARE THE MAN

  • @malikkahfi2534
    @malikkahfi2534 Рік тому +1

    Love this 😍

  • @СергейБезногов-т6у

    I am sure that Kotlin and Jetpack Compose would never survive without hard work of blogger Phillip Lackner!!!

  • @MaximusMcCullough
    @MaximusMcCullough Рік тому

    Totally awesome! Thank you for this information.

  • @Frentt
    @Frentt Рік тому +1

    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

  • @Dibyendu.M
    @Dibyendu.M Рік тому +1

    Thank You, Philipp!

  • @tranminhviet6416
    @tranminhviet6416 18 днів тому

    love this video so much!!!

  • @manishakamble7473
    @manishakamble7473 6 місяців тому

    Very informative and clear 👍

  • @ndanielamaha5618
    @ndanielamaha5618 Рік тому +1

    Thank you bro, very succinct and sweet summary

  • @irhasdev
    @irhasdev Рік тому +2

    please make videos about jetpack compose more

  • @jordyetienne8109
    @jordyetienne8109 4 місяці тому

    You got a new follower!

  • @pikazap6672
    @pikazap6672 Рік тому +1

    Thank you Philipp!! :3

  • @caribbeanman3379
    @caribbeanman3379 10 місяців тому

    Adding these compose function parameter arguments is giving me CSS vibes.

  • @ruslanpodurets6289
    @ruslanpodurets6289 11 місяців тому

    Thank you so much, great examples!!

  • @lvterry
    @lvterry 9 місяців тому

    Thanks for the course!

  • @sraldous
    @sraldous Рік тому

    Great tutorial, easy to follow, thank you!

  • @nazimgallo9116
    @nazimgallo9116 4 місяці тому

    Thank you for the video, much appreciated!!!

  • @akashmadanu3994
    @akashmadanu3994 Рік тому +2

    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.

  • @nxone9903
    @nxone9903 8 місяців тому

    This looks so much better than views and xml

  • @justmeagain9302
    @justmeagain9302 Рік тому +1

    Thanks man, very helpful

  • @boredaf1155
    @boredaf1155 3 місяці тому

    Thx for this updated video

  • @fayzulbari4748
    @fayzulbari4748 Рік тому

    Nice work bro hitting the subscribe button

  • @HierKommtAlex3
    @HierKommtAlex3 9 місяців тому

    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.

  • @USS_Daedalus
    @USS_Daedalus Рік тому +1

    I just move my entire Project to Jetpack Compose. Its mineblowing.
    Now i dont want use XML anymore.

  • @vismal2007
    @vismal2007 Рік тому

    Thanks man, very good content!