Repository: realm/realm-swift
File: Realm/RLMApp.h (C/C++)

Code before:
#import <AuthenticationServices/AuthenticationServices.h>

RLM_HEADER_AUDIT_BEGIN(nullability, sendability)

@protocol RLMNetworkTransport, RLMBSON;

@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;

/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);

/// A block type used to report an error
typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);

#pragma mark RLMAppConfiguration

/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
///
/// `RLMAppConfiguration` options cannot be modified once the `RLMApp` using it
/// is created. App's configuration values are cached when the App is created so any modifications after it
/// will not have any effect.
@interface RLMAppConfiguration : NSObject <NSCopying>

/// A custom base URL to request against.
@property (nonatomic, strong, null_resettable) NSString *baseURL;

/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id<RLMNetworkTransport> transport;

/// :nodoc:
@property (nonatomic, strong, nullable) NSString *localAppName
    __attribute__((deprecated("This field is not used")));
/// :nodoc:
@property (nonatomic, strong, nullable) NSString *localAppVersion
    __attribute__((deprecated("This field is not used")));

/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;

/// If enabled (the default), a single connection is used for all Realms opened
/// with a single sync user. If disabled, a separate connection is used for each
/// Realm.
///
/// Session multiplexing reduces resources used and typically improves
/// performance. When multiplexing is enabled, the connection is not immediately
/// closed when the last session is closed, and instead remains open for
/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
/// default).
@property (nonatomic, assign) BOOL enableSessionMultiplexing;


Review comment (suggestion):
Also, the docstring should be updated to reflect that now we return the default url if there is no given base url, if we are going in that direction

Code after:
#import <AuthenticationServices/AuthenticationServices.h>

RLM_HEADER_AUDIT_BEGIN(nullability, sendability)

@protocol RLMNetworkTransport, RLMBSON;

@class RLMUser, RLMCredentials, RLMSyncManager, RLMEmailPasswordAuth, RLMPushClient, RLMSyncTimeoutOptions;

/// A block type used for APIs which asynchronously vend an `RLMUser`.
typedef void(^RLMUserCompletionBlock)(RLMUser * _Nullable, NSError * _Nullable);

/// A block type used to report an error
typedef void(^RLMOptionalErrorBlock)(NSError * _Nullable);

#pragma mark RLMAppConfiguration

/// Properties representing the configuration of a client
/// that communicate with a particular Realm application.
///
/// `RLMAppConfiguration` options cannot be modified once the `RLMApp` using it
/// is created. App's configuration values are cached when the App is created so any modifications after it
/// will not have any effect.
@interface RLMAppConfiguration : NSObject <NSCopying>

/// A custom base URL to request against. If not set or set to nil, the default base url for app services will be returned.
@property (nonatomic, strong, null_resettable) NSString *baseURL;

/// The custom transport for network calls to the server.
@property (nonatomic, strong, nullable) id<RLMNetworkTransport> transport;

/// :nodoc:
@property (nonatomic, strong, nullable) NSString *localAppName
    __attribute__((deprecated("This field is not used")));
/// :nodoc:
@property (nonatomic, strong, nullable) NSString *localAppVersion
    __attribute__((deprecated("This field is not used")));

/// The default timeout for network requests.
@property (nonatomic, assign) NSUInteger defaultRequestTimeoutMS;

/// If enabled (the default), a single connection is used for all Realms opened
/// with a single sync user. If disabled, a separate connection is used for each
/// Realm.
///
/// Session multiplexing reduces resources used and typically improves
/// performance. When multiplexing is enabled, the connection is not immediately
/// closed when the last session is closed, and instead remains open for
/// ``RLMSyncTimeoutOptions.connectionLingerTime`` milliseconds (30 seconds by
/// default).
@property (nonatomic, assign) BOOL enableSessionMultiplexing;