Building theCommute 🎥, working
@GeeksForGeeks
| I make things that run on your device; you might be using one now | I write about Self-improvement & App Dev
I failed an Android Development Interview
The interviewer gave me some tough love
After the interview, I promised myself that I would work hard
Here is what I have learned
(1/12)
Android Developer aye?
If you are an app developer, you should not only understand app development but also backend dev.
Why?
If you have no idea how the basics of the backend work.
It is hard to write code for the frontend
Here is everything you want to know:
(1/20)
Android Developer aye?
Do you understand what JWT tokens are?
It is an essential part of Authorization and it is important in order understand the basics of auth in app development.
Here is everything you want to know:
(1/21)
My 2023:
-Passed from College in electrical engineering
-Did not have a job
-Learned android Development from scratch
-Started posting on twitter(1000+follow)
-Started a newsletter(900+sub)
-Got myself a job as an android developer
-Started building project
-Building my app Niwa
Kotlin coroutines were one of the most confusing topics for me
I tried understanding it multiple times but could not understand it properly
Until now
Here is what I have learned:
(1/10)
Android Developer aye?
Do you understand Kotlin Flows?
Let's explore its parts and try to break it down for you
What is the difference between the two
Here is everything:
App developer aye?
You must have heard about Clean Architecture or MVVM.
There are so many different architectural patterns.
-MVC
-MVP
-Viper
-MVVM
So when do you need to use which?
Here is everything:
(1/12)
Kotlin is becoming more and more popular nowadays
Kotlin helps us build multiplatform apps for both IOS and Android
Also, we can use it with Ktor to make a backend for the apps
It means we can architect the whole structure of apps with one single language
Here is everything:
Here are 10 Android Dev Projects from Beginner to Advance
→ Beginner
—>To-Do List App
—>Calculator App
—>Weather App
→ Intermediate
—>Note-Taking App with Firebase
—>News App
—>Chat Application
→ Advanced
—>Expense Tracker with Charts
—>Social Media Dashboard
—>
I wanted to become a better app developer
So I started to learn Mobile System Design
It is a high-level skill that can make any app developer 10 times better
Here is what I have learned:
(1/14)
I am thinking of open-sourcing my Niwa app
So that you guys can contribute to it
It requires a lot of things and it is hard for me to build all things
I have a plan laid out from coding to releasing on the Play Store
You can contribute simple features and do refactoring
Here is my plan to master Android Development
→ Kotlin Fundamentals
→ Views
→ Jetpack Compose
→ Ativity, intent, broadcast receiver, content provider etc
→ Data Storage
→ Lists and adapters
→ Networking and APIs
→ Permissions and security
→ Fragments
→
I failed an Android development interview
The interviewer gave me some tough love
After the interview, I decided to work hard
Here is everything I have learned Part 2:
(1/10)
I started to learn Android with XML
Then a new shiny thing came out called Jetpack Compose
It was intriguing therefore I started to learn more about
Here are some of the foundations I have learned:
(1/21)
Kotlin Flows simplified:
→ Flow is the flow of data like a stream of river
→ We can collect this flow to update the UI
→ The data will not flow until it is collected - Cold Flow
→ The data will flow even if not collected - Hot Flow
As an beginner Android developer
You will find concepts like
-Dependency Injection
-Coroutines
-MVVM
Difficult to understand
Instead of understanding with tutorials
Try understanding them by building an app
I got a Flutter Project, but I didn't know Flutter or Dart.
So I started learning with similarities between Kotlin Android and Flutter.
Here are some interesting points I have learned:
(1/8)
I try to break down Kotlin Coroutines in under 10 minutes.
It is a simple masterclass for someone who wants to explore this topic
Here is everything you want to know:
(1/15)
I think app development is tough
There are so many languages: Flutter, Jetpack, React native etc
I was confused about which one should I choose?
But
One topic remained the same throughout the app development
Mobile System Design
Here is everything I have learned:
(1/12)
For a self-taught Android developer
Names like Dependency Injection
Sounds like Integration
So I completely avoided this topic and procrastinated
Until I finally decide to read about it
It turned out to be easy
Takeaway - Everything is difficult if you think it is
How
@prvkhvr
created the life everyone wants
Life with :
- Good Money
- Good Relationship
- Good Mindset
- Good Relationship with family and friends
Here is the breakdown for me and you
When I switched from XML to Jetpack
I came across this weird syntax "remember by"
It seemed interesting but I had no idea what it is
Here is the explanation
Companies prefer to have flutter developers over Android Native developer
But as the landscape of multiplatform is changing
KMP will be a upgrade for app developers
Also Compose web is going to be a big part in development
I was so bad at DSA
I hated it every moment of it
I decided to learn game dev, web dev and Android dev
Now I am back to DSA
And I observe the usage in every part of my development
More and more developers use Kotlin as their main language
But struggle with its foundations.
I am no different
I struggled with the basics of Kotlin in my interviews
So I decided to change that attitude.
I decided to become better in Kotlin
(1/16)
I failed at Web Development
I failed at learning React Native
I failed at learning Javascript
But I succeded with Android Development
Don't give up when one thing doesn’t work.
Finally a project I was making is complete
I was designing an Inventory Management system for a company.
Tech
- Firebase
- Kotlin
- Mvvm architecture
It is finally completed and I learnt a lot along the way. Here are my learnings.
Android Developer aye?
I want to develop better apps
But
I encountered a problem.
Indian apps were totally different from Asian and Western apps
So how do you design for your target audience?
Here is everything:
(1/17)
Working on my new app based on Jetpack Compose
- Still in its infancy
- Struggling with UI and illustrations
Any Suggestions to improve the illustrations?
Android developers:
Do not underestimate the power of rest.
Working around the clock is not worth sacrificing your health.
Burnout can derail your progress if you let it.
Remember: taking breaks is crucial for your success
How to grow as an Android developer?
→ Find a business you are interested in
→ Maybe it's a cafe or a restaurant
→ Make an app for them for free
→ Go and show your app to them
→ Get Feedback and gain connections
I wanted to become a better app developer
One of the toughest skills to learn is mobile system design
It requires not only knowledge of programming but also product sense
Here is everything I have learned:
(1/14)
Try to understand the basics of topics of Android Development
Pagination
Dependency Injection
Architecture
Without understanding these foundations it is hard to land good jobs
I got a Flutter project, but I did not understand Flutter
So I started with commonalities between Android and Flutter
One common aspect that interests me the most is app architecture
So here is what I have learned about App architecture:
(1/12)
Android Developer aye?
Have you heard about Kotlin Coroutines?
If you have implemented or heard of Kotlin Coroutines.
Then you must have heard about runBlocking
If you don't want to mess up your code
Here is how you use it:
(1/14)
Android Developer aye?
Do you understand the difference between Kotlin Flows and Kotlin Coroutines?
How do you know which to use when?
Here is how:
(1/21)
More and more people are trying to become Android developers
Jetpack Compose forms the basis of Android development.
Jetpack compose can become hard to understand if the basics are not clear.
Here is everything about Jetpack Compose:
(1/18)
What is the benefit of learning Ktor over Retrofit?
Ktor can be used in Multiplatform
Ktor can also be used in Server Side
Retrofit is based on Java so can only be used in Android Native
Why is there a need for Mapper in Android architecture?
Mappers are an interesting concept
As beginner Android Developers, we often ignore the need for clean architecture so if anyone is interested
Here is the summary
Try to understand the basics of topics of Android Development
Pagination
Dependency Injection
Architecture
Without understanding these foundations it is hard to land good jobs
I tried to build my Android app.
And I learned some important lessons.
One important lesson was the importance of Onboarding
Here is everything I have learned:
(1/14)
More and more developers are switching to Kotlin.
It is becoming one of the most popular languages in today’s world.
It is because of its features and simplicity.
So, let’s try to understand the basics of Kotlin and get good with it.
(1/20)
Android development roadmap based on my experience:
Kotlin
XML Layouts
Android Studio
UI design principles
Build 2-3 basic apps
Android SDK
Data storage
Networking
Git and GitHub
Gradle build system
Material Design
Architecture component
Testing your code
Android Developer aye?
Do you want to understand Kotlin Flows?
If you are an Android Developer you need to understand how the flow of the data stream works
Here is everything you want to know:
Have you explored SOLID principles in Android?
S → Single Responsibility
O → Open-Close Principle
L → Liskov Substitution Principle
I → Interface Segregation
D → Dependency Inversion
App Developer aye?
Do you want to have a cleaner Jetpack Compose Code?
Answer - Make Composable Stateless
What is stateless and how do you do it?
Here is everything:
(1/14)
Here is my plan to master Retrofit
→ Learn about the foundation of Networking
→ Learn about Retrofit Fundamentals
→ Learn about Request Structure
→ Learn about Response Handling
→ Headers and Query Parameters
→ Error Handling and retry Mechanisms
→ File Upload and
I tried to make apps that were out of my league
I lacked the skill to build them
I did not learn from it, just wasted my time
Pick the right kind of apps when starting out
Start from small things
Then Grow