App Fundamentals

Appemble strives to simplify Mobile App Development by fundamentally changing the way the apps are developed. Today Native Apps are developed using imperative programming . Native apps for Android are written in Java, and for iOS in Objective C. Java and Objective C are procedural programming languages where you have to specify the exact steps to get the desired result. A desired result may be to display the next screen or call a browser with a given URL.

Appemble introduces the concept of writing apps using declarative programming. A declarative programming is “where you say what you want to do without having to say how to do it.” For example, to call the next screen, you just call the action NEXT_SCREEN with a screen name , or to invoke a browser appliction you just call the action CALL_BROWSER with a URL. The application writers focus their energies on “What the app should do” rather than spending time on “How to make the app work?”.

The advantages of declarative programming are

  • Declarative programming lowers the learning curve to write a native app that is cross platform.
  • Enables designers and product managers to take charge and write most of the app without involving the core engineering team.
  • Cuts down the time to market significantly as product managers and designers are able to give the shape to the app by themselves without waiting on engineering teams to convert the wireframes to the real app.

Appemble provides a new methodology to write Native, Cross Platform mobile apps using a declarative language called XMADL (eXtended Mobile App Definition Language). The app definition is interpreted at run time using App Virtual Machine (AVM).

_images/appemble_technology.png

Appemble App Definition Components

An app is composed of one or more screens. Every screen
  • Is made up of one or more controls for example Text, Edit or Push Button. Controls are laid out in a pre-defined positions and have a size(width and height). Each control has appearance.

  • Displays data or take user input. Data can be fetched from the device locally or remotely from a server.

  • Reacts to user’s gestures like tap, flick also called events. Events trigger actions. Common type of actions are
    • show another screen,
    • interact with other applications on the device like call a phone, invoke a browser,
    • call server to fetch remote data or save data to the server.
_images/appemble_components.png

Note

The User Interface (UI) component’s (screen and controls) size can be specified as a percentage of device’s screen size. Therefore they can scale according to the size of the device screen.

To define the app, an xml file is created per screen using the various elements of XMADL.

  • A screen is defined by <screen>...</screen>.
  • A control is defined by <control>...</control>.
  • Action is defined by <action>...</action>.

Learn more about the elements screen , control , action , appearance and their attributes.

App Development Steps

Design

Step 1 Design Look and feel and Navigation on paper, or any tool

Step 2 Design data model

Build

In order to build an app you need to do the following:

Step 1. Build UI

Step 2. Attach Actions and Events to controls

Step 3. Add Data sources (remote or local)

Step 4. Add Business Logic

Apps can be developed using Eclipse for Android and run and tested in iOS environment or vice versa. 40-50% of the app can be completed and verified by your customer without adding any code for business logic.

The figure below shows the development process per screen.

_images/dev_method.png

Good Read

Test and Publish

Package

Learn more about packaging

  • For Android create yourapp.apk file
  • For iOS create yourapp.ipa file (Mac needed)

Test on devices

  • Testing on Android devices
    • Install the yourapp.apk file directly from your machine or from your email containing yourapp.apk file
  • Testing on iOS
    • Add test device to Developer portal
    • Install via iTunes
    • OR Install and test using TestFlight

Publish

Based on which platform you are using you can choose to submit.

  • Submit your iOS app on Apple
  • Submit your Android app on Google Play, Amazon