XML e a separação da UI com a Lógica

Estava lendo um livro novo, chamado Android em Ação, e nele encontrei um tópico entitulado “XML versus layouts programáticos”, onde os autores discutem a vantagem do uso do XML para criar layouts, algo que é questionado por muitos.

Para os autores, layouts programáticos são bem familiares para os desenvolvedores de outras plataformas móveis, mas que deve ser evitado. Eles afirmam que layouts em XML tendem a ser mais fáceis para ler, entender e manter. e também comentam que o XML impõem facilmente a separação da IU do seu aplicativo e de sua lógica.

Pergunto-me até que ponto há essa separação, já que nem todo componente da View é estático e se manterá apenas no XML, mas há aqueles que necessitarão ser referenciadas no código Java e precisarão ser manipulados, mesmo em meio a parte do código que lide com a lógica.

Esse assunto me leva a discussão MVC x MVP. Particularmente, não consigo ver o XML como parte da camada View e a Activity como parte da camada Controller. O XML acaba não sendo auto-suficiente, ele é incapaz de realizar manipulações no visual que no final serão encarregadas a Activity. Além disso, a Activity acaba lidando não só com um único XML, mas com alguns outros, como por exemplo o XML referente ao menu.

Sim, o XML impõem da separação da IU do seu aplicativo e de sua lógica, mas em parte, não o suficiente. Acredito que o uso da Activity como parte da View complementa de forma suficiente a separação iniciada pela ideia do uso de XML dita pelos autores.

Ainda apoio a ideia de termos a Activity + XML como View. XML fácil de ser lido, mais manutenível como dito pelos autores, contendo a composição do visual, e a Activity realizando as ações e manipulações necessárias.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s