Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Android: Por onde começar?

Android: Por onde começar?

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/