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
@injectableand alsoProvider - For persistent app preferences use
ISettings - Custom widgets:
- are placed in
lib/ui - should have reasonable previews with
@widgetbook.UseCasewithout relying on anyBlocorProvidertypes
- 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 openFileusing system file picker dialog or passedFile. In here, theDocumentis created.PreviewDocumentScreen- here, the document visualization is shown.SelectCertificateScreen- here, theCertificateusingEidmsdkis read from ID card. It may be skipped when it was saved.SignDocumentScreen- here, the document is signed usingEidmsdkandAutogramService.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 installActivate flutterfire_cli for local Dart (NOT system Dart), and make sure it's in the PATH:
fvm dart pub global activate flutterfire_cliDownload packages:
fvm flutter pub getRun all Flutter tests:
fvm flutter testGenerate i18n code:
fvm flutter gen-l10nGenerate code:
fvm dart run build_runner build --delete-conflicting-outputsBuild 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 apkBuild iOS IPA:
fvm flutter build ipaBuild 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