AGREGADOR DE NOTÍCIAS MULTIPLATAFORMA: UMA ABORDAGEM COM FLUTTER E INTEGRAÇÃO VIA API PARA EXPERIÊNCIA OTIMIZADA DO USUÁRIO

REGISTRO DOI: 10.69849/revistaft/cl10202505201744


Kelvin Miller Nunes Higino1


Resumo

O presente artigo apresenta o desenvolvimento de um aplicativo multiplataforma para agregação de notícias, com uso do framework Flutter e integração com APIs de conteúdo. O objetivo é proporcionar ao usuário uma experiência prática e personalizada, centralizando o acesso a múltiplas fontes de notícias em uma única interface. A arquitetura foi estruturada em camadas para garantir escalabilidade e manutenção, com foco na experiência do usuário (UX) e na eficiência do consumo de dados. Como resultado, o aplicativo oferece uma alternativa viável aos principais agregadores de conteúdo disponíveis atualmente.

Palavras-chave: Flutter; Dart; Agregador de Notícias; Multiplataforma; UX; Integração de API.

Abstract

This article presents the development of a cross-platform news aggregator application using the Flutter framework and API integration. The goal is to provide users with a practical and personalized experience by centralizing access to multiple news sources within a single interface. The architecture was structured in layers to ensure scalability and maintainability, focusing on user experience (UX) and efficient data consumption. As a result, the application offers a viable alternative to the main content aggregators currently available.

Keywords: Flutter; Dart; News Aggregator; Cross-Platform; UX; API Integration.

1. Introdução

Com o crescimento exponencial da informação digital, o acesso rápido a notícias tornou-se essencial. No entanto, a dispersão de fontes e a necessidade de visitar diversos sites tornam essa busca demorada. Este artigo propõe um aplicativo que centraliza o acesso a notícias de diferentes fontes, agregando-as de maneira intuitiva e personalizada. A solução foi desenvolvida com Flutter, possibilitando a entrega para Android e iOS com uma única base de código.

2. Referencial Teórico

A agregação de notícias visa reunir conteúdos de diversas fontes em uma interface unificada, economizando tempo e aumentando a produtividade informacional. A linguagem Dart e o framework Flutter são fundamentais por sua eficiência, sintaxe limpa e suporte multiplataforma. A integração com APIs REST permite que o aplicativo exiba notícias em tempo real. Além disso, princípios de UX foram incorporados para garantir acessibilidade e boa experiência visual.

3. Trabalhos Relacionados

O Google News é abrangente, mas limita a personalização de fontes. O Flipboard destaca-se pela interface, mas foca em categorias amplas. O Feedly oferece alta personalização, mas com recursos limitados na versão gratuita. O aplicativo proposto busca unir as melhores práticas desses exemplos, oferecendo personalização sem custos e com interface leve, limpa e sem anúncios.

A Tabela 1 apresenta um comparativo das principais funcionalidades entre o aplicativo proposto e os concorrentes analisados.

Google NewsFlipboardFeedlyMinhas Notícias
PersonalizaçãoBaixaMédiaAltaAlta
Acesso offlineSimSimSimNão
AnúnciosSim Sim Sim Não
Integração com APINãoNãoSim Sim
CustoGratuitoGratuitoFreemiumGratuito

Tabela 1: Comparativo de funcionalidades entre agregadores de notícias. Fonte: Elaborado pelo autor (2024).

4. Metodologia

Adotou-se uma arquitetura em três camadas: Interface do Usuário (UI), Lógica de Negócio e Camada de Dados, com base no modelo tradicional de separação de responsabilidades. Essa estrutura foi aplicada para garantir a organização, modularidade, escalabilidade e facilidade de manutenção do projeto, especialmente em um contexto de desenvolvimento multiplataforma com o framework Flutter. A estrutura da arquitetura proposta é ilustrada na Figura 1.

Tela de computador com texto preto sobre fundo branco

O conteúdo gerado por IA pode estar incorreto.

Figura 1: Diagrama da arquitetura em camadas do aplicativo. Fonte: Elaborado pelo autor (2024).

Em alinhamento com essa arquitetura, procedeu-se à implementação prática do aplicativo “Minhas Notícias” utilizando a linguagem Dart, com estruturação do código espelhando as responsabilidades de cada camada. Isso favoreceu a reutilização de componentes, testes unitários e manutenção do software ao longo do tempo.

4.1 Camada de Interface do Usuário (UI)

A UI foi construída utilizando widgets declarativos do Flutter, permitindo o desenvolvimento de interfaces responsivas e visualmente consistentes tanto para Android quanto para iOS. As principais telas desenvolvidas foram:

SiteInputScreen: tela inicial, onde o usuário insere URLs das fontes de notícias. Nela, foi implementado um TextField com validação de URL e feedback visual, proporcionando uma entrada de dados segura e amigável.

NewsFeedScreen: tela que exibe o feed de notícias agregadas, utilizando um ListView.builder para renderizar dinamicamente cada notícia em um card contendo título, resumo e botão para leitura completa.

A composição visual foi planejada com foco na hierarquia da informação, acessibilidade e desempenho da interface, garantindo uma navegação intuitiva.

4.2 Camada de Lógica de Negócio

A lógica de negócios foi estruturada com o padrão Provider, que permitiu o gerenciamento eficiente e reativo de estados. Essa camada foi responsável por:

Validar e armazenar a lista de URLs fornecidas pelo usuário;

Realizar chamadas HTTP assíncronas à NewsAPI com o pacote http;

Converter as respostas JSON em objetos do tipo News, contendo título, descrição, data de publicação e link da notícia;

Agregar e ordenar as notícias recebidas por data de publicação;

Gerenciar a navegação entre as telas e as interações do usuário com os dados.

Esse desacoplamento da lógica em relação à interface facilitou a testabilidade e a reutilização de funções centrais da aplicação.

4.3 Camada de Dados

A camada de dados foi projetada para lidar com armazenamento local e integração com serviços externos. As abordagens adotadas incluem:

Utilização do pacote shared_preferences para armazenar de forma persistente as URLs informadas pelo usuário;

Integração com a NewsAPI por meio de chamadas RESTful, processando as respostas em tempo real para alimentar o feed de notícias;

Definição de modelos como News, com métodos from Json() e toJson() para o mapeamento de dados entre a API e a estrutura interna da aplicação.

4.4 Ferramentas e Tecnologias Adicionais

Além dos pacotes mencionados, outros recursos foram fundamentais para a composição e funcionalidade do aplicativo:

url_launcher: utilizado para abrir a notícia completa em um navegador externo ao clicar em um item do feed;

flutter_launcher_icons e flutter_native_splash: responsáveis pela personalização do ícone e da tela de splash da aplicação;

intl: biblioteca empregada para a formatação de datas, adaptando a apresentação ao formato local do usuário.

4.5 Ciclo de Desenvolvimento

O desenvolvimento do aplicativo seguiu uma abordagem iterativa e incremental, com ciclos curtos de implementação, testes e refatoração. O uso do recurso de hot reload do Flutter permitiu validar rapidamente alterações visuais e lógicas, otimizando o fluxo de trabalho. O código-fonte foi modularizado com boas práticas de engenharia de software, o que contribuiu para a qualidade geral da aplicação.

5. Resultados e Discussão

O aplicativo demonstrou desempenho estável, com tempos de resposta rápidos e navegação intuitiva. A simplicidade da interface, focada na experiência do usuário, é um dos diferenciais, conforme ilustrado na Figura 2 e na Figura 3.

Interface gráfica do usuário, Aplicativo

O conteúdo gerado por IA pode estar incorreto.

Figura 2: Telas do aplicativo “Minhas Notícias”.

Fonte: Elaborado pelo autor (2025).

Interface gráfica do usuário, Site

O conteúdo gerado por IA pode estar incorreto.

Figura 3: Tela de visualização de notícias.

Fonte: Elaborado pelo autor (2025).

Os testes validaram a eficácia da agregação de conteúdo e a persistência local das preferências do usuário. A simplicidade da interface se mostrou um diferencial positivo frente aos concorrentes analisados.

Gráfico, Gráfico de barras, Gráfico de caixa estreita

O conteúdo gerado por IA pode estar incorreto.

Figura 4: Resultados dos testes de desempenho do aplicativo.

Fonte: Elaborado pelo autor (2024).

6. Conclusão

O projeto atingiu seu objetivo de facilitar o acesso a notícias de múltiplas fontes em uma plataforma unificada e acessível. O uso do Flutter demonstrou-se vantajoso pela rapidez no desenvolvimento e entrega multiplataforma. Como trabalhos futuros, propõe-se a inclusão de notificações em tempo real, suporte offline e tradução para múltiplos idiomas.

Referências

  • GOOGLE. Flutter Documentation. Documentação oficial da linguagem Flutter. Disponível em: <https://flutter.dev/docs>. Acesso em: 13 maio 2025.
  • NEWSAPI. News API documentation: guia de uso da API de notícias. Disponível em: <https://newsapi.org/docs>. Acesso em: 13 maio 2025.
  • ANDROID DEVELOPERS. Shared preferences: documentação oficial da API Android. Disponível em: <https://developer.android.com/reference/android/content/SharedPreferences>. Acesso em: 14 maio 2025.

1Centro Universitário Mário Pontes Jucá – UMJ
E-mail: Kel_federal@live.com