跳到正文

Flutter

中级网页App

Flutter 是用 Dart 编写界面的跨端开发框架,能让同一套应用代码运行在手机、网页和桌面平台。它减少了多端重复开发的工作,比如共用记账功能和页面,但系统权限、窗口布局等差异仍需要单独处理。

你可能会说:「我想做一个安卓和苹果手机都能用的记账应用,尽量共用代码和界面。」

读之前建议先了解

动手看看

共用代码共用记账代码页面与逻辑Flutter准备构建平台适配尚未适配目标端应用尚未运行
1

我们用 Dart 写好金额输入、账目列表和合计逻辑。接下来切换运行平台,看看哪些代码能共用,哪些地方要适配。

要点

  1. 1

    用组件描述整个界面

    你用 Dart 把文字、按钮、列表和布局组合成 Widget,也就是界面组件。账单数据变化时,框架根据新状态更新界面,所以我们主要描述页面此刻该是什么样,而不是逐步修改屏幕。

  2. 2

    界面主要由框架绘制

    Flutter 的常规界面主要由自己的渲染体系绘制,而不是把每个按钮换成系统按钮。这样便于保持多端视觉一致,但返回手势、键盘交互和无障碍体验仍需要按平台检查。

  3. 3

    共用代码仍有平台差异

    你可以共用记账逻辑和页面,拍照、通知等系统能力则常通过插件接入。因为插件的平台支持范围不同,所以选型时得先确认目标平台;发布时也要分别构建和测试各端。

容易混淆的地方

Dart 是编程语言,Flutter 是用这门语言开发界面的框架,两者不是同一个东西。React Native 通常把组件映射到原生视图,Flutter 的常规界面主要自行绘制;两者都能共用代码,也都无法自动消除平台差异。

什么时候用

适合用

  • 小团队同时做安卓和苹果手机的记账应用,希望共用业务逻辑与主要页面。
  • 做手机和平板上的巡检工具,需要统一表单流程,并按屏幕大小调整布局。
  • 做同时面向手机和桌面的专注计时工具,希望复用自定义界面与动画。

不适合用

  • 只做靠搜索引擎获客的内容网站,用 HTML 或支持静态生成的网页框架更合适。
  • 只交付微信小程序时,优先选小程序原生开发、uni-app 或 Taro。
  • 只做单平台且大量依赖最新系统界面的应用,可优先选 Swift 或 Kotlin 原生开发。

练一练

你要做安卓和苹果手机上的报销应用,表单基本相同,但都要拍照上传票据。AI 建议使用 Flutter,哪种执行方案更合理?

让 AI 帮你做

请用 Flutter 和 Dart 做一个面向安卓与 iOS 的报销应用,共用表单、列表和业务逻辑。先列出拍照上传需要的插件及平台配置,再实现页面、加载和错误状态,并分别给出两端的构建与真机验证步骤。

接下来学什么