| Flutter iOS Embedder |

Instance Methods | List of all members
FlutterEngineGroup Class Reference

`#import <FlutterEngineGroup.h>`

Inheritance diagram for FlutterEngineGroup:

## Instance Methods
(instancetype) | - NS_UNAVAILABLE
(instancetype) | - initWithName:project:
(FlutterEngine *) | - makeEngineWithEntrypoint:libraryURI:
(FlutterEngine *) | - makeEngineWithEntrypoint:libraryURI:initialRoute:
(FlutterEngine *) | - makeEngineWithOptions:

## Detailed Description

Represents a collection of FlutterEngines who share resources which allows them to be created with less time const and occupy less memory than just creating multiple FlutterEngines.

Deleting a FlutterEngineGroup doesn't invalidate existing FlutterEngines, but it eliminates the possibility to create more FlutterEngines in that group.

Warning
  This class is a work-in-progress and may change.

See also
  https://github.com/flutter/flutter/issues/72009

Definition at line 56 of file FlutterEngineGroup.h.

## Method Documentation

## ◆ initWithName:project:

- (instancetype) initWithName: |  | (NSString*) | name
project: |  | (nullable FlutterDartProject*) | NS_DESIGNATED_INITIALIZER

Initial value:
{
int _enginesCreatedCount

Initialize a new FlutterEngineGroup.

Parameters

  name | The name that will present in the threads shared across the engines in this group.
  project | The `FlutterDartProject` that all FlutterEngines in this group will be executing.

Definition at line 30 of file FlutterEngineGroup.mm.

30 :(NSString*)name project:(nullable FlutterDartProject*)project {
31 self = [super init];
32 if (self) {
33 _name = [name copy];
34 _engines = [[NSMutableArray<NSValue*> alloc] init];
35 _project = [project retain];
36 }
37 return self;
38 }

References _name.

## ◆ makeEngineWithEntrypoint:libraryURI:

- (FlutterEngine *) makeEngineWithEntrypoint: |  | (nullable NSString*) | entrypoint
libraryURI: |  | (nullable NSString*) | libraryURI

Creates a running `FlutterEngine` that shares components with this group.

Parameters

  entrypoint | The name of a top-level function from a Dart library. If this is FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart compiler.
  libraryURI | The URI of the Dart library which contains the entrypoint method. IF nil, this will default to the same library as the `main()` function in the Dart program.

See also
  FlutterEngineGroup

Definition at line 49 of file FlutterEngineGroup.mm.

49 :(nullable NSString*)entrypoint
50 libraryURI:(nullable NSString*)libraryURI {
51 return [self makeEngineWithEntrypoint:entrypoint libraryURI:libraryURI initialRoute:nil];
52 }

References makeEngineWithEntrypoint:libraryURI:initialRoute:.

## ◆ makeEngineWithEntrypoint:libraryURI:initialRoute:

- (FlutterEngine *) makeEngineWithEntrypoint: |  | (nullable NSString*) | entrypoint
libraryURI: |  | (nullable NSString*) | libraryURI
initialRoute: |  | (nullable NSString*) | initialRoute

Creates a running `FlutterEngine` that shares components with this group.

Parameters

  entrypoint | The name of a top-level function from a Dart library. If this is FlutterDefaultDartEntrypoint (or nil); this will default to `main()`. If it is not the app's main() function, that function must be decorated with `@pragma(vm:entry-point)` to ensure the method is not tree-shaken by the Dart compiler.
  libraryURI | The URI of the Dart library which contains the entrypoint method. IF nil, this will default to the same library as the `main()` function in the Dart program.
  initialRoute | The name of the initial Flutter `Navigator` `Route` to load. If this is FlutterDefaultInitialRoute (or nil), it will default to the "/" route.

See also
  FlutterEngineGroup

Definition at line 54 of file FlutterEngineGroup.mm.

54 :(nullable NSString*)entrypoint
55 libraryURI:(nullable NSString*)libraryURI
56 initialRoute:(nullable NSString*)initialRoute {
57 FlutterEngineGroupOptions* options = [[[FlutterEngineGroupOptions alloc] init] autorelease];
58 options.entrypoint = entrypoint;
59 options.libraryURI = libraryURI;
60 options.initialRoute = initialRoute;
61 return [self makeEngineWithOptions:options];
62 }

References FlutterEngineGroupOptions::entrypoint, FlutterEngineGroupOptions::initialRoute, FlutterEngineGroupOptions::libraryURI, and makeEngineWithOptions:.

Referenced by makeEngineWithEntrypoint:libraryURI:.

## ◆ makeEngineWithOptions:

- (FlutterEngine *) makeEngineWithOptions: |  | (nullable FlutterEngineGroupOptions*) | options |

Creates a running `FlutterEngine` that shares components with this group.

Parameters

  options | Options that control how a FlutterEngine should be created.

See also
  FlutterEngineGroupOptions

Definition at line 64 of file FlutterEngineGroup.mm.

64 :(nullable FlutterEngineGroupOptions*)options {
65 NSString* entrypoint = options.entrypoint;
66 NSString* libraryURI = options.libraryURI;
67 NSString* initialRoute = options.initialRoute;
68 NSArray<NSString*>* entrypointArgs = options.entrypointArgs;
69
70 FlutterEngine* engine;
71 if (self.engines.count <= 0) {
72 engine = [self makeEngine];
73 [engine runWithEntrypoint:entrypoint
74 libraryURI:libraryURI
75 initialRoute:initialRoute
76 entrypointArgs:entrypointArgs];
77 } else {
78 FlutterEngine* spawner = (FlutterEngine*)[self.engines[0] pointerValue];
79 engine = [spawner spawnWithEntrypoint:entrypoint
80 libraryURI:libraryURI
81 initialRoute:initialRoute
82 entrypointArgs:entrypointArgs];
83 }
84 [_engines addObject:[NSValue valueWithPointer:engine]];
85
86 NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
87 [center addObserver:self
88 selector:@selector(onEngineWillBeDealloced:)
89 name:kFlutterEngineWillDealloc
90 object:engine];
91
92 return engine;
93 }

References engine, FlutterEngineGroupOptions::entrypoint, FlutterEngineGroupOptions::entrypointArgs, FlutterEngineGroupOptions::initialRoute, FlutterEngineGroupOptions::libraryURI, FlutterEngine::runWithEntrypoint:libraryURI:initialRoute:entrypointArgs:, and FlutterEngine::spawnWithEntrypoint:libraryURI:initialRoute:entrypointArgs:.

Referenced by makeEngineWithEntrypoint:libraryURI:initialRoute:.

## ◆ NS_UNAVAILABLE

- (instancetype) NS_UNAVAILABLE |  |  |

The documentation for this class was generated from the following files:

- shell/platform/darwin/ios/framework/Headers/FlutterEngineGroup.h
- shell/platform/darwin/ios/framework/Source/FlutterEngineGroup.mm

FlutterEngine
Definition: FlutterEngine.h:61
FlutterEngineGroupOptions::libraryURI
NSString * libraryURI
Definition: FlutterEngineGroup.h:30
FlutterEngineGroupOptions::entrypoint
NSString * entrypoint
Definition: FlutterEngineGroup.h:24
FlutterEngineGroupOptions::initialRoute
NSString * initialRoute
Definition: FlutterEngineGroup.h:36
FlutterEngineGroupOptions
Definition: FlutterEngineGroup.h:16
engine
id engine
Definition: FlutterTextInputPluginTest.mm:89
_name
NSString * _name
Definition: FlutterChannels.mm:68
FlutterDartProject
Definition: FlutterDartProject.mm:264
-[FlutterEngine spawnWithEntrypoint:libraryURI:initialRoute:entrypointArgs:]
FlutterEngine * spawnWithEntrypoint:libraryURI:initialRoute:entrypointArgs:(/*nullable */NSString *entrypoint,[libraryURI]/*nullable */NSString *libraryURI,[initialRoute]/*nullable */NSString *initialRoute,[entrypointArgs]/*nullable */NSArray< NSString * > *entrypointArgs)
-[FlutterEngine runWithEntrypoint:libraryURI:initialRoute:entrypointArgs:]
BOOL runWithEntrypoint:libraryURI:initialRoute:entrypointArgs:(nullable NSString *entrypoint,[libraryURI] nullable NSString *libraryURI,[initialRoute] nullable NSString *initialRoute,[entrypointArgs] nullable NSArray< NSString * > *entrypointArgs)