Ver mensagens sem resposta | Ver tópicos ativos Hoje é 21 Nov 2017, 09:13



Responder Tópico  [ 6 Mensagens ] 
 [DICAS] Acelerando o desenvolvimento com o AAnnotations 
Autor Mensagem
Application Life Cycle
Application Life Cycle

Data de registro: 24 Ago 2011, 12:04
Mensagens: 289
Localização: São Paulo
Mensagem [DICAS] Acelerando o desenvolvimento com o AAnnotations
Boa tarde companheiros do fórum,

Ultimamente tenho utilizado um framework que considerei bastante interessante. Ele se chama AndroidAnnotations e possui várias facilidades que acelera o desenvolvimento e deixa o código muito mais limpo. Quem quiser conhecer um pouco mais do projeto, basta acessar o link: http://androidannotations.org/

Segue abaixo dois códigos, um utilizando a linguagem comumente utilizada e outro utilizando o AndroidAnnotations:

/99

public class BookmarksToClipboardActivity extends Activity {
 
  BookmarkAdapter adapter;
 
  ListView bookmarkList;
 
  EditText search;
 
  BookmarkApplication application;
 
  Animation fadeIn;
 
  ClipboardManager clipboardManager;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(FLAG_FULLSCREEN, FLAG_FULLSCREEN);
 
    setContentView(R.layout.bookmarks);
 
    bookmarkList = (ListView) findViewById(R.id.bookmarkList);
    search = (EditText) findViewById(R.id.search);
    application = (BookmarkApplication) getApplication();
    fadeIn = AnimationUtils.loadAnimation(this, anim.fade_in);
    clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
 
    View updateBookmarksButton1 = findViewById(R.id.updateBookmarksButton1);
    updateBookmarksButton1.setOnClickListener(new OnClickListener() {
 
      @Override
      public void onClick(View v) {
        updateBookmarksClicked();
      }
    });
 
    View updateBookmarksButton2 = findViewById(R.id.updateBookmarksButton2);
    updateBookmarksButton2.setOnClickListener(new OnClickListener() {
 
      @Override
      public void onClick(View v) {
        updateBookmarksClicked();
      }
    });
 
    bookmarkList.setOnItemClickListener(new OnItemClickListener() {
 
      @Override
      public void onItemClick(AdapterView<?> p, View v, int pos, long id) {
        Bookmark selectedBookmark = (Bookmark) p.getAdapter().getItem(pos);
        bookmarkListItemClicked(selectedBookmark);
      }
    });
 
    initBookmarkList();
  }
 
  void initBookmarkList() {
    adapter = new BookmarkAdapter(this);
    bookmarkList.setAdapter(adapter);
  }
 
  void updateBookmarksClicked() {
    UpdateBookmarksTask task = new UpdateBookmarksTask();
 
    task.execute(search.getText().toString(), application.getUserId());
  }
 
  private static final String BOOKMARK_URL = //
  "http://www.bookmarks.com/bookmarks/{userId}?search={search}";
 
 
  class UpdateBookmarksTask extends AsyncTask<String, Void, Bookmarks> {
 
    @Override
    protected Bookmarks doInBackground(String... params) {
      String searchString = params[0];
      String userId = params[1];
 
      RestTemplate client = new RestTemplate();
      HashMap<String, Object> args = new HashMap<String, Object>();
      args.put("search", searchString);
      args.put("userId", userId);
      HttpHeaders httpHeaders = new HttpHeaders();
      HttpEntity<Bookmarks> request = new HttpEntity<Bookmarks>(httpHeaders);
      ResponseEntity<Bookmarks> response = client.exchange( //
          BOOKMARK_URL, HttpMethod.GET, request, Bookmarks.class, args);
      Bookmarks bookmarks = response.getBody();
 
      return bookmarks;
    }
 
    @Override
    protected void onPostExecute(Bookmarks result) {
      adapter.updateBookmarks(result);
      bookmarkList.startAnimation(fadeIn);
    }
   
  }
 
  void bookmarkListItemClicked(Bookmark selectedBookmark) {
    clipboardManager.setText(selectedBookmark.getUrl());
  }
 
}
 

Classe sem AndroidAnnotations, ao todo 107 linhas escritas.

\"/uu\"

@NoTitle
@Fullscreen
@EActivity(R.layout.bookmarks)
public class BookmarksToClipboardActivity extends Activity {
 
  BookmarkAdapter adapter;
 
  @ViewById
  ListView bookmarkList;
 
  @ViewById
  EditText search;
 
  @App
  BookmarkApplication application;
 
  @RestService
  BookmarkClient restClient;
 
  @AnimationRes
  Animation fadeIn;
 
  @SystemService
  ClipboardManager clipboardManager;
 
  @AfterViews
  void initBookmarkList() {
    adapter = new BookmarkAdapter(this);
    bookmarkList.setAdapter(adapter);
  }
 
  @Click({R.id.updateBookmarksButton1, R.id.updateBookmarksButton2})
  void updateBookmarksClicked() {
    searchAsync(search.getText().toString(), application.getUserId());
  }
 
  @Background
  void searchAsync(String searchString, String userId) {
    Bookmarks bookmarks = restClient.getBookmarks(searchString, userId);
    updateBookmarks(bookmarks);
  }
 
  @UiThread
  void updateBookmarks(Bookmarks bookmarks) {
    adapter.updateBookmarks(bookmarks);
    bookmarkList.startAnimation(fadeIn);
  }
 
  @ItemClick
  void bookmarkListItemClicked(Bookmark selectedBookmark) {
    clipboardManager.setText(selectedBookmark.getUrl());
  }
 
}
 



@Rest("http://www.bookmarks.com")
public interface BookmarkClient {
 
  @Get("/bookmarks/{userId}?search={search}")
  Bookmarks getBookmarks(String search, String userId);
 
}
 

Juntando a classe e uma interface com a chamada de um restservice, temos aproximadamente 60 linhas.

Um grande abraço e espero que esta dica seja útil para vocês.

_________________
André Ikeda
Mobile Lead Developer
Aplicativos:
99Motos - Cliente


24 Jan 2013, 20:14
Perfil WWW
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 782
Localização: Blumenau - SC
Mensagem Re: [DICAS] Acelerando o desenvolvimento com o AAnnotations
Muito útil o tutorial, parabéns, vou dar uma testada.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


25 Jan 2013, 09:49
Perfil WWW
Google employee
Google employee
Avatar de usuário

Data de registro: 05 Abr 2011, 04:47
Mensagens: 1968
Localização: Rio de Janeiro
Mensagem Re: [DICAS] Acelerando o desenvolvimento com o AAnnotations
Muito interessante!! Obrigado por compartilhar!!

Abraços!

_________________
Alexandre Antunes
@a3b @bemobi
Moto X

App@Bemobi: Apps Club - Loja de Apps baseada em assinatura que dá direito a usar ~400 Apps.

Campanha: Facilite sua vida e a dos outros usuários.
Objetivo: Vamos colocar a tag [RESOLVIDO] no título do tópico quando o problema for resolvido.


Use a ferramenta de busca do fórum e não espere tanto para que a sua dúvida seja respondida!

Quer trabalhar comigo??


27 Jan 2013, 18:22
Perfil WWW
Application Life Cycle
Application Life Cycle

Data de registro: 24 Ago 2011, 12:04
Mensagens: 289
Localização: São Paulo
Mensagem Re: [DICAS] Acelerando o desenvolvimento com o AAnnotations
Sem problemas.

Espero que seja de grande ajuda.

Abraços

_________________
André Ikeda
Mobile Lead Developer
Aplicativos:
99Motos - Cliente


28 Jan 2013, 20:30
Perfil WWW
Application Life Cycle
Application Life Cycle
Avatar de usuário

Data de registro: 08 Ago 2011, 16:21
Mensagens: 226
Localização: Ponta Grossa - PR / Blumenau - SC
Mensagem Re: [DICAS] Acelerando o desenvolvimento com o AAnnotations
Rcenetemente escrevi um post sobre o android annotations no meu blog,a unica coisa que você deve atentar é que isso não seria legal para desenvolvedores iniciantes... pq na minha opinião isso prejudica o entendimento da plataforma...


Mas claro de ter experiencia utulizar essa library é um beneficio imenso =D

_________________
Eu te ajudei? Quer agradecer? Não precisa nem postar no tópico agradecendo, você me ajudaria muito entrando em um dos meus blogs, comentando e compartilhando os posts nas redes sociais.
Blog: Cedulio Cezar- Tutoriais e dicas voltados para o desenvolvimento de softwares em Java e Android.
Blog: Pedreiros do Software - Tutoriais sobre Java, Android, Banco de dados, Arquitetura, JSF.

App: ThinkTwice - Aplicativo que auxilia no aprendizado de outros idiomas.
App: InstantGilGomes- Aplicativo de humor com bordões clássicos do ilustre Gil Gomes.


10 Fev 2013, 23:46
Perfil
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [DICAS] Acelerando o desenvolvimento com o AAnnotations
Uma mão na roda! Mandou bem!

_________________
Powell


25 Fev 2013, 10:12
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 6 Mensagens ] 

Quem está online

Usuários vendo este fórum: abruzzi, Adeja, aechiara, Alan Unger, alansousa, alex.abrantes, amos, Anakin Skywalker, ARAKINIDIO, Ask Jeeves, AT-AT, Augusto, austonrd, axellsan, azero, bocajunior88, bravus, brcamp, brpiassa, brunomalka, burujo, caio, cariabs8, Carmizini, cehills, celson, charly, christian, dariosena, Darth Sidious, Darth Vader, Dassi, DAVINCE, diemesleno, difrene, dnakamashi, espinhara.net, fabrizior, ferrodecaju, Flavio Alves, fmakula, Gomes, GuilhermeZampieri, gusrp, hostdesigner, ICCrawler - ICjobs, ijsilvestre, jacksaum, jairodealmeida, Jaison, Jless@, juliherms, juniorsk8, Juniorvs, Ki-Adi-Mundi, klebersilvarocha, lalaine, leandroviana, leofernandesmo, luciano.sml, luciocamilo, lufreitas, luiz.lago, Marcelo Lima, MARCIOHG, marcos_trb, marcosf63, marcow, masf_33, Mayara Trevisol, Meticore, mravel, mtomazzi, nandopierre, nivaldo, Nute Gunray, Obi-Wan Kenobi, oliveiramc, pchofard, peterson.bah, pgsnit, phfmendes, Rafael Felix, rbenatti, rguadagnini, ROGÉRIO RODRIGUES, rsl_master, sjta, tChAnDy, Thelemita, Tiago Sousa Roch, tiagoxv, Transtago, ttaranto, Vector, Vinicius, viniciusllima, wcaciano, Wendel Carvalho, WiseNut, Yuri, zeantonio e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi