Flutter aplikácia pre Android a iOS. Podpisovač Autogram v mobile umožňuje podpisovanie elektronickým občianskym preukazom s NFC rozhraním. Detailnejšie info o arhitektúre projektu sa nachádzajú v repozitári AVM server.
Autogram v mobile vytvorili freevision s.r.o., Služby Slovensko.Digital s.r.o. s dobrovoľníkmi pod EUPL v1.2 licenciou. Prevádzkovateľom je Služby Slovensko.Digital s.r.o.. Prípadné issues riešime v GitHub projekte alebo rovno v tomto repozitári.
Celý projekt sa skladá z viacerých častí:
- Server
- AVM server - Ruby on Rails API server poskytujúci funkcionalitu zdieľania a podpisovania dokumentov.
- AVM service - Java microservice využívajúci Digital Signature Service knižnicu pre elektronické podpisovanie a generovanie vizualizácie dokumentov.
- Mobilná aplikácia
- AVM app Flutter - Flutter aplikácia pre iOS a Android.
- AVM client Dart - Dart API klient pre komunikáciu s AVM serverom.
- eID mSDK Flutter - Flutter wrapper "štátneho" eID mSDK pre komunikáciu s občianskym preukazom.
- Autogram extension - Rozšírenie do prehliadača, ktoré umožňuje podpisovanie priamo na štátnych portáloch.
- main - main app
- preview - Widgetbook app
- Business logic should be separated in Bloc and placed in lib/bloc/
NameCubit
- separate
sealed class NameState
- For services and Bloc using
@injectable
and alsoProvider
- For persistent app preferences use
ISettings
- Custom widgets:
- are placed in
lib/ui
- should have reasonable previews with
@widgetbook.UseCase
without relying on anyBloc
orProvider
types
- are placed in
User onboarding - started with Onboarding
:
- Accept Privacy Policy using
OnboardingAcceptDocumentScreen
- Accept Terms of Service using same
OnboardingAcceptDocumentScreen
- optionally
OnboardingSelectSigningCertificateScreen
- Presenting finish -
OnboardingFinishedScreen
Signing of single (PDF, TXT, image, eForms XML, ...) document using
Eidmsdk
and
AutogramService
.
MainScreen
- to present app features and consume sharedFile
.OpenDocumentScreen
- to openFile
using system file picker dialog or passedFile
. In here, theDocument
is created.PreviewDocumentScreen
- here, the document visualization is shown.SelectCertificateScreen
- here, theCertificate
usingEidmsdk
is read from ID card. It may be skipped when it was saved.SignDocumentScreen
- here, the document is signed usingEidmsdk
andAutogramService
.PresentSignedDocumentScreen
- here, the (success / error) result is presented and signed document is saved into "Downloads".
Started with RemoteDocumentSigning
.
It's similar to Sign single document, but starts with:
FVM init and Pub get:
fvm install
Activate flutterfire_cli
for local Dart (NOT system Dart):
fvm dart pub global activate flutterfire_cli
fvm flutter pub get
Run all Flutter tests:
fvm flutter test
Generate i18n code:
fvm flutter gen-l10n
Generate code:
fvm dart run build_runner build --delete-conflicting-outputs
Build Android APK:
eid-mSDK binaries are hosted on GitHub package registry. To access the package during build process environment variable EIDMSDK_ACCESS_TOKEN
needs to be set to a GitHub Personal Access Token that has permission to read package registry.
fvm flutter build apk
Build iOS IPA:
fvm flutter build ipa
Build WEB:
fvm flutter build web --target=lib/preview.dart
- Android Application ID, Apple Bundle/App ID:
digital.slovensko.avm
- Apple Team ID:
44U4JSRX4Z
(Služby Slovensko.Digital, s.r.o.) - Apple App Store ID:
6479985251
, SKU:avm
- Firebase:
digital-slovensko-avm