Share
Embed
Transcript
24 slides
-
Hello World • Italo Marcel [email protected] @italo_MSS • Getinfo Coordenador
de Desenvolvimento Cursos -
Roteiro • Android Library Projects e Java Libraries • Usando
arquivos JAR • Restrições para utilizar bibliotecas Java • Criando sua própria lib • Android Studio • Eclipse • Support Libraries do Google • Sugestões • Dúvidas -
Library project e Java libraries • O projeto Android pode
utilizar um código contido no arquivo .jar • Também podemos criar módulos e utilizarmos como dependência em nossos projetos • Esses Módulos permitem salvar códigos e resources que podem ser compartilhados com diversas outras aplicações -
Usando arquivos JAR • Para utilizar um biblioteca java(JAR file)
dentro do seu projeto,você pode copiar o arquivo para dentro da pasta libs da sua aplicação • Dependendo da IDE o código contido no arquivo fica automaticamente disponível, se isso não ocorrer, precisaremos fazer mais alguns passos -
Usando Eclipse • O Eclipse ADT tooling adiciona automaticamente o
jar no pacote de classes da sua aplicação; • Durante o build, as ferramentas do Android convertem os arquivos .class em .dex que contem o byte-code da sua app; • Para essa mágica acontecer você precisa criar a pasta libs no seu projeto. -
Usando o Studio • Click com botão direito do mouse
no JAR dentro da sua pasta libs e escolha a opção Add as library; • Verifique se há uma nova linha no compile files (SEUJAR.jar)no seu arquivo build.gradle; • Feito isso, basta sincronizar o seu gradle. -
Restrições • Para utilizar bibliotecas na sua aplicação, certifique-se de
utilizar componentes disponíveis para a API Android. Por exemplo, as libs do Android não possuem java.awt e javax.swing • Não duplique as libs nas dependencias • Cuidado com o “R” • Bibliotecas não podem ser “rodadas” -
Criando sua própria lib • Se você vai utilizar algo
mais de uma vez, utilize uma lib mesmo que seja a sua :) • Entenda que quando você gera uma lib, todos os componentes do projeto se integram ao seu apk, ou seja muito cuidado com os ids e os arquivos que estão dentro da sua biblioteca. Prioridades e conflitos • Quando você usa uma lib no seu projeto os ID’s são constantemente alterados para evitar conflitos, caso eles ocorram o Android da preferencia -
Android Studio • Para criar um lib no Android Studio,
File → New Module e escolha Android Library. -
Eclipse • Para criar uma lib no Eclipse processo é
bem parecido com a criação de um projeto comum, a unica diferença esta no checkbox “Mark this project as a library” -
Support Libraries Google • O Pacote Support Libraries do Google
contem varias bibliotecas com novos funcionalidades e adiciona suporte para recursos das novas versões do Android. -
Sugestões • Libs que uso; • Libs que os grandes
usam :D • Onde buscar? • Aplicativos. -
Sugestões • ACRA - Application Crash Reports for Android https://github.com/ACRA/acra
• Retrofit - Mágica http://square.github.io/retrofit/ Criando a interface: public interface GitHubService { @GET("/users/{user}/repos") List<Repo> listRepos(@Path("user") String user); } -
Sugestões RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint("https://api.github.com") .build(); GitHubService service
= restAdapter.create(GitHubService.class); List<Repo> repos = service.listRepos("octocat"); -
Sugestões • Manipulando Url, Adcionando query @GET("/group/{id}/users") List<User> groupList(@Path("id") int
groupId, @Query("sort") String sort); • Post @POST("/users/new") void createUser(@Body User user, Callback<User> cb); -
Sugestões • Json to Java class http://www.jsonschema2pojo.org/ • Realm Android
http://realm.io/news/realm-for-android/ Realm realm = Realm.getInstance(this); realm.beginTransaction(); Person person = realm.createObject(Person.class); person.setName("Young Person"); person.setAge(14); realm.commitTransaction(); -
Sugestões • AlienDroid http://marlon.silvacarvalho.net/?p=1138 Contact contact = Model.load(Contact.class, 1); contact.name
= "Changed Name"; contact.save(); List contacts = Model.findAll(Contact.class); List contacts = Model.where(Contact.class, "name like ?", new String[] {"name"}); contact.delete(); • Butter Knife http://jakewharton.github.io/butterknife/ -
Sugestões @InjectView(R.id.title) TextView title; @InjectView(R.id.subtitle) TextView subtitle; @InjectView(R.id.footer) TextView footer;
ButterKnife.inject(this); • DiskLruCache https://github.com/JakeWharton/DiskLruCache -
Sugestões • Libs usadas no Insagram ◦ http://goo.gl/AJW2sm • Lista
das libs mais populares ◦ http://goo.gl/9j3en5 • Onde buscar? ◦ https://github.com/ ◦ Maven ◦ Twitter ◦ Eu! -
Sugestões • Aplicativos ◦ DevAppsDirect ◦ Libraries for developers ◦
Open Source Libraries