Skip to content

P1xt/speedrun-august-2017

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Android Speedrun

Repository for keeping track of my progress in the Android Speedrun

Speedrun Projects Checklist

  • 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

Optional ionic parallel

  • 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

Goal

Complete as many Android projects as possible between August 15 and September 15, 2017

Rules

  • either code the projects in Java/Android native, or use a framework (such as Ionic/React Native/Weex)
  • adjust timeframe as necessary to meet your personal goals
  • Jumping around between is ok, skipping ahead to a project you’re ready for is fine.
  • Do not google or stack overflow for answers, use the docs. Don’t spend the month browsing YouTube for something to make it easier, dig in and work hard. Use the docs.
  • Store all projects in git. The repo can be public or private.
  • Document your progress publicly, either in a repo that shows off everything you’ve completed, or in blog posts, or just tweet what you completed with #chingu-speedrun (unless someone else can come up with a better hashtag, that one’s pretty long), it doesn’t matter how or where, just that you document your progress publicly somewhere.
  • Do whatever is in your power to finish as many projects as you possibly can. Skip courses if you can do the projects without them. Make a boilerplate project so you can bootstrap a new project as fast as possible. Whatever, just finish as many as you can. The goal is number of FINISHED projects, finish ‘em.

Quick Prep

If you want to quickly get up to speed with the minimum courses necessary beforehand so you can hit the ground running on the speedrun:

Helpful links

Project Details

Build a Single Screen App

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

Supporting Courses


Score Keeper App

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)

Supporting Courses


Quiz App

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

Supporting Courses


Musical Structure App

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

Supporting Courses


Report Card

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

Supporting Courses


Tour Guide App

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

Supporting Courses


Book Listing App

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

Supporting Courses


News App

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

Supporting Courses


Habit Tracker App

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

Supporting Courses


Inventory App

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

Supporting Courses


Popular Movies

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

Supporting Courses


Build it Bigger

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

Supporting Courses


Make Your App Material

Improve an app:

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

Supporting Courses


Outbreak

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).

Supporting Courses


Space Kerfuffle

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.

Supporting Courses


Advanced Projects

Project ideas

  • 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

Supporting Courses

About

Speedrun Android Projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published