We struggle a lot learning small, basic and specific concepts. Here is my list of resources which may help you understand Android in a better way. A repository containing link/resources to small, basic as well as specific Android concepts.
-
Is Java pass by reference or value?
-
When to use Static class and when Singleton?
-
OnClickListener Internals
-
Reflection in Java
-
Why Java is platform independent?
-
Implements Runnable vs extends Thread
-
MVP vs MVVM vs MVI
-
LayoutAnimation attribute for recyclerView not working for some devices?
-
Jetpack Navigation between top-level destinations using Dagger-Hilt
-
Rx with Retrofit with sample
-
Understand Android DataBinding : https://www.raywenderlich.com/7711166-data-binding-in-android-getting-started
-
How recyclerView works internally? : https://medium.com/1mgofficial/how-recyclerview-works-internally-71290de5d2c4
-
Annotation Processor : https://aitorvs.medium.com/annotation-processing-in-android-studio-7042ccb83024
-
Design Pattern : https://www.raywenderlich.com/18409174-common-design-patterns-and-app-architectures-for-android
-
Kotlin Questionnaire : https://imstudio.medium.com/kotlin-interview-questions-part-2-4f2f2b05063b
-
Coroutine Exception Handling CheatSheet : https://www.lukaslechner.com/coroutines-exception-handling-cheat-sheet/
-
StateFlow vs SharedFlow : https://proandroiddev.com/should-we-choose-kotlins-stateflow-or-sharedflow-to-substitute-for-android-s-livedata-2d69f2bd6fa5
-
Kotlin Flows : https://elizarov.medium.com/exceptions-in-kotlin-flows-b59643c940fb
-
When to use Coroutines.unconfined? : https://stackoverflow.com/questions/55169711/when-should-i-use-dispatchers-unconfined-vs-emptycoroutinecontext#:~:text=or%20null%20objects.-,Dispatchers.,code%20from%20blocking%20world%20callbacks
-
Lateinit vs Lazy : https://blog.mindorks.com/learn-kotlin-lateinit-vs-lazy
-
Lifecycle aware components : https://developer.android.com/topic/libraries/architecture/lifecycle
-
ViewModel under the hood : https://blog.mindorks.com/android-viewmodels-under-the-hood
-
SavedState Handle : https://developer.android.com/topic/libraries/architecture/viewmodel-savedstate
-
WorkManager under the hood : https://medium.com/android-news/androidx-workmanager-%EF%BE%89-%EF%BE%89-some-details-under-the-hood-a5ca1099c93
-
Shared Preference under the hood : https://proandroiddev.com/shared-preferences-101-aee26c13e4
-
Fragment vs Custom View : https://stackoverflow.com/questions/31236020/fragment-vs-custom-view-in-android
-
RecyclerView ViewHolder : https://jonfhancock.com/your-viewholders-are-dumb-make-em-not-dumb-82e6f73f630c
-
Ktx Extensions : https://developer.android.com/kotlin/ktx
-
merge vs include in layout : https://alltechsolution.wordpress.com/2012/06/13/difference-between-merge-includeand-tag-in-android/
-
Okhttp interceptors under the hood : https://blog.codavel.com/how-to-create-an-http-interceptor-for-an-android-app-using-okhttp3
-
Retrofit under the hood : https://www.ekchang.com/breakdown/2016/06/11/retrofit-breakdown.html
-
Create your own livedata : https://medium.com/androidiots/how-i-made-my-own-livedata-1faf4a45520
-
Enum vs sealed class : https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
-
ViewModel Best Practices : https://medium.com/androiddevelopers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54
-
Pros/cons of Multiple processes on Android : https://stackoverflow.com/questions/19744906/what-are-pros-and-cons-of-using-multiple-processes-within-android-application#:~:text=Cons%3A,and%20the%20perhaps%20application%20performance
-
How room works internally? : https://blog.mindorks.com/how-does-room-work-internally
-
How leak Canary Works? : https://square.github.io/leakcanary/fundamentals-how-leakcanary-works/
-
Mockito vs Mockk : https://stackshare.io/stackups/mockito-vs-mockk
-
Mock vs Stub vs spy in Unit Testing : https://www.javatpoint.com/mock-vs-stub-vs-spy#:~:text=Mocks%20are%20used%20to%20create,used%20in%20large%20test%20suites
-
Mockito vs PowerMock : https://stackoverflow.com/questions/6036450/powermock-mockito-vs-mockito-alone
- Developer Guide: https://developer.android.com/guide
- Codelabs: https://codelabs.developers.google.com/
- Udacity: https://www.udacity.com
- Scaler Topics: https://www.scaler.com/topics/
- MindOrks: https://mindorks.com
- Ray Wenderlich: https://www.raywenderlich.com/
- CodingWithMitch: https://www.youtube.com/channel/UCoNZZLhPuuRteu02rh7bzsw
- Awesome Learning Resources: https://github.com/androiddevnotes/awesome-android-learning-resources
- Best Practices: https://proandroiddev.com/android-development-best-practices-7278e9cdbbe9
- Interview Questions: https://github.com/niharika2810/android-interview-questions
- Refactoring : https://www.amazon.in/dp/8131734668/ref=cm_sw_r_wa_apa_fab_XPmEFb2A4W4TJ
- Clean Code : https://github.com/ontiyonke/book-1/blob/master/%5BPROGRAMMING%5D%5BClean%20Code%20by%20Robert%20C%20Martin%5D.pdf
Will be updating (once/twice a week) with more after sorting them out. Please contribute if you have more so that I can also learn. :-)
Enjoy Reading!!