BioIQ for Intel Ultimate Coder Challenger, the final build

This is the last post as a part of the Intel Ultimate Challenger series.  By the coming Friday, we will have submitted the build to the judges.   This post is an analysis of the changes and the features of BioIQ.

Before we get to the analysis, here is a status update –

  1. The Windows 8 version is ready and we will be submitting it to the judges and theWin 8 store later this week.
  2. The AppUp version is also ready.  We will go through the store certification process before we get it up on the AppUp store.

 

The Final Build

 

BioIQ Week6 Summary

 

The video above shows some of the BioIQ screens, with callouts highlighting some of the features that we implemented for the Ultimate Coder Challenge and the posts related to those topics.

Since this challenge was on a short 6 week cycle, we tried to stay true to our top priority of getting the app to be available on the Ultrabook so that we can reach more teachers and students.  To our surprise, we didn’t have to compromise much in terms of how we would have liked to implement the app.  The only thing that we want to revisit is, using SQLite instead of Local Storage, since we prefer a DB based data implementation.   We are happy with what we got to.

Just because we did not compromise on the implementation, it doesn’t mean that we have exploited everything that the Ultrabook has to offer.  BioIQ primarily leverages the touch capability of the device.  As a hardware device, the Ultrabook has a powerful set of sensor features like Compass, Accelerometer, etc. We studied these and even seriously considered bolt a few of them to the app, but decided to not force fit them into BioIQ.  We wanted to keep the natural feel of the app.  I am sure we will use those capabilities in future app(s).

One of the last features that we implemented was the live tile feature.  It is rather neat; it refreshes the BioIQ icon on the device home screen with the different game levels that are available.  This should help remind the users to pick up the game and finish the levels.   We would like to sign-off with some code.  The code snippet below talks to the live tile implementation

function sendTileNotification() {

        var currentTime = new Date();
        var startTime = new Date(currentTime.getTime() + 500);
        var notifications = Windows.UI.Notifications;
        var template = notifications.TileTemplateType.tileWideImage;
      
        //First Title
        var tileXml = (notifications.TileUpdateManager.getTemplateContent(template));;
        
        var tileImageAttributes = tileXml.getElementsByTagName("image");
        tileImageAttributes[0].setAttribute("src", "ms-appx:///images/tile_images/plantTile.png");
        tileImageAttributes[0].setAttribute("alt", "plant cell");
     
       
        // Second Title
        var tileXml1 = notifications.TileUpdateManager.getTemplateContent(template);

        var tileImageAttributes1 = tileXml1.getElementsByTagName("image");
        tileImageAttributes1[0].setAttribute("src", "ms-appx:///images/tile_images/heartTile.png");
        tileImageAttributes1[0].setAttribute("alt", "human heart");
     
        // Third Title
        var tileXml2 = notifications.TileUpdateManager.getTemplateContent(template);
        var tileImageAttributes2 = tileXml2.getElementsByTagName("image");
        tileImageAttributes2[0].setAttribute("src", "ms-appx:///images/tile_images/frogTile.png");
        tileImageAttributes2[0].setAttribute("alt", "Frog");

     
        // Fourth Title
        var tileXml3 = notifications.TileUpdateManager.getTemplateContent(template);

        var tileImageAttributes3 = tileXml3.getElementsByTagName("image");
        tileImageAttributes3[0].setAttribute("src", "ms-appx:///images/tile_images/animalTile.png");
        tileImageAttributes3[0].setAttribute("alt", "animalcell");

        // 5th Title
        var tileXml4 = notifications.TileUpdateManager.getTemplateContent(template);
        var tileImageAttributes4 = tileXml4.getElementsByTagName("image");
        tileImageAttributes4[0].setAttribute("src", "ms-appx:///images/tile_images/kidneyTile.png");
        tileImageAttributes4[0].setAttribute("alt", "Human Kidney");

      //Adding the name to Live tile
        var binding = tileXml.getElementsByTagName("binding");
        binding[0].setAttribute("branding", "name");
        var binding = tileXml1.getElementsByTagName("binding");
        binding[0].setAttribute("branding", "name");
        var binding = tileXml2.getElementsByTagName("binding");
        binding[0].setAttribute("branding", "name");
        var binding = tileXml3.getElementsByTagName("binding");
        binding[0].setAttribute("branding", "name");
        var binding = tileXml4.getElementsByTagName("binding");
        binding[0].setAttribute("branding", "name");

        var scheduledTile = new Windows.UI.Notifications.ScheduledTileNotification(tileXml, startTime);
        scheduledTile.tag = "plantc_tile";

        var scheduledTile1 = new Windows.UI.Notifications.ScheduledTileNotification(tileXml1, startTime);
        scheduledTile1.tag = "heart_tile";

        var scheduledTile2 = new Windows.UI.Notifications.ScheduledTileNotification(tileXml2, startTime);
        scheduledTile2.tag = "frog_tile";

        var scheduledTile3 = new Windows.UI.Notifications.ScheduledTileNotification(tileXml3, startTime);
        scheduledTile3.tag = "animalc_tile";

        var scheduledTile4 = new Windows.UI.Notifications.ScheduledTileNotification(tileXml4, startTime);
        scheduledTile4.tag = "kidney_tile";

        var tileUpdater = Windows.UI.Notifications.TileUpdateManager.createTileUpdaterForApplication();
        tileUpdater.addToSchedule(scheduledTile);
        tileUpdater.addToSchedule(scheduledTile1);
        tileUpdater.addToSchedule(scheduledTile2);
        tileUpdater.addToSchedule(scheduledTile3);
        tileUpdater.addToSchedule(scheduledTile4);
        tileUpdater.getScheduledTileNotifications();
        tileUpdater.enableNotificationQueue(true);
        
      
    }

    app.onready = function (args) {
        sendTileNotification();
       
};

 

Well, that’s it for now, we thoroughly enjoyed the journey.  So Thank You Intel AppUp for giving us the opportunity.   Wish us luck  :) .  Over to the judges.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Enter the characters shown in the image (to confirm you are not a machine)
Image CAPTCHA