Flutter

Flutter UI

  1. 体验

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    对于Android和IOS这种移动端的App Go语言没有什么特别好用的UI库
    用过Fyne不习惯各种的包装思路 布局写起来很麻烦

    Gioui现在也可以写简单的单页面App 不过稍微多页面写起来就麻烦了
    而且常用的下拉列表也没有 我也不会写....

    Flutter最早接触是在两年前吧 那时候只是拉过来源码试了一下不满意
    前几天群里和人聊起UI说起这个 看了看Dart的关键 开始一边写一边学一边网上搜答案....
    用了大概一个星期 把之前用gioui没有实现的效果写出来了
    没有很复杂的思路和过程 就是Go做为服务端Flutter做为客户端
    两端用http来通信
    感受就是Flutter各种的Widget 传参都是通过widget来做....

    这个库UI组件和Go的那些第三方库比起来还是很多的
    常见的下拉 时间组件 http等等应有尽有
  2. upgrade

issuecomment-1272705762

  1. FFI

Android加载libxxx.so
现有版本3.3.8不是每次都能加载,原因不明。

  • project_root/android/app

    1
    build.gradle  CMakeLists.txt  libs  src
  • project_root/android/app/CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required(VERSION 3.22.1)
project(runner LANGUAGES CXX)
add_library(
libxxx
SHARED
IMPORTED
)
set_target_properties(
libxxx
PROPERTIES IMPORTED_LOCATION
libs/${ANDROID_ABI}/libxxx.so
)
include_directories( libs/${ANDROID_ABI}/ )
  • project_root/android/app/build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
buildTypes {
release {
signingConfig signingConfigs.debug
}
debug {
signingConfig signingConfigs.debug
}
}
// Encapsulates your external native build configurations.
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "CMakeLists.txt"
}
}
  • project_root/android/app/libs
1
2
3
4
5
6
7
8
9
10
11
12
13
libs
├── arm64-v8a
│ ├── libxxx.h
│ └── libxxx.so
├── armeabi-v7a
│ ├── libxxx.h
│ └── libxxx.so
├── x86
│ ├── libxxx.h
│ └── libxxx.so
└── x86_64
├── libxxx.h
└── libxxx.so
  • project_root/android/local.properties
1
2
3
4
5
6
sdk.dir=/path/Android/Sdk
cmake.dir=/path/Android/Sdk/cmake/3.22.1
flutter.sdk=/path/flutter
flutter.buildMode=debug
flutter.versionName=1.0.0
flutter.versionCode=1
  1. FFI另一个CMake方法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cmake_minimum_required(VERSION 3.22.1)
    project(runner LANGUAGES CXX)
    add_library(libmessage
    INTERFACE
    IMPORTED
    )
    target_include_directories(libmessage
    INTERFACE libs/${ANDROID_ABI}
    )
    target_link_directories(libmessage
    INTERFACE libs/${ANDROID_ABI}
    )
    target_link_libraries(libmessage
    INTERFACE libs/${ANDROID_ABI}/libmessage.so)

youtube

flutter build apk –release 无法联网的问题

推荐文章