Excited for more videos on Kotlin and compose Multiplatform playlists
@r2rxheisenberg1286 ай бұрын
Exited?
@ayitinya6 ай бұрын
@@r2rxheisenberg128 right...
@mrdarip42896 ай бұрын
@@r2rxheisenberg128I think he meant excited
@vishwam86326 ай бұрын
@@r2rxheisenberg128 now ok
@YasirZaman-jo4tf6 ай бұрын
@@mrdarip4289 not think sure.
@gofullstack6 ай бұрын
7:23 The bridge here isn't entirely true because Flutter doesn’t depend on the native platform like RN used to unless it needs access to the camera and other hardware. For inputs, dialogues and other UI-related things no bridge is required just like a game engine and even when you need a bridge the performance difference is too slim. So that e-commerce you are dreaming of building can work fine with Flutter. Nice video by the way.
@subikeshps22896 ай бұрын
Great video Philipp When I was trying out Kotlin multiplatform, I did come across some performance issues and even some runtime errors when the code was running in an iOS device. I tried to report them as much as I can, but most issues were because of objective C to swift interoperability. So it's better to test all the features thoroughly before directly using it a production app.
@ivan.angulo6 ай бұрын
Is true that Kotlin compiles to JVM bytecode but is then is converted to a Dalvik Executable (DEX). Android itself not longer uses JVM for running apps, instead uses Android Runtime (ART). During the installation of the APK, the ART runtime compiles the DEX files into native machine code. ART is the succesor of the Dalvik runtime.
@TiagoDvl6 ай бұрын
Really looking foward to this. Thanks once again, Philipp
@drantunes6 ай бұрын
There is a problem with your speech in your last 2 videos. Flutter can call NDK functions through FFI, which makes it possible to generate bindings for native communication (in the similar way that Kotlin does for Swift or Objective-C interop - there is no magic). Of course, this mapping is not simple considering cross-platform (if it were, KMP should already be on all platforms)... it would be like building the NDK in the same language for all platforms (so, for quick adoption, a "more simple" approach is to use a communication interface with the current platform's SDK (e.g. kotlin, swift, c++, js, etc). But if your app needs 10 cents more performance in native, in Flutter you can use FFI to that. I really hope to see this magic in KMP of being able to access native resources directly, without any binding. This would be valuable for any other cross-platform framework that could use KMP as a native access layer.
@futynuty5 ай бұрын
I don’t know about Flutter (and developing for Android in general), but Philipp saying that Flutter’s bridge INTERPRETING compiled code. KMP compiled into binary, so no interpretation needed. It is just like your C code calling library function.
@drantunes5 ай бұрын
no, Flutter compile to binary machine code and runs direct in the target platform… no interpretation, the release is compiled with AOT approach. This is a common mistake of who not uses Flutter, because the framework works with JIT and AOT compiler (developer and production).
@TheDeeStain5 ай бұрын
Please explain to me how many developers would use FFI that is communicating to native c/c++ code because that is all it communicates with right? (which still requires bindings) I feel like the usecase here is about less than 1% of ALL app developers that need that and is entirely different than what he is referring to native API's. (kotlin, swift, etc..)
@futynuty5 ай бұрын
@@drantunes JustInTime compiler and AheadOfTime compilers are interpreters. If you need compilation at runtime - it is interpretation. KMP produces a binary code, which just called as any other library code. No anything, but the logic, developer wrote in the code. This is why it is Zero overhead interoperability.
@gofullstack6 ай бұрын
4:53 But Dart doesn't run on JVM since it compiles to native code and that also means there is no Dart VM when the code is native and everything is delegated to the code when launched. Am I correct?
@gofullstack6 ай бұрын
0:43 are they going to be limitations that Flutter don't have?
@ramjeegupta54906 ай бұрын
I was looking for this playlist, Thank you and very excited for this
@events40896 ай бұрын
Philip please introduce kotlin amper technology for build tool configuration for kmp
@zidan69006 ай бұрын
where did the illustration in 3:40 came from? I think the iOS already stable by now right?
@dragonview50076 ай бұрын
When comparing Flutter and KMP, you always mention the downsides of Flutter but not Compose Multiplatform, don't get me wrong, I was like you, and that changed after trying Dart and JVM environments multiple times, Dart environment is much modern and much more simpler, the disadvantage of having to write a bridge to native code is there for a reason, how will hot reload work for example? it's very difficult to implement this on native targets even if they support it which they doesn't, shrinking the application is not a feature in Kotlin/Native, Dart it's and it's designed in a way so that you don't even need rules like on Android (R8 for Android or Proguard for JVM) Hot reload and Hot restart is a feature you will not see how valuable it's unless you use it a lot. Besides Compose Desktop has many issues and not stable yet they marked it as stable, too many issues like in Release for production applications, it will limit you to use Material 2 dependency even if you only include Material 2, Cupertino or something else, inconsistneisy like using different three Preview annotations, these are small problems and yet it's not solved yet as the focus is mostly on iOS and Wasm, it's also worth mentioning the bundle size is too big (50 MB) with the requirement of installing JRE, and this usually with the use of Proguard. Using packages and dev packages, writing scripts is much, much easier on Dart envrionemtn, For writing desktop applications I prefer Flutter Desktop, anyone who used both for a long time would agree. It's much easier to configure the project, you don't need things like declaring mavenCentral() as it's already declared (pub.dev) on pubspec and yet you still can use other sources, you even can use a library from Git repository, using fixes before they even release and try out things very quickly, it's just much less pain compared to JVM or Kotlin (Kotlin heavily rely on Java even if you use Kotlin/Native targets), you might disagree if you work your whole life with Kotlin and Java. Notice this is not complaining like some might though. I still use both though, in fact I even used KMP for writing Flutter plugins Yet it's still personal preference, it's useful to recognizing the full potential of the Flutter and Dart environment, both are powerful environments, yet still many consider the end of Flutter because of KMP without seeing the full features of Flutter.
@kinggeorges6256 ай бұрын
Bonne nouvelle. On attend impatiemment la suite des videos 😋
@shizanahamadali37486 ай бұрын
thank guru, you helping students to archive there goals
@DaleHawkins6 ай бұрын
Looking forward to it!
@radeklukas8 күн бұрын
Is it possible to use some sort of abstraction / bridge layer in KMP so that I don't have to write separate native code for notifications etc.?
@abhishekkumarjha16615 ай бұрын
Just a question it's mentioned that you mac for ios but. Is it vice-versa like can we build for Android on Mac??
@alexmercerind6 ай бұрын
Awesome. Looking forward to the playlist.
@CursoSketchware-c1z6 ай бұрын
You already have my Like and View guaranteed❣❣❣
@kurtisharen5 ай бұрын
Interesting timing. I’m actually starting to learn Kotlin at the moment. I learned Java and C back in college, but as far as Kotlin, I got as far as putting together a quick cheat sheet of formatting things like variables and functions. I don’t have internet at my house at the moment outside of my phone’s hotspot data, so my day today has been hauling my desktop to my grandmother’s house just to install Android Studio and hauling it back. I already have an idea for an app I want to develop, something kind of silly and dumb that’s more an excuse for learning to make an app and use the Google Maps API. I was about to start working on learning to put it together exclusively on Android when I found this video appear on my feed. So, like I said, interesting timing.
@LucasFerreira-ri6rg4 ай бұрын
Philipp, the course's description says you built the iOS UI using SwiftUI and not Compose. Did you update it? I want to start but I don't need to build native UI for iOS. My goal is to make it totally at KMP/Compose.
@futynuty5 ай бұрын
You can use any libraries in appropriate platforms. They don’t need to be multiplatform. For example, if you need to use platform specific logging libraries, you just need to wrap each of them into common multiplatform API. This is just an implementation of your API, which on specific platform using available library. If one want to use log4j API in his/her KMP application, they will call method directly on JVM targets, but the Kotlin implementation of the same API on native target calling (or not) existing logging library. All these will happened in compiled binaries, so no different from one implementing direct calls.
@mortezamgh13475 ай бұрын
Thanks, waiting for next episodes of KMP from you
@yoshitoneo86166 ай бұрын
You can also use the Mac Virtual Machine for compiling iOS platform
@HafizUmair-d8k5 ай бұрын
can we use xml instead of compose in KMP
@northrider37625 ай бұрын
Philip, hi. Can I use KMP on Windows operating system?
@PhilippLackner5 ай бұрын
yes, you just can't launch apps in an iOS/MacOs environment
@futynuty5 ай бұрын
@@PhilippLacknerwhat do you meant “can’t launch”? Definitely can if you running on Mac. I cannot run Windows, because I am working on Mac.
@ajaykotiyal4274 ай бұрын
How Kotlin directly call iOS Native APIs? both are separate systems? without Swift, is it possible ? same with other platforms (except Android).
@arozendojr6 ай бұрын
Maybe if you compare the generated apk, you won't find the intermediate layer, because flutter transpiles it to native code in the final artifact
@PhilippLackner6 ай бұрын
Doesn't mean it isn't there in the binaries 😄
@arozendojr6 ай бұрын
@@PhilippLackner I could be wrong, kmp compose ios, does the same thing for the iPhone ios artifact, that's why the ios artifact is bigger
@akbarputra87266 ай бұрын
Can KMP make .a library for IOS?
@yohanespradono52243 ай бұрын
which cross platform solution is best for building MacOS app (not ios)?
@PhilippLackner3 ай бұрын
If you know you only need a mac app, why think about cross platform 😅
@yohanespradono522412 күн бұрын
@@PhilippLackner because i only have windows (for development) and a hackintosh (for compiling and testing). i am building a desktop app for windows and macos.
@jadmurr78833 ай бұрын
Hey, I’m interested in mastering KMP, but I’m a beginner and know nothing. Do you have a video or course where I can learn everything from zero? I’m assuming I should learn coding in kotlin but since KMP is new I don’t want to waste time in older courses. Please any advice is welcome, and thank you in advance.
@allanandliftedhands26696 ай бұрын
Finally. I hope this will cover Web as well.
@undeadredemption_6 ай бұрын
Thank you Philip , you sir are a LEGEND 🙏
@wejdan42346 ай бұрын
Great, I will follow this list with the other commands for Android Studio
@tjkn87346 ай бұрын
Hello. I am interested in KMP/CMP. I wonder what are the prerequisites for learning these; what level of android and iOS experience we should have first? Thanks
@PhilippLackner6 ай бұрын
Kotlin and Android basics knowledge helps
6 ай бұрын
Android apps actually do not run on the JVM. They run on the Android Runtime (Art) or natively in case of Flutter and NDK. Android does not have any JVM. This is wrong in this video.
@himanshukhanna25896 ай бұрын
Bro art is based on jvm
6 ай бұрын
@@himanshukhanna2589 True but it isn't the same.
@lordryns6 ай бұрын
Does this Apple policy extend to IOS or can use emulators to test your ios app?
@amansaxena90186 ай бұрын
Hello Philipp please make a complete tutorial video on api using with retrofit
@padmakargarg97206 ай бұрын
Can you make a call recording app in kotlin
@hanswurschtms6 ай бұрын
DIY.
@architgoyal4u5 ай бұрын
how does phone auth works in kmp?
@yusufbounaas61656 ай бұрын
very informative video as usual , and for just a note you can leverage your iphone to test your ios code until you get a mac 😊
@Code_Cracker-n5r6 ай бұрын
Hi Phillip, On KZbin I searched for the DSA series In Kotlin but I didn't find a single video on it Please make a DSA series in Kotlin. Thank you!
@szpitor6 ай бұрын
Finally. Thank you Phillip
@roland80616 ай бұрын
Would be nice to see how to setup a compose web app (WASM) and if there are any limitations for now, comparing to the other targets.
@futynuty5 ай бұрын
WASM is still in alpha, so it may change significantly and often. Play with that, but don’t use for anything close to production
@alexnovikov16096 ай бұрын
I checked KMP and year ago. iOS support was in betta and Web support was absent (they call it “experimental”) but I couldn’t find any template for all 4 platforms. As I can see after an year, nothing changes for iOS. What is about Web? Can I build an app for 4 anounced platforms now?
@futynuty5 ай бұрын
Actually for more that 4: JVM, Android, iOS intel, iOS arm, tvOS, watchOS, macOS intel, macOS arm, Linux intel, Linux arm, windows, and finally WASP, which is in alpha (experimental)
@ChrisAthanas6 ай бұрын
GET READY FOR THE KMP JUGGERNAUT! I have full iOS/Android KMP example projects on my channel
@aminelhag6 ай бұрын
That is what I am waiting for it. Thanks for now.
@mrmohammadshah4 ай бұрын
How to an ebook app using KMM?
@Kaiyes_5 ай бұрын
so whats the difference between compose multiplatform vs kotlin multiplatform ?
@futynuty5 ай бұрын
Compose is the UI library, which was redesigned into KMP. The KMP itself is the set of tools to compile Kotlin code targeting different platforms. Compose is a set of code, which can be compiled for all thouse target platforms.
@_runtime6 ай бұрын
Can you give some info on the frequency you will be releasing the episodes on the playlist? Also, an interesting topic is Kotlin-to-Swift export, would be nice if you touch it too.
@futynuty5 ай бұрын
Kotlin is not converted to Swift. It is compiled into library, which will be linked into the application AFAIK
@jblacktube6 ай бұрын
Yay! I've been hoping you'd do a full kmp walkthrough! You truly have a talent for making topics like these much easier to understand. I'm hoping you cover MacOS as part of your KMP examples, though I suspect that may not be something that you don't plan on dwelling on very much. Maybe though you could dedicate one episode each to Mac, Windows and Linux?
@anirudhaj10236 ай бұрын
man, i used to do kotlin apps with jetpack compose and switched to flutter i find flutter more easy than kotlin, but still things like constraint layout and coroutines are not available... so should i switch back to kotlin??
@theSiliconCoderАй бұрын
Use hybrid architecture. Native and flutter working as one.
@YasirZaman-jo4tf6 ай бұрын
2 new things I learned today: JVM for android Native binary for apple.
@fig70476 ай бұрын
Yeah, but I wonder if what actually happens on Apple is that they convert Kotlin to Swift (or C++ even). Presumably, it's XCode that has to build it on Apple. Idk.
@YasirZaman-jo4tf6 ай бұрын
@@fig7047 yes you are right but a better sound will be: for android: Kotlin code -> JVM bytecode -> Runs on JVM for iOS: Kotlin code -> Native binary -> Runs natively
@YasirZaman-jo4tf6 ай бұрын
@@fig7047 yes you are right but a better sound will be: for android: Kotlin code -> JVM bytecode -> Runs on JVM for iOS: Kotlin code -> Native binary -> Runs natively
@osisuper986 ай бұрын
@@fig7047Nope, they don’t convert Kotlin to Swift on IOS or to Java on Android. The compiler does all the magic. On the JVM (Android & Desktop with JDK installed), the Kotlin Compiler converts your Kotlin code into Java bytecode so it runs on those target platforms, whereas on IOS it generates LLVM code (native code) which produces binary machine code. Kotlin/Native is a technology for compiling Kotlin code to native binaries which can run without a virtual machine, such as embedded devices or iOS. Kotlin/Native supports the following platforms: - macOS - iOS, tvOS, watchOS - Linux - Windows (MinGW) - Android NDK
@futynuty5 ай бұрын
My understanding is that they compile to the library, but to run/debug you need to link and execute it on XCode
@valkthegreat89486 ай бұрын
IOS sucks, we still have desktop Win/Linux, web and Android. Greetings from Brazil sr. Lackner! I'am learning lots of amazing stuffs in your channel, both english and tech content. Thanks for sharing knowledge with us.
@CursoSketchware-c1z6 ай бұрын
Achei alguem de casa 😂
@jithind-feverx28186 ай бұрын
KMP🔥
@osamamohsen39936 ай бұрын
Thanks philipp ❤️
@ЕгорСауткин-щ6г6 ай бұрын
Ok, i will watch this)
@pakkerto4 ай бұрын
KMP is brilliant, thanks for the video
@РасулКапезов-з8д6 ай бұрын
Omg, Phillip! Thanks a lot!
@gorudonu6 ай бұрын
eh.. kotlin also has "bridge" or whatever you want to call it, when compiling to ios. you still have GC for kotlin code on ios so it's not magical like you want it to be. sure, you can extend ios objects but guess what does that compiler generate under the hood... bindings
@futynuty5 ай бұрын
I think there is no binding. At least with JVM Kotlin using the same classes (0 overhead). I bet the same true with native. This is why they don’t promise Kotlin to work with Java and native in the same binaries. The Kotlin code actually compiled into different binaries for different platforms, which results in 0 overhead integration.
@gorudonu5 ай бұрын
@@futynuty like I said in my previous comment, kotlin native uses GC. There's some code generated to make it smoother but it's still not the same as objc
@futynuty5 ай бұрын
@@gorudonu Kotlin Native compiles into .framework file, which contains the binary library. I guess GC is used just to link it into final application
@futynuty5 ай бұрын
@@gorudonu you are right: Kotlin is not an Objective-C. Nobody says it is. Both source files compiled into the same final artifact (.framework). Kotlin Native is NOT cross-compiler. It is MULTIPLATFORM compiler.
@hoanghai55726 ай бұрын
Most important things is Swift now support offically for multiplatform
@iro3d6 ай бұрын
Great video. Though I wish there would have been no background noise (music).
@SPimentaTV6 ай бұрын
But we already have Flutter 😅 Maybe Google will be ditching Flutter and promote Kotlin Multiplatform
@codingCouncil6 ай бұрын
Flutter doesn’t do native UIs.
@pablovaldes60226 ай бұрын
Flutter cannot do swiftui
@mic99696 ай бұрын
Flutter can nnot do anything
@gregsullivan74085 ай бұрын
Judging by the amount of articles that try to assert Flutter's bright future, I have little doubt that you are correct. 😉
@SalahPrayer2 ай бұрын
@@pablovaldes6022KMP cannot do swiftui either 😂
@RefkiMeholli6 ай бұрын
Nice .. thank you .
@henrik9086 ай бұрын
Philip is the king 👑 of Kotlin and compose.
@edhahaz2 ай бұрын
It's coming soonTM. Or you could use Expo today.
@aaronperron6 ай бұрын
I really hope KMP takes off 🚀 I tried Flutter and I did not like it.( I'm coming from Native Android and IOS)
@kausikmr6 ай бұрын
How is KMP is better than Flutter?
@gondaimgano6 ай бұрын
Can’t wait for KMP but one thing Flutter has no bridge buddy 😅
@PhilippLackner6 ай бұрын
Flutter can't call platform APIs directly like KMP can
@gondaimgano6 ай бұрын
@@PhilippLackner that is a good point on a small limited platform perspective like your biometric etc but on the most part are you aware that Flutter uses Skia to completely render its own UI system making it essentially way faster.
@PhilippLackner6 ай бұрын
@@gondaimgano who speaks of UI rendering? I'm talking about platform APIs like camera access.
@gondaimgano6 ай бұрын
you are right 😅probably its the way you delivered it. In any case 😊all the best on the next vids 🎉really excited to see what you will come out with 🎉
@topGfanboy6 ай бұрын
@@PhilippLackneryou are just overhyping kotlin... Kotlin doesn't have an inbuilt vm like dart.. Dart is way more powerful and compiles to machine code.. Kotlin just is a slave of Java.. And how can it could even use native api's since all it can do is just to make java byte code with some sugary syntax... I think people are actually going to ditch this java shadow toy called kotlin...I always prefer java for accessing android system api's rather than kotlin's fun mimic sugary syntax.. I always feels kotlin like, a failed copy cat to java..
@princeneo2946 ай бұрын
This is nice
@randon.integerАй бұрын
Flutter uses Dart VM only for development with JIT compilation, in production it compiles to Native code with AOT compilation. Please stop confusing people
@AlexanderSuraphel6 ай бұрын
I don't see what KMP compared to React Native. 1. Most of the code you write will depend on third party library which is not available on Kotlin native ( Kotlin android can import java libraries but not the case in JVM). 2. Renders Flutter like UI in every platform except Android if you use compose UI (which is pointless since you can always share code via shared C++ etc libaries if you're doing to make native UI for every platform ). React Native native modules actually let you share code.
@belkocik3 ай бұрын
Guys, it's time to learn Kotlin. :D
@AlfredBethune-r3h2 ай бұрын
Gerhard Stravenue
@GarlandKobak-y4u3 ай бұрын
Barton Fall
@LukeHardy-b1o3 ай бұрын
Block Trail
@fitzventure2 ай бұрын
So it's Xamarin, just with Kotlin instead of C#. Interesting.
@LorettaRodriguez-b2t2 ай бұрын
Norene Pike
@kshitizagnihotri87776 ай бұрын
These cross platform technologies are actually ruining the market , and developer career , because Developer does not get time to focus on particular technology, a good developer has to reach deep in a particular technology, in this case iOS is better it is not open source like Android
6 ай бұрын
Something which JS based Frameworks and Flutter have been able to do for years… it’s not a new concept.
@KathlynBilleaudeau-u6k3 ай бұрын
Mohammad Prairie
@Designguidetv6 ай бұрын
you know Swift multiplatform is coming? it's already working on linux!
@StevensonMaud-z5l2 ай бұрын
Hahn Station
@RajuYadav-qm4ic5 ай бұрын
is it free
@BradleyOdelette-w5r3 ай бұрын
Sean Loaf
@Aditya_69966 ай бұрын
crazy
@HemingwayLindsay-l9x2 ай бұрын
Stamm Summit
@kamalzubairov23446 ай бұрын
This all sounds like a Xamarin. Their approach to running applications on multiple platforms was exactly the same, but they have failed
6 ай бұрын
Not really, Microsoft has just rebranded it to .Net Maui
@futynuty5 ай бұрын
Never heart about Xamarin, but check RIP page. It said the technology based on .NET, so what would you expect? Actually, KMP is very different. It compiles to native binary and not in byte code. The .NET is more like Microsoft version of JVM, and JVM is still alive. However KMP is different and tries to deliver on original promise by Sun Microsystems, but on new level.
@arozendojr6 ай бұрын
kmp looks a lot like flutter in operation
@1antoinette6 ай бұрын
KMP also needs bridges for calling native APIs, except for Android. You make it sounds like KMP will be like pure native app on other platforms, but no, it will be just be like Flutter, plus the ability to write native UI And Compose MP is still inferior against Flutter in all other platforms except for Android. KMP is great, and I'll be watching this playlist, I want to learn more, but it looks like you are either biased against Flutter, or doesn't have clear knowledge on what you are talking about.
@PhilippLackner6 ай бұрын
Which bridge does it need?
@1antoinette6 ай бұрын
@@PhilippLackner if you are not directly interacting with APIs, that's basically still a bridge, I know KMP compile its code for native APIs, and it's more native than calling platform channels on flutter. But there is still an abstraction bridge
@PhilippLackner6 ай бұрын
That's what I was saying in the video, KMP *can* call platform specific APIs directly without a bridge. Read here: www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-connect-to-apis.html#expected-and-actual-functions-and-properties "The Android implementation uses the APIs available on Android, while the iOS implementation uses the APIs available on iOS. You can access iOS APIs from Kotlin/Native code." I also recommend checking Jim Sproch's Tweets on this, really informative :) twitter.com/JimSproch/status/1740214020785991716
@futynuty5 ай бұрын
Philipp is correct: Kotlin get compiled into native binaries and so calls native API directly. The only case of what people may call “bridge” in this case is when your business logic API is not directly matches the platform API. However, this is not what “bridge” in this context means. You would have to write this code even if you writing your whole application in plain C. Kotlin provides you the implementations of its constructs, but this is not a bridge either, just a 3rd party libraries.
@m1thrandir6 ай бұрын
first
@j2shoes2886 ай бұрын
I can't even get logging to work. KMM is absolute trash.
@futynuty5 ай бұрын
First of all doesn’t mix KMM and KMP. They are different. I think there are a few KMP logging libraries. Why you cannot log?