- Видео 36
- Просмотров 145 597
K Apps
Германия
Добавлен 6 дек 2020
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 RUclips 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/
In this RUclips 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/
How to Write End to End Tests in Android (Basics Guide, UI Test) - Android Studio Tutorial
In this video we will build a simple example app with some navigation and button click functionality for which we then implement end to end tests. This video will contain the basics of implementing this kind of tests for Android using Android Studio.
Final source code:
github.com/MatthiasKerat/EndToEndTestYT
00:00 Introduction
01:17 Building the example app
10:57 Write end to end tests
Final source code:
github.com/MatthiasKerat/EndToEndTestYT
00:00 Introduction
01:17 Building the example app
10:57 Write end to end tests
Просмотров: 2 134
Видео
Android Build a Clean Architecture MVVM Auth Module with Industry Level Code - Android Studio
Просмотров 7 тыс.Год назад
In this video we will build an MVVM Clean Architecture auth module with industry level code which you can then use or modify for your own needs. We will also take care of performance optimization in compose and write unit tests for our business logic. This video is a perfect tutorial if you wanna become an advanced Android developer. Get the initial source code here: github.com/MatthiasKerat/Au...
Advanced Error Handling in Android (Custom Exceptions, Custom Errors) - Android Studio Tutorial
Просмотров 2,5 тыс.Год назад
In this video I will show you a powerful advanced approach how to handle errors properly. This will keep your code very clean and gives you the full flexibility about your error handling in a very scalable way.
Android 3 Tips to Keep Your ViewModel Clean and Structured - Android Studio Tutorial | Clean Code
Просмотров 1,3 тыс.Год назад
In this short video I will show you 3 programming techniques to keep your ViewModel clean. Often ViewModels become very big especially if you provide a lot of functionality. This tips help you to don't mess things up and have a clean ViewModel when developing Android applications.
Build a Clean Architecture Wallet App with Unit Tests - Android Studio Tutorial
Просмотров 2,1 тыс.Год назад
In this video we will build a Clean Architecture wallet application with a lot of Unit Tests. We will validate the business logic which is mainly in the use cases (Clean Architecture) with different test cases to make sure that our logic works properly. Get the source code here: github.com/MatthiasKerat/WalletYT 00:00 Introduction & dependencies 03:00 Business logic and unit tests 28:35 UI and ...
Implement and Visualize a Recursive Sort Algorithm (Advanced Programming) - Android Studio Tutorial
Просмотров 1,1 тыс.Год назад
In this video we will implement the recursive Merge Sort algorithm and visualize each step on the UI so that we can always see whats currently going on. This is a great opportunity to learn how more complex algorithms work and makes also a lot of fun :-). There are hundreds of algorithms which can be visualized like this so feel free to apply this logic to other algorithms. Get the final source...
Android Build an MVVM Clean Architecture CSV File Creating and Sharing App - Android Studio Tutorial
Просмотров 1,5 тыс.Год назад
In this video we will build an MVVM Clean Architecture file export application where first a CSV file gets created and can then be shared to other applications. A lot of applications actually require to share some kind of data to other apps like email, WhatsApp and so on so I think this video can be really helpful when it comes to implementing this kind of feature. You will learn how to structu...
Android Implementing and Visualizing a Sorting Algorithm with Animations - Android Studio Tutorial
Просмотров 2 тыс.Год назад
In this video we will implement the Bubblesort algorithm and visualizing each step on the UI so that we can always see whats currently going on. This is a great opportunity to learn how algorithms work and makes also a lot of fun :-). There are hundreds of algorithms which can be visualized like this so feel free to apply this logic to other algorithms. Get the final source code here: github.co...
Android Build Powerful Flow Chains in Kotlin (flowOn, collect, map, ..) - Android Studio Tutorial
Просмотров 1,1 тыс.Год назад
In this video we will see how we can build powerful flow chains in Kotlin. We will apply flows on a real world example to show you an example how they can be used to make a really responsive UI. We will also see how different operators like map, onEach, or filter work. Get the final source code here: github.com/MatthiasKerat/FlowsYT
Android Build a Hexagonal Progress Indicator with Jetpack Compose Canvas - Android Studio Tutorial
Просмотров 1,4 тыс.2 года назад
In this video we will build a clickable Calendar with Jetpack Compose and Canvas and also apply animation logic on click events. This video is a great opportunity to get started with Canvas in Jetpack Compose. Get the final source code here: github.com/MatthiasKerat/HexagonProgressIndicatorYT
Android Build an MVVM Clean Architecture Order Application - Android Studio Tutorial
Просмотров 5 тыс.2 года назад
In this video we will build an MVVM Clean Architecture order application. There will be a lot of data and state logic so you will learn how to manage this the right way and it will help you to get confident with more complex app projects. Get the initial source code here: github.com/MatthiasKerat/OrderApplikationYT/tree/main Get the final source code here: github.com/MatthiasKerat/OrderApplikat...
Build a Clickable Calendar in Jetpack Compose with Canvas and Animations - Android Studio Tutorial
Просмотров 7 тыс.2 года назад
In this video we will build a clickable Calendar with Jetpack Compose and Canvas and also apply animation logic on click events. This video is a great opportunity to get started with Canvas in Jetpack Compose. Get the final source code here: github.com/MatthiasKerat/CalendarYT
Android Getting Started with Jetpack Compose and Canvas Building a Battery - Android Studio Tutorial
Просмотров 9122 года назад
In this video we will build a simple battery Composable with Jetpack Compose and Canvas. This video is a great opportunity to get started with Canvas in Jetpack Compose. Get the final source code here: github.com/MatthiasKerat/BatteryYT
State Management in Jetpack Compose Best Practices - Android Studio Tutorial
Просмотров 2,3 тыс.2 года назад
State Management in Jetpack Compose is one of the most important things in order to create clean Composables, to separate responsibilities and to always display the right state to the user. In this video we will have a look at the best practices to manage your state. E.g. how to create state, where to create it or when you actually should use ViewModels / state holder classes. 00:00 How to prop...
State Management in Jetpack Compose (Why State Hoisting is so Important) - Android Studio Tutorial
Просмотров 2,2 тыс.2 года назад
In this video I will show you one of the most important core principles of Jetpack Compose: State Hoisting. We will go over some examples to see the actual problems if you don't apply the State Hoisting principles and how you properly fix those issues.
Build a Beautiful 3D Bar Chart in Jetpack Compose using Canvas - Android Studio Tutorial
Просмотров 2,5 тыс.2 года назад
Build a Beautiful 3D Bar Chart in Jetpack Compose using Canvas - Android Studio Tutorial
Android Getting Started with Jetpack Compose and Canvas Building a Live Clock - Android Studio
Просмотров 3,2 тыс.2 года назад
Android Getting Started with Jetpack Compose and Canvas Building a Live Clock - Android Studio
Build Your own Pie Chart with Jetpack Compose in Android - Android Studio Tutorial | Canvas
Просмотров 4,8 тыс.2 года назад
Build Your own Pie Chart with Jetpack Compose in Android - Android Studio Tutorial | Canvas
Android Build a Draggable Picker / Slider in Jetpack Compose for Great UX - Android Studio | Canvas
Просмотров 2,3 тыс.2 года назад
Android Build a Draggable Picker / Slider in Jetpack Compose for Great UX - Android Studio | Canvas
Android Object Management Like a Pro (Dto, Domain, UI) - Clean Architecture | MVVM | Android Studio
Просмотров 2,2 тыс.2 года назад
Android Object Management Like a Pro (Dto, Domain, UI) - Clean Architecture | MVVM | Android Studio
SwiftUI Navigation Techniques (NavigationLink, Custom Navigation, Sheets) - Navigation Can be Easy
Просмотров 1,3 тыс.2 года назад
SwiftUI Navigation Techniques (NavigationLink, Custom Navigation, Sheets) - Navigation Can be Easy
Android Custom Dialogs in Jetpack Compose - Android Studio Tutorial
Просмотров 9 тыс.2 года назад
Android Custom Dialogs in Jetpack Compose - Android Studio Tutorial
5 Ways to Increase the Performance in Jetpack Compose (with Code examples) - Android Studio Tutorial
Просмотров 7062 года назад
5 Ways to Increase the Performance in Jetpack Compose (with Code examples) - Android Studio Tutorial
Make Dependency Injection Easy in Swift (No Need for Frameworks) - Xcode Tutorial for iOS, macOS, ..
Просмотров 1202 года назад
Make Dependency Injection Easy in Swift (No Need for Frameworks) - Xcode Tutorial for iOS, macOS, ..
derivedStateOf, produceState, snapshotFlow - Jetpack Compose Side Effects + Effect Handlers Guide
Просмотров 7612 года назад
derivedStateOf, produceState, snapshotFlow - Jetpack Compose Side Effects Effect Handlers Guide
rememberUpdatedState, rememberCoroutineScope - Jetpack Compose Side Effects + Effect Handlers Guide
Просмотров 6762 года назад
rememberUpdatedState, rememberCoroutineScope - Jetpack Compose Side Effects Effect Handlers Guide
DisposableEffect - Jetpack Compose Side Effect + Effect Handlers Guide
Просмотров 8482 года назад
DisposableEffect - Jetpack Compose Side Effect Effect Handlers Guide
LaunchedEffect, SideEffect & Compose Lifecycle - Jetpack Compose Side Effect + Effect Handlers Guide
Просмотров 2,9 тыс.2 года назад
LaunchedEffect, SideEffect & Compose Lifecycle - Jetpack Compose Side Effect Effect Handlers Guide
Easiest Way to Implement a BroadcastReceiver in Android Jetpack Compose - Android Studio Tutorial
Просмотров 1,7 тыс.2 года назад
Easiest Way to Implement a BroadcastReceiver in Android Jetpack Compose - Android Studio Tutorial
Android Circular Progress Indicator + Circular Slider in Jetpack Compose Part 2 - Android Studio
Просмотров 3,5 тыс.2 года назад
Android Circular Progress Indicator Circular Slider in Jetpack Compose Part 2 - Android Studio
your channel content is wonderful. wish you will make new ones ❤
Viewmodel gets usecase in the constructor param and usecase gets repository in the constructor param.
Amazing work !
Bro, ur content is perfect. I have watched a lot of kotlin tutorials, but yours are just the best
Good video! It will help if I can know your reason for not using the recommended window size class breakpoints in the Android documentation
Thanks for the wonderful tutorial. Great explanation. Could you please tell me how can I read RSSI value of the connected tag?
that was very good. thanks ❤
keep doing man...that's really good <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.
XML was much much better in terms of centralizing dimens
this is already outdated lol. most the libraries are depreciated too.
Thank you very much for your work I'm studying it right know and I'm enjoying it, you really teach me something!😀
Absolutely perfect video. I learned a lot!
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)
Why would a repository invoke a usecase?
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
thanx a lot bro , that help too much 🤍
h1, body1 now not working 😅
thanks for this great tutorial
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!
Man, this is great the best tutorial I have found for this principle! even the clean arch tutorials where violating this rule!
Hi there, do you have an example to read the characteristic ?
hi bro! i just found your channel and i can say that the things what you do are literally awesome.
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 ?
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.
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 :(
very good
Very good and useful tutorial. Thanks a lot
Hi Matze, your videos are outstanding and explained. Do you plan any whole Jetpack Compose course (free or paid), on RUclips or Udemy? Do you suggest any books on Jetpack Compose? Thanks in advance for your content!!!
Excellent video!
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 😄
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?
Excellent!
Just starting to use responsive views and SwiftUI, great start for , Thank you!
This is fantastic. Thank you!!
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.
How would you dynamically change/update the text of a button during runtime? Thanks!
Use view model to manage button text as state and update in an onClick (or any other event which should update button text)
Thanks!@@derekdevs
Thanks for this. Really useful used it for my state exam. Also explanations are very useful for people who want learn new stuff.
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
Such clear explanation. thank you very much
Hello! Why did you close the project?
Detailed and easy to understand explanation. I already subscribed as my thanks. 👌
Great video. Thank you.
do you know what bluetooth chip the sensor uses? I'm trying to do a similar project with a HM-10 chip! Thanks
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?
Hi Could you continue this tutorial? I have a suggestion, could you show how to add a circle to indicate the current position?
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.
Thanks mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Thank you so much!
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?