DEV Community

Cover image for Integrate Flutter module into Android project
codebangkok
codebangkok

Posted on • Edited on

Integrate Flutter module into Android project

ขั้นตอนวิธีนำเอา Flutter ที่สร้างเป็น Module เพื่อเป็นส่วนหนึ่งใน Android Project ให้ทำงานร่วมกันเป็น Mini App


Android Studio Bumblebee | 2021.1.1 Patch 2
Flutter 2.10.3 | Dart 2.16.1 | DevTools 2.9.2

Flutter Module

1) สร้างโปรเจ็ค Flutter เป็นชนิด Module

flutter create -t module flutter_counter
Enter fullscreen mode Exit fullscreen mode

2) เข้าไปใน flutter_counter แล้วบิ้วแบบ aar (Android Archive) เปิดหน้าจอนี้ไว้ เพื่อจะก๊อปปี้โค้ด

cd flutter_counter
flutter build aar
Enter fullscreen mode Exit fullscreen mode

Android Project

1) สร้าง Android Project แบบ Basic Activity

2) ก๊อปปี้โค้ดที่ได้มาจากการ build ของ flutter

String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?:
      "https://storage.googleapis.com"
Enter fullscreen mode Exit fullscreen mode

3) นำโค้ดไปวางไว้ที่ settings.gradle

4) ก๊อปปี้โค้ดที่ได้มาจากการ build ของ flutter

maven {
    url '/Users/bond/codebangkok/flutter_counter/build/host/outputs/repo'
}
maven {
    url "$storageUrl/download.flutter.io"
}
Enter fullscreen mode Exit fullscreen mode

5) นำโค้ดไปวางไว้ที่ settings.gradle ใน repositories กดเซฟ แล้วกดปุ่ม Sync Now

6) ก๊อปปี้โค้ดที่ได้มาจากการ build ของ flutter

debugImplementation 'com.example.flutter_counter:flutter_debug:1.0'
profileImplementation 'com.example.flutter_counter:flutter_profile:1.0'
releaseImplementation 'com.example.flutter_counter:flutter_release:1.0'
Enter fullscreen mode Exit fullscreen mode

7) นำโค้ดไปวางไว้ที่ build.gradle (Module) ใน dependencies

8) ก๊อปปี้โค้ดที่ได้มาจากการ build ของ flutter

profile {
    initWith debug
}
Enter fullscreen mode Exit fullscreen mode

9) นำโค้ดไปวางไว้ที่ build.gradle (Module) ใน buildTypes กดเซฟ แล้วกดปุ่ม Sync Now

10) เพิ่ม activity ที่ AndroidManifest.xml

<activity
    android:name="io.flutter.embedding.android.FlutterActivity"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:windowSoftInputMode="adjustResize"/>
Enter fullscreen mode Exit fullscreen mode

Test Open Flutter Module

ทดลองเปิด flutter module ด้วยการกดปุ่ม
1) เปิดไฟล์ FirstFragment ไปทำกันที่อีเว้น onClick โดยไป comment code เดิมออกแล้วใสโค้ดเรียก Flutter Module ดังนี้

startActivity(FlutterActivity
        .withNewEngine()
        .backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.transparent)
        .build(getContext()));
Enter fullscreen mode Exit fullscreen mode

2) รันโปรเจ็ค Android เพื่อทดสอบการทำงาน กดปุ่ม Next เพื่อเปิด Flutter Module

ติดตามผลงานได้ที่

Top comments (0)