Autores: Jones Granatyr e Jean Paul Barddal
O Delphi sempre foi muito eficaz para o desenvolvimento de aplicativos desktop. Nesse tipo de software, a preocupação dos desenvolvedores com o redimensionamento dos elementos, e a interface gráfica num geral, é menor quando comparada com dispositivos móveis. Tal fato se dá principalmente pela maior capacidade de memória, processamento e tamanho de tela dos desktops, quando comparados com dispositivos móveis.
O principal componente para listagem de dados utilizado pela maioria dos desenvolvedores Delphi tem sido o DBGrid, que está geralmente vinculado a um DataSource. Um controle desse tipo permite exibir informações no formato de linhas e colunas e está presente em grande parte das aplicações desktop Delphi que lidam com bancos de dados, principalmente em telas de consulta e seleção de dados. No entanto, com o surgimento das novas versões do IDE e também com a mudança dos paradigmas de programação (BOX 1), novos componentes e formas de desenvolver as interfaces gráficas foram surgindo.
BOX 1. Paradigmas de desenvolvimento
Um paradigma define a forma como a estrutura e desenvolvimento de um programa é visualizada e considerada pelo desenvolvedor. No contexto desse artigo, os paradigmas considerados dizem respeito aos diferentes tipos de aplicações desenvolvidos ao longo dos anos, que antes se resumiam a softwares desktop (de console ou de janelas/formulários) e atualmente se estende à web e aos variados dispositivos móveis. Para cada demanda, alguns padrões de desenvolvimento e interface são utilizados para oferecer a melhor experiência de uso, e podem variar bastante de acordo com a plataforma-alvo da aplicação.
A primeira mudança nesses paradigmas de programação ocorreu quando houve um grande crescimento e demanda por softwares web, fazendo com que as interfaces e a maneira de programar dos desenvolvedores tivesse de ser adaptada. Por exemplo, para construir uma listagem de registros em uma aplicação que funciona em um navegador web, novas técnicas tiveram que ser levadas em consideração e novos componentes tiveram de ser criados para se obter o mesmo efeito de um DBGrid, por exemplo. Enquanto em aplicações desktop normalmente o usuário pode visualizar todos os registros de uma lista apenas rolando as linhas do grid para baixo e para cima, em ambientes web esse scroll nem sempre é possível ou adequado. Para permitir a navegação entre os registros nesse caso, recursos de paginação são aplicados, dividindo os registros em conjuntos menores.
A mudança seguinte na forma de programar se deu com o aumento da demanda por sistemas para smartphones e tablets, pois a maneira de construir uma aplicação web, na maioria das vezes, não é adequada para um aplicativo móvel. Por exemplo, o formato de listagem de registros em sistemas web, utilizando tabelas em HTML geradas no servidor, deve ser substituído por novas técnicas, como páginas HTML com design responsivo ou aplicativos nativos.
Dispositivos móveis apresentam diversas limitações, às quais os programadores devem estar atentos durante o desenvolvimento de aplicativos. Por exemplo, nesse tipo de ambiente normalmente se tem memória limitada e telas pequenas, o que torna inviável utilizar uma grade de dados com muitos campos, como é feito em softwares desktop ou web. A geração desse tipo de tabela seria problemática pela dificuldade de visualização na tela, mas também como pelo demasiado uso de memória. Além disso, as telas para cadastro também devem possuir poucos campos, e quando apresentarem muitos dados, sua divisão é necessária. Uma abordagem para divisão seria a quebra de uma tela em várias guias em um TabControl, por exemplo, como veremos mais adiante na Figura 2.
Outra importante limitação que os desenvolvedores devem ter em mente é que, na maioria das vezes, celulares e tablets não possuem um teclado como um computador comum, portanto, dependendo das dimensões do aparelho, digitar grandes textos se torna uma tarefa custosa e importuna.
Dentro desse contexto, os controles de listagem em aplicações móveis são de suma importância, pois elas desempenham um papel fundamental para a visualização dos dados. Alguns exemplos são listas de contatos, configurações, playlists, bookmarks, álbum de fotos, notícias, mensagens, dentre outros. Controles desse tipo possuem várias funcionalidades, como apresentar detalhes do texto, realizar agrupamentos, adicionar imagens, pesquisas automáticas e até mesmo a incorporação de outros componentes, tais como botões, checkboxes, dentre outros.
No Delphi, o FireMonkey oferece dois componentes principais para o gerenciamento de listas, que são o ListBox e o ListView, cujas principais diferenças serão apresentadas nas próximas seções desse artigo, bem como em que situações cada um deve ser utilizado.
ListBox e ListView
O ListBox é o componente comumente utilizado para janelas de configurações, pois permite a definição de listas simples e com itens fixos ...