Skip to content

Create Pages

The Pages folder contains the metadata definitions for you application's pages. After you have created your new Mobile Development Kit project, a file is automatically created under the Pages folder.


You must have a valid Mobile Development Kit project.


  1. Under your newly created project, right-click the Pages folder and click New MDK page.
  2. In the Template Section pane, select one of the following, based on the type of page you want to create:

    • Bottom Navigation Page
    • Extension Page
    • Form Cell Page
    • Flexible Column Page
    • Section Page
    • Side Drawer Navigation Page
    • Tabs Page
  3. Provide a name for the page and click Next > Finish. A new blank page of the desired type is created under the Pages folder.

  4. To start working with a page, double-click it or right-click and Open MDK Page Editor or Open Code Editor.


Changes made in the page editor simultaneously appear in the code editor.

You can select the default editor from Preferences Default Editors.

Bottom Navigation Page A Bottom Navigation Page is suitable for top level navigation, treated as navigation menu, where the separate tabs don't have shared context. Bottom Navigation control renders a list of tab items along with content for each tab.

Extension Page An Extension Page is suitable for a page with one extension control (for example, a Map control or a Chart control). When you create an extension page, a page with an extension control is created.

Form Cell Page A Form Cell Page is suitable for pages that generate new objects or modify existing objects. It includes a form cell container by default. You can add form sections, multiple containers or action controls to this page. Under each container section, you can add various container items.

Flexible Column Page A Flexible Column Page control will always render as a full screen control taking over the entire space of the page content. If flexible column page has no title, no action bar item, and is the first page of application, the action bar is hidden.

Section Page A Section Page is suitable for pages that are used to display items, for example, a list of items or details of a single item. It includes a sectioned table by default. When you create a section page, a page with a blank section is created.

Side Drawer Navigation Page A Side Drawer Navigation Page is suitable for lateral navigation between app destinations or features. It is typically used when there are more than 5 destinations. This page comprises of Header, Sections, and Item elements.

Tabs Page A Tabs Page is suitable for organizing or allow navigation between group of content that are related and at the same level of hierarchy. Tabs control renders a list of tab items along with content for each tab.

Page Editor

The Page Editor view contains the Controls and Outline tabs on the left-hand side, where you can see the controls applicable for your app. Each of the three page types contains different controls.You can simply drag and drop UI elements from the Controls tab directly into the Page Editor of the page you created.

The Outline tab shows the control hierarchy of the page you are designing. When you add a control, it is displayed under the Outline tab. Also, you can easily choose nested controls from this view.

On the right-hand side of the Page Editor, you can see the Properties and Events tabs, which contain the properties of the currently selected control and the events that you can associate with the selected controls.

To improve Mobile Development Kit service validation, we use DesignTimeTarget property for page. This property is similar to Target, but it is only used for design time.

For example:

When you are on a page that has an Object Table control bound to a Customers entity set, navigating to the detail page will pass the binding context in runtime.

During design time, if the detail page has binding but there is no Target defined, you can use DesignTimeTarget to bind data. Thus, it can help you validate the binding context of current page, and it can also provide you code completion.

Binding an Object Table to the Customers entity set on a page:

  "ObjectCell": {
    "Title": "{FirstName}",
    "Subhead": "{City}",
    "Footnote": "{CustomerId}",
    "Description": "{Country}",
    "StatusText": "{DateOfBirth}",
    "SubstatusText": "{EmailAddress}",
    "OnPress": "/TestApp/Actions/Customers/NavToCustomers_Detail.action"
  "Target": {
    "EntitySet": "Customers",
    "QueryOptions": "",
    "Service": "/TestApp/Services/CustomerManagementService.service"
  "_Type": "Section.Type.ObjectTable"

Use DesignTimeTarget in the detail page:

 "Controls": [
   "_Type": "Control.Type.SectionedTable",
   "_Name": "SectionedTable",
   "Sections": [
     "ObjectHeader": {
      "Subhead": "{City}",
      "Footnote": "{CustomerId}",
      "Description": "{Country}",
      "StatusText": "{DateOfBirth}",
      "SubstatusText": "{EmailAddress}",
      "Tags": [
      "HeadlineText": "{FirstName}"
     "_Type": "Section.Type.ObjectHeader",
     "_Name": "SectionObjectHeader0"
 "DesignTimeTarget": {
  "Service": "/TestApp/Services/CustomerManagementService.service",
  "EntitySet": "Customers"
 "_Type": "Page",
 "_Name": "Customers_Detail",
 "Caption": "Customer",
 "PrefersLargeCaption": true

Code Editor

The Code Editor view displays the codes for your metadata elements. As you add or modify contents in the Page Editor, the changes simultaneously reflect in the Code Editor.

Last update: September 19, 2022