Customize Mobile Apps with MicroStrategy SDK Custom Security

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