Skip to content

Commit

Permalink
feat: add flutter adr, update catalyst_voices_assets (#164)
Browse files Browse the repository at this point in the history
  • Loading branch information
minikin authored Nov 30, 2023
1 parent b1cc41d commit 8926089
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .config/dictionaries/project.dic
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ mitigations
moderations
nanos
netkey
Oleksandr
oneshot
openapi
opentelemetry
Expand All @@ -63,12 +64,14 @@ podfile
podhelper
preprod
projectcatalyst
Prokhorenko
psql
Ptarget
pubkey
pubspec
rapidoc
redoc
ripgrep
rustc
rxdart
saibatizoku
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Internal Resources

This directory contains resources that are used by the Catalyst Voices Assets package and
are intended to be used by designers and developers working on the Catalyst Voting App.
Empty file.
Empty file.
Empty file.
Empty file.
51 changes: 51 additions & 0 deletions docs/src/architecture/09_architecture_decisions/0003-flutter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: 0003 Flutter for Catalyst Voting Frontend
adr:
author: Oleksandr Prokhorenko
created: 29-Nov-2023
status: accepted
tags:
- flutter
- dart
---

## Context

The need for a versatile and efficient framework to develop applications across multiple platforms
(Web, iOS, Android, macOS, Linux, and Windows) led us to consider various options.
Flutter emerged as the most promising solution due to its wide-ranging platform support,
single codebase feature, and robust widget library.

## Assumptions

* Flutter's capabilities extend efficiently to web and desktop platforms, in addition to mobile.
* The development team is capable of learning and adapting to Flutter and Dart for cross-platform development.
* The performance and compatibility of Flutter-built applications are adequate across all targeted platforms.

## Decision

We have decided to use Flutter as our primary framework for developing applications on Web, iOS, Android, macOS,
Linux, and Windows platforms.
This decision leverages Flutter's ability to provide a single codebase for multiple platforms,
its robust widget library, and its growing support for desktop and web applications.

## Risks

* Potential complications in accessing some native features and hardware-specific functionalities on each platform.
* The need for additional testing across different platforms to ensure consistency and performance.
* Flutter's desktop and web support is less mature than its mobile support, which might lead to unforeseen challenges.

## Consequences

* Streamlined development process with a unified codebase, reducing development and maintenance costs.
* Increased ability to rapidly deploy updates and new features across all platforms simultaneously.
* Dependency on a single technology stack, which may pose challenges if Flutter does not evolve as expected.

## More Information

* [Flutter](https://flutter.dev/)
* [Dart](https://dart.dev/)
* [Build more with Flutter](https://flutter.dev/development)
* [Flutter apps in production](https://flutter.dev/showcase)
* [A strong ecosystem, powered by open source](https://flutter.dev/ecosystem)
* [Flutter’s roadmap](https://github.com/flutter/flutter/wiki/Roadmap)
4 changes: 2 additions & 2 deletions docs/src/architecture/09_architecture_decisions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ icon: material/arrow-decision-auto

# Architecture Decisions

<!-- See:
<!-- See:
* https://docs.arc42.org/section-9/
* https://docs.arc42.org/section-9/
* https://github.com/Kl0ven/mkdocs-material-adr
-->
Expand Down

0 comments on commit 8926089

Please sign in to comment.