Lesson Weekend

Weekly Independent Project Overview


Due to the complexity of Android applications, you will not complete 4 separate independent projects as you’ve done in previous courses. Instead, your weekly independent project will be ongoing. Each Friday you’ll implement the new concepts you’ve learned into last week’s project. This means that you must keep your project’s codebase in good shape at all times; thoughtful comments, and appropriate workflow practices (branch-work-merge in small batches) will help achieve this goal.

Category Options

You and your classmates will not be required to create the exact same application either. Instead, you will be provided several categories to choose from. By selecting from a pre-defined category you’ll ensure your application's scope is not too large to reasonably complete in four Fridays, nor too small to accurately demonstrate each week’s concepts and objectives.

Project category options are listed below. Begin considering which you’d like to create throughout the course. You will begin work this Friday.

API Requirement

In the second week we’ll also learn how to integrate web service backends (also known as APIs) into applications. You will be required to research, select, and implement an API of your choosing into your project on the second Friday of the course. Take this into consideration when selecting a project category, and/or the theme or focus of your application. (More information on selecting APIs at the bottom of this lesson).

Project Categories


1.) Tracking and Collecting Custom Objects

This type of application collects, tracks, and displays data that the user inputs themselves.

Examples

Here are several real-world examples of this category of application:

Possible APIs

Here's how an API might fit into this category of app. (Important Note: APIs listed in this lesson are just theoretical examples of general API types this project variety might use. You are still responsible for thoroughly researching and testing your selected API, whether listed as a general example or not, before integrating it into your project. See "APIs" and "Researching & Testing" sections below!)

  • Yummly: To search for and retrieve recipe and food data.
  • Twitter: Gather information from your or others’ profiles.
  • LinkedIn: To retrieve information from LinkedIn.

2.) Tracking and Collecting Objects from an API

This type of application tracks, organizes, or collects information that is retrieved from an API. For instance, applications that collect information on microbrews, wine, movies, or hiking trails and allow you to either compose favorites lists, rate them, or save them for later reference.

Examples

Examples of this category of application include:

  • MyRestaurants project from curriculum. The main “object” (restaurants) is from information provided from an outside resource. The application allows users to track and organize information from this outside resource.
  • Untappd
  • Hello Vino
  • AllTrails

Possible APIs

Here's how an API might fit into this type of application.

  • GitHub: To keep track of ongoing projects, whether yours or other developers’.
  • Strava: To organize/record/maintain/track information about your and others’ workouts, specifically running and biking, routes, gear and other information.
  • Petfinder: To track information about available pets for adoption in your area.
  • BreweryDB: To track information about various beers.
  • Meetup: To compile lists of meetups in your region.

3.) Social Networking and Engagement

Applications that allow users to interact with with others. These apps can allow a general platform for interaction of all kinds, or focus on a specific interest, hobby or community.

Examples

Here are several real-world examples of this type of application:

Possible APIs

Here's how an API might fit into this type of application.

  • Twitter: To share entries and information from your social network with your followers on another popular social network.
  • Meme Maker: To create funny images and memes to share in your social network.
  • Meetup: To incorporate in-person meetups to your online social life.
  • Flickr: To share images from your Flickr account with friends.
  • LinkedIn: To share information or incorporate data from your LinkedIn network.

4.) Marketplace

This application allows users to buy (and oftentimes sell) items and experiences. Some are focused on a specific field or hobby, and others are more generalized.

Examples

Here are several real-world examples of this type of application:

Possible APIs

Here's how an API might fit into this type of application.

  • Twitter: To cross-post or advertise your new store listings.
  • Walmart Labs: To gather information on various products.
  • Pinterest: To share or advertise products.

5.) Reference

This type of application allows users to search for and view reference materials and data on a wide variety of topics.

Examples

Here are several real-world examples of this type of application:

Possible APIs

Here's how an API might fit into this type of application.

  • Yummly: To search for and retrieve recipe and food data.
  • Recipe Puppy: To gather and reference recipe and food information.
  • Better Doctor: To gather and reference healthcare resources.
  • Musix Match: To retrieve and display music information.
  • Giant Bomb: To retrieve and display information on various video games and devices.
  • DarkSky: To gather and display weather information from around the world.

APIs


Note that the APIs listed above are simply for example purposes. You may use any API you'd like in your own application, so long as you research and test it thoroughly. You need to ensure the API functions as anticipated, contains the data you require, and that you can successfully gather the parameters necessary to make the proper requests.

API Resources

Not sure where to begin? The following two resources offer expansive lists of APIs, organized by format, category, authentication requirements, and more:

Revisit the Android Independent Projects lesson for examples of how these APIs could be integrated into each of the 4 project categories.

Researching and Testing

However, keep in mind that you cannot just select an API and assume it will work for your project. As you've likely already seen in past courses, not all APIs work similarly. There's different formats. Different authentication protocols. Different endpoints. Sometimes you need to make multiple, subsequent requests to get the data you need. As such, it's important to carefully test and research your API using the following steps:

  1. Select an API. Using the links above, Google, and any other resources you'd like, select an API with the content relevant for your project.

  2. Research the API thoroughly. Not every resource is the same. Not every API is accessed in the same manner. Some APIs require complex multi-step authentication, others provide data in formats you may not be familiar with. Thoroughly research the API to ensure it does contain the information you’re seeking, and it will work with your project. Spend some careful time here. You don't want to begin work Friday only to discover your API doesn't work the way you anticipated.

  3. Make thorough test requests. Confirm your research is accurate by actually requesting and receiving data from the API. Test each and every endpoint you anticipate your application will use. You don’t have to build an entire application to do this. Free Chrome extensions like Postman allow you to make test API requests with parameters of your choosing, and browse the response data. Postman offers a series of short tutorial videos on YouTube demonstrating how to install, open, and use their extension.

  4. Be prepared to demonstrate the API to your instructor. After confirming your API will work in your application, be prepared to demonstrate it. Your instructor may ask you to demonstrate how you'll integrate your API choice. Explain to your instructor what the API is, how you will access it, the format it will return data in, and how you’ll use this data in your application. Be prepared to provide an example request and response.

  5. Understand that the same objectives and deadlines apply. The same deadlines and objectives will apply to all students, regardless of their API choice. You will not be excused from objectives or deadlines due to unforeseen API issues. It is your responsibility to research your API, and confirm it will work before adding it to your project.