EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB489551: Add Functionality with a Custom Application Delegate for Strategy Library iOS


Mengyuan Guan

Product Owner, Principal • MicroStrategy


In iOS, every app has a delegate object following the UIApplicationDelegate protocol, which manages shared behaviors and key lifecycle events. The delegate is specified in the Xcode project and created when the app launches. The Strategy iOS Library SDK provides its own delegate class DossierAppDelegate, but developers can extend this class to customize app launch behavior and state transitions by overriding protocol methods.

Every iOS application has a delegate object that conforms to the UIApplicationDelegate protocol. Your app delegate object manages your app’s shared behaviors. The app delegate is effectively the root object of your app, and it works in conjunction with UIApplication to manage some interactions with the system. In iOS 12 and earlier, you use your app delegate to manage major life cycle events in your app. Specifically, you use methods of the app delegate to update the state of your app when it enters the foreground or moves to the background. The app delegate of an application is defined in the Xcode project configuration and is instantiated by iOS when the application launches. See the iOS Developer Library for more information about the UIApplicationDelegate protocol.

The template Xcode project in Strategy iOS Library SDK is preconfigured with its own internal app delegate class, called

DossierAppDelegate
, but it is possible to configure a custom app delegate class that adds more functionality when the application launches and when state transitions occur. This can be done by extending the Strategy Library internal app delegate class and overriding the different methods defined in the
UIApplicationDelegate 
protocol.

Create a Custom Application Delegate Class That Extends DossierAppDelegate

  • Set up the environment to use the Library Mobile for iOS project. Use this project as the basis for your customizations.
  • Create a custom application delegate class that extends
    DossierAppDelegate
    . Open the template project and use Xcode to open the
    StrategyLibrary.xcodepro
    j file.
ka0PY000000KCjNYAW_0EMPY00000QLsMb.jpeg
  • Create a new Swift file. From the File menu, point to New, select File from Template, and choose the Swift file type. Give the file a meaningful name, such as
    CustomAppDelegate.

ka0PY000000KCjNYAW_0EMPY00000QLtIf.jpeg
  • Select Swift File and input
    CustomAppDelegate.

ka0PY000000KCjNYAW_0EMPY00000QLgN4.jpeg
  • Click Create Bridging Header.
ka0PY000000KCjNYAW_0EMPY00000QLupp.jpeg
  •  
    An empty Swift file is added to the template project.
ka0PY000000KCjNYAW_0EMPY00000QLrFG.jpeg
  • Open
    main.m
    . Change
    StrategyMobileSDK.DossierAppDelegate
    to
    Library.CustomAppDelegate.

ka0PY000000KCjNYAW_0EMPY00000QLqj0.jpeg

Implement and Use CustomAppDelegate

  1. Modify the new Swift file. Import the
    StrategyLibraryMobileSDK.
  2. Define a class extended from
    DossierAppDelegate
    and provide implemented functions for
    UIApplicationDelegate
    as necessary.
  3. Call super implementation to avoid missing important features provided in the Strategy Library SDK, as shown in line 14 in the screenshot below:
ka0PY000000KCjNYAW_0EMPY00000QKxmZ.jpeg

Warning: With the adoption of UIScene:

  •  The
    MainWindow.xib
    and
    MainWindow-iPad.xib
    have been deprecated.
  • The methods listed in the table below are now deprecated and unavailable. To implement equivalent features, consider customizing 
    DossierDefaultSceneDelegate
    or registering relevant event listeners as needed.

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

MethodApple Documentation Link

optional func applicationDidBecomeActive(_application: UIApplication)
applicationDidBecomeActive
optional func applicationWillResignActive(_application: UIApplication)
applicationWillResignActive
optional func applicationDidEnterBackground(_application: UIApplication)
applicationDidEnterBackground
optional func applicationWillEnterForeground(_application: UIApplication)
applicationWillEnterForeground

 


Comment

0 comments

Details

Knowledge Article

Published:

November 7, 2025

Last Updated:

November 14, 2025