google_sign_in
用于 Google 登录的 Flutter 插件,一种通过 Google 账户登录的安全身份验证系统。
Invoice Ninja:使用 Flutter 构建的桌面/移动管理门户
用于 Google 登录的 Flutter 插件,一种通过 Google 账户登录的安全身份验证系统。
用于从 Android 和 iOS 图像库中选择图片以及使用相机拍摄新照片的 Flutter 插件。
一个用于应用内购买的 Flutter 插件。通过 App Store 和 Google Play 暴露了应用内购买的 API。
Flutter 插件,允许通过生物识别、密码、PIN 码或图案进行本地身份验证。
v0.10.1+3一个用于防止点击事件被网页上的底层 HtmlElementView 吞噬的部件。
一个 Flutter 插件,提供由系统 WebView 支持的 WebView 小部件。
v0.7.0提供了一组 Flutter 网格布局(错落、马赛克、拼花、编织等)。
v4.0.3一个带有可滑动操作的可滑动列表项的 Flutter 实现,支持方向性滑动操作并可被关闭。
一组实用的 Widget,用于提供和连接到 Redux 存储
v5.15.1该插件允许 Flutter 应用程序在 Android、iOS、macOS、Windows 和 Linux 上以及 Web 打印,将文档生成并打印到兼容的打印机。
v12.2.1一个适用于 Android、iOS 和 Web 的 Flutter 插件,支持图像裁剪
带有构建器的值类型、Dart 类作为枚举以及序列化。此库是运行时依赖项。
{"sdk":"flutter"}{"sdk":"flutter"}^1.0.0^7.2.0^2.0.4^3.2.3^3.0.1^0.10.0^0.5.0^1.5.0^2.0.2^2.0.6^7.0.7296^8.1.2^5.1.0^3.0.0^6.3.1^6.3.2^12.0.10.17.0^3.1.2^0.5.0-beta{"git":{"url":"https://github.com/theyakka/qr.flutter.git"}}^2.3.0^9.6.0^1.2.0^1.1.0^1.0.1^4.4.1^3.1.0^8.3.1{"git":{"url":"https://github.com/scopendo/flutter_rounded_loading_button.git","ref":"master"}}^3.0.2^0.5.0^2.0.0^11.0.1^10.3.2{"git":{"url":"https://github.com/BenPoell/FlutterBoardView.git"}}^0.9.0^0.0.3^0.1.3^6.2.0^1.2.6^5.11.0^11.0.0^2.14.0^7.0.1^0.3.0^3.1.0^0.7.0^0.7.0^0.1.1^1.0.0^1.15.0-nullsafety.4^4.0.0^12.2.0^0.0.4anyanyanyanyanyanyanyany{"sdk":"flutter"}^1.6.3{"sdk":"flutter"}^2.1.0^8.1.1^2.0.0^3.5.1^4.6.0以下为英文项目原文快照,最新内容请访问 GitHub。
Client application for Invoice Ninja.
Dashboard View Invoice List Invoice New Invoice
Initialize the config file
cp lib/.env.dart.example lib/.env.dart
Support running the code unsigned on Android
cp android/app/build.gradle.dev.kts android/app/build.gradle.kts
Run the app
flutter run
Note: if you don't have an Invoice Ninja backend setup you can test the app with these credentials:
demo@invoiceninja.comPassword0demo.invoiceninja.comcp lib/utils/oauth.dart.foss lib/utils/oauth.dart
cp lib/utils/app_review.dart.foss lib/utils/app_review.dart
cp lib/ui/app/upgrade_dialog.dart.foss lib/ui/app/upgrade_dialog.dart
cp lib/ui/app/pinput.dart.foss lib/ui/app/pinput.dart
cp android/app/src/main/AndroidManifest.foss.xml android/app/src/main/AndroidManifest.xml
cp android/settings.gradle.foss.kts android/settings.gradle.kts
cp pubspec.foss.yaml pubspec.yaml
rm pubspec.lock
The application was created using the Flutter Redux Starter.
The architecture is based off these two projects:
A High-level overview of the project structure:
lib/ # Root Package
|
├─ data/ # For data handling
│ ├─ mock/ # sample used for testing
│ ├─ models/ # Objects representing data
│ ├─ repositories/ # Source of data
|
├─ redux/ # manages app state
│ ├─ component/ # app building block
│ ├─ actions # methods to update app state
| ├─ middleware # run in response to actions, execute before reducer
| ├─ reducer # intercepts actions, responsible for updating the state
| ├─ selectors # read data from the state, queries against your 'state database'
| ├─ state # immutable object that lives at the top of the widget hierarchy
|
├─ ui/ # app views
│ ├─ component/ # views for different components
│ ├─ view/ # generel view for component
│ ├─ edit/ # change values on the views fields
|
├─ utils/ # Utility classes
The ui and redux folders contain components that are paired together. Put simply you will find an 'auth' folder in both the ui and redux folders.
For additional information on Redux architecture
flutter packages pub run build_runner build --delete-conflicting-outputs to regenerate the model files. It will also remove the old generated files so conflicts are avoided..flutter drive --target=test_driver/all_it.dart to run the testshttps://github.com/invoiceninja/invoiceninja#credits
We gladly accept contributions! If you'd like to get involved with development please join our Slack group or Discord Server.