月度归档: 2022 年 5 月

  • Rust自动生成Dart API供Flutter使用

    最近使用了flutter_rust_bridge,流程上非常好,极大程度简化了操作。

    使用方法如下

    提供Rust API

    为了方便管理和测试,对Flutter暴露的接口单独提供,放在api.rs中。里面提供的都是pub fn,出入参数如果内含其他结构体,加上Option,比如

    pub fn query_report(query: ReportQuery) -ReportPageDTO {
        APP.lock().unwrap().query_report(query)
    }
    
    pub struct ReportPageDTO {
        pub total: i32,
        pub list: Option<Vec<ReportDTO,
    }
    

    准备生成工具

    先安装工具和依赖

    dart pub global activate ffigen
    cargo install flutter_rust_bridge_codegen

    另外还需要LLVM,具体安装看操作系统有一些区别。

    最后运行脚本

    flutter_rust_bridge_codegen