nsg_data
Data object model and data exchange with C# server for Flutter applications.
Features
- Data Object Model: Complete data object model with support for various field types
- Server Communication: Built-in HTTP client for C# server communication
- Local Database: Hive-based local database for offline data storage
- Authentication: Phone-based authentication system with SMS verification
- Password Validation: Password strength checking and validation
- Barcode Scanning: Built-in barcode reader functionality
- Table Management: Advanced table data handling with CRUD operations
- Reference Fields: Support for typed and untyped reference fields
- Image Handling: Image upload and management capabilities
- Localization: Multi-language support with locale management
- Error Handling: Comprehensive error handling and user feedback
Installation
Add this to your package's pubspec.yaml
file:
dependencies:
nsg_data: ^0.3.0-beta.1
Usage
import 'package:nsg_data/nsg_data.dart';
// Initialize the data provider
final provider = NsgDataProvider();
await provider.initialize();
// Create a data item
final item = NsgDataItem();
item.setValue('name', 'John Doe');
item.setValue('age', 30);
// Save to server
await provider.postItem(item);
Dependencies
This package depends on nsg_controls
which should be published first due to circular dependency.
Publishing Instructions
Due to circular dependency with nsg_controls
, follow these steps:
- First publish
nsg_controls
package - Update
nsg_data
to use hosted version ofnsg_controls
- Publish
nsg_data
package
Version History
See CHANGELOG.md for detailed version history.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Aleksei Zenkov (zenkov25@gmail.com)
Libraries
- authorize/nsg_login_model
- authorize/nsg_login_params
- authorize/nsg_login_provider
- authorize/nsg_login_response
- authorize/nsgPhoneLoginPage
- authorize/nsgPhoneLoginParams
- authorize/nsgPhoneLoginRegistrationPage
- authorize/nsgPhoneLoginVerificationPage
- controllers/nsg_cancel_token
- controllers/nsg_controller_filter
- controllers/nsg_controller_regime
- controllers/nsg_data_controller_mode
- controllers/nsg_data_item_controller
- controllers/nsg_default_controller
- controllers/nsg_update_key
- controllers/nsg_update_key_type
- controllers/nsg_user_session_controller
- controllers/nsg_user_settings_controller
- controllers/nsgBaseController
- controllers/nsgBaseControllerData
- controllers/nsgDataBinding
- controllers/nsgDataController
- controllers/nsgDataTableController
- controllers/nsgImageController
- data_items/nsg_data_image_row_item
- dataFields/base_reference_field
- dataFields/boolfield
- dataFields/dataBinary
- dataFields/datafield
- dataFields/dataImage
- dataFields/dateField
- dataFields/doubleField
- dataFields/enumReferenceField
- dataFields/intfield
- dataFields/list_field
- dataFields/nsg_data_table
- dataFields/reference_list_field
- dataFields/referenceField
- dataFields/stringField
- dataFields/untyped_reference_field
- db/nsg_local_db
- helpers/double_extension
- helpers/nsg_barcode_reader
- helpers/nsg_color_is_light
- helpers/nsg_data_format
- helpers/nsg_data_guid
- helpers/nsg_data_options
- helpers/nsg_duration_counter
- helpers/nsg_period
- helpers/nsg_validate_result
- metrica/nsg_metrica
- models/nsg_exchange_rules
- models/nsg_server_params
- models/nsg_user_session
- models/nsg_user_settings
- models/nsgLoginModel
- navigator/nsg_get_page
- navigator/nsg_middleware
- nsg_comparison_operator
- nsg_data
- nsg_data_client
- nsg_data_compare
- nsg_data_delete
- nsg_data_enum
- nsg_data_fieldlist
- nsg_data_item
- nsg_data_item_state
- nsg_data_itemList
- nsg_data_paramList
- nsg_data_post
- nsg_data_provider
- nsg_data_request
- nsg_data_requestParams
- nsg_data_sorting
- nsg_data_sync_manager
- nsg_request_item_regime
- nsg_simple_request
- nsgApiException
- nsgDataApiError
- nsgDataFreeRequest
- password/nsg_login_password_strength
- password/nsg_login_password_validator
- ui/nsg_data_ui
- ui/nsg_loading_scroll_controller