Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Não refaça, reutilize!

Não refaça, reutilize!

Presentation by @italomss

GDG Aracaju

February 21, 2015
Tweet

More Decks by GDG Aracaju

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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.
  5. 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.
  6. 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”
  7. 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
  8. Android Studio • Para criar um lib no Android Studio,

    File → New Module e escolha Android Library.
  9. 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”
  10. 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.
  11. Sugestões • Libs que uso; • Libs que os grandes

    usam :D • Onde buscar? • Aplicativos.
  12. 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); }
  13. 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");
  14. 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);
  15. 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();
  16. 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/
  17. 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!