No mundo do desenvolvimento de software, a apresentação visual não é apenas um complemento; é uma parte essencial da experiência do usuário. Aqui entra o Skia, uma biblioteca gráfica renomada que alimenta alguns dos sistemas e aplicações mais populares do mundo, como Google Chrome e Android. Para desenvolvedores Delphi, o desafio sempre foi como aproveitar essa poderosa biblioteca em seus projetos. É aqui que o Skia4Delphi se torna um game-changer, oferecendo uma ponte robusta para integrar as capacidades gráficas do Skia em aplicações Delphi.
A origem do Skia4Delphi
O Skia4Delphi é o resultado direto da necessidade de trazer capacidades gráficas avançadas e desempenho de renderização superior para o ambiente de desenvolvimento Delphi. Este projeto ambicioso pode ser atribuído à visão e dedicação de Paulo César e Vinicius Felipe, dois profissionais com uma paixão profunda por melhorar a experiência de desenvolvimento em Delphi. Reconhecendo a lacuna nas capacidades gráficas disponíveis para desenvolvedores Delphi e a potência do mecanismo Skia, eles embarcaram na jornada de integrar o Skia ao Delphi, facilitando assim a criação de aplicações mais ricas e visuais.
Por que usar o Skia4Delphi?
O Skia4Delphi não é apenas uma ponte para integrar um poderoso mecanismo gráfico ao ambiente Delphi; é uma transformação completa da forma como os desenvolvedores podem abordar gráficos e renderização em suas aplicações. As vantagens de adotar o Skia4Delphi são vastas e impactam significativamente a qualidade, o desempenho e a eficiência do desenvolvimento. Aqui estão alguns dos benefícios mais notáveis:
Desempenho superior e fluidez em aplicações Android/iOS
Para aplicações Android/iOS desenvolvidas em Delphi, o Skia4Delphi oferece uma melhoria notável na fluidez e no desempenho. A otimização específica para dispositivos Android/iOS significa que os aplicativos não só rodam mais suavemente, mas também respondem mais rapidamente às interações dos usuários, um aspecto crucial para manter os usuários engajados.
Além substituímos o motor do Firemonkey para o do Skia quando habilitamos ele em nossos aplicativos, gerando um ganho expressivo de velocidades nas aplicações.
Qualidade visual aprimorada
A integração com o Skia permite uma renderização de objetos com qualidade superior, reduzindo o serrilhado em retângulos, círculos e outras formas geométricas. Isso é particularmente importante para aplicações que necessitam de uma apresentação visual impecável, garantindo que os elementos gráficos apareçam nítidos e claros em qualquer tamanho ou resolução de tela.
Funcionalidades Avançadas
O Skia4Delphi desbloqueia uma série de funcionalidades avançadas que antes eram desafiadoras ou impossíveis de implementar em Delphi, incluindo:
- Carregamento de Arquivos SVG: Isso permite a criação de animações ricas e dinâmicas que podem elevar a experiência do usuário a um novo patamar. Utilizar SVGs significa que os gráficos são escaláveis sem perda de qualidade, perfeitos para uma variedade de resoluções de tela.
- Criação de Arquivos PDF: Com o Skia4Delphi, os desenvolvedores têm a capacidade de gerar documentos PDF diretamente de suas aplicações. Isso é ideal para relatórios, recibos, e qualquer outra funcionalidade que requeira a exportação de documentos.
Também é possível carregar inúmeros tipos de arquivos na aplicação que antes não eram possíveis. Veja:
Redução de Código e Complexidade
Além das melhorias visuais e de desempenho, o Skia4Delphi também ajuda a reduzir a quantidade de código necessário para realizar operações gráficas complexas. Isso simplifica o processo de desenvolvimento, permitindo que os desenvolvedores se concentrem mais na lógica do aplicativo e menos nos detalhes técnicos da renderização gráfica.
Compatibilidade e Flexibilidade
Uma das grandes vantagens do Skia4Delphi é sua compatibilidade e flexibilidade. Desenvolvedores podem agora criar aplicações que são visualmente consistentes e performáticas em várias plataformas, aproveitando o mesmo conjunto de ferramentas e capacidades que o Skia oferece.
Funcionalidades do Skia4Delphi
O Skia4Delphi se destaca por oferecer uma ampla gama de funcionalidades, incluindo:
- Canvas 2D e Layout de Texto: Ferramentas poderosas para desenho 2D e manipulação avançada de texto.
- Rasterização de software em CPU: Garante que gráficos complexos sejam renderizados de forma eficiente, mesmo sem hardware gráfico especializado.
- Renderização acelerada por GPU: Utiliza a capacidade da GPU para renderização rápida e suave, crucial para aplicações de alta performance.
- Suporte a Idiomas de Direita para Esquerda (RTL): Essencial para aplicações globais que precisam de suporte a idiomas como árabe e hebraico.
Substituição do Renderizador FMX
Com o Skia4Delphi, é possível substituir o motor gráfico do FireMonkey, permitindo que as aplicações Delphi FMX tirem total proveito das capacidades avançadas do Skia. Isso não só melhora a qualidade e o desempenho da renderização, mas também abre novas possibilidades para o desenvolvimento de interfaces de usuário ricas e visualmente impressionantes em plataformas cruzadas.
Benchmark
Para evidenciar a eficiência e a performance do Skia4Delphi, foram executados diversos testes de desempenho em uma ampla gama de dispositivos. Estes testes foram cuidadosamente projetados para simular cenários reais de uso, destacando como o Skia4Delphi pode otimizar a renderização gráfica em aplicações Delphi. Abaixo, apresentamos uma tabela que resume alguns desses resultados, ilustrando o impacto significativo que o Skia4Delphi tem na melhoria da performance em diferentes ambientes e configurações de hardware.
**Fonte: informações extraídas do GitHub do Skia4Delphi
Skia Canvas: Potencialize sua renderização gráfica
O Skia4Delphi é uma ferramenta poderosa que coloca capacidades gráficas avançadas ao alcance dos desenvolvedores Delphi. Com o Skia Canvas, você obtém acesso direto a uma ampla gama de funcionalidades de desenho e renderização, permitindo a criação de gráficos 2D complexos, manipulação de imagens, e efeitos visuais sofisticados com facilidade e eficiência. Esta liberdade para desenhar diretamente sobre o canvas abre novas possibilidades para o design de UI/UX, permitindo que desenvolvedores criem interfaces de usuário dinâmicas, visualmente ricas e altamente interativas. Seja melhorando a estética de uma aplicação ou criando visualizações de dados intricadas, o Skia Canvas é a chave para elevar seus projetos a um novo nível de profissionalismo e polimento.
Bitmaps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
uses System.Skia, FMX.Skia.Canvas; begin var LBitmap := TBitmap.Create(300, 300); try LBitmap.Canvas.BeginScene; try var LCanvas: ISkCanvas := TSkCanvasCustom(LBitmap.Canvas).Canvas; // Draw using Skia canvas (LCanvas) directly to unlock new features... finally LBitmap.Canvas.EndScene; end; finally LBitmap.Free; end; end; |
Controles no Form
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
type TMyControl = class(TControl) protected procedure Paint; override; end; implementation uses System.Skia, FMX.Skia.Canvas; procedure TMyControl.Paint; begin var LCanvas: ISkCanvas := TSkCanvasCustom(Canvas).Canvas; // Draw using Skia canvas (LCanvas) directly to unlock new features... end; |
Right-to-Left
O suporte a texto da direita para a esquerda (RTL) é uma funcionalidade crucial para aplicações globais, permitindo que desenvolvedores criem softwares acessíveis para idiomas como árabe e hebraico. A seção “Right-to-Left” enfatiza que, ao utilizar o renderizador do Skia, as aplicações passam a suportar naturalmente a renderização de texto RTL, garantindo uma experiência de usuário inclusiva e global.
Custom Fonts: Expressão e identidade visual
O uso de fontes personalizadas com o Skia4Delphi não é apenas uma questão de estilo, mas uma extensão da identidade visual da sua aplicação. Ao permitir a incorporação de custom fonts em qualquer controle FMX, em todas as plataformas, o Skia4Delphi garante que você possa manter uma aparência consistente e alinhada com a marca de sua aplicação, independentemente do dispositivo ou sistema operacional. Esta funcionalidade abre portas para uma personalização sem precedentes e uma expressão visual autêntica, permitindo que designers e desenvolvedores transmitam o caráter único de suas aplicações através da tipografia. Além disso, a integração de fontes personalizadas é simplificada e intuitiva, assegurando que sua aplicação se destaque com um visual único, sem comprometer a usabilidade ou a experiência do usuário.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
program Project1; uses System.StartUpCopy, FMX.Forms, FMX.Skia, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin GlobalUseSkia := True; TSkDefaultProviders.RegisterTypeface('Poppins.ttf'); Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
No RAD Studio 12 Athens ou mais recente é recomendado usar IFMXFontManagerService
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
program Project1; uses System.StartUpCopy, FMX.Forms, FMX.Platform, FMX.FontManager, FMX.Skia, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin GlobalUseSkia := True; var LFontManager: IFMXFontManagerService; if TPlatformServices.Current.SupportsPlatformService(IFMXFontManagerService, LFontManager) then LFontManager.AddCustomFontFromFile('Poppins.ttf'); Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Controles VCL/FMX
Uma das coisas que mais gosto no Skia4Delphi é que ele também possui controles que facilitam bastante nosso trabalho no dia a dia. Não vou me aprofundar muito aqui, pois no github há muita informação mais detalhada.
TSkAnimatedImage
TSkAnimatedImage é um controle que pode carregar e renderizar imagens animadas, incluindo vetores animados de forma muito simples. Abaixo uma tabela dos tipos compatíveis e um trecho de código.
1 2 3 4 5 |
var LAnimatedimage := TSkAnimatedImage.Create(Self); LAnimatedimage.LoadFromFile('Samples\Demo\Assets\rocket.json'); LAnimatedimage.Parent := Self; |
TSkLabel
TSkLabel implementa internamente o SkParagraph, permitindo turbinar o TLabel, permitindo uma grande quantidade de personalizações ao label:
TSkSvg
O componente TSkSvg permite carregar arquivos SVG, que são muito mais leves e podem inclusive para conter animações.
1 2 3 4 5 |
var LSvg := TSkSvg.Create(Self); LSvg.Svg.Source := TFile.ReadAllText('Samples\Demo\Assets\panda.svg'); LSvg.Parent := Self; |
Perfeito, vamos elaborar um texto detalhado sobre a evolução da integração do Skia4Delphi com o Delphi, destacando a mudança significativa ocorrida na versão 12.
Como instalar o Skia4Delphi?
O Skia4Delphi representa um marco na evolução das capacidades gráficas para desenvolvedores Delphi, oferecendo uma suite de funcionalidades de renderização de alta performance e qualidade visual superior. Desde o seu lançamento, esta biblioteca tem sido uma escolha popular entre os desenvolvedores Delphi que buscam elevar o nível de suas aplicações com gráficos avançados e interfaces de usuário atraentes. Até a versão 11.3 (Alexandria) do Delphi, a integração do Skia4Delphi requerida um processo de instalação manual, o que, apesar de ser plenamente acessível, representava um passo adicional no setup de desenvolvimento.
A instalação pode ser feita de forma manual baixando o pacote do GitHub ou ainda pelo Get It Package Manager diretamente pelo Delphi.
Esta realidade mudou significativamente com o lançamento do Delphi 12 Athens. Nesta versão, a Embarcadero reconheceu o valor inestimável que o Skia4Delphi adiciona ao ecossistema Delphi, incorporando a biblioteca diretamente na plataforma. Esta mudança não apenas simplifica o processo de desenvolvimento, eliminando a necessidade de instalação manual para aqueles que atualizam para a versão mais recente, mas também serve como um forte endosso da qualidade e da importância do Skia4Delphi para a comunidade de desenvolvimento Delphi.
A incorporação do Skia4Delphi no Delphi 12 marca um ponto de virada, onde a facilidade de uso e acesso a capacidades gráficas avançadas se tornam ainda mais integradas à experiência de desenvolvimento Delphi. Os desenvolvedores agora têm, por padrão, a capacidade de criar aplicações visualmente impressionantes e performáticas, com o suporte de uma das mais poderosas bibliotecas gráficas disponíveis, diretamente de seu ambiente de desenvolvimento integrado (IDE).
Esta evolução na integração entre o Skia4Delphi e o Delphi reforça o compromisso da Embarcadero em fornecer aos desenvolvedores as melhores ferramentas e recursos possíveis, promovendo uma maior inovação e qualidade no desenvolvimento de software. Para os usuários do Delphi 12, a transição para usar o Skia4Delphi torna-se quase imperceptível, oferecendo um caminho fluido e otimizado para aproveitar os benefícios dessa poderosa biblioteca gráfica em seus projetos.
Conclusão
A integração do Skia4Delphi no Delphi simboliza um marco para o desenvolvimento Delphi, oferecendo aos desenvolvedores acesso direto a uma das mais poderosas bibliotecas gráficas. Com funcionalidades que vão desde a renderização acelerada por GPU até o suporte para textos e fontes personalizadas, o Skia4Delphi amplia as fronteiras do design e desempenho de aplicações. A incorporação do Skia4Delphi como uma funcionalidade no Delphi 12 não só facilita o trabalho dos desenvolvedores, mas também abre novas possibilidades para criar aplicações visualmente impressionantes e altamente performáticas. Esse avanço assegura que o Delphi permaneça na vanguarda do desenvolvimento de software, com recursos que respondem às exigências de um mercado em constante evolução.
Comunidade no Telegram
🚀Comente no campo abaixo 👇👇👇 o que achou e qual sua dúvida.
Te vejo na próxima
Adriano Santos
Olá, funciona em delphi7?
José, não há como um recurso lançado hoje ser compatível com uma ferramenta lançada em 2001, 23 anos atrás. Você precisa atualizar sua ferramenta. A documentação do Skia4D indica Delphi XE7 em diante.
a partir de qual delphi funciona?
Delphi XE7 em diante.