Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions MicroStrategy Mobile SDK 1
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
Overview MicroStrategy Mobile SDK
Overview MicroStrategy Mobile SDK Architecture Client Side Customizations Mobile Server Intelligence Server DDBMS Mobile Server / Certificate Server Customizations 4 Certificate Server
Overview Main Drivers Extend OOTB Integration Innovation Business needs Use device s capabilities 5
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
Requirements & Setup Downloading MicroStrategy Mobile SDK https://developer.microstrategy.com 8
Requirements & Setup Installing MicroStrategy Mobile SDK 9
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
Demo Custom App Delegate
Custom Authentication MicroStrategy Mobile SDK
Custom Authentication Custom Login Screen 15
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
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
Custom Authentication Overview 19
Demo Advanced Authentication
Caching API MicroStrategy Mobile SDK
Caching API Overview Performance Offline mode Security Conditional cache management 22
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
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
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
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
Demo Navigation API and Custom Events
Q&A MicroStrategy Mobile SDK