---
# System prepended metadata

title: Mobile Flutter Packages

---

* Core packages:
    * flutter_bloc: State management package
        * https://pub.dev/packages/flutter_bloc
    * equatable: A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode.
        * https://pub.dev/packages/equatable
    * rxdart: RxDart is an implementation of the popular reactiveX api for asynchronous programming
        * https://pub.dev/packages/rxdart
    * json_annotation: Classes and helper functions that support JSON code generation via the `json_serializable` package.
        * https://pub.dev/packages/json_annotation
    * json_dynamic_widget: A library to dynamically generate widgets within Flutter from JSON or other Map-like structures.
        * https://pub.dev/packages/json_dynamic_widget

* UI Components:
    * flutter_svg: Used to render svg icons.
        * https://pub.dev/packages/flutter_svg
    * lottie: Used to render json animations.
        * https://pub.dev/packages/lottie

* API Communication:
    * http: Used for API calls.
        * https://pub.dev/packages/http
    * signalr_netcore: Used for signalR event handling system.
        * https://pub.dev/packages/signalr_netcore/install

* Authentication: - TFS'e ekle
    * Login - Done
    * Refresh / Revoke - Done
    * Device Registration - Device ID - 
        * Device'da token olustur
        * Secure sakla
        * http'de header'da gonder
            * Device ID = The unique ID of the physical device.
            * Token ID = The unique ID of the application install.
    * Mutual TLS - Low Priority - 4 days
    

* Secure Storage:
    * Not implemented yet, but we may use flutter_secure_storage package
        * https://pub.dev/packages/flutter_secure_storage

* Analytics and Crash Reporting:
    * Not implemented yet.

* Form Validation:
    * Nothing is used yet. Flutter's classes such as FormFieldValidator is enough for now.

* Navigation:
    * go_router: Used for clean and url based navigation system in a type safe way.
        * https://pub.dev/packages/go_router
        * Also you can check this type-safe routing system: https://pub.dev/documentation/go_router/latest/topics/Type-safe%20routes-topic.html

* Dependency Injection (These libraries are used in the project but we don't have to use them if you want)
    * get_it: Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App
        * https://pub.dev/packages/get_it
    * injectable: Injectable is a convenient code generator for get_it.
        * https://pub.dev/packages/injectable

* Utility/Functionality
    * collection: Collections and utilities functions and classes related to collections.
        * https://pub.dev/packages/collection
    * skeletons: Used for building custom skeleton widgets to mimic the page's layout while loading.
        * https://pub.dev/packages/skeletons

* Other:
    * QRCode:
    * NFC:
    * Selfie:

- Navigasyon - TFS'e ekle


- [ ] DI Handler **Push Notif** - Ana uygulama-(payload)-core-(parse)-ana uygulama(deeplink, navigate) TFS'e ekle
    - [ ] dEngage
    - [ ] firebase - Web login
        - Rich Notif, Pop-up - Low
    
- [ ] DI Handler **Eventing** : User ui navigations and interactions (such as button click)
    - [ ] dEngage
    - [ ] PostHog
    - [ ] Countly
    
- [ ] DI Handler **Crash and APM** : Application request and crash tracking
    - [ ] Elastic, https://github.com/elastic/apm-agent-android
    - [ ] Countly
    
- [ ] DI Handler **Feature Management** : Navigation and Context menu item handling
    - [ ] GrowthBook
    - [ ] PostHog
    
- [ ] DI Handler **InApp Messages** : In application marketing message popups.
    - [ ] dEngage
    
- [ ] DI Handler **NFC and MRZ Identity Reader** 
    - [ ] enVerify
    - [ ] IdVerse

- [ ] DI Handler **WebRTC Video Conference** 
    - [ ] enVerify
    