/AndroidRestTutorial

Tutorial/Demo Project aimed at demonstrating the fundamentals of communcitating via RESTful Web Services.

Primary LanguageJava

Start Here

Welcome to my Android REST sample app and tutorial. If you are interested in learning the basics of communicating from an Android Application to a RESTful Web Service, you're in the right place.

All code within repository is Open Source, and I do my best to write legible and concise code in general. There will also be a Video Tutorial series available on my Youtube Channel, where I'll be building the important parts of this application on camera.

Overview

Current plans are to implement two primary features:

  1. Consume and display Repositories based on username. To achieve this, the user will enter a Username on GitHub, after which our App will turn it into a request as so:

https://api.github.com/users/BracketCove/repos

Try this yourself: Enter the above URL into the address bar of any browser. Try replacing my Username with yours, and see what kind of JSON Data gets returned. This is exactly what Data we'll use to build our UI!

  1. Implement OAuth User Authentication with a third party service; likely GitHub as well. OAuth is a standard for managing access to various applications and websites. I'll be building this part later on; wait for further details.

Contribution Guidelines

READ BEFORE CONSIDERING A CONTRIBUTION!! I'll be building this project with live feedback and contributions from anyone who gives good feedback and contributions. I do, however, have strict requirements for any code contributions.

Legal:

  • All code contributions must include the Apache 2.0 License within each file. AS can be configured to automatically add a license to each file in a project.
  • Do not contribute code from proprietary or random sources on the internet. If you aren't legally allowed to share it, don't share it. If you didn't write it yourself, and on your own time, I likely can't accept it.

Code Style:

  • Prefer long and descriptive names above all else. This Code will be read by many people, and the names should make that an easier process; not a more difficult one.
  • Follow the Single Responsibilty Principle. Classes should be strongly cohesive, and helper methods with good names should show up where appropriate.
  • Include comments for complicated methods and intricate APIs. My general goal with these Demo projects is to never assume that the reader knows much about subject matter at hand. A short comment goes a long way.

General:

  • If you plan to provide code, please ask me about your plan before coding up a storm. You can start an issue in GitHub, message me on Facebook, or get in on the wiseAss Slack channel where most of the discussion will occur.

What do you get out of this? People who provide valid contributions will at minimum be mentioned in the "Contributers" section of this Repo. Major contributions will be mentioned in the tutorials proper, and we can certainly discuss Social Media shoutouts.

Contributers

Discussion

Most discussion of this project will take place in my Slack Channel.

As mentioned above, you may also use GitHub Issues if you have something against slack.