Workshop de Desenvolvimento Android

52
Workshop de Desenvolvimento Android Autores: Gabriel Moro e Gean Trindade Orientador: Prof. Jean Cheiran

Transcript of Workshop de Desenvolvimento Android

Workshop de Desenvolvimento Android

Autores: Gabriel Moro e Gean TrindadeOrientador: Prof. Jean Cheiran

Parte I

Cronograma

I. Introdução a linguagem de Programação JavaII. Abordagem geral sobre Programação Orientada a

ObjetosIII. Introdução ao Sistema AndroidIV. Modelagem e Projeto de Software apoiado pelos

modelos da UMLV. Instalação do ambiente para desenvolvimento

VI. Prática de exercícios básicos no ambiente de desenvolvimento

I. Introdução a linguagem de Programação Java

➔ Breve HistóricoA linguagem de programação Java foi

desenvolvida pela Sun Microsystems na década de 90, afim de resolver algumas problemáticas encontradas nas linguagens de programação da época, como: ponteiros, gerenciamento de memória, organização de código, escassez de bibliotecas, problemas de manutenção de código, reescrita de alguns módulos do sistema de acordo com o sistema operacional e a necessidade de recompilação de código de acordo com a arquitetura utilizada [1].

I. Introdução a linguagem de Programação Java

➔ Características da Linguagem JavaI. Orientação a Objetos;

II. Gestão de Memória Automatizada (Garbaje Collector);

III. Multiplataforma;IV. Utilizada para o desenvolvimento de aplicativos

web, desktop e móveis;V. Vasta quantidade de bibliotecas disponíveis.

I. Introdução a linguagem de Programação Java

➔ Tipos de VariáveisTipo Tamanho (bit) Wrapper

char 16 Character

byte 8 Byte

short 16 Short

int 32 Integer

long 64 Long

float 32 Float

double 64 Double

boolean 1 Boolean

I. Introdução a linguagem de Programação Java

Figura: Demonstração da Plataforma Java [3].

I. Introdução a linguagem de Programação Java

➔ Ambiente de ExecuçãoJava Runtime Environment (JRE) é utilizado

para a execução de aplicativos Java. Contém a máquina virtual e algumas bibliotecas.

Java Development Kit (JDK) é utilizado por nós desenvolvedores, através desse pacote é possível compilar os códigos escritos na linguagem Java.

Você pode efetuar o download de ambas ferramentas pelo site http://www.oracle.com/technetwork/java.

I. Introdução a linguagem de Programação Java

● Exemplo de código em Java:

II. Abordagem geral sobre Programação Orientada a Objetos

Através da orientação a objetos é possível abstrair características do mundo real e mapeá-las como objetos no mundo computacional. Esses objetos possuem estados e comportamentos, podendo se relacionar com outros objetos.

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Principais TópicosI. Classes: Estrutura genérica que “identifica” um objeto,

é um escopo para a construção de objetos;II. Objetos: Instância da classe, indivíduo criado a partir

da classe, herdando sua essência;A. Estado: O estado de um objeto são seus

atributos;B. Comportamento: O comportamento de um objeto

são seus métodos.

II. Abordagem geral sobre Programação Orientada a Objetos

● Exemplo de código Orientado a Objetos em Java:

II. Abordagem geral sobre Programação Orientada a Objetos

● Exemplo de código Orientado a Objetos em Java:

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Principais TópicosIII. Relacionamentos: Capacidade que um objeto possui

para utilizar serviços de outros objetos.1. Herança: Relação pela qual um objeto herda de

outro objeto (pai) seu estado e comportamento;2. Associação: Relação utilizada para descrever a

troca de serviços e recursos entre objetos;a) Agregação: Quando um objeto agrega outros objetos em seu

estado;

b) Composição: Quando um objeto é composto por outros objetos, não podendo existir sem eles.

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Principais Tópicos3. Dependência: Quando um objeto “x” realiza tal ação

e a mesma utiliza recursos do objeto “y”. Nisso, o objeto “x” não os descreve em seu estado, pois, apenas uma de suas ações utilizada dado recurso.

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Mundo real

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Abstração para o mundo computacional

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Codificação Exemplo

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Codificação Exemplo

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Mais alguns conceitos IV. Sobrecarga: Quando um objeto possui mais de um

método com o mesmo nome, mas diferentes assinaturas;

V. Sobrescrita: Quando um objeto especializado reimplementa o método herdado de acordo com as suas necessidades.

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Sobrecarga

II. Abordagem geral sobre Programação Orientada a Objetos

➔ Sobrescrita

III. Introdução ao Sistema Android

➔ Breve HistóricoO sistema Android foi desenvolvido

primeiramente pela empresa Android Inc. (atualmente comprada pela Google) no ano de 2005 e lançado em 2007 [3].

A inovação Android é apoiada por um grupo denomidado Open Handset Alliance (OHA) que é composto pelos principais fabricantes de dispositivos móveis, operadoras de telefonia, desenvolvedores de componentes de hardware, software, entre outros [3].

III. Introdução ao Sistema Android

Diferentemente de um sistema operacional desktop, o Android é um conjunto de camadas desenvolvido sobre kernel linux e utilizado principalmente em dispositivos móveis [3].

III. Introdução ao Sistema Android

➔ ArquiteturaA arquitetura do sistema operacional Android é divida em camadas, onde cada parte é responsável por gerenciar os seus respectivos processos. (Lecheta, 2009).

III. Introdução ao Sistema Android

➔ Arquitetura

Figura: Demonstração da Arquitetura Android [3].

III. Introdução ao Sistema Android

➔ Arquitetura● Camada de Aplicações: Onde se encontram todos os aplicativos

executados sobre o Sistema Operacional (ex: SMS, Agenda…).

● Camada de Bibliotecas: Onde se encontram as bibliotecas utilizadas pelo sistema (ex: bibliotecas gráficas 2D/3D, aceleradores de hardware…).

● Camada de Runtime: Onde é instanciada a máquina virtual Dalvik que é criada para cada aplicação que o Android executada.

● Camada do Kernel: Onde se localiza o núcleo do Sistema Operacional. É nessa camada que acontece o gerenciamento de processos, memória, threads entre outras gerencias.

III. Introdução ao Sistema Android

➔ Elementos de aplicação importantes do Android:

● Activities

● Services

● Content Providers

III. Introdução ao Sistema Android

➔ ActivitiesÉ uma classe que gerencia a interface com o usuário, e todo o aplicativo começa com uma Activity. Apesar da classe tratar da interface (View), ela realiza um papel de controladora ao mesmo tempo, então podemos dizer que baseando-se na arquitetura MVC, as Activities são View e Controller ao mesmo tempo.

III. Introdução ao Sistema Android

➔ Ciclo de vida das Activities:

Figura: Demonstração do ciclo de vida das Activities[3].

III. Introdução ao Sistema Android

➔ ServicesDiferente das Activities, o usuário não vê e nem interage diretamente. São serviços/processos/tarefas que rodam em background.

III. Introdução ao Sistema Android

➔ Content ProvidersPermite o compartilhamento de dados entre aplicativos. Permite acessar os dados de um aplicativo externo (Agenda de contatos, mensagens…).

III. Introdução ao Sistema Android

➔ AndroidManifest.xmlÉ o principal arquivo de configuração da aplicação Android. Nele estão descritos os elementos da aplicação como as Activities, Intents, e a classe principal que será executada.

IV. Modelagem e Projeto de Software apoiado pelos modelos da UML

➔ Unified Modeling Language (UML)Linguagem de modelagem que auxilia na criação de artefatos de software através de modelos disponibilizados.

IV. Modelagem e Projeto de Software apoiado pelos modelos da UML

➔ Unified Modeling Language (UML)Linguagem de modelagem que auxilia na criação de artefatos de software através de modelos disponibilizados.

Entre eles estão:● Diagrama de Casos de Uso● Diagrama de Classe● Diagrama de Atividades● Diagrama de Sequência

IV. Modelagem e Projeto de Software apoiado pelos modelos da UML

➔ Unified Modeling Language (UML)Linguagem de modelagem que auxilia na criação de artefatos de software através de modelos disponibilizados.

Entre eles estão:● Diagrama de Casos de Uso● Diagrama de Classe● Diagrama de Atividades● Diagrama de Sequência

V. Instalação do ambiente para desenvolvimento

Site para download: http://developer.android.com/sdk/index.htmlhttp://developer.android.com/sdk/installing/studio.html

Parte 2

Cronograma

I. Exercícios PráticosConclusão dos temas abordados no WorkshopReferências Indicadas e Utilizadas

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;➔ Modifique a interface console por uma interface

android;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;➔ Modifique a interface console por uma interface

android;

VI. Prática de exercícios básicos no ambiente de desenvolvimento

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;➔ Modifique a interface console por uma interface

android;➔ Aplique a arquitetura MVC.

VI. Prática de exercícios básicos no ambiente de desenvolvimento

1- Vamos desenvolver um aplicativo calculadora, para isso vamos seguir os seguintes passos:➔ Crie um diagrama de classes, para representar uma

solução de calculadora;➔ Desenvolva um programa java, implementando o

projeto construído, você pode utilizar interface console;➔ Modifique a interface console por uma interface

android;➔ Aplique a arquitetura MVC.

VI. Prática de exercícios básicos no ambiente de desenvolvimento

Aplicação disponível no repositório BitBucket:

https://[email protected]/tido4410/calculadoraandroid_sacta2014_un

ipampa.git

Conclusão dos temas abordados no Workshop

● Opiniões sobre o que foi abordado

● Interesse no desenvolvimento voltado para dispositivos móveis

● Trabalhos futuros

Referências Indicadas e Utilizadas

[1] Apostila Java e Orientação a Objetos - Caelum. Disponível em: http://www.caelum.com.br/apostila-java-orientacao-objetos/. Acessado: 11, jun.

[2] Curso de Programação Online. Disponível em: http://www.xti.com.br. Acesso: 11, jun.

[3] Imagem demonstrativa da plataforma Java. Disponível em: http://slideplayer.com.br/slide/40168/. Acesso: 11, jun.

[4] Introduções necessárias para o desenvolvimento android. Disponível em: http://bolivaramancio.com.br/introducoes-necessarias-basica-plataforma-android-2/. Acesso: 11, jun.

[5] LECHETA, Ricardo. Google Android, 2009.

[6] Android. Disponível em: http://pt.slideshare.net/AnaDoloresLimaDias/android-9149956. Acesso: 11, jun.