Тёмный
K Apps
K Apps
K Apps
Подписаться 2,5 тыс.
Welcome guys I am Matze, 26 years old and from Stuttgart (Germany). I am currently doing my masters degree in Computer Science (main focus Software Engineering) so I get a lot of insights in software architecture, programming techniques, software quality, algorithms and network technology. Through my achievements in study I got awarded with the Germany Scholarship for highly talented students. Besides studying I am an iOS and Android freelancer which allows me to apply my theoretical knowledge in a practical way.
In this RU-vid channel I will mainly focus on Android and iOS development techniques. Currently I am just creating videos about stuff which comes into my mind but I would be also very happy if you ask me for an interesting topic which I should explain :-). I am also a big fan of explaining details, so forgive me if some of my videos might get too long :-D.
LinkedIn:
www.linkedin.com/in/matthias-kerat-772153223/
Комментарии
@mithilmehta1501
@mithilmehta1501 2 дня назад
Viewmodel gets usecase in the constructor param and usecase gets repository in the constructor param.
@samyaksingh7445
@samyaksingh7445 Месяц назад
Amazing work !
@Serosim
@Serosim Месяц назад
Bro, ur content is perfect. I have watched a lot of kotlin tutorials, but yours are just the best
@nehzz7433
@nehzz7433 2 месяца назад
Good video! It will help if I can know your reason for not using the recommended window size class breakpoints in the Android documentation
@atabashir5335
@atabashir5335 2 месяца назад
Thanks for the wonderful tutorial. Great explanation. Could you please tell me how can I read RSSI value of the connected tag?
@hadiabbasi8681
@hadiabbasi8681 2 месяца назад
that was very good. thanks ❤
@KashyapChandraPratap
@KashyapChandraPratap 3 месяца назад
keep doing man...that's really good <3
@gamingpanther2583
@gamingpanther2583 3 месяца назад
This video provides so much clarity and I can say that now I can make a modular application. However, I still confused with uni-directional data flow between each layer. Please make a video about it.
@Hyzen-os9ed
@Hyzen-os9ed 3 месяца назад
XML was much much better in terms of centralizing dimens
@OutOfNameIdeas2
@OutOfNameIdeas2 3 месяца назад
this is already outdated lol. most the libraries are depreciated too.
@justplay6503
@justplay6503 4 месяца назад
Thank you very much for your work I'm studying it right know and I'm enjoying it, you really teach me something!😀
@biochemicalsystems9922
@biochemicalsystems9922 4 месяца назад
Absolutely perfect video. I learned a lot!
@TacticalTrainingCompany
@TacticalTrainingCompany 4 месяца назад
Hi I receive this error when I try to RUN the application: java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext (in unnamed module @0x70db1019) cannot access class com.sun.tools.javac.util.Context (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x70db1019 at org.jetbrains.kotlin.kapt3.base.KaptContext.<init>(KaptContext.kt:28) at org.jetbrains.kotlin.kapt3.KaptContextForStubGeneration.<init>(KaptContextForStubGeneration.kt:40) at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.contextForStubGeneration(Kapt3Extension.kt:287) at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:171) at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:102) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$invokeExtensionsOnAnalysisComplete(TopDownAnalyzerFacadeForJVM.kt:112) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:122) at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:86) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:252) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:243) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:113) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:243) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:90) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:56) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:169) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98) at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:412) at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:112) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:358) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:300) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl$rebuild(IncrementalCompilerRunner.kt:119) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:170) at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:81) at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:607) at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:96) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1658) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)
@PowerTechSystem-qk1st
@PowerTechSystem-qk1st 4 месяца назад
Why would a repository invoke a usecase?
@ahmadab9666
@ahmadab9666 4 месяца назад
Hi, i just have one question, do you just thinking about all those calculations or you did some search and asked some persons about how you can make all this calculations stuff, because i strugger to do something like this or even easer
@alirezab4253
@alirezab4253 5 месяцев назад
thanx a lot bro , that help too much 🤍
@murtazabaranwala8955
@murtazabaranwala8955 5 месяцев назад
h1, body1 now not working 😅
@kadircan1862
@kadircan1862 5 месяцев назад
thanks for this great tutorial
@mahdiporkar236
@mahdiporkar236 5 месяцев назад
I really like the way you teach clean architecture. I would say it is the best content I have seen so far please continue making great videos! One thing you can improve is that when you are writing code add some empty lines and the end of the file so the code would not be in the bottom of screen and covered by subtitles!
@mahdiporkar236
@mahdiporkar236 5 месяцев назад
Man, this is great the best tutorial I have found for this principle! even the clean arch tutorials where violating this rule!
@kevinmartinez2215
@kevinmartinez2215 6 месяцев назад
Hi there, do you have an example to read the characteristic ?
@auraliann
@auraliann 6 месяцев назад
hi bro! i just found your channel and i can say that the things what you do are literally awesome.
@SharifJohnGhafforov
@SharifJohnGhafforov 6 месяцев назад
Hello Sir ! I liked your work. Thanks ! I have a question: Do we need any kind of data from Device with BLE to be able to connect and share data with it ?
@MElsayed7
@MElsayed7 7 месяцев назад
In Clean Architecture, it's not typical to send use cases to the repository constructor. The repository's responsibility is to provide an abstraction over data access, not to interact directly with business logic or use cases.
@alexkokos5363
@alexkokos5363 7 месяцев назад
Great video, thank you for your job! Can you help me please? May i connect Tuya BLE THB2 sensor using this app, the fact is that when ble sensors are scanned, it does not see them, although these sensors are ble devices :(
@levimendes958
@levimendes958 7 месяцев назад
very good
@michelgirard6055
@michelgirard6055 7 месяцев назад
Very good and useful tutorial. Thanks a lot
@christosbazios52
@christosbazios52 7 месяцев назад
Hi Matze, your videos are outstanding and explained. Do you plan any whole Jetpack Compose course (free or paid), on RU-vid or Udemy? Do you suggest any books on Jetpack Compose? Thanks in advance for your content!!!
@christosbazios52
@christosbazios52 7 месяцев назад
Excellent video!
@psanavps
@psanavps 8 месяцев назад
Simply amazing....the best part is that everything is a Wrapper, 1 drag helper class of all type of draggable Views. Perfect! P.S :- Please try to sound a little more awake 😄
@Babs_i
@Babs_i 8 месяцев назад
SOS! First step- first Problem! compose_version and classpath are red, Gradle sync failed. Is there anything I should have done before? How did you all do this?
@christosbazios52
@christosbazios52 8 месяцев назад
Excellent!
@daveshackshack
@daveshackshack 8 месяцев назад
Just starting to use responsive views and SwiftUI, great start for , Thank you!
@derekdevs
@derekdevs 8 месяцев назад
This is fantastic. Thank you!!
@swish6143
@swish6143 8 месяцев назад
I have been using canvas and then drawRect. Can you explain how the drawConterxt.cavas.nativeCanvas.apply and Paint().apply works? This looks mor advanced. Thanks a lot for sharing, the canvas thing is difficult to figure out. Grüße aus Frankfurt.
@john.mattock
@john.mattock 8 месяцев назад
How would you dynamically change/update the text of a button during runtime? Thanks!
@derekdevs
@derekdevs 8 месяцев назад
Use view model to manage button text as state and update in an onClick (or any other event which should update button text)
@john.mattock
@john.mattock 8 месяцев назад
Thanks!@@derekdevs
@JozsefNyulas
@JozsefNyulas 8 месяцев назад
Thanks for this. Really useful used it for my state exam. Also explanations are very useful for people who want learn new stuff.
@Prashanth-wg1yh
@Prashanth-wg1yh 8 месяцев назад
Stumbled across this channel as i was searching for a video to understand the Disposable Effects . Ended up watching all the videos in this playlist. Time really well spent. Thank you very much for the effort put in to create such videos
@Prashanth-wg1yh
@Prashanth-wg1yh 8 месяцев назад
Such clear explanation. thank you very much
@АльфредАхметгалеев
@АльфредАхметгалеев 9 месяцев назад
Hello! Why did you close the project?
@ianlipa9826
@ianlipa9826 9 месяцев назад
Detailed and easy to understand explanation. I already subscribed as my thanks. 👌
@Lingchao2596
@Lingchao2596 9 месяцев назад
Great video. Thank you.
@danlegg-n9v
@danlegg-n9v 9 месяцев назад
do you know what bluetooth chip the sensor uses? I'm trying to do a similar project with a HM-10 chip! Thanks
@ngomdecadetkamdaou3464
@ngomdecadetkamdaou3464 9 месяцев назад
Good explanation, thanks. So basically it means that a LaunchedEffect used with Unit as a key is similar to a SideEffect, except that a LaunchedEffect gives a suspend block, am I right?
@qzero
@qzero 9 месяцев назад
Hi Could you continue this tutorial? I have a suggestion, could you show how to add a circle to indicate the current position?
@farouktouil5036
@farouktouil5036 9 месяцев назад
Thank you for this tutorial, by the way i have a question , if for example I want to add a deleverer to the list of Deliverer selection , do I have to create another AddDelivererViewModel or use the existing OrderChooseDelivererViewModel ? thank you.
@henrik908
@henrik908 9 месяцев назад
Thanks mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
@nathann4291
@nathann4291 9 месяцев назад
Thank you so much!
@MyHobbies-qh8pg
@MyHobbies-qh8pg 10 месяцев назад
hi Sir, thank you for the best tutorial, is it possible to create another tutorial where we actually write to Arduino or Esp32 to control a simple LED to turn ON and Turn Off?
@g_bulan
@g_bulan 10 месяцев назад
Thanks for sharing. However, for the tip #5, I believe Composable2 is not recomposed even before Composable1 is optimized. This fun is marked as skippable because it receives an immutable (primitive type) parameter. Here, because the value of its parameter remains the same, this fun is skipped when Column is re-executed on recomposition.