• Microsoft UK Faculty Connection

    MATLAB and R on Windows Azure via Techila

    • 3 Comments

    Techila is a middleware solution for High Performance Computing that enables existing applications to utilize more computing capacity. I believe that the key problem in business and operational computing is the lack of application performance. There are enormous amounts of computing capacity available using Windows Azure cloud service.

    Techila allows applications to utilise all available computing capacity. To try demonstrate this a great example of the benefits of Techila and the Windows Azure with Techila integration is a case study, which Techila did with a leading cancer researcher. The researchers in question had a project, which would have taken 15 years. He had developed his research application in MATLAB. He used the Windows Azure with Techila integration to boost the performance of his application with the combined power of 1200 Windows Azure instances. This allowed him to complete the project in 4,5 days! Being able to do something in 4,5 days, which usually takes 15 years gives a real competitive advantage.

    Techila develop the solution in close co-operation with end-users and system administrators from the very beginning.

    Techila has selected Pharma, Economics/ Financial, and Universities/ Academia as the key markets because of the fact that they are strong on Techila's home market, Finland. But I want to emphasize that unlike many other distributed computing solutions, Techila is a fully horizontal middleware, which can be used in any segment and which can increase the performance of any application: The code can be a MATLAB application, or it can be R (or C/C++, Java, Perl, Python, Fortran,...) They also offer an open API, which can be used to connect any ISV application (3DSMax, SAS, COMSOL, Sungard,...) to the Windows Azure capacity.

    Also please find below a demo of run a 2-day long computation in a couple of minutes using 500 Azure instances using MATLAB:

     

    Techila with R language can be found here:

  • Microsoft UK Faculty Connection

    Win2D

    • 3 Comments

     

    Welcome to the Win2D Github Open Source project.  

    Win2D is an open source project which as developed a Windows Runtime API to expose the power of hardware accelerated Direct2D graphics to Windows Universal App developers who are targeting Windows 8 and Windows Phone. 

    Win2D is available to both C# and C++ developers writing Windows 8.1 and Windows Phone 8.1 apps. 

    Getting Started

    Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. It is available to C# and C++ developers writing Windows Store apps for Windows 8.1 and Windows Phone 8.1. It utilizes the power of Direct2D, and integrates seamlessly with XAML and ICoreWindow.

    Win2D is work in progress and evolving rapidly. The goal of releasing this code in an early, incomplete state is to solicit early developer feedback. The project backlog shows what we plan to add in the future, and the order in which we plan to add it.

    Source code and issue tracking are available at http://github.com/Microsoft/Win2D

    Getting Started

    To get started using Win2D:

    • Clone the source code from github
    • Run build.cmd to compile it
    • Point Visual Studio at the resulting NuGet packages
    • Add a CanvasControl to your XAML page
    See the readme for more detailed instructions.

    To find out more, check out the following links:

    blog post:            http://blogs.msdn.com/b/win2d

    code:                    https://github.com/Microsoft/Win2D

    clip_image001

    documentation: http://microsoft.github.io/Win2D/html/Introduction.htm

    Below is an example of what you can do using Win2D. And it is not a “bitmap”, but a vectorized image.

    clip_image002clip_image003

  • Microsoft UK Faculty Connection

    Building a Game with a Cloud Backend

    • 3 Comments

    You need to think about what the cloud can do for you, whether it's something small like sharing save states or something larger like monitoring data and making quick iterations while your product is live. Then you can think about whether your use aligns with your players' perceptions, and whether you need to surface any information about your usage to show that your cloud offering is significant enough to give you an advantage.

    The cloud can give you more than technology

    If you decide to move to a cloud service, you may find that it offers your more benefits than you might think. An example can be seen in the indie development studio Gateway Interactive, who ditched their server stack in favour of moving to the cloud. While this resulted in faster transaction speeds and other improvements The savings they made from moving off a local server stack to a cloud-based model allowed them to hire an extra team member, increasing productivity and the quality of their upcoming games.

    A platform agnostic approach is a powerful approach

    One of the greatest benefits of game developers using the cloud is the fact that it's completely platform agnostic. If you were to create an app for the iOS platform using your own engine, you'd then have to make numerous changes and alterations to get it working on Windows and Android.

    Pick your Middleware

    This is why middleware solutions like Unity have thrived, as they allow for easy porting between different devices. However, these apps are never going to be connected without the use of the cloud. For example, do you want players to be able to move from one device to another and continue where they left off? Do you want players to be able to compete with each other, irrespective of what device they are using?

    Agility is essential

    Game development has come a long way in the past decade. Internet connectivity on devices has allowed for developers to create additional content and patch out previously undiscovered errors after the initial release, something that was once impossible.

    Embrace big data

    If you truly want to understand your users and how they play, then big data is the way to go. Not only will you be able to see information such as playing habits and playtime length, but you can also see details that'll help you with your next iteration, such as making improvements to a level if most people are getting stuck. Even if you're not planning to use the full capabilities of the cloud.

    Example of Cloud Services

    To give you some idea of how we are using cloud please watch the following video from Microsoft Studio Zoo Tycoon Friends. Zoo Tycoon Friends, a free-to-play title for Windows 8 PCs and tablets, plus Windows Phones. It was developed by Doritos Crash Course studio Behaviour Interactive and looks similar to the Xbox 360 and Xbox One versions of Zoo Tycoon that launched in November last year.

    Like the Xbox versions of Zoo Tycoon, gameplay revolves around interacting with the animals themselves, as well as building your park. Instead of Kinect controls, you'll now be clicking or tapping on your animals to care for their needs.

    See the game trailer below:

    http://www.youtube.com/embed/nBS39Up1ByQ

    Here is a nice technical overview of how the team has implemented Microsoft Azure Cloud Services

    http://www.youtube.com/embed/iNT0NpqeBos
  • Microsoft UK Faculty Connection

    Windows now offers Developer lifetime developer accounts and benefits

    • 3 Comments

    devicesWin

    New Dev Center Lifetime Registration And Benefits Program

    Devcentre

    Starting today, Windows Dev Center requires only a one-time registration payment, which grants developers the ability to submit apps to both Windows and Windows Phone stores, with no annual renewal fee. Existing registered developers will no longer have to pay Dev Center renewal fees to maintain their account.

    devcentreben 

    Today we  also announced the Dev Center Benefits program, the program has been designed to increase your success on Microsoft platforms by helping develop, improve and market your apps with a variety of offers and tools.

    The good new is the Dev Center benefits program will be available to all registered developers worldwide.

    So what are you waiting for sign up Now! for the Dev Center and the Dev Center Benefits program.

    For more details see http://bit.ly/1soCDeD

  • Microsoft UK Faculty Connection

    Cloud Gaming Architecture–A walkthrough of how to get started

    • 3 Comments

    Architecture

    The architecture has a logical layout (below). It looks complex, but the blog will hopefully explain it.

    image

    The Pieces of the Puzzle for a great cloud gaming experience.

    When architecting our game your need to consider what the  components, described below. Some are apps (the clients), and the rest are cloud services.

    Clients

    The clients are the apps that game players download to their devices. Each app must be developed for the particular device, but they must all have behave the same. The game is the same, just the UI changes.

    clip_image004

    When building a game today you want it to be played on the most number of devices so, ideally it should be capable of being  played on Windows Phone 7 and 8, Windows 8.0 and 8.1, iOS, Android, and Kindle.

    To enable maximum platform support communication is enabled using REST APIs. The experience of playing the game should be smooth and seamless. A key factor is to ensure that the client app makes the minimal number of calls (after authentication).

    When developing your client its key to ensure that each of the client has a thin hardware abstraction layer (HAL). the HAL must contains the code necessary to display and process the UI controls, along with the code that initiates contact with the Visitor Center and the code that interacts with a Game Room.

    Visitor Center (VC)

    The first stop for a player is the Visitor Center. So think of the Visitor Center as the landing page for your game i,e.  you’ll find the leaderboard results and a directory of the gamer IDs. You can also find a friend on the system through the leaderboard.

    clip_image005

    Identify Yourself

    When the player starts the game, the client app authenticates the player with either Facebook or another authentication services (using a username and password). The client app then sends the Visitor Center the identity of the player (via a token). The Visitor center confirms the identity by contacting Facebook or other authentication services to verify the token (and thus the player). Once confirmed, the Visitor Center sends the client app a new URL that goes to the Game Room where the user will be playing.

    Note that if the user does not sign I, you may want them to allow them to play as a Guest (guests may be simply unranked or wouldn't be issued persistent stats or friends).

    Game Room (GR)

    clip_image006

    The Game Room consists of 3 APIs that interact with the client.

    1) Game: Sends the current puzzle to the client.

    2) Post: Receives the user’s individual results from the client.

    3) Results: Sends the leader scores and relative ranking of user to the client, along with the next puzzle.

    Game Room Services and Locations

    You may want to geo locate each of your games rooms, best practice is to locate each Game Room on the continent with the greatest player base – so European languages are housed in European data centers, for example. The hard cases are English, Spanish, and Portuguese, which have broad, world-wide audiences. English is played from everywhere, but is most concentrated in the US, UK, India, and Australia. Spanish is split between Spain and Latin America. Portuguese is most heavily played from Brazil, but there are still plenty of players from Portugal and other parts of the world.

    The Aggregator

    When a game ends, each client sends the player’s results to the Game Room. The Game Room has an Azure load balancer in front of it that distributes the results to one of its three web roles. Because the results are randomly scattered, they must be gathered into one central spot—the aggregator.

    clip_image007

    The inner working of the aggregator is an Azure Cache. Caches are used in computing because they take the pressure off a system by holding recently stored data in memory and letting many operations access the data. Because the data is in memory, it can be instantaneously returned to any operation. The cache operates instead of a database engine that would otherwise query for a particular result. Multiply the queries and the database quickly reaches its capacity to respond. Caches are tried and true time savers.

    Here’s what happens between the GR and the aggregator.

    clip_image009

    After a game ends, each Game Room web role receives the individual client results. The web role then sends all of its accumulated results to the aggregator. Note that due to retries, there may be duplicate client results received by the Game Room and received by the aggregator. (Two people sharing the same Gamertag while simultaneously playing using different devices also causes duplicate client results to be received.) Then, the aggregator sends all of the Game Room web role results back to each Game Room web role, as shown in Panel 3 of the diagram above.

    Each Game Room web role removes duplicates and sorts the results, and sends the top results and individual results with peer ranking back to the client. After the next round starts, each Game Room writes its buffer of unsorted results to blob storage. Each blob is named in the form <puzzle language id>-<game id>-<instance number>.txt, and consists of Comma Separated Values (CSV) data.

    Leader Board Orchestrator (LBO)

    The LBO does the heavy lifting for the app. It works in close partnership with the two database stores that conceptually flank it to create the “best of” lists (best of right now, best of the hour, best of the day, best of the week).

    clip_image010

    When the Game Room and the aggregator have finished the results reporting work, the LOB starts.

    It first gets the results of the game from the newly written blob storage. It then processes the data to create in-memory tables that are inserted into an instance of Azure SQL Database. Once the data is inserted into the database, a large number of queries, in the form of stored procedures can be run against the data. To preserve the integrity of the data, stored procedures are the only way used to determine stats. The integrity of the data can also be checked during the process. The LBO can use more than one worker role to process the data. The results can also be compared. If any discrepancies arise, then the worker can be immediately stopped, and a new worker started to retry the processing.

    Headquarters

    There is another component, although it is more of an infrastructure piece. The “Headquarters” service is used to run tests against the various other parts of the game. For example, it runs the test-bot that makes sure the game rooms (in all languages) are working. It also checks the integrity of the database operations. If a worker role running an operation creates a result that is different from others, the worker is terminated and a new one started. The headquarters handles those administrative and quality assurance duties.

    clip_image013

    Deployment

    And finally, a server that is on-premises builds and deploys the whole system, every night. The build system is automated, and Azure REST APIs enable deployment. The function is key in protecting the integrity of the system by only allowing only the build scripts to perform the tasks. No one physically should have the permission rights to build and deploy manually.

    clip_image014

     

    References

    Azure Blob Storage

    How to use the Windows Azure Blob Storage Service in .NET

    Azure Caching

    Cache

    Azure Cloud Services

    Cloud Services

    InstanceInputEndpoint

    WorkerRole Schema

    Azure PowerShell

    Windows Azure PowerShell

    Azure table storage

    What is a Storage Account?

    Azure SQL Database

    SQL Database

    TFS Online

    Visual Studio Online

    Visual Studio

    Visual Studio

    Table-valued parameters

    Batching Techniques for SQL Database Applications in Windows Azure

  • Microsoft UK Faculty Connection

    UK Appchallenge - How do I get my apps involved?

    • 3 Comments

    image

    Follow the developer instruction below to add a line of code to your app.

    Once you’ve added the code, send over your App Details (App GUID code & AppChallenge GUID code) to appchallengeuk@microsoft.com

    Developer Instructions before you can be included you need to do a little bit of development work to ensure inclusion. Please see the below instructions for further details.

    1. In your app’s “About” or “Settings” section, add the AppChallenge button included in this email.

    The sample below demonstrates how to use the application settings API and settings flyouts to integrate an app's settings UI with the Settings charm.

    With the Settings charm app can include app-specified settings commands in the Settings charm and launch the corresponding settings UI from that standard entry point such as volume, brightness etc.  http://code.msdn.microsoft.com/windowsapps/App-settings-sample-1f762f49 

    2. Generate your Private GUID for each of your apps by visiting guidgenerator.com

    3. For Windows Phone 8, Windows 8.0 and Windows 8.1 link the button with this:

       1: await Launcher.LaunchUriAsync(new Uri("appchallengeuk:appGuid=YOUR PRIVATE GUID", UriKind.Absolute));

    4. For Windows Phone 7 (app compiled on WP7 but can run on WP8), link the button with this:

    The AppChallenge logo should be displayed only if the user has a WP8 (because AppChallenge is not available on WP7). This is done via the code:

       1: if (Environment.OSVersion.Version.Major> = 8)
       2:      imageAppChallenge.Visibility = Visibility.Visible;
       3: else
       4:      imageAppChallenge.Visibility = Visibility.Collapsed;

    Then, on the event Tapped of the image, write the following command:

       1: WebBrowserTask wbTask = new WebBrowserTask();
       2: wbTask.Uri = new 

    3: Uri("http://theukappchallenge.azurewebsites.net/redirect?app=YOUR PRIVATE GUID",UriKind.RelativeOrAbsolute);

       4: wbTask.Show();

    5. Once your app’s on the Windows Store, send a table of correspondence between its GUID and the one you generate for AppChallenge to appchallengeuk@microsoft.com

    GUID Store

    GUID AppChallenge

    ******************

           
             ****************

    If you have any questions please email appchallengeuk@microsoft.com.

    Thank you very much for your participation and support of The UK App Challenge.

    See more details at : http://aka.ms/UKAppChallenge

  • Microsoft UK Faculty Connection

    Adding adverts into your Windows 8 and Windows Phone Apps and Games

    • 3 Comments

    One of the most popular questions from Unity Porting Camps http://www.unityportinguk.com has been how can I add ads to my app

    Well we have a number of supported Advertising SDK which are listed at our partner services portal for Windows 8 and Windows Phone development at http://services.windowsstore.com/.

    The Partner portal has links to partners providing the following services for both Windows 8 and Windows Phone.

    • Advertising
    • Analytics
    • Controls & Frameworks
    • Cross Platform Tools
    • Database
    • Design
    • Developer Tools
    • Gaming Middleware
    • Geolocation
    • Graphics
    • Has Offer
    • Media Services
    • Networking
    • Payments
    • Performance
    • Push Notifications
    • Social Plugins
    • Storage
    • Testing
    • UI Controls
    • User Management

    Here are the available Advertising SDK which support Windows 8 and Windows Phone

  • Scoreoid

    Scoreoid is a real-time marketing platform that powers engagement and monetization. Scoreoid enables brands, studios, publishers and app developers to interact and engage with their users in real-time. "We help you touch your users".

  • AdRotator

    AdRotator is a multi-platform Ad Rotating solution that integrates multiple AdProviders in to a single control and can manage rotation of those ads based on the developers configuration. It also features fallback capabilities to always ensure the app/game always has ads to show.  We also support remote configuration so the developer can alter their Ad Configuration on the fly without re-deploying their app/game or show their own ad to pass in formation to clients.

    Get the New Unity Plug-in!

  • MediaBrix

    MediaBrix powers the industry's leading advertising and services platform for social and mobile games.

  • PreApps

    PreApps.com is the leading platform introducing new mobile apps to user and the marketplace prior to release. Our vision is to build an ecosystem, which connects app developers with app users prior to release to in turn create better quality, more successful apps. Our collaborative process has demonstrated to increase app downloads, enhance app ranking, and overall app quality

    Get the PreApps Featured Feedback app for free!

  • LeadBolt

    FREE CASH TO ADVERTISE YOUR APP! Click Learn More.
    LeadBolt is an award winning mobile app discovery, advertising and monetization network focused on delivering innovative solutions for Windows Phone 8, iOS and Android app developers and now for Windows Store apps.
    Through the largest range of traditional and high-performance ad formats, LeadBolt delivers industry leading results to developers wanting to have their app discovered by users and increase their downloads.

    Get a code for extra $! Click here for more info.

  • Inmobi

    InMobi is the largest independent global mobile ad network and monetization platform with a global reach of over 691 million consumers across 165 countries on our network, we can help you reach your mobile audience anywhere in the world. Our highly skilled mobile experts plus local account managers will be on hand to help you book and optimize your campaign.

  • Microsoft Advertising SDK for Windows Store apps

    Whether you're developing in HTML or XAML, the Microsoft Advertising SDK has made it easy to insert ads into your Windows 8 apps. With a few lines of code, you can quickly get ads being served in your app by following the simple steps outlined in our SDK documentation.

  • AdDuplex

    AdDuplex is a cross-promotion network for Windows Store and Windows Phone apps empowering developers to advertise their apps for free by helping each other.

  • Ads Plug-in for Unity3d

    unity

  • At the Unity camps lots of people are interested in Ad services which provided by a dedicated Unity3d plugin.

  • One of the best I have seen in use is the Unity3D plug-in for AdRotator

  • The AdRotator plug-in enables you to use our Windows and Windows Phone AdRotator solution in Unity3D projects for those platforms and configure how AdRotator works directly from the Unity editor.

  • Using this is simple and goes like this:

    • Download the Unity AdRotator asset from our codeplex site (We will look to publishing it on the Unity3D store at some later date)
    • Add the Asset package to your Unity3D project
    • In the scenes where you want AdRotator displayed, Ad the “AdRotatorManagement” manager game object to your scene (needs to be the top most item in the hierarchy), after installing the asset, this will appear in the game object create menu.
    • Use the inspector to configure how you want AdRotator to display in your scene.
    • Edit the AdRotator configuration files in the Assets / AdRotator folder (there is one for WinPhone and one for Win8 at the moment but we may unify that later) – Note don’t touch any of the other files
    • When your ready, deploy your game to a Windows 8 C#/XAML or Windows Phone 8 project (these are the only two supported options at the moment)
    • Lastly, open your generated solution and ad the V2 AdRotator beta to your project through NuGet and any other Ad Providers you wish to use.
    • **Note, check the readme that comes with the AdRotator NuGet package if you intend to use PubCentre, there is an additional step to pass the reference for PubCentre directly to AdRotator which will be needed.
  • Microsoft UK Faculty Connection

    Design Students – What a challenge!

    • 3 Comments

    clip_image002

    Yippee Entertainment are launching a unique competition.

    Yippee are offering one person in the UK and one in the US a chance to design a member of Chuck’s Chimpact family and have their design turned into a character in the Windows 8 & Windows Phone 8 versions of the game. Chimpact is available on a variety of platforms but this is an exclusive to the Windows game versions that will have this new character.  What’s more the UK winner will get a chance to go to the Yippee Entertainment game studio in Manchester and see their creation turned into a video game character!

    You can find details to enter at the website: http://www.chimpact.com/competition/

    This competition is open to anyone in the UK or US who wants to draw, paint, crayon, use a software design programme or any art and crafts they fancy to design a new member of Chuck’s family on Windows 8 and Windows Phone 8.

  • Microsoft UK Faculty Connection

    UX/UI Design the benefits of building prototype, even if you have only initial sketches of your prototype.

    • 3 Comments

    image

    This week I had a really interesting discussion/debate with a University lecturer on teaching user interface design and it took me back just to how things have changed since the mid-nineties.

    When I was a student a lot of CS courses which looked at interface design had materials which referenced the following statement “The Evil’s of Rapid Prototyping,”  and many slide decks contained reasons why rapid prototyping was a bad idea. Most of the reasoning centred around prototyping tools being so complex back then, they needed to be operated by developers; subsequently, the design process tended to be influenced by all design work needing to be interpreted through the lens of what a prototyper could actually achieve with the software available.

    Fast forward to today and there’s been a rethinking on prototyping. Is this good or bad?     

    I recently blogged about how professional organisations are using tools such as OneNote for UI/UX design. Additionally there a lots of new prototyping tools have appeared over the past few years and they’re rapidly being adopted by interaction designers.

    So we concluded that the creators of these tools never attended one of these courses!

    So the question I now want to pose is.. how do go about teaching modern user interface design and application workflows on your courses and what tools and resources do you use?

    As we know prototypes can be as simple or as complex as necessary for the project on which you are working.

    For example

    • A prototype can be a rough sketch with notes
    • A linear sequence of slides with a few notes that demonstrates
    • A workflow drawn on the art board,
    • A complex graph, outlined in the panel designs and layouts, that includes reusable elements on a single screen (component screens), and navigation between screens (navigation connections).

    What tools do you use?

    Microsoft SketchFlow includes several tools to make your prototype interactive in order to more closely mimic the flow of a production application. For example, with SketchFlow, you can do the following:

    • Begin a prototype with just a site map and a few notes jotted on the application screens, and then continue to refine your prototype as you go along.

    • Either draw user interface (UI) elements, or import them from common drawing programs.

    • Animate your prototype, creating a visual representation of the interaction between the user and the application.

    • Use the full library of standard UI elements and custom controls.

    • Create sample data on the fly, easily build data-driven UI, and add styles to your data.

    • Create interactivity without writing code by using built-in behaviours. Behaviours are extensible, making it easy to add custom behaviours to your prototyping toolbox.

    • Either write code to create custom elements, or use pre-built elements from your development team

    Sketchflow Resource

    For more details on Sketchflow see http://msdn.microsoft.com/en-us/expression/ee215229.aspx 

    Tutorials on Sketchflow see www.microsoft.com/.../creating-navigation.aspx

    But what about considering Modern design principles..

    With Windows 8 and Windows Phone 8 we have the following key principles which need to be adhered

    image

     

    So the key things you need to consider when designing your apps for modern applications are..

    Ensure that you weave platform features into your core scenarios and prototype design to leverage the power of the underlying platfom..

    So lets think about the platform features available..

    image

     

    To help develop these scenarios here are list of the key resources.

    Microsoft Design Guidelines for Windows Phone http://design.windowsphone.com

    Microsoft Design Guidelines for Windows 8 http://design.windows.com

    Microsoft User Experience Fundamentals and online training http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012

    So where to start?

    To help you get started on your app development here are some templates and guidance from http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012

    image

     

    Example of a completed template for a new app design/concept.

    image

    image

    image

    image

    Conclusion

    In summary, using any form of prototype technique makes it easy to sketch out a conceptual application and ensure the following are achieved.

    image

    So what are you waiting for? You can just create a series of screens and use the templates above and then begin to draw. As your idea progresses, you can add interactive elements that make your prototype as close to the finished product as you need it to be to communicate the design idea you want to convey.

    Reviewers can use the tools such as SketchFlow, One Note  to view the application flow, and then leave feedback directly in the project as annotations. Once the feedback has been incorporated and the prototype is complete, the prototype project can be handed off to a developer for conversion into a final application,

  • Microsoft UK Faculty Connection

    Choosing the right cross-platform mobile framework

    • 3 Comments

    Last week I had the pleasure of speaking to a few hundred people at  Apps World on a session entitled Cross Platform Panel: Exploring Methodologies & Tools.

    This is a fascinating area as today’s modern app developers are now ultimately having to become more agile in their abilities and use the best tools available to develop an app for as many platforms as possible within a shortest period of time to maximise the revenue their app or game can achieve.

    However having to develop an application or game for a diverse range of mobile platforms iOS, Android, Windows Phone etc.. has a number of constraints which need to be taken into consideration for example  each have their own ‘native’ development languages, UI/UX, developer tools and environments.

    But for the modern developer there is an ever growing list of cross-platform frameworks that allow you to minimise the cost and effort of developing mobile apps, but which to choose?

    So what Cross Platform Frameworks are available?

    Here is a list of some of the most common cross platform frameworks available for today’s mobile app builders.

    AIR

    The Adobe Integrated Runtime (AIR) is a cross-platform runtime for iOS and Android. It allows you to develop using ActionScript (a objected-oriented, strongly typed relative of JavaScript) by providing the Flash Player virtual machine to abstract away from the underlying hardware, with an extended API available to access device capabilities such as GPS and camera. Furthermore, this allows developers to use the Apache Flex enterprise application framework which provides its own UI components (and an associated UI framework), data binding, advanced data structures and other essential utilities. Flex also introduces the MXML language for the declarative creation of user interfaces.

    Enyo

    Enyo is a free and open source (Apache 2.0 license) cross-platform and cross-browser application development framework that enables developers to create HTML5 applications and deploy them to many modern desktop browsers and mobile devices.

    Enyo is built around the philosophy of fully-encapsulated components, which allow a developer to reuse component pieces (or even an entire application) in new or existing projects. It is possible to embed full Enyo applications in the DOM elements of existing Web pages.

    Enyo does not use templating, instead enyo.Controls (a kind of enyo.Component) render themselves into the DOM based on their owner/parent hierarchy in the application structure. Developers design the application structure/component with JavaScript object literals, adding methods and properties for functionality.

    Enyo has a dependency mechanism (package.js) to enable a basic modular approach to building applications. If you look at most Enyo projects, you will see references to a $lib directory in one or more package.js files, usually to include optional modules such as Layout (lists and responsive components) and Onyx (a widget library).

    Intel App Framework

    Intel App Framework is a framework for building cross-platform mobile application using HTML5 technologies. The framework started life as jqMobi, a mobile optimised version of jQuery, which was created by the team behind appMobi. Intel acquired the jqMobi tools and staff in February 2013.

    Intel App Framework is free and open sourced under an MIT licence. Intel also offer XDK, which is a a full suite of tools built around the App Framework. XDK adds an IDE, build tools and an emulator.

    Along with its lightweight JavaScript library, Intel App Framework provides a basic MVC framework and many UI components. Rather than mimicking the native look and feel, the framework has opted for providing its own styles which looks the same across all platforms. Styles can be customised using the framework Style Builder

    jQTouch

    jQTouch is a Zepto/jQuery plugin which provides a framework for developing iOS and Android applications. It is both open source and free to use.

    jQTouch provides a structure on which to base the HTML, the majority of the application styling, page transition animations and touch based event handling; however, it’s not a fully featured application development solution.


    jQuery Mobile

    jQuery Mobile is a HTML5 framework which makes it easy to create websites that mimic the iOS look and feel. This is achieved by providing HTML that is marked up with various jQuery Mobile specific attributes, which is then processed to generate the final markup. Within PropertyCross jQuery Mobile is combined with KnockoutJS, which provides a presentation model (MVVM), RequireJS, for dependency management, and Cordova / PhoneGap, which packages the HTML / JavaScript within a native wrapper for app-store deployment. Cordova also provides a set of APIs for accessing native phone functionalities which are not available via HTML specifications.

    The JavaScript Model and ViewModel code is shared across all mobile platforms, whereas the HTML files, which make up the View, are specific for each platform. This allows the UI for each platform to be tailored to the requirements of each platform.

    iOS version uses the out-of-the-box jQuery Mobile styles

    Windows Phone uses the jquery-metro-theme extensions to support the Windows UI style together with Windows Phone specific features such as the app-bar.

    Kendo UI

    Kendo provide a suite of web development frameworks, all of which are built on top of the ‘core’ Kendo UI MVVM framework. The Kendo UI Mobile framework adds a set of UI widgets for the creation of mobile interfaces. The mobile framework has a look and feel that mimics the native Apple, Android and Windows Phone themes.

    Lungo

    Lungo is a framework for developing cross-platform applications in HTML5. Lungo applications are run in the browser, similar to other HTML-based frameworks such as jQuery Mobile. Lungo provides 2 main workflows:

    Lungo provides a rich set of classes to help decorate basic HTML5 markup. The markup is then given behaviour and interaction based on the structure by Lungo, without any developer code being required. Lungo’s philosophy is that you should be able to create a prototype of your application to show basic interaction and page flow without having to write any JS yourself.

    Lungo also provides a JS API to interact and enhance the prototype. The Lungo API is similar to the common functionality you’d see in other mobile frameworks, such as DOM manipulation (through Quo.js), page routing and navigation, storage etc.

    mgwt

    Google Web Toolkit (GWT) is an open source set of tools that allows developers to create web apps in Java. GWT compiles Java into an optimised JavaScript application. GWT is most often used for large-scale web applications, with the strongly typed nature of Java making it easier to maintain a large codebase.

    mgwt is an open source mobile widget framework build using GWT. mgwt provides a number of UI widgets, CSS styles and a PhoneGap API which make it easier to develop native-like applications using GWT.

    PhoneJS

    PhoneJS is a commercial HTML5 framework for cross platform mobile application development from DevExpress. PhoneJS is free for non-commercial use.

    PhoneJS uses the Knockout MVVM framework for structuring the application, with the PhoneJS CSS providing a native-styled UI for the various phone platforms. PhoneJS applications use PhoneGap for packaging.

    DevExpress also offers a more integrated solution based on PhoneJS, called DXTREME Mobile, which adds Visual Studio tooling.

    RhoMobile

    RhoMobile Suite is an integrated set of tools, created by Motorola Solutions, for building cross-platform mobile application using HTML5, JavaScript and Ruby. RhoMobile is made available under an MIT licence. Applications are developed using RhoStudio which is an Eclipse-based IDE. During development, applications can be tested using the built-in RhoSimulator, which is a Webkit-based browser, or a platform specific simulator. Building RhoMobile applications for Windows Phone, iOS or Android relies on the presence of the native SDKs.

    RhoMobile applications follow the MVC pattern, with the application UI defined in HTML (with jQuery Mobile being used to style the output). Application logic can be programmed in either JavaScript or Ruby.

    Sencha Touch 2

    Sencha Touch is a framework for building cross-platform mobile application using HTML5 technologies. Similar to ExtJS, Sencha Touch provides a fully functional JavaScript API and a structured MVC approach for building mobile applications. Coding is done (almost!) exclusively in JavaScript - with the majority of the HTML and CSS being abstracted away behind the concept of “components”, which are configured and generated by the JavaScript code.

    Titanium  

    Appcelerator Titanium is a JavaScript-based development platform for iOS and Android development. The JavaScript code runs on the device within an interpreter, and the UI for a Titanium application is entirely native. Titanium development uses the Titanium Studio IDE, and depending on your OS, the Android SDKs and Xcode are also required.

    The

    Titanium APIs provide an abstraction layer for the Android and iOS UI elements, allowing you to write your view code against the Titanium abstraction. Although, there are some view concepts which have not been abstracted, meaning that developers have to write platform specific view code

    Xamarin

    Xamarin have two commercial products, Xamarin.iOS for iOS development and Xamarin.Android. The Xamarin frameworks allow you to write applications using C# and the .NET framework. For each platform Xamarin provide bindings to the native platform APIs. As a result Xamarin applications make use of the native UI for each mobile platform. Xamarin do not provide a Windows Phone product because the C# and .NET code used for Android and iOS development is directly portable to Windows Phone.

    What resources are available to help evaluate which is the best solution?


    PropertyCross http://www.propertycross.com

    To help solve this problem PropertyCross presents a non-trivial application, for searching UK property listings, developed using a range of cross-platform technologies and frameworks. Property Cross has a simple aim is to provide developers with a practical insight into the strengths and weaknesses of each framework so this is a definite resource you should check out if your interested in cross platform development.

    Conclusion

    I would love to hear your experiences of developing apps and games for cross platform support and which tool you find the most useful?

  • Page 5 of 97 (970 items) «34567»