美文网首页
Android 开发者的 Flutter 指南 — 其他

Android 开发者的 Flutter 指南 — 其他

作者: 敲代码的本愿 | 来源:发表于2019-02-26 16:05 被阅读57次

Flutter 插件

GPS传感器: Geolocator 插件
相机: Image Picker 插件
Facebook登录: flutter_facebook_login 插件

如何自定义插件?

参阅 developing packages and plugins

Flutter 插件的架构很像 Android 中使用 Event bus:发出消息,让接收者处理并返回结果。这种情况下,接收者运行在 Android 或 iOS 本地。

如何使用 NDK ?

如果当前 Android 应用程序使用了 NDK,那么可以通过构建自定义插件来间接实现 NDK 在 Flutter 应用程序中的复用。

自定义插件首先会与可以调用 native 方法的 Android 应用程序交互,当响应完成,便会返回消息给 Flutter 并呈现结果。

目前不支持从 Flutter 直接调用 native 代码。

主题

Flutter 实现的 Material Design 风格能够满足大部分对样式和主题的需求。通过顶层 Widget 来声明主题。

WidgetApp:普通。
MaterialApp:基于 WidgetApp ,Material 风格,更丰富。

相同点:都可以作为程序入口的 top level widget。

//示例
class SampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample App',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        textSelectionColor: Colors.red
      ),
      home: SampleAppPage(),
    );
  }
}

数据库与本地存储

如何使用 Shared Preferences ?

通过包装了 Shared Preferences 和 NSUserDefaults(iOS)功能的插件 Shared_Preferences 来实现键值对存储。

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        body: Center(
          child: RaisedButton(
            onPressed: _incrementCounter,
            child: Text('Increment Counter'),
          ),
        ),
      ),
    ),
  );
}

_incrementCounter() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  int counter = (prefs.getInt('counter') ?? 0) + 1;
  print('Pressed $counter times.');
  prefs.setInt('counter', counter);
}

如何使用 SQLite ?

通过 SQFlite 插件使用 SQLite
功能。

通知

可以通过 Firebase_Messaging 插件 实现功能。

相关文章

网友评论

      本文标题:Android 开发者的 Flutter 指南 — 其他

      本文链接:https://www.haomeiwen.com/subject/xxsayqtx.html