Introduction
When we start learning android, we often feel that what type of project should we develop to master the basic concepts of android. In this article, I will list out the most conceptual project which while developing will increase your skills and learning exponentially.
Unlike other articles and videos available, this article will provide you with project ideas with the concepts you will need to learn to create the application. As a beginner, you should always focus on learning and not on those fascinating implementations.
So, let's get started:
Level 0 - Novice
Use basic topics you know
Wishing Application - This application will contain 2 screens. The first screen will ask for the name of the person you want to wish and on clicking submit, it will take the user to the second screen which will contain a wish full layout for example "Happy Birthday <name provided>". The basic idea of creating this application is to understand how the concepts like intents, intent -filters, activities, basic layout designing, event listeners, binding data to the views through code, screen change, animations on the screen change, etc. Through this project, you can also learn how to play with themes, for e.g. how to hide the App Bar, how to change the colours of the status bar, accent colour, etc.
Simple Calculator - The idea behind developing this project is to help learn the concepts of how to work with Java/Kotlin code. In programming, we often solve simple questions like adding numbers, etc. This project will be using that same basic knowledge but in a little different way. You will learn how to handle the UI and different states when data changes (when numbers get evaluated). You will also learn the reusable concept that how to make functions for different tasks to make the same block of code reusable.
Simple Todo-List - The idea is to create a text field and a button. Adding any text and clicking on the button should render the same on the list below. It will cover the most important concept of Android Development, i.e. Recycler Views. How they are different from normal List views and much more. You will become an expert on how the Recycler view works, how the Adapter code flow works, how different methods of the adapter work, etc.
Weather Application - The idea is to create a screen which will simply display the current weather condition of your location. We can achieve this by taking the latitude and longitude of the user and getting the weather for that particular location. Now the question is how to get the weather. Some would have already guessed it right, here we will be using Network calls (commonly known as API calls). It will help you understand how to play with permissions, types of permissions and how to declare them and receive them from the user (Yes the dialog you see asks for permission when you use any app), you will learn to use libraries and frameworks for making network calls and will be able to determine which one is the best, and of course, binding the received data on the UI.
After this project, you will be pretty much confident and will be proficient enough to level up.
Level 1 - Specialist
Follow Some Basic Architecture rules
Blog Application - The idea is to create an application which has a login screen, a home feed screen which will list all the blogs available and a screen where the user can add their own blog. For login and storing blog data, one can use either own API's or firebase cloud service. This will help you learn about the integration of firebase, validating user inputs, complex recycler view and much more.
Notes Taking Application - The basic idea is to create an app which can store written notes locally. This is the minimum feature, one can also apply their creativity and add more features to it. This project will help you understand how to use local storage, SQLite commands, Room database, CRUD operation with RoomDB, and much more. This will end up level 2.
Simple Photo Editor - The idea is to create an app which can import photos from a gallery or can capture a photo and give the user some editing options over that image. This project will be beneficial as you will learn about using CameraX, you will learn how to play with Bitmaps and also different techniques of image transformation. While making this project you will face a very common issue i.e. the app will crash due to high-quality Bitmaps. So you will also learn how to handle this type of situation.
Level 2 - Expert
Follow Clean Architecture rules and Jetpack compose (optional)
Music Player - Yes, your own music player. The idea is to make use of commonly used API's such as Spotify API's, etc to make an app which will list out the music and will play them with a single click. Here you will learn how to use exo-player library, how to handle MediaPlayer, how to use services to continue playing music in the background, Broadcast receiver to handle the earphone presence, and also about notifications as you have to show the music playing over notification.
Chat Application - As the name suggests, this application will help users across the globe to chat with each other. The idea is not to create this using some cloud service like Firebase or something but to understand how to use Web-Sockets and how to make network calls effectively. You will learn a lot from this project and will definitely level your skills to the next level.
E-Commerce Application - This is the project and will also serve as a test for you to test your skills and confidence in Android Development. You will be using many complex UI's like ViewPagers, Tab layouts, Switches, Complex Recycler Views, etc. You will be actively implementing notifications, Payment gateways etc. Overall you will need all the learning gained by doing the above projects to accomplish this task.
Level 3 - Professional
You will achieve this level when you will work on real projects and gain experience in working over a code base with many users. You can work on some good open source projects, in a company as an intern or something, etc.
These were the list of the android project in the most organised way to make your learning curve move up exponentially.
Also, I have seen many struggles in starting an app from scratch by themselves. It's always ok for them to watch Youtube/Video tutorials and code with that creator but they fail to start an app by themselves. My advice to them is to first plan in the following steps:
What you want to make
Think as a user that what features you want in this app
Now as a developer relate all the features with the typical android concepts and plan how you will implement them
Finally, Start coding the same.
This will immensely help you to become an independent Android Developer.
Hope you find this article super helpful. All the best ๐ฅ