The following is a list of practice projects for android development intended to be used as ideas for portfolio projects or for use in a speedrun (set aside a month or two and speed through as many as you can in that time - as an intensive hands on practice.)
Always find or make your own open source assets when doing any clone, and attribute your sources. Don't get sued for copyright violation.
Feel free to code these in native Android or pick a framework/library of your choice (Ionic, React Native, etc).
- Project: Build a Single Screen App
- Project: Score Keeper App
- Project: Quiz App
- Project: Musical Structure App
- Project: Report Card
- Project: Tour Guide App
- Project: Book Listing App
- Project: News App
- Project: Habit Tracker App
- Project: Inventory App
- Project: Popular Movies
- Project: Build it Bigger
- Project: Make Your App Material
- Advanced Project: Your choice - ideas listed below
- Project: Outbreak
- Project: Space Kerfuffle
- Advanced Project: Your choice - ideas listed below
- Advanced Project: Your choice - ideas listed below
- Advanced Project: Your choice - ideas listed below
- Advanced Project: Your choice - ideas listed below
- Advanced Project: Your choice - ideas listed below
- Advanced Project: Your choice - ideas listed below
If you want to quickly get up to speed with the minimum courses necessary beforehand so you can hit the ground running:
- Course: Java Programming Basics
- Course: Developing Android Apps
- Course: Advanced Android App Development
- Course: Android Performance
Design and implement a single screen app that displays information about a fictional small business. Think along the lines of your favorite coffeeshop, local restaurant, or that gem of a store that sells those rare comic books or records.
Suggested App Ideas
- Details about a small business in your neighborhood
- Contact info and description about your workplace or school
- Info about a special interest group (like a club or sports team) you’re part of and how new members can sign up
Your design must include:
- Business name
- At least one photo representing the business
- Two or more other pieces of information, such as:
- Contact information for the business (eg phone number, email address, website)
- Address of the Business
- Description of business
- Hours of operation
- Course: Java Programming Basics
- Course: Android Basics: User Interface
The goal is to create an Score Keeper app which gives a user the ability to keep track of the score of two different teams playing a game of your choice. To build this project, you can follow along with the practice set and customize the Court Counter app to track scores from a different sport. (court counter app may be found in the supporting course)
- Course: Android Basics: User Input
The goal is to create an educational app that quizzes a user about a certain topic of your choice. We want you to be creative about how you accomplish this. It’s up to you what the quiz questions will be about and how you want to present them to your user. (We recommend about 5-10 quiz questions for a reasonable scope of your app).
See here for project rubric
- Course: Android Basics: User Input
The goal is to design and create the structure of a Music app which would allow a user to play audio files. There are many music player apps, and they make a wide variety of design choices. It will be your job to decide what kind of music app your structure would turn into and build out that structure using intents. Will you build an app to play music from the user’s library of music? Will you build an app to stream random songs from a database? Will you build a musical suggestion engine? Those choices are up to you!
See here for project rubric
- Course: Android Basics: Multiscreen Apps
The goal is to design and create the structure of a ReportCard Class which would allow a school to store a student’s grades for a particular year. This project will be just a java class, rather than a full Android app.
See here for project rubric
- Course: Android Basics: Multiscreen Apps
The goal is to create a tour guide app which presents relevant information to a user who’s visiting your city. The app can list top attractions, restaurants, public places, or events for the city. It can contain all the best known secrets that only locals know. It’s up to you which categories you want to provide, as well as what information to provide in each category.
See here for project rubric
- Course: Android Basics: Multiscreen Apps
You will be making a book listing app using an API query and a ListView.
The goal is to design and create the structure of a Book Listing app which would allow a user to get a list of published books on a given topic. You will be using the google books api in order to fetch results and display them to the user.
See here for project rubric
- Course: Android Basics: Networking
You will be making your own app that connects to the Internet to provide news articles on a topic of your choice.
The goal is to create an News feed app which gives a user regularly-updated news from the internet related to a particular topic, person, or location. The presentation of the information as well as the topic is up to you.
See here for project rubric
- Course: Android Basics: Networking
You will be making a habit tracking app using an SQLite table.
The goal is to design and create the structure of a Habit Tracking app which would allow a user to store and track their habits over time.
See here for project rubric
- Course: Android Basics: Data Storage
You will be making an inventory app for a small business using an SQL table and a number of CRUD commands.
The goal is to design and create the structure of an Inventory App which would allow a store to keep track of its inventory of products. The app will need to store information about price, quantity available, supplier, and a picture of the product. It will also need to allow the user to track sales and shipments and make it easy for the user to order more from the listed supplier.
See here for project rubric
- Course: Android Basics: Data Storage
In this project, you’ll build an app to allow users to discover the most popular movies playing. We will split the development of this app in two stages.
Stage 1. In this stage you’ll build the core experience of your movies app.
You app will:
- Present the user with a grid arrangement of movie posters upon launch.
- Allow your user to change sort order via a setting:
- The sort order can be by most popular or by highest-rated
- Allow the user to tap on a movie poster and transition to a details screen with additional information such as: original title
- movie poster image thumbnail
- A plot synopsis (called overview in the api)
- user rating (called vote_average in the api)
- release date
See here for more specific details
See here for project rubric
Stage 2, add additional functionality to the app you built in Stage 1.
Add more information to your movie details view:
- allow users to view and play trailers ( either in the youtube app or a web browser). -allow users to read reviews of a selected movie.
- allow users to mark a movie as a favorite in the details view by tapping a button(star). This is for a local movies collection that you will maintain and does not require an API request*.
- modify the existing sorting criteria for the main view to include an additional pivot to show their favorites collection.
- optimize your app experience for tablet.
See here for more specific details See here for project rubric
- Course: Developing Android Apps
Create an app with multiple flavors that uses multiple libraries and Google Cloud Endpoints. The finished app will consist of four modules:
- A Java library that provides jokes
- A Google Cloud Endpoints (GCE) project that serves those jokes
- An Android Library containing an activity for displaying jokes
- An Android app that fetches jokes from the GCE module and passes them to the Android Library for display
See here for more specific details
See here for project rubric
- Course: Gradle for Android and Java
Improve an app:
- XYZ Reader: A mock RSS feed reader featuring banner photos and shocking headlines! Download the code here.
The app is currently functional, and work in most cases for most users.
Your job will be to take the user feedback, and implement changes that will improve the UI and make it conform to Material Design.
- Download a zip file of the app.
- Read the UI Review.
- Spend time exploring the current state of the app, looking for ways it could be improved. The app will need multiple improvements. Be sure to look specifically at issues called out in the UI Review.
- Execute the improvements!
User Feedback for XYZ Reader:
Lyla says: “This app is starting to shape up but it feels a bit off in quite a few places. I can't put finger on it but it feels odd.”
Jay says: “Is the text supposed to be so wonky and unreadable? It is not accessible to those of us without perfect vision."
Kagure says: “The color scheme is really sad and I shouldn't feel sad.”
See here for project rubric
- Course: Developing Android Apps
- Course: Advanced Android App Development
- Course: Material Design for Android Developers
For this project, you will make a simple game reminiscent of classic Atari arcade game Breakout. Players will control a platform at the bottom of the screen that moves from side to side to intercept a ball that will bounce on impact. The goal is to stop the ball from falling past your platform and deflect it into various blocks in the upper half of the screen. When the ball collides with a block, the block is destroyed.
You will create a LibGDX project, implement a Screen, draw the game objects using a ShapeRenderer, and program the controls and real-time motion of the ball.
Completing the project consists of the following tasks:
- Make a LibGDX project using the project generator tool.
- Create a play screen using the Game class and Screen interface.
- Write a render loop that displays all the game objects, including the player's platform, the ball, and the blocks, using ShapeRenderer.
- Program the gameplay, including:
- Polling for input to move the platform (arrow keys for the desktop build, and using the accelerometer on Android).
- Moving the ball in real time and programming its bounce behavior.
- Collision detection that makes the ball bounce when hitting a wall or block or the player platform, and destroying blocks on hit.
Bonus challenges
- Implement a Score that goes up as the player destroys blocks.
- Add a start screen, Game Over screen, and/or win screen.
- Implement different difficulty settings (eg the ball moves faster, there is a time limit, blocks take multiple hits).
- Course: 2D Game Development with libGDX
Space Kerfuffle! is a top down, starfighter combat game. Players assume the role of an intrepid spacefighter pilot flying headlong into a swarm of aliens or robots or something else evil that wants to destroy humanity, probably. Players control a spacecraft and fire projectiles at oncoming enemies who do the same. Explosions happen. Numbers go up.
Create a Galaga or Space Invaders type game, either creating your own assets or using ones with the appropriate copyright for you to use them legally.
- clone any game from the game programming guide (or any other game you enjoy) as a native Android application
- create a real time chat application (clone your favorite instant messenger) - note you'll need to build a backend in order to make this work. Use any backend you like, suggestion: check out firebase.
- create an educational app, useful for learning and practicing subject matter you're highly familiar with (like android programming)
- create an app for a non-profit in your area, whatever they need
- contribute to open source, on any android or java project
- make any android app you want from your original idea, deploy it to the app store
- Course: Advanced Android App Development
- Course: Intro to Artificial Intelligence
- Course: Google Location Services on Android
- Course: Monetize Your Android App with Ads
- Course: Add Google Maps to your Android App
- Course: Android Performance