Guilherme Delgado
09/10/2024, 10:29 AMKotlinx_coroutines
, Kotlinx_serialization
, Koin
, which, as far as I understand, generate unnecessary Objective-C headers that could potentially be avoided. Is there a method to exclude unnecessary parts of these dependencies to reduce the size of the resulting binary? Example, I have a moduleA
that depends on SQLDelight, where all SQL configurations (code generation, etc.) and DAOs are defined. I also have a moduleB
that depends on moduleA
and provides access to these DAOs. The XCF will export moduleB
, and no SQLDelight code is included in the XCF (success!). Is this approach the best way to handle such use cases?
(Actually this also applies to modules that do not use the export functionality)François
09/10/2024, 11:07 AMFrançois
09/10/2024, 11:08 AMFrançois
09/10/2024, 11:22 AMFrançois
09/10/2024, 11:23 AMGuilherme Delgado
09/10/2024, 11:23 AMGuilherme Delgado
09/10/2024, 11:24 AMGuilherme Delgado
09/10/2024, 11:25 AMFrançois
09/10/2024, 11:27 AMGuilherme Delgado
09/10/2024, 11:35 AMHeaders.h
example:
/**
* @note annotations
* kotlinx.serialization.ExperimentalSerializationApi
*/
__attribute__((swift_name("Kotlinx_serialization_coreSerializersModuleCollector")))
@protocol WNSKotlinx_serialization_coreSerializersModuleCollector
@required
- (void)contextualKClass:(id<WNSKotlinKClass>)kClass provider:(id<WNSKotlinx_serialization_coreKSerializer> (^)(NSArray<id<WNSKotlinx_serialization_coreKSerializer>> *))provider __attribute__((swift_name("contextual(kClass:provider:)")));
- (void)contextualKClass:(id<WNSKotlinKClass>)kClass serializer:(id<WNSKotlinx_serialization_coreKSerializer>)serializer __attribute__((swift_name("contextual(kClass:serializer:)")));
- (void)polymorphicBaseClass:(id<WNSKotlinKClass>)baseClass actualClass:(id<WNSKotlinKClass>)actualClass actualSerializer:(id<WNSKotlinx_serialization_coreKSerializer>)actualSerializer __attribute__((swift_name("polymorphic(baseClass:actualClass:actualSerializer:)")));
- (void)polymorphicDefaultBaseClass:(id<WNSKotlinKClass>)baseClass defaultDeserializerProvider:(id<WNSKotlinx_serialization_coreDeserializationStrategy> _Nullable (^)(NSString * _Nullable))defaultDeserializerProvider __attribute__((swift_name("polymorphicDefault(baseClass:defaultDeserializerProvider:)"))) __attribute__((deprecated("Deprecated in favor of function with more precise name: polymorphicDefaultDeserializer")));
- (void)polymorphicDefaultDeserializerBaseClass:(id<WNSKotlinKClass>)baseClass defaultDeserializerProvider:(id<WNSKotlinx_serialization_coreDeserializationStrategy> _Nullable (^)(NSString * _Nullable))defaultDeserializerProvider __attribute__((swift_name("polymorphicDefaultDeserializer(baseClass:defaultDeserializerProvider:)")));
- (void)polymorphicDefaultSerializerBaseClass:(id<WNSKotlinKClass>)baseClass defaultSerializerProvider:(id<WNSKotlinx_serialization_coreSerializationStrategy> _Nullable (^)(id))defaultSerializerProvider __attribute__((swift_name("polymorphicDefaultSerializer(baseClass:defaultSerializerProvider:)")));
@end
__attribute__((objc_subclassing_restricted))
__attribute__((swift_name("Koin_coreKind")))
@interface WNSKoin_coreKind : WNSKotlinEnum<WNSKoin_coreKind *>
+ (instancetype)alloc __attribute__((unavailable));
+ (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
- (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
@property (class, readonly) WNSKoin_coreKind *singleton __attribute__((swift_name("singleton")));
@property (class, readonly) WNSKoin_coreKind *factory __attribute__((swift_name("factory")));
@property (class, readonly) WNSKoin_coreKind *scoped __attribute__((swift_name("scoped")));
+ (WNSKotlinArray<WNSKoin_coreKind *> *)values __attribute__((swift_name("values()")));
@property (class, readonly) NSArray<WNSKoin_coreKind *> *entries __attribute__((swift_name("entries")));
@end
Kotlinx_serialization_coreSerializersModuleCollector
, Koin_coreKind
, etc… I cannot make them @HiddenFromObjc
for instance. Maybe I need those, but still, would like to test and see 🙂 because manually I don’t call those methods.François
09/10/2024, 11:36 AMFrançois
09/10/2024, 11:36 AMFrançois
09/10/2024, 11:37 AMFrançois
09/10/2024, 11:38 AMFrançois
09/10/2024, 11:39 AMFrançois
09/10/2024, 11:42 AMGuilherme Delgado
09/10/2024, 11:58 AM