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

Android: Por onde começar?

Android: Por onde começar?

Avatar for Houssan A. Hijazi

Houssan A. Hijazi

December 22, 2015
Tweet

More Decks by Houssan A. Hijazi

Other Decks in Programming

Transcript

  1. 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.
  2. GDGFoz Codelab Android Codelab • Android SDK • Android Studio

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

    • “Fork” do IntelliJ IDEA (Jetbrains) • Versão estável atual: 1.5
  4. 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)
  5. 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…
  6. Java e res Animações no formato .xml utilizada no seu

    app Todos os ícones e imagens utilizada no seu app
  7. 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)
  8. 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
  9. 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.
  10. 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
  11. 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.
  12. 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
  13. 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
  14. 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
  15. 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)
  16. GDGFoz Codelab Android Construção de Layout • XML (res/layout) •

    Define estrutura visual da interface • Separa Visão/Comportamento • Exemplo:
  17. 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)
  18. 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
  19. 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
  20. 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()
  21. 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
  22. 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);
  23. 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; }
  24. 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/