I liked that you never skip crashes or if something does not work even though you could have edited it. It is a big motivation and reminder that no one is perfect.
I was following your content from my very initial days !! I can only say the only consistent Channel for Android content in RUclips is only the one Phillip Lackner !! Extremly thankful as an Android Dev . Seriously one of the best playlist or most important playlist is the one what your doing right, Android basics 2023. Android is a beast it changes so much even chatGPT went mad many times when I query Android stuff and always I and up on your channel to learn stuff and get uptodate knowledge !! Power to you brother !! And do make this playlist extraordinary !!
Thank you! This one is great! Goes from start till end without cutting to much on corners, and without unnecessary things that are not related to WorkManager itself
considering that the file size of the compressed file is going to be ordered in relation to the quality it would probably be doable to make a binary search of the optimal quality instead of a linear search from 100 until 0.
Great job Philipp! Can't wait for another video with contentResover uri etc like you mentioned. I got two questions: 1. Couldn't we check WorkManager result "success" instead checking if data != null? 2. Is it good practice to have workManager injected in view? I see we need applicationContext for that so maybe that's why but I am wondering if we could have it in viewModel or if we would place workManager in viewModel directly it would be bad practice? Thank you for your great work!
If someone is stuck with a gradle error with the WorkManager dependecy the solution is create a project with the miniumum android sdk as Android 12 (S) because the WorkManager Version >= 2.7.0 is required for apps targeting Android 12 (S)
there is actually no big different, note that the ArrayList is the implementation of of MutableList, in simple words if your building a music app, for the list of music you use the MutableList because you don't care about which one the user remove or add to the list, in the other hand ArrayList if you are developing a game for guessing words and you deal with entities for characters then you should use the ArrayList because the Characters will be drawn frequently on the screen and that won't be efficient with MutableList , and that's where the ArrayList comes handy it handles these operations well with good performance. it's always better think about how your app going to work, and then pick what is the best to use.
Goal : - Need to run a service in the background for 20-40 mins every 2 hour (Battery usage no issue) Correct me - if i m wrong : - WorkManagers workers thread has a hard limit of 10 minutes, which defeat the purpose of long running task in the background - I mean for short running repeated task its ok but for long running repeated task it doesn't work - As per my knowledge the best approach to run a long running repeated task is using foreground service - But some task doesn't need user interaction & some long running tasks doesn't need a foreground service ----> My question to you is what is the alternative ??? ----> To run the above task what options are available ???
@@ChrisAthanas It needs to be able to performs long task such upload large files (created files by another app) to the server, video cam stream, audio stream, more etc. But the main thing is it has to be reliable service i mean once the file started uploading or Camera Stream it shouldn't be killed by Android System (Works on Android 7 or 8 but since Oreo its a trouble) - Foreground service will work but that defeat the purpose !!!
@@garrysingh4484 yeah I think you will have issues with that strategy bc google is killing apps without foreground notification Google is specifically banning that kind of use case that you have described due to privacy issues What's your use case here?
Please provide tutorial about producing UI state and consuming it from UI and their side effects , specially with API's like LaunchedEffect, RemeberUpdatedState, RememberCorutineScpoe, ProduceState, derivedStateOf
Dear, please help me, after coding the app exactly the same as yours, the intent never fire and i got eacht time i pick a picture , a new instance of the app. Please note that i added singletop in the manifest file. thank you in advance.
When I add the onNewIntent function, it shows "onNewIntent overrides nothing". And if I remove the null checks(i.e. the question marks), Then my app is crashing saying "Reading a NULL string isn't supported". Someone help.
Make Recycler view with Exoplayer2 (latest version). All edge cases with memory leak solutions and cache managing for less use resource (internet). Thanks dude.
I don't want to say anything bad, but if you think about it, you use macOS but sit in Android Studio and program for Android - it's funny, isn't it? :)
I have to say there is too much information unrelated to WorkManager. If the topic had been 'Image compression,' I could understand why there is so much code. But in terms of teaching beginners, it's very unnecessary to provide such a complex example of using WorkManager.
take your time, rewatch it 5-10 times, make note of primitives of this tutorial, their philosophy.. and, see through awareness first the different realms: work manager make n enqueue, vm data set n compose using, code for compression, & extraction of work manager result data n putting in UI by launchEffect(based on watchDog key = result here, making it launch only when this value changes with reuse of activity in another image), FLOW OF DATA.. ISOLATE THESE REALMS & STUDY THE PHILOSOPHY OF THEM IN AWARENESS/OBSERVATION FIRST, DON'T FUSS OVER SYNTAX FIRST.!!! slowly rough sketch understand.. the nature of each entity: like workmanager = constraints, input data, retry policy, get result by uuid, enqueue.. I.E. ALLOWANCES OF THIS ENTITY GIVEN TO US DEVS. later go to syntax perfection.. then you may try to gulp it as a whole by joining all module together.. IT NEEDS ATTENTION OVER TIME, TO DEVELOP MOUTH TO GULP IT EASILY.. KEEP STICKING N BREAK IT AS PER CONVENIENCE INTO AS MANY REALMS AS U WANT, PERSONALLY. KEEP GOING :)
my man i feel u for real, im solo learning for almost a 1.5 years it makes clear after some time just dont give up, i never trusted people that 1 day it all makes sense it really does just stick with it. I still have a lot to learn but i enoy proces of learning. Good luck we all gona need it hahaha
I liked that you never skip crashes or if something does not work even though you could have edited it. It is a big motivation and reminder that no one is perfect.
I was following your content from my very initial days !! I can only say the only consistent Channel for Android content in RUclips is only the one Phillip Lackner !! Extremly thankful as an Android Dev .
Seriously one of the best playlist or most important playlist is the one what your doing right, Android basics 2023.
Android is a beast it changes so much even chatGPT went mad many times when I query Android stuff and always I and up on your channel to learn stuff and get uptodate knowledge !!
Power to you brother !! And do make this playlist extraordinary !!
He doesn't like the way you spelled his name 😄
How long to took you to learn Android dev ?
@@mohameddouch9503 its been 10 years for me and I'm alwayslearning something new on Android
It's really good that you provide more or less real-life examples in your videos. Keep it up
Thank you! This one is great! Goes from start till end without cutting to much on corners, and without unnecessary things that are not related to WorkManager itself
I really like this series, it is a good refresher. Great work!
King of the android RUclips channels ahah
considering that the file size of the compressed file is going to be ordered in relation to the quality it would probably be doable to make a binary search of the optimal quality instead of a linear search from 100 until 0.
Thanks man, you are a savior.
I love live demos, good content, keep it up!
keep it up philipp you are great
Thanks Philipp! Amazing video! Greetings from Brazil.
Delicious video as always, thanks!!🙏
Thanks for this tutorial. I learnt a lot
Great job Philipp!
Can't wait for another video with contentResover uri etc like you mentioned.
I got two questions:
1. Couldn't we check WorkManager result "success" instead checking if data != null?
2. Is it good practice to have workManager injected in view? I see we need applicationContext for that so maybe that's why but I am wondering if we could have it in viewModel or if we would place workManager in viewModel directly it would be bad practice?
Thank you for your great work!
As a web developer, Android development seems quite complex, especially if this is considered to be basics ;)
Love the playlist ❤
If someone is stuck with a gradle error with the WorkManager dependecy the solution is create a project with the miniumum android sdk as Android 12 (S) because the WorkManager Version >= 2.7.0 is required for apps targeting Android 12 (S)
Thank you
Sir its a humble request please create one video on the differences between mutableListOf() and ArrayList() when to use which
there is actually no big different, note that the ArrayList is the implementation of of MutableList, in simple words if your building a music app, for the list of music you use the MutableList because you don't care about which one the user remove or add to the list, in the other hand ArrayList if you are developing a game for guessing words and you deal with entities for characters then you should use the ArrayList because the Characters will be drawn frequently on the screen and that won't be efficient with MutableList , and that's where the ArrayList comes handy it handles these operations well with good performance.
it's always better think about how your app going to work, and then pick what is the best to use.
@@mahmoudalkateb2008 thanks for the explanation really helpful
You can figure out the class it returns by using
println(mutableListOf("foo").javaClass.name)
Should be the same as ArrayList.
Im also having problems with the latest WorkManager version regarding applied constraints(it was working on prior WorkManager version).
Like what
Goal :
- Need to run a service in the background for 20-40 mins every 2 hour (Battery usage no issue)
Correct me - if i m wrong :
- WorkManagers workers thread has a hard limit of 10 minutes, which defeat the purpose of long running task in the background
- I mean for short running repeated task its ok but for long running repeated task it doesn't work
- As per my knowledge the best approach to run a long running repeated task is using foreground service
- But some task doesn't need user interaction & some long running tasks doesn't need a foreground service
----> My question to you is what is the alternative ???
----> To run the above task what options are available ???
you can process it in chunks, does it have to live the entire time? Maybe you need a foreground service after all
@@ChrisAthanas It needs to be able to performs long task such upload large files (created files by another app) to the server, video cam stream, audio stream, more etc. But the main thing is it has to be reliable service i mean once the file started uploading or Camera Stream it shouldn't be killed by Android System (Works on Android 7 or 8 but since Oreo its a trouble) - Foreground service will work but that defeat the purpose !!!
@@garrysingh4484 yeah I think you will have issues with that strategy bc google is killing apps without foreground notification
Google is specifically banning that kind of use case that you have described due to privacy issues
What's your use case here?
Not possible anymore. Thank the crypto miners for this. Security takes away freedoms and opportunities
hey Philipp, can you make a video about, hiding bottomNavBar when scrolling in jetpack compose
How can I use use cases with resource class inside a worker class? Or should I inject the repository directly in the worker class?
Please provide tutorial about producing UI state and consuming it from UI and their side effects , specially with API's like LaunchedEffect, RemeberUpdatedState, RememberCorutineScpoe, ProduceState, derivedStateOf
Thanks!
thats what i needed, thx
Cool! Good job! Is any specific for workmanager and KMM?
Thanks man 🙌🙏
Another helpful videoooo ❤❤❤
Please mention if WorkManager now works properly with Chinese OEMs
I think a simple real-life should have been used so that it doesn't get in a way if the main thing - Work Managers and how they work
does work manager works when the app is closed? I tried it and doesn't seems so. Btw thanks thanks a lot for all you videos they help me a lot!
It does, that's the whole point of work manager 😄
greetings kindly do you have a git repo where all this test codes are.? it would be really helpful
Video was good❤
XIaomi device does not dismiss lockscreen when opening Activity from background (VOIP Call) please help me out regarding this point
ty it helps
Hey Phil,How can i get remote work for Android developer as a fresher??
I can't find your GitHub link.
how is to compress to WebP? Because the same procedure don't work only changing the jpeg format to webp
Dear, please help me, after coding the app exactly the same as yours, the intent never fire and i got eacht time i pick a picture , a new instance of the app.
Please note that i added singletop in the manifest file.
thank you in advance.
👍🏻👍🏻👍🏻
🇧🇷 Thanks
When I add the onNewIntent function, it shows "onNewIntent overrides nothing". And if I remove the null checks(i.e. the question marks), Then my app is crashing saying "Reading a NULL string isn't supported". Someone help.
Instead of "override fun onNewIntent(intent: Intent?)", you should put "override fun onNewIntent(intent: Intent)", just delete the question mark.
❤
Sorry i forgot to say that when the new instance of the app appear, no picture is showed, and that i suppose because onNewIntent never fire
Uree.... lol so funny. great videos
What's wrong with KEY_MAX_COMPRESSION
Make Recycler view with Exoplayer2 (latest version). All edge cases with memory leak solutions and cache managing for less use resource (internet). Thanks dude.
What if I power off the phone during a long WorkManager work?
It gets resumed as soon as you turn on.
for beginner its too complicate bro. I didn't understand what's going on
WorkManager is so unpredictable. It keeps stopping when you remove your app from backstack!
I don't want to say anything bad, but if you think about it, you use macOS but sit in Android Studio and program for Android - it's funny, isn't it? :)
Since when did Android/Google have a viable desktop OS? :D
I have to say there is too much information unrelated to WorkManager. If the topic had been 'Image compression,' I could understand why there is so much code. But in terms of teaching beginners, it's very unnecessary to provide such a complex example of using WorkManager.
Exactly
I didn't understand anything. I'm too stupid. I will never learn any of this.
Bro :v
you are not stupid. these contents of video are complex even for mid level developers.
take your time, rewatch it 5-10 times, make note of primitives of this tutorial, their philosophy.. and, see through awareness first the different realms: work manager make n enqueue, vm data set n compose using, code for compression, & extraction of work manager result data n putting in UI by launchEffect(based on watchDog key = result here, making it launch only when this value changes with reuse of activity in another image), FLOW OF DATA..
ISOLATE THESE REALMS & STUDY THE PHILOSOPHY OF THEM IN AWARENESS/OBSERVATION FIRST, DON'T FUSS OVER SYNTAX FIRST.!!!
slowly rough sketch understand.. the nature of each entity: like workmanager = constraints, input data, retry policy, get result by uuid, enqueue.. I.E. ALLOWANCES OF THIS ENTITY GIVEN TO US DEVS.
later go to syntax perfection..
then you may try to gulp it as a whole by joining all module together..
IT NEEDS ATTENTION OVER TIME, TO DEVELOP MOUTH TO GULP IT EASILY..
KEEP STICKING N BREAK IT AS PER CONVENIENCE INTO AS MANY REALMS AS U WANT, PERSONALLY.
KEEP GOING :)
& make paper notes if needed
my man i feel u for real, im solo learning for almost a 1.5 years it makes clear after some time just dont give up, i never trusted people that 1 day it all makes sense it really does just stick with it. I still have a lot to learn but i enoy proces of learning. Good luck we all gona need it hahaha
nobody cares about android now
why are u here man?