// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef FLUTTER_FLUTTERDARTPROJECT_H_ #define FLUTTER_FLUTTERDARTPROJECT_H_ #import #include "FlutterMacros.h" /** * A set of Flutter and Dart assets used by a `FlutterEngine` to initialize execution. */ FLUTTER_EXPORT @interface FlutterDartProject : NSObject /** * Initializes a Flutter Dart project from a bundle. */ - (instancetype)initWithPrecompiledDartBundle:(NSBundle*)bundle NS_DESIGNATED_INITIALIZER; /** * Unavailable - use `init` instead. */ - (instancetype)initFromDefaultSourceForConfiguration FLUTTER_UNAVAILABLE("Use -init instead."); /** * Returns the file name for the given asset. If the bundle with the identifier * "io.flutter.flutter.app" exists, it will try use that bundle; otherwise, it * will use the main bundle. To specify a different bundle, use * `-lookupKeyForAsset:asset:fromBundle`. * * @param asset The name of the asset. The name can be hierarchical. * @return the file name to be used for lookup in the main bundle. */ + (NSString*)lookupKeyForAsset:(NSString*)asset; /** * Returns the file name for the given asset. * The returned file name can be used to access the asset in the supplied bundle. * * @param asset The name of the asset. The name can be hierarchical. * @param bundle The `NSBundle` to use for looking up the asset. * @return the file name to be used for lookup in the main bundle. */ + (NSString*)lookupKeyForAsset:(NSString*)asset fromBundle:(NSBundle*)bundle; /** * Returns the file name for the given asset which originates from the specified package. * The returned file name can be used to access the asset in the application's main bundle. * * @param asset The name of the asset. The name can be hierarchical. * @param package The name of the package from which the asset originates. * @return the file name to be used for lookup in the main bundle. */ + (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package; /** * Returns the file name for the given asset which originates from the specified package. * The returned file name can be used to access the asset in the specified bundle. * * @param asset The name of the asset. The name can be hierarchical. * @param package The name of the package from which the asset originates. * @param bundle The bundle to use when doing the lookup. * @return the file name to be used for lookup in the main bundle. */ + (NSString*)lookupKeyForAsset:(NSString*)asset fromPackage:(NSString*)package fromBundle:(NSBundle*)bundle; /** * Returns the default identifier for the bundle where we expect to find the Flutter Dart * application. */ + (NSString*)defaultBundleIdentifier; @end #endif // FLUTTER_FLUTTERDARTPROJECT_H_