Windows 10 Store, Android, iOS, OS X, Linux: recursos para migrar sua aplicação Delphi/C++ Builder e suportar TODAS as plataformas (parte 5)
Estamos na quinta parte desta coletânea de artigos e tutoriais para migração de aplicações Delphi e C++ Builder, e hoje vamos falar sobre componentes de terceiros. Caso não os tenha encontrado, os artigos anteriores podem ser encontrados nos seguintes links:
- Introdução (Parte 1)
- Parte 2 (Unicode)
- Parte 3 (64 bit)
- Parte 4 (Migração BDE)
Componentes e bibliotecas de terceiros são sempre um assunto polêmico.
Em muitas ocasiões, são a salvação quando precisamos de uma solução rápida para algo não contemplado nativamente pelo produto, ou ainda que vai lhe exigir um bom tempo de codificação, do qual você não dispõe.
Por outro lado, podem render uma boa dor de cabeça se não os tratamos de maneira adequada, com todo o gerenciamento e controle que você aplica ao seu próprio código fonte.
Eis uma lista – incompleta – dos problemas mais comuns relacionados a sua utilização, sejam componentes comerciais ou Open Source:
- o componente acaba sendo descontinuado por qualquer razão, e você não tem o código fonte dos mesmos
- o fornecedor tarda em disponibilizar uma versão atualizada, e isso está retardando seu processo de migração para uma versão mais recente do compilador
- o componente é ótimo em uma determinada plataforma, mas não possui uma solução similar para suportar múltiplas plataformas
Ainda assim, os benefícios em se utilizar algumas soluções especializadas em seu projeto, o tempo salvo em codificação, a certeza de estar utilizando algo já amplamente provado, e a satisfação de seu cliente com a solução de alto nível e extremamente profissional que você está apresentando, em grande parte das vezes, não tem preço.
Então, se sua decisão é por utilizar componentes externos, tenho aqui algumas sugestões para você – novamente uma lista incompleta:
- Revise uma vez mais os componentes e bibliotecas nativas, e tenha certeza que o framework nativo não cobre suas necessidades
- Revise uma vez mais se você (ou seu cliente) realmente necessita do recurso em questão. Será que ele (cliente) realmente espera este recurso, ou você achou aquele Label piscante que gira 360 graus a coisa mais incrível do mundo?
- Sempre que possível, obtenha o código-fonte do componente, e o versione em seu repositório, juntamente com o projeto – mesmo que o pacote seja de código aberto e encontre-se público no Github ou similar. Você nunca sabe quando o “dono” do projeto vai mudar de ideia.
- Optando por utilizar um componente sem o código-fonte, tenha certeza tratar-se de um fornecedor consolidado e conhecido no mercado. Observe para quantas versões do produto ele já disponibilizou o componente, e qual seu compromisso com novas releases. Pergunte pelo seu roadmap.
- Fornecedores de componentes para múltiplas plataformas costumam ser bastante estáveis.
- Parcimônia é a palavra chave ao pensar em componentes de terceiros. Lembre-se que todo exagero é ruim, praticamente em todas as áreas da vida e da programação
Encontrando seus Componentes
Num processo de migração, a etapa zero é tomar a nova versão da IDE, e instalar todos os componente utilizados na versão atual de seu projeto.
A grande novidade nesta área é o GetIT. Trata-se de um gerenciador de pacotes integrado na IDE (lançado a partir do XE8), o qual disponibiliza e instala automaticamente uma vasta quantidade de componentes, comerciais e de código aberto.
Mas e seu componente não pode ser encontrado no GetIt? A lista de componentes disponíveis é boa, mas obviamente não compreende todo o universo de possibilidades.
Para este cenário, além do bom e velho Google… existem alguns bons repositórios disponíveis:
- https://github.com/Fr0sT-Brutal/awesome-delphi
- https://delphi.zeef.com/anton.frost
- http://torry.net/
- https://github.com/search?utf8=%E2%9C%93&q=delphi
- https://sourceforge.net/directory/os:mac/?q=delphi%20components
Se você deseja contribuir com esta lista, envie sua sugestão, seja sobre um único componente ou um repositório, provavelmente será útil para outros desenvolvedores!


Comments
-
Please login first in order for you to submit comments