Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions MicroStrategy Mobile SDK 1 #mstrworld Agenda MicroStrategy Mobile SDK • Overview • Requirements & Setup • Custom App Delegate • Custom Authentication o Custom Login Screen o Advanced Customizations • Caching API • Navigation API and Custom Events 2 #mstrworld Overview MicroStrategy Mobile SDK Overview MicroStrategy Mobile SDK Architecture Client Side Customizations Mobile Server Intelligence Server Mobile Server / Certificate Server Customizations 4 #mstrworld Certificate Server DDBMS Overview Main Drivers • Extend OOTB • Integration • Innovation • Business needs • Use device’s capabilities 5 #mstrworld Requirements & Setup MicroStrategy Mobile SDK Requirements & Setup MicroStrategy Mobile SDK • Technical o Mac o Xcode o iOS Developer Enterprise Program o MicroStrategy Mobile SDK DMG • Skills o MicroStrategy App Development o Xcode o Objective-C / iOS Development o Java 7 #mstrworld Requirements & Setup Downloading MicroStrategy Mobile SDK https://developer.microstrategy.com 8 #mstrworld Requirements & Setup Installing MicroStrategy Mobile SDK 9 #mstrworld Lets try it out Custom App Delegate MicroStrategy Mobile SDK Custom App Delegate Overview • Custom code that runs all the time • Logic run upon app launch • Register custom authentication objects • Register custom link drill handler 12 #mstrworld Demo Custom App Delegate Custom Authentication MicroStrategy Mobile SDK Custom Authentication Custom Login Screen 15 #mstrworld Custom Authentication Custom Login Screen • Customization via MSIAuthenticationSettings.plist • Different configuration for Default and specific servers and projects • Customization Parameters o Background Image o Title o Header o Footer o Login Button o Cancel Button o Additional Project Authentication Parameters - Text Fields - Password Field - List 16 #mstrworld Demo Custom Login Screen Custom Authentication Advanced Customizations • Specific UI requirements for login screen • Client side credentials mapping • Pre-post login operations • Integration • Custom authentication workflow 18 #mstrworld Custom Authentication Overview 19 #mstrworld Demo Advanced Authentication Caching API MicroStrategy Mobile SDK Caching API Overview • Performance • Offline mode • Security • Conditional cache management 22 #mstrworld Caching API MSICacheManager • MSICacheManager MSICacheManager *manager = [MSICacheManager manager]; • Fetching Caches -(void)retrieveCacheForObjectId:(NSString*)objectId withPriority: (MSMCachePriorities)priority withElementsPromptAnswers:(NSString*)elementsPromptAnswers andValuePromptAnswers:(NSString*)valuePromptAnswers andProjectInfo: (ProjectInfo*)projectInfo completionHandler:(void(^)(MSIDocumentCache* documentCache, NSError* error))handlerBlock; 23 #mstrworld Caching API MSICacheManager • MSICacheManager MSICacheManager *manager = [MSICacheManager manager]; • Deleting all caches -(void)deleteAllCaches; -(void)deleteAllCachesBeforeDate:(NSDate*)date; • Deleting specific caches /** * This method will return the cache of certain key * @param key should be created by [NSString stringWithFormat:@"%@%@%@%@", projectIdentifier, objectId, elementsPromptAnswers, valuePromptAnswers]; */ -(MSIDocumentCache*)cacheForKey:(NSString*)key; -(void)deleteCache:(MSIDocumentCache*)cache; -(void)deleteCachesForObjectId:(NSString*)objectId projectInfo:(ProjectInfo*)projectInfo; 24 #mstrworld Demo Caching API Navigation and Custom Events API MicroStrategy Mobile SDK Navigation and Custom Events API Link Drilling • Ad-Hoc navigation • Conditional logic • Widgets MSILinkDrillHandler linkDrillHandler = [MSILinkDrillHandler linkDrillHandler]; /** * SDK user can call this class method to execute a url * @param link is the url string defined inside the document * @param commander is the commander of current controller */ + (void)handleURLLink:(NSString*)link withCommander:(id<MSICommanderDelegate>)commander; 27 #mstrworld Navigation and Custom Events API Custom Events • Ad-Hoc navigation • Conditional logic • Widgets • Events > 10 000 000 @protocol MSILinkDrillCustomEventDelegate /** * SDK user should implement this method if they want to define custom event for link drill * @param url is the url string defined inside the document * @param commander is the commander of current controller */ - (void)executeURL:(NSString*)url withCommander:(id<MSICommanderDelegate>)commander; @end CustomEventDelegateHandler *eventHandler = [[CustomEventDelegateHandler alloc]init]; MSILinkDrillHandler linkDrillHandler = [MSILinkDrillHandler linkDrillHandler]; linkDrillHandler.customEventDelegate = eventHandler; 28 #mstrworld Demo Navigation API and Custom Events Q&A MicroStrategy Mobile SDK
© Copyright 2024