GithubHelp home page GithubHelp logo

restprovider's Introduction

Android RESTProvider: A web services cursor interface

RESTProvider handles all the HTTP querying and caching. Users can seamlessly interface with any Web Service API which provides JSON or XML as a response. To query a RESTProvider in an activity a user need only specify an endpoint and then query an APIs RESTful functions.

  • Supports JSON & XML Web services
  • Handles HTTP querying & caching

RESTProvider is an implementation of functionality commonly used when dealing with web services in Android.

Example: Twitter stream as ListActivity

	
	public class TwitterFeedExample extends ListActivity {
		@Override public void onCreate(Bundle b) {
			super.onCreate(b);
			CPAsyncHandler g = new CPAsyncHandler(getContentResolver());
			g.startQuery(1, null, Uri.parse("content://novoda.rest.test.twitter"),
					null, "q=?", new String[] { "droidcon" }, null);
		}

		private class CPAsyncHandler extends AsyncQueryHandler {
			@Override
			protected void onQueryComplete(int token, Object cookie, Cursor c) {
				super.onQueryComplete(token, cookie, c);
				setListAdapter(new SimpleCursorAdapter(TwitterFeedExample.this,
						android.R.layout.simple_list_item_2, c, new String[] {
								"from_user", "text" }, new int[] {
								android.R.id.text1, android.R.id.text2 }));
			}
		
			public CPAsyncHandler(ContentResolver cr) {
				super(cr);
			}
		}
	}
	

Setup

The RESTProvider’s most recent version is only available in source but regular versions are available as jar files.
We recommend working from source as significant changes are still frequent at these early stages.
Download the latest source as an archive or checkout via git. The advantage of checking out via git is that updates can be quickly applied within your working environment using $git pull origin master. To checkout the latest source via git, within the directory you wish to download the project: git clone git://github.com/novoda/RESTProvider.git

In Eclipse:
File > New Android Project
Select Create project from existing source
For the location select: RESTProvider/RESTProvider
Dependant files needed on build path, add the following to RESTProvider/RESTProvider/lib

Refresh the directories in eclipse (F5 with the project selected)
All jars under ‘libs’ need to be added to the build path.
You can add each dependancy by right clicking the jar files under this directory and selecting Build Path > Add to Build Path.
You can now depend on this project as a build dependancy to use the RESTProvider in your project.

Demos

Follow these steps in Eclipse:
File > New Android Project
Select Create project from existing source
For the location select: RESTProvider/RESTProviderTest
All of the libraries under the RESTprovider ‘libs’ directory need to be added to the build path.
You can add each library by right clicking the jar files under this directory and selecting Build Path > Add to Build Path.

Dependant files needed on build path as Android cannot src the dependencies from the other project, add the followingto RESTProvider/RESTProviderTest/lib

You then need to add the RESTProvider’s src as a dependency of this project by right clicking Build Path > Link Src then selecting the directory of the RESTProvider’s src on your disk.
Note: Intrumentations cannot be run if the RESTProvider is included as src in the Demo project

Unit Tests are currently broken!

This is an experimental way of testing an android locally without deploying to the against an android emulated image using a n android.jar customly extended for testing. In order to provide a test framework, we use PowerMock as describe in the following page which I strongly recommend to follow and understand:
https://sites.google.com/site/androiddevtesting/

In Eclipse:
File > New Java Project
Select Create new project from existing source
For the location select: RESTProvider/RESTProviderLocalTest
Right click on Project dir
Build path > Configure Build Path
Add the RestProvider project as a dependency.
Dependant files needed on build path in the lib dir:

Exporting jar for use in project

In order for your dependant project to deploy correctly you will need to export the RESTProvider into your dependant project
as a jar. To do this:

Help improve the RESTProvider!

The RESTProvider project is for everyone to take advantage and will improve only with your feedback.
If you are using the RESTProvider or have issues then please let the community know.
This project is unsupported but contributors will try their best to reply to problems on mailing list.
http://groups.google.com/group/android-restprovider
Or you can raise issues on github.

restprovider's People

Contributors

charroch avatar ntoll avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.