7 Practice App Ideas for Android

Mobile Apps

Practicing is a huge part of learning something new. We should all be dedicating a portion of our time putting what we have learned into practice. When we are practicing we are solidifying the concepts we learn as well as learning more new things as we go. In general, I try to do one part learning (consuming) and two parts practicing (producing). It’s not an exact breakdown. The main point is to spend at least as much time, if not more time, practicing/producing as you are learning/consuming.

One hard part about practicing what we have learned is to figure out what projects or apps would be good to use as practice projects. Sometimes a project will sound good but turns out to be way over our head or maybe it doesn’t challenge us enough. This is why I have put together this list of practice apps for Android to help take some of the guesswork out of learning. These are apps that I have personally done as well as some that I am planning on doing.

In this article, I am assuming that you already have your Android development environment set up and are in the process of learning through a university program or on your own with online resources.

Design Your Practice Apps

Take this opportunity to also practice app design by designing each of your practice apps. You don’t have to spend a lot of time on UI design (unless you want to). Mainly work on the design and requirements for the functionality. Come up with the minimum viable product (MVP) for the app. MVP is the most simple version of the app that would still be useful to a user. Then come up with your ultimate target with regards to functionality.  

Remember, start simple and then iteratively improve and enhance the app. Having these two versions laid out (MVP version and advance feature version) will give you your starting point and road map to your final goal.

Put together the UI design and the screen layouts so you can visualize what you need to build. I recommend using a UI/UX tool like Adobe XD (free), Figma (free), or Sketch (Mac only, paid/free trial). This step is optional at the beginning since there is a bit of a learning curve with the UI/UX design tools so maybe save this part for later.

You can just draw your screens and list of features on a piece of paper for now if you don’t want to get into design tools right now. The point is to understand what the screens and functionality will be and how the app will flow. This will give you a clear understanding of what you need to build when you get to the coding part.

You may also want to look through the Google Play store to get an idea of how other apps layout their screens and what features they are offering.

Use The Practice Apps Yourself

It is a great idea to load the apps onto your phone and use them yourself in real-world scenarios. This is a great way to switch roles and see the app from the users’ perspective. It will give you great insight as to what features are really important, which ones aren’t, and what can be improved to make the app more of a pleasure to use.

Practice Apps for Android

These apps listed below are not in any particular or although the first couple tends to be the easiest to start with. They also overlap a bit in what is needed to build them.

  1. To-do manager app
  2. Note-taking app
  3. Simple reminder app
  4. Weather app
  5. Group expense tracker app
  6. Budget tracking app
  7. Real-time Chat app

Practice App Details

1. To-Do Manager App

To-Do list app sample

The to-do manager app is a great one to start with because it can be very simple (not complex) yet introduce you to some core features of Android

Minimum Viable Product Suggestions

On the most simple level, you will build a list of items. The items can be added to and removed from the list and then the list is stored in something like the SQLite database for persistence between app uses. As the list grows you can swipe/scroll through the list.

I would suggest starting out building a list of text items. Later you can enhance it to have icons, checkboxes, dates and times, etc. in the list items. ListView is the most simple way to build a list of text items so you can try starting with that. RecyclerView has become the standard as it is far more powerful and uses less memory when dealing with large lists, however, it is a bit more complicated to set up. There are a lot of tutorials on how to do it though.

More Advanced Suggestions

Now that the basics are out of the way, it’s time for some more advanced features. A great place for ideas is looking at other similar apps already on the Google Play store. Below is a list of some suggested more advanced features to add.


  • Add a due date option
  • Sort list by the due date
  • Add a priority level for each item
  • Add an icon/color to each item to indicate the priority level (or first use text).
  • Sort list by priority
  • Add reminder notifications based on due dates

2. Notes-Taking App

This is very similar to the To-Do list app. The main difference here is there are two (or more) input fields. One for the title and one for the body of the note. Also, the body text can potentially be much longer than what is in a To-Do item.

Minimum Viable Product Suggestions

Like the To-Do app, this will be a list of items. But for the notes app, the list items will have at least two fields. A title and a body. You will need to do a little playing around to get these to display nicely on the list. Try making the title text a little larger or bolder than the body text.

The items can be added to and removed from the list and then the list is stored in something like the SQLite database for persistence between app uses. As the list grows you can swipe/scroll through the list.

The screen to add a new note will have a Title input field and a body Input field. Try to make the body input field extend to the bottom of the screen and scroll when more text is added that can’t fit on the screen.

There also needs to be an option to edit an existing note and to delete existing notes.

More Advanced Suggestions

One good feature to add here, if you have not already, is to truncate the body text when it is displaying in the list on the summary list screen. The body text can get pretty long so to keep your list clean and uniform it might be good to truncate the body text to a specified character limit. Then you can append an ellipsis “…” at the end to show the user you are showing a shortened version. The user can then tap the note list item to view the entire note in a new screen for reading the full note.

If you are feeling really brave, you can try adding support for some rich text features such as bold, italic, and underline. You can go down the rabbit hole of rich text formatting also. You can add bulleted lists and numbered lists etc.

3. Simple Reminder App

Reminder App Sample

For the reminder app, you will get to work with time-based data and device notifications.

Minimum Viable Product Suggestions

The most simple features of this app can be to enter the text of the reminder (ex. “Pick up groceries”) as well as a date and time to be reminded. The app can then display a list of all reminders that are currently set up. Here we have the list of items again just like the previous projects.

When the date and time of one of the reminders is reached, a notification should be presented to the user.

The user should have the ability to add a new reminder, edit an existing reminder (change text or date/time), and to delete an existing reminder.

More Advanced Suggestions

You could add a “snooze” feature to reminders. In case a user can’t act on the reminder at the moment, they can snooze it for a given time and then alert the user again.

It might also be fun to add a location-based notification as well. Add a checkbox to let the user enable location-based reminders (disabled by default to reduce battery drain) and mark the location on a map using Google Map API (or give Lat/Long coordinates at first, it is just a practice app for now). When the user is within a certain distance of the location, notify the user. Display something like “You are near the location for X reminder. You might as well take care of it now”. 

You could really go down a rabbit hole with this one as well.

4. Weather App

Weather App sample

In this app, you will be able to practice retrieving data and interacting with a web API as well as parsing JSON data. You can use something like https://openweathermap.org/api to retrieve raw weather data for a given area. Open Weather Map has a free tier for its APIs.

Minimum Viable Product Suggestions

Let the user input a city name or some other location data that the weather API supports and then show the user the weather for that location.

For now, just display the weather information as text. Parse the relevant fields out of the response JSON from the weather API and display it to the user with labels.

Also, for now, just focus on the current weather.

More Advanced Suggestions

You can add hourly and daily forecasts for the given location using the different API’s from the Open Weather Map APIs in addition to the current weather.

Another great addition would be to add icons to your UI to represent the different weather conditions. You can look at some of the weather apps on Google Play for some ideas. There are lots of great icon packs out there to use.

You can also give the user the option to use the device location for the weather or let them enter their location manually.

5. Budget Tracking App

Budget app sample

Let’s face it, we should all be tracking our budget and finances. By creating a budget tracking app you can customize it to your own needs. In this app, you will learn how to store a slightly more complex data model as well as creating more screens with more views on each screen.

Minimum Viable Product Suggestions

Create a summary screen to show the current total and the budgeted amount for each category (food, entertainment, etc.). Be able to input expense items under each category and have the category total update to reflect the latest expenses compared to the budgeted amount. Be able to also edit and delete expense items under each category.

For the categories, you can start by hard coding the available categories. Eventually, you will want the user to be able to customize their categories. I would suggest also having a “general” catch-all category in case there are items that don’t currently fit into the existing category options.

When entering a new expense item the user can select the category from a dropdown or other selection view.

More Advanced Suggestions

Be able to set budgets and calculate totals based on time periods on a calendar. That way the user can keep track of monthly or quarterly budgets for example. Also, make this time period customizable by the user.

Another good additional feature would be to highlight a category or give them some other visual alert when the user has reached a certain percentage of the total budget for the given time period. You can also make the percentage at which to alert configurable by the user.

If you are feeling really crazy, you can add some charts or visualizations to display their expense and budget data.

6. Group Expense Tracker App

Group expense tracker app sample

Have you ever gone to lunch with coworkers and needed to remember who paid last? Or gone on a trip with friends and forget who paid for what? Here is your chance to make your own app to keep track of who paid for what and when.

Minimum Viable Product Suggestions

At the most basic level, this app will have a way to add names/people to a group and then add expenses paid for, with amount and date, to each person. You should be able to add and remove people as well as add, remove, and update expense entries.

This can be done with a main group list summary view as well as an individual persons list view of expenses.

For persisting the data you will more than likely need to or want to have more than one table in the SQLite database. Or you may want to opt for storing the data as JSON files locally. The persistence options are up to you.

More Advanced Suggestions

Some additional features might be to add subtotals to each person in the summary view as well as the detailed view of each person.

You can also add some way to mark or highlight the person that has paid the most recent expense to be able to quickly identify who paid last.

If you really want to go crazy, you can store your data in Google’s Firebase Firestore database. This is a cloud-based unstructured NoSQL database where you can store JSON documents. Doing this will make the data available on other devices as well.

7. Real-time Chat app

Real-time chat app sample

This is going to be a real-time chat application using the internet (similar to WhatsApp or Facebook messenger). You and a friend can chat in real-time. It is recommended to use Google’s Firebase Realtime Database to handle the data and communications.

Minimum Viable Product Suggestions

When the app starts you can have a screen for the user to enter their username/alias that will display in the messenger. This will be the key for the users’ messages and display in the chat window. The messages from each user will show up in the chat window with their alias and a time stamp.

For testing, you can have the emulator running the app and have the app running on your actual phone device. This will simulate two users chatting.

More Advanced Suggestions

First, you can add a small window that shows a list of “friends” and can indicate who is currently logged in/active.

This is also an opportunity to learn how to use Google Firebase Authentication. This allows a user to log in using their Google/Gmail user, Facebook, Twitter, or just create a new account with an email address and password. You can use this to then save a profile for each user with profile settings.

Next Steps

Make sure to pick a practice app that seems somewhat interesting and that you think might be close to your current level of experience. This will help to motivate you to get started and to keep moving forward with the practice.

Once you start working on a project it would be a good idea to create a new GitHub repository for your project and keep your code checked in there. This is a great time to also practice using Git, even if you are already somewhat familiar with it.

Also, take a look at “Kotlin vs Java in Android: Which To Start With?” to help you decide whether to start the projects using Kotlin or Java.


As I have stated earlier, practice is one of the most important parts of learning new languages and skills. One of the hardest parts of practicing is knowing what to practice. Having projects to choose from ahead of time can really make a big difference in helping you practice. What are some other practice apps you have worked on or can think of? Please share them below in the comments to help others that come to read this blog post.


Here are some additional free open web API’s that you can play with in your apps.

The Cat API
The Dog API
The Chuck Norris API
Fuck Off As A Service API
Quotes API
Quotes API
The Spotify API
The New York Times API
The Wikipedia API
The Wikidata API
The Medium API
Design Quotes API
The GoodReads API
The Dribbble API
The 500px API
The Unsplash API
The Giphy API – GIFs!
The Pixabay API
Exchange rates
Site screenshots API
The Oxford Dictionary API
Website Technologies API
The Mapbox API
Music Lyrics API by Genius
Site meta tags API
The EventBrite API
Open source projects changelogs
The GitHub GraphQL API
QR codes API
The StackExchange API
Words and synonyms
The Nasa API
The SpaceX API
The Hacker News API
The Instagram API
The Reddit API
The Slack API
The Twitter API
The YouTube API
Worldwide Holidays API

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *