Giter Club home page Giter Club logo

flutterfrom0to1's Introduction

《Flutter从0到1构建大前端应用》源码

源码介绍

源码与书本中的章节对应,由于Flutter技术发展迅速,成书的速度跟不上Flutter的更新速度,但是代码可以是最新的,笔者承诺这里的代码会兼容后续的Flutter最新版本,建议读者收藏本项目,“补充内容”区域也是一个好地方,里面经常会有一些更新内容,希望读者常去看看。

代码使用说明:

  1. git clone https://github.com/heruijun/FlutterFrom0To1
  2. 使用Android Studio或VSCode导入项目
  3. 执行flutter packages get之后,就可以运行项目
  4. 更新方式进入项目主目录,使用git pull获取最新代码

书中勘误表

如发现书中内容描述有误,请尽快联系作者,以便作者在第一时间修复,联系方式见“作者简介”。

已知问题,请查看chapter_error

补充内容

  1. 2019/08/31,新增一个用Provider 3.1.0实现的底部导航,源码已经放在第3章chapter3/flutter_bottomnav_provider
  2. 2019/08/13,新增一个列表型日历组件,支持单选,区域选中,反选等操作,是一个比较全面的例子,源码已经添加到第10章的实战章节,放在chapter10/flutter_calendar
  3. 2019/07/23,书中9.3.5章节只对aar打包方式做了简单的讲解,应读者建议,补充了Flutter在Android端工程化实践,实现了抽取Flutter业务层代码,通过fat-aar打成一个aar包,并且通过变量实现Flutter环境切换,放在chapter9/flutter_fat_aar
  4. 2019/07/21,对书中第4章手势章节追加了一个手势实现360旋转展物的例子,放在chapter4/gesture_detector_360

关于实战项目(必读)

本书最后的实战章节,展现了除Flutter之外的一些前端和node服务器的知识,里面涉及到一些安装和配置,考虑到无前端和node基础的同学跑起来比较吃力,所以扩展了一下安装和配置教程,请点击小白安装和配置文档查看。 在源码中除了Flutter客户端项目之外,你还能在服务端代码里学习到以下知识点,也就是大前端相关的知识内容,可以说是彩蛋内容:

  1. node父子进程通信
  2. Koa2接口服务API
  3. nuxt相关知识
  4. vue基础
  5. puppeteer爬虫服务器抓取网站数据

作者简介

目前在平安银行担任移动端架构师,负责亿级访问量的平安口袋银行app,参与信用卡模块的核心业务开发和性能分析治理等工作,熟悉Android,Hybrid,ReactNative等跨平台方案。并且在团队内部推进和分享Flutter技术实施,包括Flutter工程化,路由,插件,MXFlutter等技术调研和探索。

作者联系方式QQ:113805738,微信:heruijun2258

意见邮箱:[email protected]

Flutter千人技术交流QQ群:468010872

其他Flutter开源项目:Flutter仿Boss直聘

flutterfrom0to1's People

Contributors

shautzin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutterfrom0to1's Issues

提交勘误

203页,chapter7/flutter_route/lib/todo.dart 路径中少了个s,具体请看我提交的 PR

#2

应该提供docker方式配置服务端

可以考虑利用docker方式配置服务端,让读者能更快的专注flutter的学习开发。

如果一个移动端实战类教程会耗费较多时间在后端环境搭建上,读者可能就会考虑换一个教程了。

代码克隆下来无法运行

IDE :Android studio 4.1.1
启动时报如下错误:

event sent after app closed: {id: 0, progressId: null, message: Running "flutter pub get" in flutter_bottomnav...}
event sent after app closed: {id: 0, progressId: null, finished: true}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Warning
──────────────────────────────────────────────────────────────────────────────
Your Flutter application is created using an older version of the Android
embedding. It's being deprecated in favor of Android embedding v2. Follow the
steps at

https://flutter.dev/go/android-project-migration

to migrate your project.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Launching lib/main.dart on Mi 10 Pro in debug mode...
[!] Your app isn't using AndroidX.
To avoid potential build failures, you can quickly migrate your app by following the steps on https://goo.gl/CP92wY .
Running Gradle task 'assembleDebug'...
/Users/zhuzhiqiang/gradle-4.5.1/.gradle/caches/transforms-1/files-1.1/core-1.1.0.aar/99875dad3578891d7a573f3ed4990bf2/res/values/values.xml:7:5-70: AAPT: error: resource android:attr/fontVariationSettings not found.

/Users/zhuzhiqiang/gradle-4.5.1/.gradle/caches/transforms-1/files-1.1/core-1.1.0.aar/99875dad3578891d7a573f3ed4990bf2/res/values/values.xml:7:5-70: AAPT: error: resource android:attr/ttcIndex not found.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugResources'.

Failed to process resources, see aapt output above for details.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 13s
Exception: Gradle task assembleDebug failed with exit code 1

跟着上面的提示修改了一下
在 pubspec.yaml 添加了
module:
androidX: true

并在android/gradle.properties里面添加了
android.useAndroidX=true
android.enableJetifier=true

然后执行flutter clean

还是无法启动

event sent after app closed: {id: 0, progressId: null, message: Running "flutter pub get" in flutter_bottomnav...}
event sent after app closed: {id: 0, progressId: null, finished: true}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Warning
──────────────────────────────────────────────────────────────────────────────
Your Flutter application is created using an older version of the Android
embedding. It's being deprecated in favor of Android embedding v2. Follow the
steps at

https://flutter.dev/go/android-project-migration

to migrate your project.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Launching lib/main.dart on Mi 10 Pro in debug mode...
Running Gradle task 'assembleDebug'...

第9章9.3.1&9.3.2是否需要特殊设置?

  1. 在9.3.1创建Flutter模块时,执行flutter create -t module flutter_module,会报错Got socket error trying to find package cupertino_icons at https://pub.flutt
  2. 在9.3.2 settings.gradle里面,flutter_module/.android/include_flutter.groovy 报错Caused by: java.io.FileNotFoundException:,同时在您的demo里面flutter_module文件夹下并没有.android文件夹。

错误

2.3章节错误

var val = 12 ~/7;
print(val);  //结果是 3 

结果是1

不要误人子弟

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.