Please enable JavaScript.
Coggle requires JavaScript to display documents.
Arquitetura Avançada e Integração Mobile O que explicar - Coggle Diagram
Arquitetura Avançada e Integração Mobile
O que explicar
Partes Fundamentais
Fundamentos e ciclo de vida
Persistência local
Processamento assíncrono
Conectividade e multiplataforma
O que seria o ciclo de vida? App delivery: Abrir, pausar. voltar, reiniciar...
Persistência Local? Carrinho e preferências
Processamento Assíncrono? Busca de Cardápio, pedido, atualizações de Pedido
Conectividade: Servidor, autenticação, notificações
.class(Java/Kotlin) -> Ferramenta de Conversão/Otimização (dx) -> gerando .dex, que junto com os recursos de imagens e XML é empacotado e vira .apk.
Java/Kotlin geram bytecode intermediário
bytecode é convertido em formato executável Android
recursos visuais entram no pacote final
O Android não usa uma JVM padrão, mas uma máquina virtual otimizada para dispositivos com memória restrita, baseada em Dalvik/ART.
O coração da UI: ciclo de vida da Activity
onRestart() → retorno após parada
onDestroy() → destruição da instância
onStop() → tela deixa de ser visível
onPause() → outra interface começa a sobrepor
onResume() → tela pronta para interação
onStart() → tela se torna visível
onCreate() → criação inicial
Caso: formulário de cadastro
O usuário começa a preencher um formulário. Recebe uma ligação. O app pausa. Se o estado não foi salvo adequadamente, os dados digitados podem se perder.
Rotação de tela
O usuário gira o aparelho. A Activity pode ser recriada. Se o contador, o texto ou os dados temporários não forem preservados, o app aparenta “bugar”.
Você pode conectar com Flutter dizendo que, embora a abstração seja diferente, o problema de ciclo de vida continua existindo:
perda de estado
rebuilds
retomada de tela
sincronização com recursos externos
Arquitetura de persistência: padrão DAO e SQLite
UI (Activity/Fragment)
DAO
DAO, Data Access Object, é um padrão que centraliza:
CRUD
regras de acesso a dados
abstração do banco
encapsulamento de consultas
baixo acoplamento
manutenção facilitada
reuso de lógica de persistência
melhor testabilidade
separação de responsabilidades
Banco de Dados Local (SQLite)
Quando colocamos SQL direto na tela, deixamos de fazer engenharia e começamos a improvisar. O DAO é um mecanismo de disciplina arquitetural.”
Ecossistema compartilhado: Content Providers
Quando isso é usado
acessar contatos
acessar galeria
acessar agenda
compartilhar arquivos e dados estruturados
integrar apps do ecossistema
Conceitos importantes
URI content://
operações CRUD
permissões
controle de acesso
mediação do sistema operacional
Exemplo prático
Um app de CRM pode consultar contatos do aparelho para preencher rapidamente clientes ou responsáveis.
Processamento invisível: Services
Started Service
Indicado quando:
download deve continuar
sincronização deve persistir
tarefa longa não depende da tela atual
Bound Service
Indicado quando:
um componente cliente se conecta ao serviço
a vida do serviço depende da conexão com esse cliente
Ponto crítico
Service não significa automaticamente execução paralela.Se a tarefa bloquear a thread principal, a UI pode travar.
Aplicações práticas
reprodução de música
upload de arquivos
sincronização de dados
rastreamento de localização
processamento de logs
monitoramento contínuo
Case
App de delivery
O acompanhamento contínuo da localização do entregador e atualização de status pode exigir processamento em segundo plano.
Ponte com Flutter
Em Flutter, o aluno pode comparar com:
isolates
plugins de background
streams de atualização
execução assíncrona
Reatividade e notificações: Broadcast Receivers
Aplicações práticas
app de segurança que detecta boot
app de backup que reage à conexão Wi-Fi
app de notificação institucional
app financeiro que reage à chegada de confirmação externa
app de lembrete que cria aviso ao receber um evento específico
App corporativo de campo
Quando o dispositivo recupera conexão, um receiver pode disparar sincronização de ordens pendentes.
Matriz de síntese: os 4 pilares do desenvolvimento mobile
Activity
interação direta com usuário
possui UI
não é o componente certo para tarefas longas de background
Service
processamentos prolongados
sem UI
pode rodar em background
Broadcast Receiver
escuta eventos
sem UI
ações rápidas e reativas
Content Provider
compartilhamento de dados
sem UI
interface de acesso estruturado
Aplicação didática
Faça perguntas como:
“Onde colocamos uma tela de login?” → Activity/Screen
“Onde colocamos sincronização longa?” → Service
“Quem escuta boot concluído?” → Receiver
“Quem expõe contatos?” → Content Provider
Case integrador
App de ordens de serviço
Activity: formulário de atendimento
Service: sincronização com servidor
Broadcast Receiver: detectar retorno da internet
Content Provider: eventual integração com contatos ou arquivos do sistema
Integração global: serviços REST e JSON
REST
É um estilo arquitetural de comunicação entre cliente e servidor.
Verbo por verbo
GET → buscar dados
POST → criar/enviar
PUT → atualizar
DELETE → remover
JSON
É o formato de troca de dados mais comum em apps móveis.
O app móvel é cliente de serviços.Ele não vive apenas de banco local.Ele:
consulta
envia
sincroniza
autentica
recebe atualizações
Aplicações práticas
app acadêmico consultando notas
delivery buscando cardápio
banco consultando extrato
biblioteca consultando acervo
app meteorológico buscando clima
Exemplo prático: consumindo API do Twitter
Fluxo lógico
usuário faz ação
app chama camada de rede
requisição ocorre em background
resposta JSON chega
dados são convertidos em objetos
UI é atualizada
Aplicações reais
lista de notícias
feed social
catálogo de produtos
histórico de pedidos
horários acadêmicos
Case
App de notícias
Ao abrir o app:
ele busca manchetes
faz parse da resposta
exibe a lista
permite abrir detalhes
Ponte com Flutter
Essa lógica é idêntica conceitualmente em Flutter:
http
Future
async/await
model classes
atualização da interface reativa