Code Monkey home page Code Monkey logo

spring-android's Introduction

Spring for Android

Spring for Android is a library that is designed to provide components of the Spring Framework family of projects for use in native Android applications.

Features

  • A REST client for Android
  • Auth support for accessing secure APIs

Download Artifacts

The new Android Build System provides a Gradle plugin for building Android apps, and Gradle itself supports external dependency resolution via Maven repositories. Additionally, the Android Maven Plugin makes it possible to build Android applications utilizing the power of Maven dependency management. See downloading Spring artifacts for Maven repository information.

Rest Template

The Rest Template library can be included in your project using Gradle or Maven.

Gradle:

dependencies {
    compile("org.springframework.android:spring-android-rest-template:${version}")
}

Maven:

<dependencies>
    <dependency>
        <groupId>org.springframework.android</groupId>
        <artifactId>spring-android-rest-template</artifactId>
        <version>${org.springframework.android-version}</version>
    </dependency>    
</dependencies>

Spring Repositories

The following Maven repositories are available from Spring. You do not need to include all three repositories, rather select the one that corresponds to the release type of the dependency. GA releases are also available through Maven Central.

Gradle:

repositories {
    maven { url "https://repo.spring.io/release" }
    maven { url "https://repo.spring.io/milestone" }
    maven { url "https://repo.spring.io/snapshot" }
}

Maven:

<repositories>
    <repository>
        <id>spring-repo</id>
        <name>Spring Repository</name>
        <url>https://repo.spring.io/release</url>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Example Build Configuration

The following is an example build.gradle that illustrates how to include the spring-android-rest-template module along with the jackson-databind library for marshaling JSON data. Note the packagingOptions section which filters specific files that can cause APK packaging to fail.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId 'org.springframework.demo'
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:20.+'
    compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.4.1.3'
}

Documentation

See the current Javadoc and reference docs.

Sample Applications

Several example projects are available in the samples repository.

Getting Started Guides

The spring.io web site contains many getting started guides that cover a broad range of topics.

Support

Check out the spring-android tag on Stack Overflow. Commercial support is also available.

Issue Tracking

Report issues via the Spring Android JIRA. While JIRA is preferred, GitHub issues are also welcome. Understand our issue management process by reading about the lifecycle of an issue.

Build from Source

  1. Clone the repository from GitHub:

    $ git clone git://github.com/spring-projects/spring-android.git

    Note: If you are unfamiliar with Git, you may want to try GitHub for Windows or GitHub for Mac.

  2. Navigate into the cloned repository directory:

    $ cd spring-android
  3. The project uses Gradle to build:

    $ ./gradlew build
  4. Install jars into your local Maven cache (optional)

    $ ./gradlew install

Import Source into your IDE

Eclipse

  1. To generate Eclipse metadata (.classpath and .project files):

    $ ./gradlew eclipse
  2. Once complete, you may then import the projects into Eclipse as usual:

    File -> Import -> Existing projects into workspace
    

    Note: Spring Tool Suite includes support for Gradle, and you can simply import as Gradle projects.

IDEA

Generate IDEA metadata (.iml and .ipr files):

$ ./gradlew idea

Tests

There are three Android Test Projects located in the "test" folder of the repository that correspond to the three Spring for Android Modules (Core, Rest Template, and Auth). To run the suite of tests, perform the following steps. The parent POM located in the root of the "test" folder will execute each test project on all attached devices and emulators. The tests will fail if there is no device or emulator attached.

Run the Android tests:

$ ./gradlew testAndroid

Note: To view the output, use the --info parameter when running Gradle

Gradle runs the tests using the Android Maven Plugin. Alternatively the test suite can be executed using the following Maven command:

$ mvn clean install -f ./test/pom.xml

Test results are available in the following directory for each test project:

/test/<test-project>/target/surefire-reports

Contributing

Pull requests are welcome. See the contributor guidelines for details.

Stay in Touch

Follow @SpringCentral as well as @SpringAndroid on Twitter. In-depth articles can be found at The Spring Blog, and releases are announced via our news feed.

License

Spring for Android is released under version 2.0 of the Apache License.

spring-android's People

Contributors

arturdryomov avatar royclarkson avatar spring-builds avatar stephanenicolas avatar sweemer avatar

Watchers

 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.