Mobile backend

Working in Bluemix provides IT architects and developers with APIs and services that can expand the scope of functionality they want built into their mobile applications: Cognitive services from IBM Watson, Watson IoT , new data sources such as data from Twitter and The Weather Channel, and more. Everything you need to build next-gen mobile applications such as the IBM Ready App for Venue

Mobile Client Access sample code

IMFClient.sharedInstance().registerAuthenticationDelegate(CustomAuth(), forRealm: "customAuthRealm_1")
func authenticationContext(context: IMFAuthenticationContext!, didReceiveAuthenticationChallenge challenge: [NSObject : AnyObject]!) {
    context.submitAuthenticationChallengeAnswer(["userName":"john", "password":"320"])

// add this line to your pod file to get the SDK
pod 'IMFCore'

[[IMFClient sharedInstance] registerAuthenticationDelegate:[[CustomAuth alloc] init] forRealm:@"customAuthRealm_1"];
- (void) authenticationContext:(id)context didReceiveAuthenticationChallenge:(NSDictionary *)challenge {
    [context submitAuthenticationChallengeAnswer:[NSDictionary dictionaryWithObjects:@[@"john", @"123"] forKeys:@[@"userName", @"password"]]];

// add this line to your pod file to get the SDK
pod 'IMFCore'

// In the build.gradle file of your project add the mavenCentral repository under allProjects section
allprojects {
    repositories {

// In the build.gradle file of your Android app add the compile dependency
    compile ''
    // Other dependencies

BMSClient.getInstance().registerAuthenticationListener("customAuthRealm_1", new AuthenticationListener() {
    public void onAuthenticationChallengeReceived(AuthenticationContext authContext, JSONObject challenge, Context context) {
        // Obtain credentials from user
        JSONObject answer = new JSONObject({"userName":"john","password":"320"});
        // Submit the credentials obtained from the user

    public void onAuthenticationSuccess(Context context, JSONObject info) {
        // handle success

    public void onAuthenticationFailure(Context context, JSONObject info) {
        // handle error

SDK now open source and available on github!


Digital transformation isn’t just about mobile, it’s about balancing expectations—of your customers and the limitations of your infrastructure and platforms—and that can mean complexity. You need to create simple paths forward to modernize your applications and their functionality, while ensuring performance and scalability.

Mobile Quality Assurance sample code

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
        UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
        splitViewController.delegate = (id)navigationController.topViewController;

    #ifdef Debug
    [[MQALogger settings] setMode:MQAModeQA];
    [[MQALogger settings] setMode:MQAModeMarket];

    // Starts a quality assurance session using a placeholder key
    [MQALogger startNewSessionWithApplicationKey:@"Your-Application-Key-Goes-Here"];

    // Enables the quality assurance application crash reporting
    return YES;

// import Android class

// Make sure that you import the quality assurance application (see step 7)

// Optionally import the quality assurance application's logging functions (see step 8)

public class MyApplication extends Application {
    public static final String APP_KEY = "Your-Application-Key-Goes-Here";
   public void onCreate () {
        super.onCreate ();
        Configuration configuration = new Configuration.Builder(this)
            .withAPIKey(APP_KEY) // Provides the quality assurance application APP_KEY
            .withMode(Mode.QA) // Selects the quality assurance application preproduction mode
            // or
            .withMode(Mode.MARKET) // Selects the quality assurance application production mode
            .withReportOnShakeEnabled(true) // Enables shake report trigger
            .withServerURL(SERVER_URL) // REQUIRED - Specifies the endpoint server that receives the data.
        MQA.startNewSession(this, configuration);

Explore Bluepic

That means quickly being able to take advantage of emerging languages such as Swift on the server to rapidly deliver new iOS applications. But it can also mean renovating existing Java apps with new Android mobile front ends.

Sign up for a Bluemix trial today

Sign up for a free 30-day trial and get access to explore any service you want and start building your web or mobile app.