https://github.com/baguilar6174/flutter-crypto-app
This application connects to coincap API to get cryptocurrency changes in real time, this project implements clean architecture for organization and freezed to use functional programming.
https://github.com/baguilar6174/flutter-crypto-app
clean-architecture dart flutter functional-programming provider
Last synced: 3 months ago
JSON representation
This application connects to coincap API to get cryptocurrency changes in real time, this project implements clean architecture for organization and freezed to use functional programming.
- Host: GitHub
- URL: https://github.com/baguilar6174/flutter-crypto-app
- Owner: baguilar6174
- Created: 2023-01-27T20:17:47.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-10T22:32:15.000Z (over 2 years ago)
- Last Synced: 2025-05-19T08:11:29.404Z (6 months ago)
- Topics: clean-architecture, dart, flutter, functional-programming, provider
- Language: Dart
- Homepage:
- Size: 484 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Crypto App
This application connects to [coincap](https://coincap.io/) [API](https://docs.coincap.io/) to get cryptocurrency changes in real time, this project implements __clean architecture__ for organization and [freezed](https://pub.dev/packages/freezed) to use functional programming.
## Installation
Get code using
```
git clone https://github.com/baguilar6174/flutter-crypto-app.git
```
__Step 2__
Install the necessary libraries (this proyect use Flutter 3.7.0 & Dart 2.19.0)
```
flutter pub get
```
__Step 3__
Generate Freezed files
```bash
flutter pub run build_runner build
```
__Step 4__
Generate locale strings (en & es)
```bash
flutter gen-l10n
```
Run the app
## My process
### Build with (libs)
- `dio`: Http Client
- `provider`: State management
- `logger`: Create friendly logs in console
- `freezed_annotation`: Annotations for Freezed
- `web_socket_channel`: Allow connections with WS
- `flutter_svg`: Render SVG
- `intl`: Internationalization
- `build_runner`: Generate code
- `freezed`
## Features
- Using Sockets
- Clean Architecture
- Functional programming with Freezed
- Dio Http client, interceptor and logger
- Using Intl to formats and internationalization
### What I learned
- Implement clean architecture with provider
- Using Either class
- Create connection and using Web Sockets
- State management using provider
- Generate classes and entities using Freezed
- `when`, `maybeWhen`, `map`, etc. Functional programming operators
- Listen changes using streams
## Crypto App
## Stay in touch
- Website - [www.bryan-aguilar.com](https://www.bryan-aguilar.com/)
- Medium - [baguilar6174](https://baguilar6174.medium.com/)
- LinkeIn - [baguilar6174](https://www.linkedin.com/in/baguilar6174)