Skip to content

kuloud/e_commerce_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7a31fc5 · Mar 20, 2024

History

7 Commits
Feb 28, 2024
Feb 28, 2024
Feb 28, 2024
Mar 20, 2024
Feb 28, 2024
Mar 1, 2024
Feb 28, 2024
Mar 1, 2024
Mar 1, 2024
Feb 28, 2024
Feb 28, 2024
Mar 20, 2024
Feb 28, 2024
Mar 20, 2024
Mar 20, 2024

Repository files navigation

e_commerce_app

去年做了几个Flutter应用,同一套代码fork了几个分支(如下截图是最新的一个分支实现),花点时间整理一个简单的APP工程模版:

  1. 最小依赖原则
  2. 之前只面向移动端,这次代码整理主要适配web
  3. 只把涉及到的且常用的功能摘出来,尽量简化实现,方便后面项目复用

home

shop

warehouse

mine

detail

select

checkout

open box record

功能:

  1. 国际化
  2. 自定义字体
  3. 首页
    • 轮播图
  4. Google登录

依赖组件:

必选

  1. intl 国际化
  2. dio 网络交互
  3. shared_preferences 本地存储
  4. injectable 依赖注入
  5. logger 日志
  6. card_swiper 轮播图
  7. google_sign_in 谷歌登录
  8. firebase_analytics firebase分析
  9. fluttertoast toast
  10. font_awesome_flutter FontAwesome(MaterialIcons带的icon比较少)

可选

  1. shimmer 骨架加载动画
  2. cached_network_image 图片缓存( Web不可用 )

Mock API

flutter run -d chrome --web-browser-flag "--disable-web-security" 

组件配置

  • injectable

依赖注入,定义di.dart文件

@InjectableInit()
Future<void> configureDependencies() async => await GetIt.instance.init();

添加injectable_generator插件,可以自动生成di.config.dart文件

flutter pub add dev:injectable_generator

在main.dart初始化

Future<void> main() async {
  await configureDependencies();
  runApp(const MainApp());
}

以SharedPreferences为例,全局注入SharedPreferences实例,避免非async方法里使用时await问题。

@module
abstract class SharedPreferenceService {
  @preResolve
  Future<SharedPreferences> get prefs => SharedPreferences.getInstance();
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published