npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

bcdmobile_cma

v3.0.1

Published

Aplicação Agora Abrantes

Readme

Descrição

Aplicação Agora Abrantes

A arquitetura desta app segue a abordagem "feature-first". As features devem ser orientadas as funcionalidades que o utilziador pode fazer e não aos ecrãs. Features são requisitos funcionais.

Instalação Flutter

Seguir este tutorial para Windows :

https://medium.com/@blup-tool/step-by-step-guide-to-installing-flutter-and-dart-on-windows-b30a631e7583

Ambientes

As variáveis de ambientes devem ser configuradas num ficheiro .env . Este ficheiro deve ser criado apenas localmente e nunca deve ser versionado.

Deve ser pedido a alguém da equipa o ficheiro a criar.

Para modificar o ficheiro a carregar basta ir ao ficheiro env.dart e alterar o caminho do ficheiro .env.

Sempre que se alterar valores do env. convêm correr os comandos

dart run build_runner clean
dart run build_runner build --delete-conflicting-outputs

GIT

Os commits devem seguir o convetional commit explicado aqui https://cmabyinw.atlassian.net/wiki/spaces/Abrantes/pages/819224/Mensagem+do+commit.

Na pipeline será feita a validação desta convenção.

É no ficheiro commitlint.config.js a onde estão definidas as regras.

Estrutura

A estrutura de pastas deve refletir a abordagem "Feature First"

lib: Contém todo o código da aplicação.
|--core:
|   |-assets: Armazena os assets compartilhados por toda a aplicação, como imagens, ícones, etc.
|   |-constants: Define constantes utilizadas em diversas partes do código.
|   |-exceptions: Define as exceções personalizadas da aplicação.
|   |-localization: Contém os arquivos de localização para internacionalização.
|   |-models: Define os modelos de dados compartilhados.
|   |-routing: Define as rotas da aplicação.
|   |-services: Contém serviços compartilhados, como serviços de notificação, analytics, etc.
|   |-theme: Define o tema da aplicação.
|   |-utils: Contém utilitários diversos.
|   |-widgets: Contém widgets reutilizáveis em toda a aplicação.
|--features:
|   |--account: Contém tudo relacionado à funcionalidade de gestão de conta do utilizador.
|       |-data
|            |-datasources: Interage diretamente com as fontes de dados (bd, APIs, etc.). Contém a lógica para realizar as operações de leitura e escrita de dados.
|            |-repositories: Fornece uma interface abstrata para acessar os dados, escondendo a complexidade dos datasources. Pode incluir lógica de negócio relacionada ao acesso aos dados, como cache, sincronização ou validação.
|       |-domain
|            |-entities: Define as entidades do domínio, representando os objetos de negócio da aplicação.
|            |-usecases: Encapsulam a lógica de negócio de uma determinada funcionalidade. Um use case define uma ação que um utilizador pode realizar.
|       |-presentation
|            |-pages: Contém os ecrãs da aplicação, responsáveis pelo UI.
|            |-providers: Define os providers utilizados para gerenciar o estado da aplicação, como os providers do Riverpod
|            |-widgets: Contém widgets reutilizáveis específicos daquela feature.
|   |--authentication: Contém tudo relacionado à autenticação.
|        ...
|   |--registration: Contém tudo relacionado ao registro de novos utilizadores.
|        ...

References

https://cmabyinw.atlassian.net/wiki/spaces/Abrantes/pages/3538969/Estrutura+da+APP

Release Manual

Tendo em conta que estamos a usar conventional commits e semantic versioning, é possível automatizar o processo de geração de novas versões. Esta geração apenas funciona para android, para iOS, é necessário usar TestFlight ou AppleStore.

Instalação

Para automatizar o processo vamos usar um package npm standard-version, este package vai ler todos os commits desta a ultima versão e vai:

  • Criar/Atualizar um CHANGELOG.MD.
  • Fazer bump da versão tendo em conta os tipos de commits.
  • Criar um commit com uma tag para a nova versão.

Para instalar o npm correr:

    npm install

Geração de nova release

Para criar uma nova versão correr :

    npm run release

Posteriormente fazer push da tag e correr :

    flutter build apk --release

Nota: para fazer build do apk em release é preciso ter localmente definido os valores para :

keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] 
storePassword keystoreProperties['storePassword']