Кроссплатформенная разработка на основе фреймворка Flutter

Для кроссплатформенной разработки мобильного приложения используйте фреймворк Flutter. Flutter - кроссплатформенный фреймворк, предназначенный для реализации единого кода мобильного приложения, соответствующего разным операционным системам. Для передачи данных между единым кодом и методами фреймворков Android, iOS используйте подготовленные мосты. Мост - это связующий код, разработанный на языке программирования соответствующей операционной системы, между нативными библиотеками и единым кодом.

Подготовленные мосты для разработки мобильного приложения на основе фреймворка Flutter доступны при подключении следующих фреймворков:

Подключение фреймворка FMP

Для подключения фреймворка FMP и подготовки кроссплатформенного мобильного приложения к разработке через фреймворк Flutter:

  1. Скачайте архив кроссплатформенного моста flutter-android*.zip.

Примечание. Для получения готового кроссплатформенного моста обратитесь в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.

  1. Добавьте содержимое папки flutter в кроссплатформенную часть проекта разработки мобильного приложения.

  2. Добавьте файл FMPBridge.kt в нативную часть проекта разработки мобильного приложения. При необходимости откройте файл на редактирование и измените параметр package в соответствии с наименованием проекта.

  3. Скопируйте содержимое кроссплатформенного моста из файла MainActivity.kt в нативную часть проекта разработки мобильного приложения.

После выполнения действий будет подключен фреймворк FMP и подготовлено кроссплатформенное мобильное приложение к разработке.

Подключение фреймворка FMPKit

Для подключения фреймворка FMPKit и подготовки кроссплатформенного мобильного приложения к разработке через фреймворк Flutter:

  1. Скачайте архив кроссплатформенного моста flutter-ios*.zip.

Примечание. Для получения готового кроссплатформенного моста обратитесь в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте.

  1. Добавьте файл fmp_bridge.dart, содержащийся в папке lib, в кроссплатформенную часть проекта разработки мобильного приложения:

  1. Добавьте содержимое папки FMPFlutter, расположенной в иерархии папок ios\Runner, в нативную часть проекта разработки мобильного приложения Runner.xcworkspace:

  1. Выполните действия для настройки нативной части проекта Runner.xcworkspace:
import UIKit
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {     var fmpFlutter: FMPFlutter!     override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {         let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
        // FMP Channel         fmpFlutter = FMPFlutter(methodChannel: FlutterMethodChannel(             name: "com.example.flutterApplication/FMPKit",             binaryMessenger: controller.binaryMessenger)         )         fmpFlutter.setMethodCallHandler()
        GeneratedPluginRegistrant.register(with: self)         return super.application(application, didFinishLaunchingWithOptions: launchOptions)     } }
  1. Откройте файл fmp_bridge.dart в кроссплатформенной части проекта разработки мобильного приложения и укажите наименование канала («com.example.flutterApplication/FMPKit»), заданное в шаге 3 для нативной части проекта, в статическом свойстве platform класса FMP:

import 'package:flutter/services.dart';
import 'dart:async';
 
class FMP {
static const platform = MethodChannel('com.example.flutterApplication/FMPKit');
  1. Импортируйте fmp_bridge.dart в файл проекта разработки мобильного приложения:

import 'package:flutter_application/fmp_bridge.dart';

После выполнения действий будет подготовлено кроссплатформенное мобильное приложение к разработке с использованием свойств и методов фреймворка FMPKit. Пример построения объекта FMP:

try {
    final fmp = await FMP.build(
        url: 'https://url/',
        environment: 'environment',
        project: 'project',
        udid: 'deviceID'
    );
     
    print('fmpId: ${fmp.fmpID}');
 
} on PlatformException catch (error) {
    print('Failed to build FMP: ${error.message}');
}

См. также:

Разработка | Фреймворк Android | Фреймворк iOS