Friday, July 13, 2012

Solutions Methodology of Mobile App Testing on Different Platforms/Devices into the Cloud, Automation and Manual environment.

Hi,

As we know the "Testing" phase play very important role into the SDLC process especially to improve the Quality and standard of the products from different-different corners. Since, the current generation of IT (i.e., enterprise and consumer organization) is moving towards into the mobile computing, day-by-day launching new kind of devices for different-different platforms with various kind of features makes little challenge for the tester to test the app (i.e., mobile app) into the several devices. In this post, I am going to highlight the standard approach and methodology of testing the application for different device platforms on top of their internal features and functionality. Nowadays, the mobile market has 4 main OS (Android, iOS, Blackberry and Windows Phone 7) that are applied to a wide range of handsets. This implied uniformity in the way an application looks across all devices that run the same OS. So, for example, an Android application would look practically identical on any Android mobile phone. Therefore, an application vendor can create a test on one android device and run – the very same test – on all Android devices (phone, tablet etc).

Here, I am introducing and highlight the existing solutions which is mainly used as the powerful mobile automation tools. They are:
  1. PerfectoMobile,
  2. Keynote DeviceAnywhere, 
  3. SeeTest by ExperiTest, 
  4. FoneMonkey (MonkeyTalk), and
  5. JAMO, etc.
 *Note: Except of the FoneMonkey (MonkeyTalk) - all others are commercial tools and not free.

1. PerfectoMobile: Perfecto Mobile is a global leading provider of cloud-based testing, automation and monitoring solutions for mobile applications and websites, utilizing a wide selection of REAL mobile devices accessible via the web.
The MobileCloud enables developers and testers, located anywhere in the world, to access a comprehensive range of the latest mobile handsets and tablets via the Internet. Users can develop, test, deploy and monitor their mobile applications and services without having to physically obtain the handsets. The MobileCloud handsets and tablets are connected to LIVE cellular networks
.
Perfecto Mobile solutions are specifically tailored to address mobility in the various stages of the application life cycle and to be used by the various departments. 

Enterprise Class Mobile Testing Solution:
  • Automate - test cases and re-use them across multiple devices
  • Test new smartphones & tablets as soon as they reach the market
  • Share & collaborate with globally distributed teams and partners
  • Integrate with existing ALM systems
  • Constantly monitor performance & availability on real handsets

1.1 MobileCloud for QTP

A fully integrated mobile testing solution for Quicktest Professional 

MobileCloud for QTP is a complete solution for automated functional and regression testing of mobile applications within HP's QuickTest Professional (QTP) product. MobileCloud for QTP seamlessly integrates native QuickTest Professional scripting and flow control with Perfecto Mobile's comprehensive cloud-based automated mobile testing solution. This breakthrough solution enables you to naturally extend your existing HP Functional Testing and Application Lifecycle Management (ALM) environment to mobile applications.

Why Use MobileCloud for QTP?

Innovative design and natural integration with QTP enable you to cost-effectively extend your functional and regression testing environment to mobile:
  • Native QTP scripting for mobile - No need to learn new scripting language facilitates script creation and maintenance
  • Fully integrated user interface - Use the same UI for normal QTP scripts, mobile scripting and hybrid scripting - Screenshots and video improve collaboration among globally distributed teams and shortens correction cycles
  • Rich image-enhanced reports - Single centralized test management platform maximizes cross-organizational visibility and reduces TCO
  • Seamless integration with HP Quality Center ALM - Single centralized test management platform maximizes cross-organizational visibility and reduces TCO
  • Cloud-based access to REAL handsets in live networks - Improved quality without the hassle of procurement and network allocation
  • Device-agnostic mobile scripting - Build test cases that can be easily maintained, reused and ported to multiple mobile platforms

The Best in Cloud-Based Mobile Testing - Inside QTP!

MobileCloud for QTP lets you enjoy the best of both worlds – you get the world's most advanced mobile test automation solution, while preserving your existing ALM frameworks and methodologies. Key features and capabilities include: 
  • Secure cloud-based access to real devices - testers can select and immediately access hundreds of mobile devices from inside QTP. 
  • Fast, easy and maintainable mobile scripting – testers can use high-level intelligent mobile-specific functions that emulate real user operations (e.g., press keys, open browser, select image, type text, etc.)
  • Device-agnostic keyword-based script creation - ScriptOnce technology enables keyword-based scripting, dynamic search for text and images, scrolling and visual relationship association. 
  • Tight UI integration - users work on the device directly from the familiar QTP UI, using the same QTP feature set and scripting environment for normal QTP scripts, mobile scripting and hybrid scripting.
  • Rich image-enhanced reports - complete testing information, include active screenshots and video recording, is embedded into the QTP report. 
  • Full back-end integration with HP Quality Center – Native QuickTest Professional scripting, data and report structures enable centralized test management and cross-organizational visibility of your mobile apps via HP Quality Center.

1.2 MobileCloud-Interactive

The MobileCloud-Interactive service enables users to test mobile applications, websites or services on a multitude of real handsets  and tablets via the web and control them as if holding them in their own hands. Using  MobileCloud-Interactive, you'll be able to streamline development, testing and support processes, perform more tests and ensure optimal compatibility of your product or service, on more handsets, networks and locations.

Main Features

  • Directly install applications from your PC to the device
  • Send text and numbers to the device using your keyboard
  • Simulate handset events in a single click (Call Me and SMS Me)
  • Capture screenshots and record videos
  • Share test reports with other colleagues and partners
  • Share devices with others to demo new apps/features, reproduce a bug
  • Reserve handsets for use whenever you need

1.3 MobileCloud-Automation

MobileCloud-Automation allows users to execute automated testing on real handsets and tablets located anywhere in the world. Users can automate their testing using the intuitive web-based user interface, which allows the creation of keyword-based ScriptOnce scripts. Once the scripts are done, users anywhere in the world can access the devices and run the scripts.

Benefits

  • Easy and efficient script creation – Reduced manual testing efforts on all platforms 
  • Full flow control – including conditions, loops, flow commands, expressions and data-tables
  • Detailed reports  - Reporting of each execution includes vast variety of information such as actual results, screen captures in digital format, continuous video recording of the entire script and graphs showing statistics about the execution
  • Enhanced collaboration - saves time and money on problem reproduction by using real time online handset sharing with multiple participates  
  • Open REST API - allowing the integration into 3rd party tools such as test management, monitoring, defect tracking and ALM in general.

Benefits at a Glance

  • Fastest Time to Publication – Pre-certification and automated testing drastically reduce queues and rejects, resulting in huge time savings (up to 75%). Thus, premium applications are available in the store as soon as a new handset is launched
  • Increased quality and reduced risk – Automated testing and monitoring means you can test on many handsets, ensuring the highest levels of quality and user experience
  • Gain a competitive advantage – Simplifying the certification process will attract more developers to your store, enhance your reputation and reduce operational costs
  • Cost-effective - Automation lets you perform more tests on more handsets, locations and networks in less time and with less effort from your testing team, and less cost 
  • Flexibility - Handsets can be added or replaced within a matter of hours with only a simple software update, enabling app stores to quickly respond to market trends
2. Keynote DeviceAnywhere: Provides a service for planning, testing and monitoring the functionality, usability, performance and availability of mobile apps and websites.

2.1 Enterprise-Class Mobile App Lifecycle Management (mALM):

Keynote DeviceAnywhere’s Test Center Enterprise (TCE) cloud includes interactive manual testing, test automation, and monitoring solutions allowing companies to bring higher quality mobile apps and websites to market faster, at a lower cost. TCE also provides intuitive planning, collaboration, management and reporting tools enabling customers to manage their mobile app lifecycles completely in the cloud.

Cloud-Based, SaaS Architecture

  • 24x7, remote online access to all popular mobile devices including Android, iOS, BlackBerry, Windows Phone 7, and WebOS Smartphones and Tablets.
  • An always-on, globally accessible device bank saves significant cost and effort vs. establishing and managing mobile QA labs for distributed teams.
  • Test and monitor across multiple devices or test device-to-device interactions from any location in the world.
  • Online reporting (including video and screen capture) and collaboration enable efficient review and sharing with colleagues.
  • Built for on-demand use in our enterprise cloud environment as well as for private cloud deployments.
100% Mobile Ready – No Restrictions
  • Test or monitor any mobile app or website – native, HTML5, network-aware, streaming, multi-media, etc.
  • No infrastructure investment required.
         Overview:
 
  • 2.1.1 Planning: Keynote DeviceAnywhere helps enterprises target their development and test efforts on the most relevant devices and platforms with two free, valuable tools:
    • Device Planner is a tool aimed at helping developers and businesses decide which devices and platforms to develop on, to reach the largest potential audience for their app. 
    • Test Planner is a tool which provides companies with a recommended list of devices for testing their apps on, to generate optimal test coverage using the least resources.

  • 2.1.2 Execution:
    • Test Center Enterprise Automation is a SaaS enterprise software service that automates testing of mobile apps and websites.The product aims to ensure reliable, repeatable and reportable results for any mobile app, on any device, operating system and network. Using the service, engineers can perform unit testing on real devices. Similarly, testers are able to troubleshoot field issues and perform the following kinds of tests: UAT; BAT; Functional Testing; Regression Testing; and Integration Testing.
    • Test Center Enterprise Interactive is a cloud-based service designed for manual testing of mobile apps, designed for enterprise users. The service allows enterprises to remotely interact with and control a device’s functions including pressing handset buttons, viewing LCD displays, listening to ringers and tones, playing videos, tapping and swiping touch screens, muting, powering on/off, increasing volume and other functions as if they were holding the physical device in their own hands.
    • Test Center is a cloud-based service designed for manual testing of consumer-facing mobile apps.
  • 2.1.3 Analysis:  
    • Test Center Enterprise Monitoring is a SaaS platform targeted at enterprises, which provides monitoring of mobile services to detect potential problems early and ensure quality of service.
3. SeeTest by ExperiTest: Experitest’s SeeTest product suite is based on a patented technology that uses self-learning diagnostic and matching algorithms and a modular self- enhancing image recognition technology.SeeTest uses a client-agent architecture and plugs into all existing test automation environments, such as QTP, C#, JUnit, Python, and Perl.
ExperiTest does have 3 major services:
  1. Mobile Automation:Automation tool. Records on real devices. And on Emulators. Plugs into QTP, TestComplete, C#, RFT, Java, Perl, Python.   
  2. Mobile Manual:Manual testing tool. View the mobile device on your computer screen & test using your computer mouse & keyboard. 
  3. Mobile Manual:The mobile device remote access & scheduling platform.
Features   



  • Connect all mobile devices to one central hub/server that resides in your organization  
  • Enable remote access from anywhere in the organization to any device
  • Book & Schedule devices
  • Advanced booking options including: device filter by OS, SW version, tablet/device and more
  • Enforce device usage and remote access based on user class 
Benefits 
  • Top security – because it is your own organization’s security
  • Easy remote access to a large inventory of mobile devices
  • Efficient usage of mobile devices for testing by sharing resources (by accessing remotely) across the organization
  • Support for any device, including new devices and proprietary hardware devices that have not yet been commercially launched

4. FoneMonkey (MonkeyTalk):
It's free & open source functional testing tool for iOS and Android Mobile Applications
  • MonkeyTalk is the leading tool for automated testing of iOS and Android applications 
  • Robust, cross-platform recording and playback 
  • Test native, web, or hybrid apps, on iOS simulators, Android emulators or real devices -- no jailbreaking required 
  • Everything from simple "smoke tests" to sophisticated data-driven test suites 
  • Another great free and open source functional testing tool from Gorilla Logic
 For more details: Please refer below link to understand the services into video format.

Other features include:
  • Robust script recording and playback – more comprehensive recording and playback for user interactions, including taps, keyboard input, dragging and scrolling for all Cocoa Touch components.
  • Code generation options – FoneMonkey can now generate ready-to-run test scripts in Objective-C that can be run under OCUnit, or JavaScript that can be run with Apple’s UI Automation tools.
  • Optimized for both iPhone and iPad platforms and user interfaces.
  • Works on both simulators and real devices.
  • Test playbacks can be completely automated.
Please refer "QuickStart demonstrates using FoneMonkey" and "Setup process with different versions of XCode" via hlinks and their respective screenshots and videos.

5. JAMO: Jamo Solutions automates testing of mobile applications by using the same techniques on mobile devices that made automated testing on the PC so successful. Using the Jamo solutions M-eux Test software  will be able to replay the actions of the end user directly on the device.
M-eux Test 
The M-eux Test software allows you to automate, monitor and maintain your mobile test cases. M-eux Test recognizes the GUI elements of your mobile application resulting in test cases that are :
  • Device model independent.
  • Completely re-useable across different versions of the service/application under test.

M-eux test integrates flawlessly with existing well known environments such as Eclipse, QuickTest Professional from HP and Visual Studio from Microsoft. This approach results in scripts that are :
  • Easy to create and maintain

Architecture:An agent is installed on the mobile device. The agent is responsible for the recording and the replay of the test commands The Device is connected to the PC using either WIFI or a USB connection. The Device Manager is the gateway between the connected devices and the extension inside Visual Studio. The architecture allows the connection of multiple devices. One test script can execute against multiple devices.
 Supported Mobile OS:
Device Operating SystemSystem Supported versions
Android
  • Android 1.5
  • Android 1.6
  • Android 2.0
  • Android 2.0.1
  • Android 2.1
  • Android 2.2
  • Android 2.3
  • Android 2.3.3
  • Android 3.0
  • Android 3.1
  • Android 3.2
  • Android 4.0.1
  • Android 4.0.3
  • Android 4.0.4
BlackBerry
  • BlackBerry OS 4.6
  • BlackBerry OS 4.7
  • BlackBerry OS 5.0
  • BlackBerry OS 6.0
iOS
(iPhone, iPad and iTouch)
  • iOS 4.2.x
  • iOS 4.3.x
  • iOS 5.0.1
  • iOS 5.1
  • iOS 5.1.1
Windows Mobile
  • Windows Mobile 2003 Pocket PC second edition
  • Windows Mobile 2005 Pocket PC
  • Windows Mobile 6.0, 6.1 and 6.5
  • Classic, Standard & Professional
Windows CE
  • Windows CE 5.0
  • Windows CE 6.0
Windows Phone
  • 7.5

 Here users can get the lists of sample videos for the demo of the tools and it's methodology:

 

Friday, June 29, 2012

Address Security concern in general with the Enterprise Mobility CoE

Hi,

 As we know Enterprise Mobility CoE continuously tracks technology developments in this space to develop offerings that address specific needs of their different-different verticals customers. It’s the age of bring-your-own-device (BYOD) and  I.T. security professionals need a proven way to enforce and extend identity governance from the enterprise across a plethora of mobile devices. The security challenges into the Mobility CoE trends pose for customers and address them with the following competencies: 
   
   1. Integrating login authentication with customers existing active directory server
   2. Implementing Two-Factor / Two-Channel Authentication. Some of recommended solutions are below
  • Verification through SMS
  • Validating DeviceID along with UserID
  • Integrating "RSA Secure ID" services
  • Integrating with third party seamless services such as SecureAuth, PhoneFactors, etc. 
     3. Data encryption & compression for offline data storage
     4. Integrated admin tools that will provide unified admin experience for different mobile 
         platforms.
     5. Identify Management (IdM)
     6. Single Sign-on (SSO)
     7. Security Token Services


Tuesday, June 19, 2012

Difference between MDM and MAM

Hi Friends,

  I am going to highlight about the Mobile Device Management (MDM) and Mobile Application Management (MAM) concepts in this blog. First we have to understand what exactly these concepts do and how it'll be useful for the IT managements environment. MAM is very different from MDM. As we know, devices are made to be manage by heavy handed profiles into the IT to get mainly corporate information security and protection of data to the device level. That is mean if anyone lost his device , they can wipe up it from the remote. Application is management in mobile application a really meant for mobile workforce.  This is what we get the envy and come up with the great ideas of apps that empowered us , and we need to start with the platform really knows how to do this in four life cycle:
  1. Environment from upfront
  2. Injection of policies
  3. Security Wrapping
  4. Right through the deployment and management. 
Apart from the above points, using two very important things which we need to take care , i.e, user experience, no training required , getting the apps securely. And into the IT side, all over they need to do this from secure environment and they can do across a large enterprise that scales mobile application management and mobile device management.

Lets understand the standard and brief definition of MDM and MAM:

Mobile Device Management (MDM): MDM software secures, monitors, manages and supports mobile devices deployed across mobile operators, service providers and enterprises. MDM functionality typically includes over-the-air distribution of applications, data and configuration settings for all types of mobile devices, including mobile phones, smartphones, tablet computers, ruggedized mobile computers, mobile printers, mobile POS devices, etc. This applies to both company-owned and employee-owned (BYOD) devices across the enterprise or mobile devices owned by consumers.
By controlling and protecting the data and configuration settings for all mobile devices in the network, MDM can reduce support costs and business risks. The intent of MDM is to optimize the functionality and security of a mobile communications network while minimizing cost and downtime. With mobile devices becoming ubiquitous and applications flooding the market, mobile monitoring is growing in importance. Numerous vendors help mobile device manufacturers, content portals and developers, test and monitor the delivery of their mobile content, applications and services.
Implementation:
Typically solutions include a server component, which sends out the management commands to the mobile devices, and a client component, which runs on the handset and receives and implements the management commands. In some cases, 
  • a single vendor may provide both the client and the server,
  • in others client and server will come from different sources.
One of the next steps was to allow a client initiated update, similar to when a user requests a Windows Update.
Central remote management, using commands sent over the air, is the next step. An administrator at the mobile operator, an enterprise IT data center or a handset OEM can use an administrative console to update or configure any one handset, group or groups of handsets. This provides scalability benefits particularly useful when the fleet of managed devices is large in size.
Central functionality includes:
  • FOTA - Firmware over the air updates
  • Diagnostics
  • Remote Configuration and Provisioning
  • Security
  • Backup/Restore
  • Network Usage and Support
  • Server Deployment
  • Mobile asset tracking and management
  • Remote Lock and Wipe
  • Device Provisioning
  • Software Installation
  • Troubleshooting and Diagnostic Tools
  • Policy Application
  • Logging and Reporting
  • Remote Control and Administration
  • GPS tracking and 'breadcrumb' mapping
Over-the-air programming (OTA) capabilities are considered a main component of mobile network operator and enterprise-grade Mobile Device Management software. These include the ability to remotely configure a single mobile device, an entire fleet of mobile devices or any IT-defined set of mobile devices; send software and OS updates; remotely lock and wipe a device, which protects the data stored on the device when it is lost or stolen; and remote troubleshooting. OTA commands are sent as a binary SMS message. Binary SMS is a message including binary data.

Mobile Application Management (MAM): MAM describes software and services that accelerate and simplify the creation of internally developed or “in-house” enterprise mobile applications. It also describes the deployment and management of in-house and commercially available mobile apps used in business settings on both company-provided and “bring your own” smartphones and tablet computers (BYOD).
Mobile application management has also been defined as “the strategy and process around developing/procuring, securing, deploying, accessing, configuring, updating and removing (business) applications from mobile devices used by the employees.” Enterprise MAM has been driven by the widespread adoption and use of mobile devices in business settings. IDC reported that smartphone use in the workplace will double between 2009 and 2014 and it continuously grows in future. The BYOD (“Bring Your Own Device”) phenomenon is a factor behind mobile application management, with personal PC, smartphone and tablet use in business settings (vs. business-owned devices) rising today in IT enterprise. When an employee brings a personal device into an enterprise setting, MAM enables the corporate IT staff to provision the device, download appropriate applications, control access to back-end data, and “wipe” the device if it is lost, or when its owner no longer works with the company.
Applications types which fall under MAM:
  • Corporate data access and decision support
  • CRM and sales force automation
  • Disaster recovery
  • Factory automation/manufacturing
  • GPS and location-based services
  • Human resources (timesheets, expense reports, etc.)
  • Inventory management
  • Order entry and tracking
  • Retail and point of sale
  • Training tools, including video
MAM Services:
  • App delivery
  • App security
  • App updating
  • User authentication
  • User authorization
  • Version checking
  • Push services
  • Reporting and tracking
Better Mobile Security Solutions:
Better MDM provides easy-to-use, cloud based enterprise grade technology that allows IT to adapt mobile architecture for their business in fast and secure way. Better MDM enables IT in enterprises, healthcare organizations and government agencies to secure the two end-points, Device and Applications. 
Mobile App protection and Security Wrapping:
  • App Wrapping- Better MDM’s Mobile App Protection and Security Wrapping solution protects your apps through the use of fine-grained usage and security policies with no source code/SDK/API or changes to the apps required. For hyper-sensitive apps, multiple layers of protection can be used; strong authentication, data-at-rest encryption, VPN to protect data-in-transit and geo-fencing to restrict access based on geographic location. In addition, Better MDM’s Data Protection wrapper protects data from being copied and pasted to unauthorized applications. Better MDM provides both native and HTML 5 based app catalog apps.
  • Enterprise App Store- Enterprise App Store enables IT easily manage App deployment by selecting which applications they wish to make available to employees. With Better MDM’s solution, you can distribute, update and ensure the security of all enterprise applications.
  • App Security Analyzer- Better MDM’s App Security Analyzer identifies risks in in-house or third-party apps by scanning for malware, privacy breaches and corporate data exfiltration. We perform both static analysis of the app as well as running it instrumented emulation to identify and compute the risk score.
  • Security Policy Manager- Single Security Policy engine to apply and enforce corporate security policies on both mobile apps and devices.

Monday, June 4, 2012

MonoDevelop (IDE - Cross Platform): Design and develop compelling cutting edge client application software for the MacOS and iOS/Android platforms

Hi Friends,

In this blog I am going to discuss about the IDE call "MonoDevelop" which helps the developer to develop and build the mobile client applications (i.e., iOS and Android) and services (i.e., SAAS) by little understanding of C# and ASP.Net. into the cross-platform environment.

Mono is a free and open source project led by Xamarin (formerly by Novell and originally by Ximian) to create an Ecma standard compliant .NET Framework-compatible set of tools including, among others, a C# compiler and a Common Language Runtime (CLR).
The stated purpose of Mono is not only to be able to run Microsoft .NET applications cross-platform, but also to bring better development tools to Linux developers. Mono can be run on many operating systems including Android, BSD, iOS, Linux, OS X, Windows, Solaris, Unix, and some for game consoles such as PlayStation 3, Wii, and Xbox 360.
Mono is having many innovative projects in their accounts, but few of them are so famous in respects of mobile application development and services environment. Several projects extend Mono and allow developers to use it in their development environment. These projects include:
1) Cross-Platform:
  • MonoCross, a cross-platform Model–view–controller design pattern where the Model and Controller are shared across platforms and the Views are unique for each platform for an optimized User Interface.
  • MonoDevelop an open source and cross platform Integrated Development Environment that supports building applications for ASP.NET, Gtk#, Meego, MonoTouch, iOS/iPad/iPod, Android  and Silverlight/Moonlight.
  • Moonlight, an implementation of Silverlight that uses Mono. etc.

2) MacOS:
  • Cocoa# – wrappers around the native OS X toolkit (Cocoa) (deprecated).
  • Monobjc – a set of bindings for OS X programming.
  • MonoMac – newer bindings for OS X programming, based on the MonoTouch API design.

3) Mobile Platforms:
  • MonoDroid Mono for the Android operating system. With bindings for the Android APIs.
  • MonoTouch Mono for the iPhone, iPad and iPod Touches. With bindings to the iOS APIs.

 

MonoDevelop:

An open source IDE targeting both Mono and Microsoft .NET framework platforms. MonoDevelop is a free GNOME integrated development environment primarily designed for C# and other .NET languages such as Nemerle, Boo, and Java (via IKVM.NET), although it also supports languages such as C, C++, Python, Java, and Vala. MonoDevelop was originally a port of SharpDevelop to Gtk#, but it has since evolved to meet the needs of Mono developers. The IDE includes class management, built-in help, code completion, Stetic (a GUI designer), project support, and an integrated debugger. It supports MEAP concepts as well.
The MonoDoc browser provides access to API documentation and code samples. The documentation browser uses wiki-style content management, allowing developers to edit and improve the documentation.

1) OS Support:
  • OSX - MonoDevelop
  • Windows - Visual Studio 2010 Pro or above and MonoDevelop

2) Cross-platform:
Create amazing Android/iOS (iPhone/iPad) apps with C# and .NET
  • Cross Platform 
    Easily share code between iOS, Android and Windows Phone 7.
  • Native Code 
    High-performance compiled code with full access to all the native APIs, including UIKit.
  • C# & .NET 
    Everything you love about .NET, including LINQ, Delegates and Events.

MonoTouch and Mono for Android:

MonoTouch and Mono for Android, both developed by Xamarin, are implementations of Mono for iPhone and Android-based smart-phones. Contrary to Mono itself, they are released under a commercial license only. 

MonoTouch - for iOS:

MonoTouch allows developers to create C# and .NET based applications that run on the iPhone. It is based on the Mono framework and developed in conjunction with Novell. Unlike Mono applications MonoTouch "Apps" are compiled down to machine code targeted specifically at the Apple iPhone. This is necessary because the iPhone kernel prevents just-in-time compilers from executing on the device.
The MonoTouch stack is made up of:
  • Compilers
    • C# from the Mono Project
    • Third party compilers like RemObject's Oxygene can target MonoTouch also
  • Core .NET libraries
  • Development SDK:
    • Linker – used to bundle only the code used in the final application
    • mtouch – the Native compiler and tool used to deploy to the target device
    • Interface Builder and storyboard integration tools
  • Libraries that bind the native CocoaTouch APIs
  • MonoDevelop IDE
MonoDevelop is used as the primary IDE however additional links to Xcode and the iOS simulator have been written.
From April to early September 2010, the future of MonoTouch was put in doubt as Apple introduced new terms for iPhone developers that apparently prohibits them from developing in languages other than C, C++ and Objective-C, and the use of a middle layer between the iOS platform and iPhone applications. This made the future of MonoTouch, and other technologies such as UNITY, uncertain.Then, in September 2010, Apple rescinded this restriction, stating that they were relaxing the language restrictions that they had put in place earlier that year.

 

Why you'll love MonoTouch.

MonoTouch makes creating iPhone and iPad apps easier than ever before.
  • Cross platform development 

    Thinking about supporting Android in the future? In many cases, you can reuse most of your existing code when porting from iOS to Mono for Android.
  • Discover iOS as you type 

    Explore APIs as you type with code autocompletion. Just like Visual Studio.
  • iOS 5 ready 

    MonoTouch has all of the latest iOS 5 features bound and ready to use in the apps you create.
  • Reuse existing code 

    Import existing .NET libraries and use them in your MonoTouch apps. Easily bind existing C and Objective-C libraries as well.
  • XCode 4 and UI designer integration 

    Use XCode 4 and the powerful UI Designer to create interfaces and Storyboards that automatically sync with your MonoTouch project.
  • Up to date 

    MonoTouch is frequently updated and ready with all of the new iOS features - typically on the same day they are released!




Mono  for Android:

Mono for Android, developed by Xamarin, is a proprietary implementation of Mono for Android-based smart-phones. It was first released on April 6, 2011. Mono for Android was developed to allow developers to more easily write cross-platform applications that will run on all mobile platforms.
In reference to the lawsuit filed by Oracle against Google over Android's use of Java, that "The type of action Oracle is taking against Google over Java is not going to happen. If a .NET port to Android was through Mono it would fall under the Microsoft Community Promise Agreement." Recently Google has won against the Oracle filed lawsuit in favor for them about the same.

The Mono for Android stack consists of the following components:
  • Mono runtime
  • Libraries:
    • Core .NET class libraries
    • Libraries that bind the native Android/Java APIs
  • SDK tools to package, deploy and debug
  • Visual Studio 2010 integration to remotely debug and deploy.

 

Why you'll love Mono for Android.

Mono for Android makes creating Android apps easier than ever before.
  • Cross platform development 

    Thinking about supporting iPhone or iPad in the future? In many cases, you can reuse most of your existing code when porting from Android to iOS.
  • Discover as you type 

    Explore APIs as you type with code autocompletion.
  • Full featured 

    Mono for Android has all of the latest Android features bound and ready to use in the apps you create.
  • Reuse existing code 

    Import existing .NET libraries and use them in your Mono for Android apps.
  • The Full Power of Visual Studio 

    Continue using Visual Studio or use our full featured MonoDevelop IDE to create apps using Mono for Android.
  • Easy To Install 

    Installing the Android SDK can be time consuming, but Mono for Android simplifies the process by installing everything you need with just a few clicks.