![Philipp Lackner](/img/default-banner.jpg)
- 922
- 24 937 757
Philipp Lackner
Germany
Приєднався 7 лис 2019
Welcome to my UA-cam Channel!
On the one hand this channel will help beginners to learn the fundamentals of Android Development, but on the other hand I will also upload more advanced stuff. Since the development niche is evolving so fast, I will help you to keep track of it so you don't feel lost in the jungle of coding.
You want me to make your app? Just send me an email and maybe we can make a deal :)
Imprint: pl-coding.com/legal-disclosure/
I don't reply to emails that are random coding questions. Only business inquiries or questions regarding my paid courses.
On the one hand this channel will help beginners to learn the fundamentals of Android Development, but on the other hand I will also upload more advanced stuff. Since the development niche is evolving so fast, I will help you to keep track of it so you don't feel lost in the jungle of coding.
You want me to make your app? Just send me an email and maybe we can make a deal :)
Imprint: pl-coding.com/legal-disclosure/
I don't reply to emails that are random coding questions. Only business inquiries or questions regarding my paid courses.
How to Share Resources in Compose Multiplatform - KMP for Beginners
In this video I'll show you how to share resources in Compose Multiplatform!
👉 Check out my course Building Industry-Level Multiplatform Apps With KMP here: pl-coding.com/kmp?
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
pl-coding.com/drop-table-mentoring?
⭐ Courses with real-life practices
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android developer now:
pl-coding.com/premium-courses?
Get my FREE PDF about 20 things you should never do in Jetpack Compose:
pl-coding.com/jetpack-compose-mistakes?
Regular programming advice on my Instagram page: _philipplackner_
Join my Discord server:
discord.gg/cwQbmUstEu
👉 Check out my course Building Industry-Level Multiplatform Apps With KMP here: pl-coding.com/kmp?
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
pl-coding.com/drop-table-mentoring?
⭐ Courses with real-life practices
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android developer now:
pl-coding.com/premium-courses?
Get my FREE PDF about 20 things you should never do in Jetpack Compose:
pl-coding.com/jetpack-compose-mistakes?
Regular programming advice on my Instagram page: _philipplackner_
Join my Discord server:
discord.gg/cwQbmUstEu
Переглядів: 563
Відео
Expect/Actual in Kotlin Multiplatform - KMP for Beginners
Переглядів 5 тис.10 годин тому
In this video I'll show you how Expect/Actual in Kotlin Multiplatform works! 👉 Check out my course Building Industry-Level Multiplatform Apps With KMP here: pl-coding.com/kmp? 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 ...
Building Your First Compose Multiplatform Hello World App - KMP for Beginners
Переглядів 12 тис.20 годин тому
In this video you'll learn how you build you first Compose Multiplatform Hello World App! 👉 Check out my course Building Industry-Level Multiplatform Apps With KMP here: pl-coding.com/kmp? 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guar...
What Is Kotlin Multiplatform And How Does It Work? - KMP for Beginners
Переглядів 22 тис.День тому
This is the first video of my new KMP Playlist! Here you'll learn what Kotlin Multiplatform is and how it works. 👉 Check out my course Building Industry-Level Multiplatform Apps With KMP here: pl-coding.com/kmp? 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time...
Why I Stopped Using popBackStack() to Navigate Back
Переглядів 13 тис.14 днів тому
In this video I'll show you why I stopped using popBackStack() to Navigate Back. 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-coding.com/premium-courses? Get my FREE ...
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
Переглядів 31 тис.14 днів тому
In this video I'll compare the two most viable cross-platform technologies for mobile developers in 2024. 👉 Check out my KMP course: pl-coding.com/kmp? 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professi...
Kotlin 2.0, Google IO, Android 15 and More - Philipp's Android News June 2024
Переглядів 25 тис.21 день тому
The hottest new sh*t of the Android world 😎 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-coding.com/premium-courses? Get my FREE PDF about 20 things you should never ...
Automatically Adjust Navigation Based On Screen Size With NavigationSuiteScaffold
Переглядів 9 тис.21 день тому
In this video I'll show you how to automatically adjust navigation based on screen size with NavigationSuiteScaffold! 💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoring? ⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-cod...
List + Detail Screens Just Got SO MUCH Easier - NavigableListDetailPaneScaffold
Переглядів 11 тис.21 день тому
List Detail Screens Just Got SO MUCH Easier - NavigableListDetailPaneScaffold
Building an Android Video Calling App With the Stream SDK
Переглядів 11 тис.Місяць тому
Building an Android Video Calling App With the Stream SDK
How to Use the Google's New Screenshot Testing Framework for Compose
Переглядів 19 тис.Місяць тому
How to Use the Google's New Screenshot Testing Framework for Compose
How to Setup a Room DB for Kotlin Multiplatform Compose
Переглядів 9 тис.Місяць тому
How to Setup a Room DB for Kotlin Multiplatform Compose
Type-Safe Navigation with the OFFICIAL Compose Navigation Library
Переглядів 38 тис.Місяць тому
Type-Safe Navigation with the OFFICIAL Compose Navigation Library
How to Share ViewModels in Compose Multiplatform (with Dependency Injection!)
Переглядів 14 тис.Місяць тому
How to Share ViewModels in Compose Multiplatform (with Dependency Injection!)
I've Tested Android Studio's New Code Companion Gemini
Переглядів 20 тис.Місяць тому
I've Tested Android Studio's New Code Companion Gemini
How to Implement a Shared Element Transition In Jetpack Compose
Переглядів 13 тис.Місяць тому
How to Implement a Shared Element Transition In Jetpack Compose
💻 Code Companion AI for Android Studio, Shared Element Transitions & More - Android News 2024
Переглядів 15 тис.Місяць тому
💻 Code Companion AI for Android Studio, Shared Element Transitions & More - Android News 2024
Learn to Build a Multi-Module Running Tracker App + Wear OS App In My NEW Course
Переглядів 9 тис.Місяць тому
Learn to Build a Multi-Module Running Tracker App Wear OS App In My NEW Course
Why YOU Have the WRONG Focus as an Android Developer
Переглядів 18 тис.2 місяці тому
Why YOU Have the WRONG Focus as an Android Developer
I'm Coding for 13 Years to Find Out About THIS
Переглядів 11 тис.2 місяці тому
I'm Coding for 13 Years to Find Out About THIS
MVVM vs. MVI - Understand the Difference Once and for All
Переглядів 31 тис.2 місяці тому
MVVM vs. MVI - Understand the Difference Once and for All
The ONLY Thing to MASTER as an Android Developer (And Why 99% FAIL!)
Переглядів 20 тис.2 місяці тому
The ONLY Thing to MASTER as an Android Developer (And Why 99% FAIL!)
Does Native Android Development Have a Future?
Переглядів 48 тис.2 місяці тому
Does Native Android Development Have a Future?
Sealed Classes for UI State are an ANTI-PATTERN - Here's why!
Переглядів 19 тис.2 місяці тому
Sealed Classes for UI State are an ANTI-PATTERN - Here's why!
💻 Android Studio Iguana, Compose Multiplatform Changes & More - Philipp's Android News 2024
Переглядів 24 тис.2 місяці тому
💻 Android Studio Iguana, Compose Multiplatform Changes & More - Philipp's Android News 2024
DON'T Make This Clean Architecture Packaging Mistake
Переглядів 12 тис.2 місяці тому
DON'T Make This Clean Architecture Packaging Mistake
How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android Studio
Переглядів 11 тис.2 місяці тому
How to Implement a Pull-to-Refresh LazyColumn with Material3 in Android Studio
If You're Making These 5 Use Case Mistakes, You Haven't Understood Clean Architecture
Переглядів 20 тис.3 місяці тому
If You're Making These 5 Use Case Mistakes, You Haven't Understood Clean Architecture
How to Implement Biometric Auth in Your Android App
Переглядів 14 тис.3 місяці тому
How to Implement Biometric Auth in Your Android App
This Is My FAVORITE Error Handling Class
Переглядів 26 тис.3 місяці тому
This Is My FAVORITE Error Handling Class
Hey Philipp! Are you planning on doing a Runique CMP premium course that contains all the treats combined like? Room, Compose Navigation, Ktor, Notifications, GPS, etc? Runique (not the wearable part) course but with as many google based libraries we all love that are now making it into KMP world like the new Navigation and Room. That would compare directly to the android course you have and would be a marvel as we would be able to see how many common parts can be used and how from a large app like Runique for which we already have a very good gasp about how to make.
Yes but not yet as it's not stable yet. Don't want it to be outdated in 2 months
Any idea how to share a mp4 file?
Put it in the raw resource folder
I suffer from a lack of resources, and the auxiliary libraries on KMP, unlike Flutter, are very rich I hope KMP grows quickly because I fell in love with it
Mr. Poop 🥲😍
First frame scared me)
🤣🤣🤣🤣🤣
Right now things are looking a little bit messed up in kmp, looking difficult 😅
Which theme you are using in the android studio, It's awsome..!
Literally solved today's problem 😂❤
I am just starting my journey and wondered if these tutorials are still valid to follow?I have found that following along as a beginner on these older versions of the IDE gets me lost because things are so different on the video to the new IDE.
They are, existing language features don't change much. Regarding the IDE there can of course be some differences
@PhilippLackner Thank you so much. I'm going to binge your videos and try to get a grip on it. I haven't studied for a long time and it's a completely new concept to be but very interesting and I like the idea of being able to work remotely on projects. Thanks so much for all your content!!
iOS support for SVG is way superior than Android, as well as their SF symbols. However this is good to have feature.Does this also work when using native UI framework on both platform such as view base and UIKit?
Hi Phillip! I'm following this series closely, thanks for it. I'd like to contribute that to have the Desktop app run by clicking the run button you could: * Open the Run Configuration settings * Add a Shell configuration name it DesktopApp if you want * On the window set it to run the script from "text" not "From File" * Add those parameters "./gradlew run" and ensure that the absolute path of the configuration is the project folder * Save and run it as normal in the drop-down list. Hope it helps others. Maybe you can review that with others in the next video. I know you'll get what I mean. Thanks again for the videos. Can't wait for more.
You can use gradle tasks to generate resources. I use following tasks to generate resources ./gradlew generateComposeResClass ./gradlew generateResourceAccessorsForCommonMain and you don't have to wait.
could you make a tutorial on how to implement it in an jetpack compose app from the default navigation system?
Can we use GraphQL instead of retrofit in this project?
👍
Hey...Phillipp video! To elaborae, Philipp, just so many thanks to you for all your invaluable android kotlin and KMP videos. Im way behind as Im still only a relatively new Android developer, but enjoying getting up to speed with it all. Youve done so much for the Android community. Thanks heaps. Nick.
Glad you like them!
2nd comment
Das Maß an Engagement ist hier erstklassig. Es ist klar, dass sich alle intensiv mit dem jeweiligen Thema beschäftigen.🍓
How do we test it with Face id?
dear phillip sir i kindly request you to make such short videos with other content it really helpful me sir
The more I learn about Google, the more I hate them. I hope they are out of business one day.
Thank you. really helpful
You got a new follower!
Its been only 4 months and it's already changed, oh how I hate android...
So what should we learn as I am good in compose and I am learning compose multi-platform what should I do sir.
so whats the difference between compose multiplatform vs kotlin multiplatform ?
What about library? For example bluetooth or serial communication
My question it is stable hot web use and for iOS I will use swift
First of all the UseCase suffix is not necessary. Also capsuling a function into a class where no dependencies are needed is also not necessary. Makes it more complex. You should use operator function "invoke" if you need a class for injecting deps and name the class like a function (ValidateEmail). You can call the instance easily like a function ("validateEmail(...)"). Really good readable. Example 2 is wrong IMHO. There is no such thing like the representation layer and a dogmatic assignment. Historically the splitting of View and Logic (Presenter, VM, Controller) was because of testing issues. The View isn't really good testable because of the huge framework which it brings with it. Therefore ALL code, which is testable should be tested and the View should have as less conditions (logic) as possible. It was always the responsibility of the Presenter (VM, Controller) to map the Data from different sources into an format the View can understand (ViewState) and which needs no further mapping/conditions (if possible) to be able to test the logic. I recommend lectures from Kent Beck, Ian Cooper, Robert C Martin (Uncle Bob), Martin Fowler. With the abstractions you are absolutely right. The problem with testing use cases is explained by Ian Cooper (TDD, Where Did It All Go Wrong). You shouldn't test use cases. Test should never know them. Just call the public interface (for instance ViewModel - on...Clicked()) and check for the out coming ViewState. Only external dependencies like a Database or a Http-Layer (Retrofit) should be mocked. I personally use Koin as dependency framework, which allows to override dependencies. Perfect to replace a Retrofit datasource by a mocked one. Install the production Koin Module + Override definitions in the Test. E.g. in the Test you always test the full path and never call implementation details like Usecases or Repositories. Otherwise the Code isn't really tested and refactoring is mostly impossible. Watch Ian Cooper and try to understand him!!! A good indicator you do it wrong is when you use VisibleForTesting annotation. Testing in isolation doesn't mean to test the production classes independent of each other but running the Tests independent of each other ->> Kent Beck You think too much in Layers and belongings. These things are just there to bring order into the code. Technical depth is fine if you have a good feature test coverage. Spaghetti code is fine if your have a good test coverage. If you test like Kent Beck you can refactor each time and the test will tell you if your features are still work. Your code is frozen, when you test each class and it make zero sense. I hope this wasn't to offensive and will bring you to the next level. -> Watch Ian Cooper!!!
I actually prefer the idea of using SwiftUI and Compose for iOS and Android respectively
How tofind the remote jobs
Its been stable for years now
This is the issue I have with Azure ARM template. It always ONLY give me 1 error then exit and I need to retry every time until all errors are solved!! Run checks and give me all the errors at once pleaseeeeee This looks nice, but not user friendly. Capture all the fails and present them all to the user dammit
Any cross platform framework can't produce app with efficiency of native wheather it's kmp or flutter, if company requires efficient and scalable products it must be made using native languages and framework swift for ios and kotlin for android
Kmp is native
Looked from the point of view of the "innovative" and next gen sutff (Web3 and beyond) it's a clear yes from me. This even includes the wasm targets. Having the maturity of Kotlin and JetBrains, combined with their "write ones, run anywhere" vision, and the level how far KMP (incl. Compose) came over the last years, it's a no-brainer for me. Yes there are Dragons, but hey, are they not always there some how? ;) You'll find a way to work around the gaps, your a Dev! (addressed to all, not neceserily Philipp :)
I am confused, I thought KMP and compose multiplatform they're the same thing
Compose multiplatform is when sharing ui and logic as well
You should start learning compose multiplatform and build sample apps. It will be ready for production mid of 2025. For native Android (non iOS) devs who are serious about their apps running on iOS as well then you should learn swift and some basics of SwiftUI. ( As in build a simple native SwiftUI App without using KMP ) Even though Google has announced support for KMP. Firebase does not support KMP and libraries like ROOM, navigation, jetpack viewModel are still in alpha. And do remember that on iOS for background tasks( Android's equivalent of Work Manager ) cannot be written in Kotlin, it has to be written in Swift so you will still need some Swift skills. Swift is great its modern, easy to learn and concise ( not as enjoyable as Kotlin thou ). Jetbrains has full support for Kotlin to Objective C interop but not with Swift, I am guessing Kotlin Swift interop might be released end of 2025. ( After that there is no stopping KMP + CMP )
When it becomes ready and stable there is no need to learn flutter or react native as native developer right ?
KMP is an alternative to flutter and react so you don't need to learn those... There will be some trade offs if you were to use (KMP+CMP) on iOS as oppossed to a native SwiftUI app, the trade offs in most cases should be minimal but I am keeping a close eye on the performance implications of SKIA (the UI rendering engine CMP uses to draw the UI on iOS) as flutter moved away from SKIA to impeller due to jank/slow start up times a year or so ago so it will be interesting to see if CMP is prone to the same perf issues since they are using an engine that flutter dumped
@@anudeepananth thanks I started learning android 5 months ago because my internship company want to build taxi app + ecommerce with compose multiplatform infact they already started it i met some difficult to understand the compose since I didn't master the basics of native development do you think I should master the native development first ?
@@_hudeifa23 Basics of iOS development will definitely help, the key concepts like networking, background, data persistence, combine framework and some basic swiftUI should do it.
@@_hudeifa23 On the android side definately learn jetpack compose since compose is basically jetpack compose tailored to work on other platforms as well, plenty of courses out there including a few created by our own Philip lackner
It's four years later, and there is no activty_main.xml file :( Looks like it's now in the Kotlin code with an @Composable annotation....? It's so hard to get started because it's constantly changing....#endGripe
To follow the tutorials in this play list you will need to select the Empty View Activity when creating your project. If you select the Empty Activity, you will get a different build type that doesn't use the XML file to build the views.
The Playlist is quite old, start with this to learn the modern approach :) ua-cam.com/video/6_wK_Ud8--0/v-deo.htmlsi=2Mhg5aXW-0-mUwGz
@@PhilippLackner Thank you for the reply, and the updated video. To clarify, my frustration wasn't aimed at you but the speed in which Android is changed. It feels like every 6 months it's a different beast.
We use Compose Multiplatform at my job to develop applications for middle-sized companies and it works perfectly fine.
Did not you see any problems or drawbacks?
Did u publish it in production?
@@daurenkassen5473 I believe they are in production, yes.
@_hudeifa23 Of course, some unexpected bugs, especially on the iOS side. But we found workarounds for all of them.
Is a good time to continue to learn, so when the right time arrives, knowledge and opportunity are going to meet! And that’s the key to success.
Hey Phillip, is it possible if we can convert CurrencyEvent sealed class into generic sealed class just like Resource for a bigger project. ua-cam.com/video/ct5etYgB5pQ/v-deo.html
Die Vielfalt der hier vertretenen Hintergründe ist wirklich bemerkenswert. Es verleiht dem Gespräch eine enorme Fülle.💞
Hey I have a doubt I purchased Google console in 2022 do I need 20 testers to publish app now since I published an app in 2022
No
Nope
If you want to sell your account then please contact
Yes!, U should at least start learning it nowadays and build sample apps
Thank you so much for your videos. There's one question though, how can I make the borders of the image round?
Just installed hackintosh to follow this!
Дерганный какой-то