2016 - Kotlin can be used unofficiall7 2017 - Kotlin support added offcially 2018 - Kotlin use encouraged by Google
We must know Java, but apps must be made in Kotlin only. All new code is written in Kotlin Zomato - codebase is 85% Java Target - 85% Kotlin
- Java is required, but Kotlin is used.
- New apps are written in Kotlin
OOP - Interface, function overriden, callbacks, Lambdas, Generics, Java Collection
Android things
Components - Activities(foreground), Services(background), Broadcast Recievers(OS events), Content Providers(Rarely used in SDE 2)
- There’s no void main()
Android is UI driven, not procedure one
Chapter 1 - 2 weeks #
Activities - What is it, how is done?
Layouts - UI elements
View Elements - text view, buttons, Edit text, image view
Intents - Implicit, explicit - share and select apps. App to app communication
Chapter 2 - 4 weeks #
Complex UI - List view(infinite scrolls), recycler view, Dialogs, Toast(like subs), sheets,
Drawyers, View Pagershorizontal buttons to change sections
Everything here is implemented using fragments(lightweight activities)
Chapter 3 - 2 weeks + 3w(project, mandatory) #
Network Facilities, HTTP dict, Square OK HTTP(img, http request/response), Square Retrofit(REST API), Apollo Android(GraphQL), Glide(image)
Gradle - how to add libraries
We are ready to make apps, realworld.io - clone of Medium, using imgur API and make insta stories clone, daily notes/diary
Chapter 4 - 2 weeks #
Media - play audio, play in background(using services), Video using Exoplayer, Camera(take photo, record videos - this is difficult)
Chapter 5 - 2 weeks #
Very important
Android Jetpack - toolkit to write Android apps, MVVM(architecture for building models), Work manager, Job-scheduler
Saving data - SQLite using Room(which is an ORM - start with this after learning SQL), CameraX
Deploy/Production - 3 #
Firebase - User Auth, Notifications, Data Sync, Cloud
We can make an end to end app.
Advanced Stuff - useful for >= SDE2 #
Kotlin has something - corountines (1 weeks) Rx Java - (2 weeks) Dependency Injection - Koin(2 weeks) and Dagger(2 weeks) Jetpack Compose - for UI (4 weeks)
After SDE2 - for futureproofing #
- Flutter(not ignorable and not the future)
- Native iOS(mental models can be used)
Code With Harry
-
Native is better than frameworks, for beginners
-
XML is just the design, and Java is the logic. In Web Dev terms - XML = HTML+CSS and Java = JS
-
Android in one video - Android Studio - Learn the playground - https://www.youtube.com/playlist?list=PLu0W_9lII9ahKZ42vg2w9ERPmShYbYAB7
-
Android Developer Fundamentals, Advanced Android Development - By Googlehttps://developer.android.com/courses
-
Udacity - Developing Android apps https://www.udacity.com/course/new-android-fundamentals--ud851
-
Documentation - Become good enough to use Google etc(never ending)
-
Android Launcher Iconhttps://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.type=clipart&foreground.clipart=android&foreground.space.trim=1&foreground.space.pad=0.25&foreColor=rgba(96%2C%20125%2C%20139%2C%200)&backColor=rgb(68%2C%20138%2C%20255)&crop=0&backgroundShape=square&effects=none&name=ic_launcher
-
Lean Build Earn Repeat
How to earn #
-
Freelancing - Difficult
-
PlayStore and AdMob - 25$
-
Play Store + inApp purchase
-
Job/Internship
-
Social media? Tutoring, Bug fixing - Side income
-
Never Ending
-
Visit blog
-
Git, CI/CD
-
Database - SQLite, Firebase
-
AdMob API
-
How to make PUBG, GTA5 - Unity game Engine
-
DS/Algo
Love Babbar - in 2 months Starting point - just programming
Courses: weeks = days(actually) User interface - (2 days) - https://www.udacity.com/course/android-basics-user-interface--ud834 Android User input - (4 days) - https://www.udacity.com/course/android-basics-user-input--ud836 Multiscreen apps (10 days) - https://www.udacity.com/course/android-basics-multiscreen-apps--ud839 Networking - (5 days) - https://www.udacity.com/course/android-basics-networking--ud843 Data Storage - (1 week) - https://www.udacity.com/course/android-basics-data-storage--ud845 Developing Android Apps(~1 week) - https://www.com/course/new-android-fundamentals--ud851 Advanced Android App Devhttps://www.udacity.com/course/advanced-android-app-development–ud855 Firebase - (2 days) - https://www.udacity.com/course/firebase-in-a-weekend-by-google-android--ud0352 Material Design - (1 day) - (optional) - https://www.udacity.com/course/material-design-for-android-developers--ud862