A SpringSource lançou o Spring for Android 1.0, uma extensão do Spring Framework que simplifica o desenvolvimento de aplicativos nativos para Android. A nova versão inclui um cliente REST (RestTemplate) e suporte ao padrão OAuth (Spring Social) com implementação para conexão a redes sociais.
Uma das principais funcionalidades do Spring for Android 1.0 é o cliente REST. Agora é possível usar uma versão do Spring RestTemplate para consumir serviços RESTful dentro de um aplicativo Android nativo. Com base nas recomendações do Google, o RestTemplate usa bibliotecas de cliente HTTP do Java SE para o Android 2.3+, e o Apache HttpClient para Android 2.2 e versões anteriores. Há suporte a diferentes conversores de mensagens HTTP, uso de Jackson ou Google Gson para processamento de JSON, Simple XML Serializer para XML e Android ROME para RSS/Atom. O RestTemplate também suporta a compressão gzip.
Aqui está um exemplo básico do RestTemplate retirado do manual de referência do Spring for Android, que pesquisa o Google pelo termo "SpringSource":
String url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q={query}"; RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new StringHttpMessageConverter()); String result = restTemplate.getForObject(url, String.class, "SpringSource");
Outra característica importante do Spring for Android 1.0 é o suporte a Spring Social em aplicativos Android, que inclui um cliente OAuth e implementações para habilitar os aplicativos a realizarem conexões com os sites de redes sociais mais populares, como Twitter e Facebook. Esta versão traz suporte ao OAuth 1.x e 2.0, inclui um repositório de dados SQLite e criptografia do Spring Security compatível com Android.
Os desenvolvedores familiarizados com o Spring Framework naturalmente esperam que o recurso de injeção de dependências faça parte do Spring para Android. No entanto, devido à maneira como o Android conduz o ciclo de vida da aplicação usando Intents (uma descrição abstrata de uma operação a ser executada), é limitada a forma como a injeção de dependência pode ser implementada. O post Clean Code in Android Applications do blog da SpringSource apresenta mais informações sobre opções de injeção de dependência no Android.
Para mais informações, leia o manual de referência do Spring para Android. Exemplos estão disponíveis no GitHub. Para começar, pode-se baixar os JARs da distribuição da versão ou adicionar as dependências do Maven correspondentes:
<dependency> <groupId>org.springframework.android</groupId> <artifactId>spring-android-rest-template</artifactId> <version>1.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.android</groupId> <artifactId>spring-android-auth</artifactId> <version>${spring-android-version}</version> </dependency>
Também é recomendado ler sobre gerenciamento de dependências com Maven no manual de referência do Spring para Android, para conhecer como utilizar as capacidades de gestão de dependências do Maven dentro de uma aplicação Android.