环境
Flutter 3.29
macOS Sequoia 15.4.1
Xcode 16.3
集成
Flutter
提供了camera
插件来拍照和录视频,它提供了一系列可用的相机,并使用特定的相机展示相机预览、拍照、录视频。
添加依赖
- camera: 提供使用设备相机模块的工具
- path_provider: 寻找存储图片的正确路径
- path: 创建适配任何平台的路径
Flutter 3.29
macOS Sequoia 15.4.1
Xcode 16.3
默认情况下,Flutter只提供美式英语的本地化,可以通过flutter_localizations这个package来实现国际化。
创建flutter工程后执行
1 | ¥ flutter pub add flutter_localizations --sdk=flutter |
执行后的pubspec.yaml
文件的效果
1 | dependencies: |
1 | $ flutter pub add sqlite |
1 | $ flutter run |
运行失败,看是编译报错,打开Xcode工程 ⌘ + B 编译
对比 GSYGithubAppFlutter 的Xcode工程Build Phases > [CP] Embed Pods Frameworks 有sqfite.framework。本地默认的Flutter工程默认未生成Podfile
然后查看 GSYGithubAppFlutter
Flutter 3.29
macOS Sequoia 15.4.1
Xcode 16.3
在UIKit中,通过ViewController控制数据在视图上展现,多个ViewController组合在一起构建复杂的用户界面。在Flutter中,因为所有都是Widget,所以ViewController相关的功能也由Widget来承担。
在UIKit中可以重写自定义控制器的生命周期的方法,或注册AppDelegate的回调。在Flutter3.13前,没有这个概念,但是可以通过监听WidgetsBinding
观察者和didChangeAppLifecycleState()
改变事件来实现
Flutter 3.29
macOS Sequoia 15.4.1
Xcode 16.3
在UIKit使用UIView类的对象进行页面开发,布局也是UIView类的对象,在Flutter中使用的是Widget,在概念上Widget可以理解成UIView。
差异:
Flutter 包含 Matterial 组件库,其中的Widgets都符合了Material设计指引。Material设计是个适配多平台的设计系统,也支持iOS
但如果想用iOS的UI风格,可以使用Cupertino widgets libray