Skip to content

Latest commit

 

History

History
180 lines (122 loc) · 10.2 KB

README-EN.md

File metadata and controls

180 lines (122 loc) · 10.2 KB

Flutter Deer

English | 中文

This project is an exercise in learning Flutter for personal growth and development.

To achieve specific design outcomes and meet the demands of daily development, one may employ the methods of configuring, modifying, combining pre-existing components, and customizing.

The design plans for this project can be found in the "design" directory. You may utilize these plans to practice with a specific goal in mind. Any implementation is solely based on personal comprehension and learning. Should there be any superior implementation strategies, I welcome the opportunity for discussion.

Preview

Some of the page effects are as follows:

If you find this project satisfactory, kindly show your support by giving it a Star or Fork. Rest assured, this project is being continuously maintained and any issues can be brought to our attention by submitting an Issue.

Realizing the content.

  • MVP pattern
  • State management using provider (version 6.x)
  • Network request encapsulation based on dio (version 5.x)
  • Integration testing and accessibility testing
  • Support for dark mode
  • Localization(Thanks to @ghedwards)
  • Implementation of complex scrolling effects using Sliver series components
  • Location selection using AMap (supports Web)
  • Encapsulation of common widgets handling
  • Pull-to-refresh and load-more functionality
  • Application update check
  • PopupWindow
  • QR code scanning functionality (using the qr_code_scanner plugin)
  • Menu switching animations (circular expansion, 3D flip)
  • Swipe-to-delete
  • City selection
  • Three-level linkage selection similar to JD's city selection
  • Various custom dialogs
  • Sticky header for lists
  • Password input keyboard
  • Verification code input box
  • Custom simple calendar
  • Line chart and pie charts
  • Modularized route management
  • More demos (ripple animation, scratch card, lottie)
  • More detailed optimizations

You may download and experience it specifically by accessing the following links:

For the Android version, kindly click on the link provided: Download here, and enter the password: 111111.

As for iOS, you will need to download and run the code on your own.

For web experience, please visit: https://simplezhli.github.io/flutter_deer/

The project's operational environment.

Build Status

1. Flutter version 3.16.0

2. Dart version 3.2.0

Precautions to be taken.

  • In debug mode, there may be some lagging, which is considered a normal occurrence. A satisfactory experience requires the creation of a release package. To create a release version for iOS, execute the command flutter build ios. For Android, execute the command flutter build apk.

  • If there are any issues with the project's execution, please refer to the iOS issue summary and Android issue summary for possible solutions.

  • Due to certain plugin limitations, this project is only available for preview on Windows and macOS. Those interested may run and experience it themselves.

  • To view the functionality demonstration, execute the integration test command flutter drive --target=test_driver/driver.dart.

  • Due to the abundance of pages, it may be difficult to match the design at first. However, I have added the relative path of the design in the code comments, which can be searched or located for the corresponding page. I hope this will be helpful to you.

  • This project uses the FlutterJsonBeanFactory plugin to generate Beans.

  • Web performance may be slower due to large resource files such as js and deployment on Github.

Summary of Experience

Tripartite library used

library Functionality
dio Networking library
provider State management
flutter_2d_amap 2D map from Amap
cached_network_image Image loading
fluro Routing management
flutter_oktoast Toast notifications
common_utils Common Dart utility library
flutter_slidable Swipe-to-delete
flustars Common Flutter utility library
flutter_swiper Flutter carousel component
url_launcher Plugin for launching URLs
image_picker Plugin for selecting images
rxdart Reactive extensions for Dart
webview_flutter WebView plugin
keyboard_actions Handling keyboard events
azlistview City selection list
date_utils Common date utility classes
bezier_chart Bezier chart
sprintf String formatting
qr_code_scanner Scanning QR codes
intl Localization
device_info_plus Getting device information
vibration Vibration
lottie Animation effects

For details, please refer to the pubspec.yaml file.

Plan:

  • Web support.

  • Migrate to null-safety.

  • Migrate to Navigator 2.0.

Thanks For

License

Copyright 2019 simplezhli

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.