Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre a arquitetura

Boa noite! Eu fiquei pensando enquanto via as modificações necessárias no código para diferenciar quando o aluno está sendo criado ou editado e vi que foram precisas várias e várias alterações para realizar a implementação. Seria possível, ao invés de utilizar a mesma classe FormularioAlunoActivity, que fosse criado duas classes, algo como FormularioCriarAlunoActivity e FormularioEditarAlunoActivity, ambos utilizando a mesma View no setContentView() do onCreate(), porém com suas implementações de edição e criação separadas em suas respectivas classes. Creio que assim os códigos ficariam muito mais legíveis e fáceis de se dar manutenção (se fosse o caso), já que suas implementações estariam separadas especificamente em suas classes/activities.

Existe algum motivo para que isso não foi feito? Ou não é possível usar a mesma View da activity em duas classes diferentes?

1 resposta
solução!

Oi Hudson, tudo bem?

Ótimo ponto levantado, o motivo de manter essa abordagem foi pensando em reaproveitamento de layout e código. Caso criássemos um uma nova Activity com o mesmo layout, o código para criar um aluno seria exatamente o mesmo do outro formulário.

Em outras palavras, é possível realizar a abordagem que comentou, pois os layouts não são vinculados com as Activities, logo, você pode usar o mesmo layout em qualquer Activity. O detalhe é que teria que ou reescrever o mesmo código comum em ambas as classes ou criar uma outra classe que receberia, por exemplo, as views e faria os comportamentos comuns entre elas.

Nesse curso inicial que foca mais em fundamentos do Android Framework não abordamos muito sobre assuntos mais avançados, como arquitetura e etc. Mas temos cursos mais avançados que abordam.

Sendo assim, sugiro que faça esses cursos de fundamentos focando bastante no Android como framework e o seu funcionamento, então, nos demais cursos você pode conferir como é possível melhorar a abordagem atual.

Claro, caso tiver dúvidas sobre as abordagens dos cursos mais avançados, fique à vontade para entrar em contato com a gente :)