TabNews @ Raycast: Fiz uma extension utilizando Typescript + api do Raycast
Fiz uma extension para o Raycast utilizando Typescript + api própria deles
Em casa no ócio, resolvi começar a fazer alguns projetos pessoais no meu tempo livre, afinal de contas, desenvolver também é um hobbie que tenho.
Ainda pensando no que poderia fazer, acabei me pegando lendo alguns artigos aqui para ver se pipocava alguma ideia, e não é que aconteceu?
No mesmo dia fiz meu pull request para adicionar a extensão Tabnews@Raycast.
O que é Raycast?
Antes de qualquer coisa, vale explicar um pouco o que é o Raycast.
É uma ferramenta para macOS que oferece um atalho de teclado para acessar rapidamente aplicativos, realizar buscas e executar fluxos de trabalho personalizados, melhorando a produtividade e a automação de tarefas comuns no computador.
Comumente utilizado no lugar do Spotlight da Apple e para quem não teve grana para pagar o Alfred 😅.
Como foi desenvolver uma extension?
Na verdade todo o processo é bem simples e acredito fortemente que é uma boa experiência para iniciantes, visto que todo o processo é bem explicado e documentado no site deles: Raycast Api. Seguindo o passo-a-passo encontrado neste site é possível criar extensões até mais complexas do que esta para leitura dos artigos do tabnews.
Talvez um dos problemas que podem encontrar é que para desenvolver/testar, será preciso utilizar o macOS.
Como ficou o projeto?
Foram necessário apenas uns 4 arquivos em Typescript:
- index.tsx: Montagem dos layouts de lista + dropdown de seleção
- tabnews.ts: Service para realizar o fetch dos artigos
- types.ts: Alguns models utlizados para fazer parse
- utils.ts: Usei apenas para montar um SVG usado na lista para numerar os artigos (e deixar bonitinho)
Além é claro de resource para ícone e uma screenshot para mostrar como ficará a visualização.
O reposítorio é aberto e pode ser encontrado aqui: https://github.com/juniorodilton/tabnews-raycast-extension, fiquem à vontade para comentar ou adicionar qualquer funcionalidade.
Ahhh na verdade para adicionar qualquer funcionalidade deve-se utilizar o reposítorio oficial: https://github.com/raycast/extensions/tree/main/extensions/tabnews.
Próximos passos
Como todo e qualquer projeto, sempre tem espaço para melhorias, algumas delas que pensei:
- Configuração de
Preferences
- Setar pageLimit
- Utilizar token de User
- Exibição dos artigos dentro do próprio Raycast
- Listagem de comentários
- Pesquisa e exibição de usuário
- Upvote/Downvote
- Done is better than perfect!*