MotherApp Engine

Tutorial

MotherApp Engine Overview

Hello, Developers, Your Lives Just Got Easier

The emergence of Internet-capable smartphones and other mobile devices, such as the iPod and iPad, has created a truly new computing environment with limitless opportunities. Simple one-function apps that only do one thing but do it well and are wirelessly downloaded are changing the business landscape. In December 2009, Morgan Stanley estimated that the mobile Internet will be twice the size of the current desktop-computer-oriented Internet. This is an incredible opportunity for the creation of new applications and businesses.

It also created a new headache for developers: Prior to MotherApp, if you wanted to develop applications for mobile platforms, you had to extend your knowledge from the existing set of tools and languages used to create web sites to also encompass the new mobile operating systems and tools. And there is not just one or two mobile platforms, there are several – iPhone, BlackBerry, Andriod, Windows Mobile, and Symbian – with none dominating the market the way MS Windows dominates the personal computer market.

Enter MotherApp. The MotherApp devEngine is an advanced cross-platform framework that can turn applications coded in MotherApp HTML into native widgets, with the look, feel, and functionality the user expects on his mobile device. MotherApp makes it easy for you to create content-based native apps across a wide set of mobile platforms, without having to learn several new programming languages and SDKs. Mobile applications can be built quickly, inexpensively and robustly.

Why MotherApp?

Mobile Apps are the Future

Mary Meeker, dubbed "Queen of the Net" by Barron's Magazine in 1998, directed a study of the Mobile Internet at Morgan Stanley at the end of 2009. After studying the rate of change spurred by the iPhone and the synergy between cell phone and Internet technologies, she made the following observations:

  1. Mobile Internet is the 5th computing platform, after mainframe, mini, PC and desktop Internet. Each wave created new winners and losers; new wealth will be created and the value of some older companies destroyed. This mobile wave is larger and coming faster than any previous wave.
  2. It took Apple 2¼ years to reach 57 million users, compared to 5 years for NTT Docomo to reach 40 million users, and Netscape 4 years to reach 50 million users. Smartphones, in aggregate, will grow from 288 million units in 2008 to over 1 billion units by 2013.
  3. The convergence of 3G + Social Networking + Video + VoIP + smartphones created an ecosystem that is rapidly growing the mobile Internet market. Hence, the many mergers, acquisitions, and new company formations now underway in the mobile space.
  4. A disruptive new business model will be created. Meeker quoted Mathew Honan in Wired, “…Location changes everything. This one input, our coordinates, has the potential to change all the outputs. Where we shop, who we talk to, what we read, what we search, where we go – they all change once we merge location and the Web.”
  5. Apps are critical to the success of smartphones.
     
    As of April 8, 2010, there are at over 185,000 apps available from the Apple App Store, with over 4 billion total downloads, plus tens of thousands of apps for the Android, Blackberry and other smart phones. .

Development with a Native SDK Is Painful

Creating an app is simpler and less expensive than creating applications for personal computers, thanks to standards such as RSS, and content providers like Google, Yahoo, Twitter, YouTube and Facebook. But there are still challenges: Currently almost all apps are built using the native SDK for each mobile platform. This usually requires the developer learn a new language (Objective C for the iPhone, Java for Andriod, C# for Windows Mobile, etc.) and learn a new application programming interface (API). While smartphones share a majority of features, their different SDKs have significant differences, some quite subtle.

If you wish to create an application that works on all the major mobile platforms, you have to work with several different SDKs: The iPhone has a large and growing market share, but Android is coming on strong, and RIM (BlackBerry) is maintaining its corporate presence.

To create an app that is available on multiple platforms would require writing the same logic in multiple programming languages, using multiple SDKs, multiplying the development time, complexity, and cost, and multiplying the possibility of introducing bugs in the code, thus multiplying the amount of testing needed. Maintenance of the app will require maintaining separate code lines in different programming languages. The process comes to resemble a Tower of Babel.

Have a Single Source Code Base for Apps on Multiple Platforms

MotherApp solves these problems. The MotherApp Engine is designed to make cross platform development easy.by eliminating the need for multiple development efforts and for learning separate SDKs. Instead of having to learn Java or some flavor of C, you only need to become familiar with MotherApp HTML. This is a subset of the HTML language you already know, supplemented by MotherApp extensions that allow access to the features of the mobile platforms. You can continue to take advantage of the productivity and speed of web programming.

You create, test, and maintain only one code base for your app. The MotherApp devEngine translates this XML code into native apps for each mobile platform you choose. For each platform you have an app that meets users' expectations for an app on that platform, with the native look and feel, with the optimized performance efficiency of a native app, andwith the offline capabilities of a native mobile app.

Take Advantage of the Features of Each Platform

Mobile platforms have several features missing from personal computers, such as an integrated calendar and address book, telephone, compass, GPS, accelerometer, camera, multimedia player, and the ability to switch the display between profile and landscape orientations. Not all mobile platforms have all these features. MotherApp apps can take advantage of these features on the mobile platforms that have them, and use alternative approaches on platforms that don't.

Save Money

Without MotherApp, creating an application that runs on all the major mobile platforms can be costly. You need programmers experienced in all the different programming languages and SDKs. They need to coordinate they development so that the different apps they create all work the same. You also need to test each app on its target platform. All this duplication of effort is eliminated with MotherApp. The need to learn Java or Objective C or C++ and the different SDKs is eliminated; you only need to become familiar with our XML.

Save Time

Using one source code base to generate apps on multiple platforms not only saves you money, it saves you time. You spend less time coding, less time testing, and less fixing your code than if you have to have multiple source versions. You can create apps in weeks, instead of months, keeping you ahead of the competition.

How It Works

Much like a YouTube app that interacts with YouTube's web server for its content, your MotherApp app interacts with your web server to get any dynamically needed data. The difference is that the YouTube app has a fixed layout over which you have no control, while MotherApp allows you to build your own templates to have control over layout and functionality.

How to Build a MotherApp App

  1. To create a MotherApp app you start with your existing web server (e.g., Apache, IIS) and the back-end technology of your choice, such as PHP, ASPX, Ruby on Rails, Django, etc.
  2. Have your web server generate pages that follow the MotherApp HTML specification. You can test these pages using the MotherApp debugger.
  3. Send us the URL for the starting page for your app. We then generate the app code that is loaded on the target platforms. Separate apps are created for each separate mobile platform.
  4. Load the app on the target platforms and you are in business. The app will communicate with your web server for any dynamic data needed. You web server can either produce that data from its own database or it can obtain the information from a third-party, such as Google Maps, or a combination of both. You web server just needs to return the information to the app in MotherApp HTML. The MotherApp device engine located in the app on the mobile device will read the MotherApp HTML and convert it into native code.

    Once you app is generated by the MotherApp devEngine it only needs to talk to your web server. It does not need to communication with the MotherApp server.
The process for creating MotherApp apps

What Platforms are Supported?

MotherApp currently support the iPhone, Android, and BlackBerry. In the future it will support Nokia platforms (Symbian OS S6 V5.0, WRT 1.1) and MS Windows Mobile.

Where Do I Go Next?

First read our short Introduction to MotherApp HTML, this will familiarize you with our programming language. MotherApp HTML is a subset of XHTML, so it will be instantly familiar. You can find all the details about MotherApp HTML in our Coding References.

To learn how to build MotherApp apps, start by going through our tutorials and creating real apps. After you have completed the tutorials, which will only take a few hours, you are ready to create your own apps.

If you have technical questions, check out our FAQ page, or you can discuss your issue with our technical staff in our Engine Forum.

If you have business questions about creating and distributing apps using the MotherApp devEngine, please contact us on our Partners page.

What Resources Are Available to Me as a Developer?

  • MotherApp HTML Reference
    Click here to see the complete reference for MotherApp HTML. You can select having the code elements displayed by category, alphabetically, or with associated screen shots.
  • Development Tools
    • Click here to use the MotherApp Debugger.
      Use the debugger test your application using a web browser (the Safari 4, Firefox 3.5 and Google Chrome browsers are recommended). The generated user interface may differ somewhat from the display on any particular device (since the app will display natively, and therefore differently, on each platform), but the debugger accepts the same MotherApp HTML as the devEngine. It will allow you to to check the syntax for your MotherApp HTML pages.
    • Click here to use the MotherApp Sandbox
      The MotherApp sandbox helps generates the testing version of app that could be actually deployed to the devices.
    • Click here to view our set of sample apps.
  • More Information
    • Click here to view our list of MotherApp "How to"s. For example, "how to deliver your completed app," or "how to launch the video player."
    • Click here to view the answers to our Frequently Asked Questions (FAQ)
    • Click here to go to our Support Forum.