1 // Copyright 2018-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <UMAppLoader/UMAppLoaderInterface.h>
5 
6 #define UM_REGISTER_APP_LOADER_WITH_CUSTOM_LOAD(loader_name, _custom_load_code) \
7   extern void UMRegisterAppLoader(NSString *, Class); \
8   + (void)load { \
9     UMRegisterAppLoader(@#loader_name, self); \
10     _custom_load_code \
11   }
12 
13 #define UM_REGISTER_APP_LOADER(loader_name) \
14   UM_REGISTER_APP_LOADER_WITH_CUSTOM_LOAD(loader_name,)
15 
16 @interface UMAppLoaderProvider : NSObject
17 
18 - (nullable id<UMAppLoaderInterface>)createAppLoader:(nonnull NSString *)loaderName;
19 
20 + (nonnull instancetype)sharedInstance;
21 
22 @end
23