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

Android: Por onde começar?

Android: Por onde começar?

B59b1bd643ff429bb27032b05d4f2e23?s=128

Houssan A. Hijazi

December 22, 2015
Tweet

Transcript

  1. CodeLab Android Instrutor Houssan A. Hijazi

  2. GDGFoz Codelab Android GDGFoz • Houssan A. Hijazi - hussanhijazi@gmail.com

    • Valmir Barbosa - valmir.php@gmail.com • Jefferson Maran - jefferson.maran@gmail.com
  3. GDGFoz Codelab Android Quem ajuda no Codelab ? • Houssan

    Ali Hijazi • HE:labs / 2.5 anos Android • Lucas de Castro Oliveira • Estágio em desenvolvimento na Eits - PTI. Formando em Ciência da Computação pela Unioeste. • Cassiano Peres • Trabalha no CIH, projeto de pesquisa e desenvolvimento com tecnologias java para web e georreferenciamento.
  4. GDGFoz Codelab Android Codelab • Android SDK • Android Studio

    • UIElements e Android XML • Activities • List & Adapters • Serialização • Json e GSON • REST WebServices
  5. GDGFoz Codelab Android Android Studio • IDE Oficial do Android

    • “Fork” do IntelliJ IDEA (Jetbrains) • Versão estável atual: 1.5
  6. GDGFoz Codelab Android Android Studio • Pre-Requisitos • Windows, Mac

    OS ou Linux (GNOME ou KDE) • Ambiente de tempo de execução Java (JRE) 6 ou + • Kit de desenvolvimento Java (JDK) 7 ou + • MUITA memória • Mínimo 2GB • Recomendado 4GB (Minha recomendação: 8GB)
  7. GDGFoz Codelab Android Estrutura de um projeto Android • Gradle

    • Configuração do projeto • Gerenciamento de dependências/build • Java • Classes Java (contém toda a parte lógica do app) • Recursos • XMLs (Layout, Strings, Estilos, etc…) • Imagens (PNGs, Gifs, etc…) • Assets • Fontes, Bancos de dados pré-compilados, etc…
  8. GDGFoz Codelab Android Let’s Code!

  9. Java e res

  10. Java e res Meu app

  11. Java e res Meu app Classes

  12. Java e res Meu app Classes Layout

  13. Java e res Animações no formato .xml utilizada no seu

    app
  14. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app
  15. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app Todos os layout .xml do seu app (Podem existir outras pastas layouts)
  16. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app Todos os layout .xml do seu app (Podem existir outras pastas layouts) Todos os menus .xml utilizado no seu app
  17. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app Todos os layout .xml do seu app (Podem existir outras pastas layouts) Todos os menus .xml utilizado no seu app Somente o icon launcher do seu app. Não confunda essa pasta com as drawable.
  18. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app Todos os layout .xml do seu app (Podem existir outras pastas layouts) Todos os menus .xml utilizado no seu app Somente o icon launcher do seu app. Não confunda essa pasta com as drawable. Todos os textos, dimensões, cores, arrays .xml utilizados no seu app
  19. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app Todos os layout .xml do seu app (Podem existir outras pastas layouts) Todos os menus .xml utilizado no seu app Somente o icon launcher do seu app. Não confunda essa pasta com as drawable. Todos os textos, dimensões, cores, arrays .xml utilizados no seu app Declarar suas Activity, permissões, services e etc.
  20. GDGFoz Codelab Android AndroidManifest.xml

  21. GDGFoz Codelab Android AndroidManifest.xml • Arquivo que descreve o conteúdo

    do aplicativo • package: pacote java “default" para o App, também usado com ID único • Componentes presentes no App • Activities, Services, BroadcastReceivers, etc. • Permissões requeridas para o App • Features de HW/SW usadas pelo App • API Level mínimo suportado pelo App • Algumas informações são usadas pelo Google Play Store
  22. GDGFoz Codelab Android • View • Classe base para qualquer

    componente de UI • ViewGroup • Tipo especial de View que podem ter Views "filhas" • Gerenciadores de Layout • Mais comuns: • LinearLayout • RelativeLayout • FrameLayout • GridLayout Construção de Layout
  23. GDGFoz Codelab Android ViewGroup (Layout Managers) • LinearLayout • Organiza

    as Views de forma linear • android:orientation especifica a direção linear • “horizontal" ou “vertical” • android:layout_gravity pode ser usada • android:layout_weight • Atribui uma “importância" aos filhos • O espaço é dividido pela importância
  24. GDGFoz Codelab Android ViewGroup (Layout Managers) • RelativeLayout • Organiza

    as Views de forma relativa • Com relação ao pai ou a elas mesmas • android:layout_alignParent[Top | Bottom | Left | Right] • Relacionado ao pai (true/false) • android:layout_toLeftOf / layout_toRightOf • Relacionado a outro filho (@id/child_id) • android:layout_below / layout_above • Relacionado a outro filho (@id/child_id)
  25. GDGFoz Codelab Android Construção de Layout • XML (res/layout) •

    Define estrutura visual da interface • Separa Visão/Comportamento • Exemplo:
  26. GDGFoz Codelab Android Construção de Layout • Atributos • ID

    (android:id) • Definindo ID: android:id=“@+id/my_button" • Referenciando ID: “@id/my_button” (XML) ou R.id.my_button (Java) • LayoutParams • Define atributos relativos ao ViewGroup pai • android:layout_* • android:layout_width / android:layout_height obrigatórios • Valores possíveis: “wrap_content”, “match_parent”, valor fixo • outros atributos • android:layout_margin (ViewGroup) • android:layout_gravity (LinearLayout) • android:layout_weight (LinearLayout)
  27. GDGFoz Codelab Android Construção de Layout • LayoutParams • Obrigatórios

    • android:layout_width • android:layout_height • outros atributos • android:layout_margin (ViewGroup) • android:layout_gravity (LinearLayout) • android:layout_weight (LinearLayout) • Valores possíveis para altura/largura • “wrap_content” • “match_parent” • valor inteiro fixo
  28. GDGFoz Codelab Android Construção de Layout • Alguns atributos de

    View • android:background • Valores possíveis: #RRGGBB, @drawable/image, @color/my_color • Referenciando ID: “@id/my_button” (XML) ou R.id.my_button (Java) • android:onClick • Valor: nome do método que será chamado ao clicar na View. • Exemplo: • android:onClick=“viewClicked” • public void viewClicked(View v) • android:padding • paddingTop, paddingBottom, paddingLeft, paddingRight • Padding != Margin
  29. GDGFoz Codelab Android Ligação XML - Java • Activity •

    Componente que fornece uma tela para que o usuário possa interagir com a UI • Um app pode ter n Activities • Activity não é uma View, ela possui Views • Ligando uma Activity a um XML de layout • setContentView(R.layout.my_layout); • deve ser chamado no método onCreate()
  30. http://boomersurf.com/wp-content/uploads/2013/06/iphone-ca http://boomersurf.com/wp-content/ uploads/2013/06/iphone-camera-icon.jpg mera-ic http://www.thekirankumar.com/blog/wp-content/ uploads/2013/03/deadlock.jpg on.jpg GDGFoz Codelab Android

    Activity Lifecycle
  31. GDGFoz Codelab Android Let’s Code!

  32. GDGFoz Codelab Android RecyclerView

  33. GDGFoz Codelab Android RecyclerView

  34. GDGFoz Codelab Android RecyclerView <android.support.v7.widget.RecyclerView
 android:id="@+id/list_data"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 />

  35. GDGFoz Codelab Android RecyclerView.Adapter class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.ViewHolder> ViewHolder onCreateViewHolder(ViewGroup

    parent, int viewType) void onBindViewHolder(ViewHolder holder, final int position)
 int getItemCount()
 public class ViewHolder extends RecyclerView.ViewHolder
  36. GDGFoz Codelab Android CardView

  37. GDGFoz Codelab Android CardView <android.support.v7.widget.CardView
 android:id="@+id/card_view"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 >

  38. GDGFoz Codelab Android RecyclerView/CardView Grade
 compile 'com.android.support:recyclerview-v7:22.1.1'
 compile 'com.android.support:cardview-v7:22.1.1'

  39. GDGFoz Codelab Android Consumindo uma api Retrofit + Gson +

    Picasso
  40. GDGFoz Codelab Android GDGFoz Todo Api • todo.api.gdgfoz.org/api/v1

  41. GDGFoz Codelab Android Retrofit 
 Gradle
 
 compile 'com.squareup.retrofit:retrofit:1.9.0'


  42. GDGFoz Codelab Android Retrofit

  43. GDGFoz Codelab Android Retrofit

  44. GDGFoz Codelab Android Retrofit private static RestAdapter.LogLevel logLevel = RestAdapter.LogLevel.FULL;


    private static RestAdapter.Builder builder = new RestAdapter.Builder()
 .setEndpoint(Config.BASE_API)
 .setLogLevel(logLevel);
  45. GDGFoz Codelab Android Gson public class Category {
 
 @SerializedName("id")


    @Expose
 private Integer id;
 @SerializedName("category")
 @Expose
 private String category;
 @SerializedName("src")
 @Expose
 private String src; }
  46. GDGFoz Codelab Android Picasso Grade
 compile 'com.squareup.picasso:picasso:2.5.2'

  47. GDGFoz Codelab Android Picasso

  48. GDGFoz Codelab Android Links • Android - http://developer.android.com/intl/pt-br/index.html • Android

    Studio - http://developer.android.com/intl/pt-br/sdk/ index.html • VirtualBox - https://www.virtualbox.org/ • Genymotion - https://www.genymotion.com • JsonSchema2Pojo - http://www.jsonschema2pojo.org/
  49. Obrigado