How I got my first freelancing job as an android developer
From learning stuff and building portfolio to finding clients and growing network + 10 important tips for new freelancers
Table of contents
- About Me ๐
- Why Learn Android App Development? ๐ป
- How I Learned Android Development? ๐ฏ
- Roadmap to become an Android Developer ๐
- How I built my portfolio ๐ป
- Freelancing Journey - The most awaited section of this article :)
- How I started looking for clients ๐
- How I engaged with client ๐
- What Next?
- Tips for new freelancers ๐ฏ
- Tips for new android developers ๐ฏ
- Important Note ๐
- Resources ๐
- Thanks ๐
In January 2020, I started learning android app development. In October 2021, I got my first freelancing job as an android developer. From learning stuff and building portfolio to finding clients and building network, this article is specially written for those who are aspiring to become an android developer in 2022
About Me ๐
I am Ishant, a computer science engineering student from India. I have over 6+ years of programming experience and throughout my career, I have worked on many different domains like app development, web development, and game development
Around nearly 2.5 years ago, I was clueless about android app development. I had zero idea how to get started and was full of questions which I am going to answer in this article
In this article, I will be explaining you all about android app development, why it is an excellent field, how to learn stuff along with all the resources and roadmaps, how to build a portfolio by making some cool projects, freelancing opportunities, their pros and cons, how to find and engage with clients, tools to estimate the amount you should charge, how to grow your network, 10 tips for new developers and other awesome stuff :)
I will also share my story on how I went from creating my first "Hello World" android app to getting my first freelancing job :)
Why Learn Android App Development? ๐ป
Some of the reasons which inspired me to learn android development are:
- One can make use of smartphone technologies like Bluetooth, Wifi, GPS, Motion Sensors , Light Sensors, and Touch Sensors to make creative apps
- Android has 2.5 Billion users which makes it a perfect market for a person's ideas
- 95% of people in India are Android users
- Unlike iOS, android is open source. You can freely modify it's code and make your own OS
- I wanted to try something new :/
How I Learned Android Development? ๐ฏ
There is a popular android developer on youtube named Philipp Lackner. I met this guy on instagram when he just had started his youtube channel. He provided me the roadmap and guidance to get started
I followed his advice and learned all the concepts like Kotlin language, Android Studio IDE, Coroutines, Database, API Calling, Design Architectures, Dependency Injections and other stuff
I also took help from other Youtubers like Coding In Flow and Coding With Mitch. I also bought some paid courses to master Firebase, Augmented Reality (AR), and Ktor (Kotlin based framework for backend development)
Roadmap to become an Android Developer ๐
Here, I have mentioned a simple roadmap for all those people who are aspiring to become an android developer in 2022 :)
All you need to do is to learn the following concepts step by step
Newbie Level ๐ฅ
- Kotlin Language
- Android Studio IDE (File Explorer, Code Editor, Logcat, Debugger, Profiler etc)
- Android UI Components (Layouts, Buttons, TextViews, EditTexts, RecyclerView etc)
- Activities and Fragments, their implementation and lifecycle, and Android Intents
Basic Level ๐ฅ๐ฅ
- Coroutines
- Room Database Storage
- MVVM (Model View-ViewModel) Architecture
- Make a todo list app
Intermediate Level ๐ฅ๐ฅ๐ฅ
- Retrofit
- Dagger Hilt
- Android Permissions and Shared Preferences
- Make an app which fetches data from newsapi.org, displays it in app and user can save the news in offline database
Advanced Level ๐ฅ๐ฅ๐ฅ๐ฅ
- Android Services and Notifications
- Firebase
- Google Maps SDK
Legendary Level ๐ฅ๐ฅ๐ฅ๐ฅ๐ฅ
- Exoplayer
- File Handling
- Android Sensors
- Network and Telecommunication Handling
Once you complete this roadmap, you will become capable enough to develop most of the android apps in this world :)
It is not mandatory to complete the entire roadmap, but I highly recommend that you should atleast complete the roadmap till the "Advanced Level"
How I built my portfolio ๐ป
Learning the stuff mentioned in above roadmap alone took nearly an year for me (I also had university classes which consumed a large portion of my free time). Once I was confident about my skills, I went on to create my portfolio
For that, I first learned about Github. If you don't know, github is a place where developers can showcase their projects, collaborate with other developers and handle source code changes in their projects
After this, I simply went to create a couple of projects over next few weeks. Some of those projects were:
- Password Manager (An app to securely manage a user's password and other credentials)
- Bike Rush (An app to track a user's location, speed and distance)
- Musicify (A spotify like music player app)
Freelancing Journey - The most awaited section of this article :)
Now it was time to get some money using my skills. Getting a full-time job was difficult due to university restrictions and internships paid quite less. So I decided to go with freelancing!
The best part of freelancing is
- You have fully flexible hours and location. You can work at any time and from anywhere :)
- You have a complete control over the clients and projects you want (Unlike in full-time jobs where you don't have any option to reject projects you don't like)
- There are no office politics related issues
How I started looking for clients ๐
I had no previous freelancing experience and was highly nervous to get started. I heard about freelancing platforms like Upwork and Fiverr but they had a huge competition and it was very difficult for a beginner to find clients there
So what I did was I opened instagram and searched for tags like #android, #androiddevelopers, #androiddevelopment, #freelancing, #digitalmarketing. Whenever I saw any posts related to someone's project needs, I messaged that guy
I sent over 50+ messages and luckily I found my first freelancing client :)
The task was quite simple. All I had to do was to integrate client's business website in the app using webview, prepare a splash screen and manage offline state of app.
How I engaged with client ๐
Many new developers feel nervous or anxious when dealing with freelancing clients for the first time. In my case, the client was just 3 to 4 years older than me and was calm in nature. Furthermore, the simplicity of the project also made me a bit confident
I shared my resume with the client and soon he sent me a google meet link. There, he explained me about his app needs in detail and then asked me few questions like
- How much do I know about android development
- What projects I have made so far
- How much experience do I have
- How will I approach to his app's needs?
- How long will it take to complete the app
- Some other basic questions about my qualifications, location etc
Once everything was done, at last he asked me how much will I charge for the project? I had no idea what to say so I simply asked how much he was willing to pay? He said around Rs 1200 (Around $15). Having no familiarity with the amount to ask for, I simply said yes!
After that, the client sent me details of his business, his logo, website, color palettes, app's UI prototype and other stuff. The very next day I started working on the project
Within 3 days I finished the project and further confirmation and cross checking took another 2 days. At last, the client sent me the payment through paytm and in return, I shared the app's .apk file and its source code to the client via github
This was my first freelancing experience :)
What Next?
After my first freelancing project, I became confident! I went on to find even more projects through sources like Instagram, Facebook Groups and Linkedin! I also teamed up with my fellow developers and together we were able to develop complex android apps for different clients belonging to domains like healthcare, education and ecommerce!
Remember, this was not an overnight journey! It took me around 2 years to get to this stage!
Tips for new freelancers ๐ฏ
In this section, I will be sharing 10 tips for new developers who are planning to work as a freelancer
Be professional ๐
If you become too friendly with the client, he will for sure insist you to reduce your charges or make you do some extra stuff like adding some more features in the app
Have an excellent portfolio ๐ป
Having a good portfolio not only increases your chances of getting a good project, but also boosts your confidence when approaching a client
Never work underpaid ๐ฐ
If you are an absolute fresher, it is fine to work for what client is giving you. But after doing 2-3 projects, you should increase your charges. My biggest mistake was that I charged very less amount of money from clients during my first few months of freelancing
Write clean and scalable code ๐ฉ
Your code should implement MVVM architecture and clean code practices. You should avoid using any third party libraries and make use of OOPs (Object Oriented Programming Concepts), DRY (Don't repeat yourself) and SOLID coding principles while writing the code
As a result, in case your client wants to hire a new developer, that developer will easily be able to understand your code. If possible, also add comments in code wherever required and provide your client with a short documentation about the code flow
Be 100% clear about your role ๐
When discussing with the client about projects, always ask the following questions
- Does he have the UI prototype prepared for the app?
- Are you also supposed to deploy the app on playstore? If so, are you also supposed to make all the graphics, video intros, mockups and other stuff?
- If the app needs to use some backend, does the client have any hosting or some sort of existing setup?
- Does the client prefer Firebase or Custom Backend? (If he is unaware about these terms, let him know the pros and cons of both)
- Is it mandatory to write test cases for the app?
- Will there be any app maintenance required in future?
And accordingly, decide the amount you should charge from the client
Always add 4 to 5 days extra to the deadline ๐
Lets say you think you can finish an app in 2 weeks. But what if you get some error? Many times, you will get errors that will take around 2 to 3 days to get fixed. Also, cross checking the app, making final changes and other stuff will take some time. So it is a good idea to ask for additional 4 to 5 days to finish the app
Work in teams ๐ฌ
It is a good idea to work in teams when making complex freelancing projects. You can quickly fix any encountered bugs, easily make right decisions, and also save lots of mental energy!
Ask for feedback โ๏ธ
At end of every project, you can ask for the feedback from client to know about your mistakes. Moreover, you can also list the client's feedbacks in your portfolio
Showcase your work ๐ก
Tell others about your work. Build an upwork or fiverr profile. Build your network on Linkedin and Instagram. You can also run Instagram ads to get some reach. As you grow, eventually you will start getting even more clients and better offers
Tips for new android developers ๐ฏ
- Most of the courses and resources I have mentioned in this blog were created 1 to 2 years ago. Since then, there have been many major updates made in android. So if you plan to learn from those courses, you may get some errors. So always ensure you use the latest version of android studio, kotlin, gradle and other project libraries
- Never use Java for android app development. Kotlin is much better, supports coroutines, null exception check, extension functions and lots of other cool stuff. Also, it is the official language declared by Google for android app development
- When you learn the android's XML UI components and learn to build some apps, I highly recommend you to learn Jetpack Compose. It is a new way of creating UI in android apps using kotlin language and over few months, most people will start using it instead of XML
Important Note ๐
- There are millions of android freelancers in world. Platforms like Upwork, Fiverr, Linkedin are full of them. To become superior than most android developers, it is essential to have a solid understanding of android concepts I've written in roadmaps. Also, it is highly important to have an excellent portfolio and communication skills!
- Don't think that you can earn millions using freelancing. It takes a lot of time, consistency and even experience to get some good quality projects
- The biggest disadvantage of freelancing is that you sometimes will feel lonely or isolated unlike in a full-time office job where you work with dozens of people
Resources ๐
- A tool to determine how much should you charge for an android app
- Philipp's youtube channel to learn android development
- Florian's youtube channel to learn android development
- You can also checkout my LinkedIn to learn awesome stuff about android and web development
Thanks ๐
I would like to thank Hashnode for providing such an amazing platform to share your thoughts and ideas. I hope this article will answer most of your questions and help you begin your freelancing career as an android developer. If you have any questions, let me know in the comment section or send me a message on my instagram or linkedin :)