Skip to content
Charles Wang edited this page May 8, 2014 · 6 revisions

Welcome to the Umple iPad App wiki!
The Umple iPad App will help draw UML diagram easily because of the touch screen interface. This is a better approach than implementing touch in web because the web does not provide good support with touch controls.

The diagrams drawn in the App is converted to JSON, which has the same structure format used in UmpleOnline.

Example:

{
  "umpleClasses": [
    {
      "position": {
        "x": 350,
        "y": 31,
        "width": 110,
        "height": 45
      },
      "attributes": [
        
      ],
      "methods": [
        
      ],
      "id": "PersonRole",
      "name": "PersonRole",
      "displayColor": ""
    },
    {
      "position": {
        "x": 50,
        "y": 130,
        "width": 109,
        "height": 45
      },
      "attributes": [
        {
          "type": "String",
          "name": "name"
        },
        {
          "type": "String",
          "name": "address"
        },
        {
          "type": "String",
          "name": "phoneNumber"
        }
      ],
      "methods": [
        
      ],
      "id": "Person",
      "name": "Person",
      "displayColor": ""
    }
   ],
"umpleAssociations": [
    {
      "offsetOnePosition": {
        "x": 109,
        "y": 10,
        "width": 0,
        "height": 0
      },
      "offsetTwoPosition": {
        "x": 0,
        "y": 10,
        "width": 0,
        "height": 0
      },
      "id": "umpleAssociation_0",
      "classOneId": "Person",
      "classTwoId": "PersonRole",
      "multiplicityOne": "1",
      "multiplicityTwo": "*",
      "name": "Person__PersonRole",
      "roleOne": "undefined",
      "roleTwo": "undefined",
      "isLeftNavigable": "true",
      "isRightNavigable": "true"
    },
    {
      "offsetOnePosition": {
        "x": 80,
        "y": 96,
        "width": 0,
        "height": 0
      },
      "offsetTwoPosition": {
        "x": 86,
        "y": 0,
        "width": 0,
        "height": 0
      },
      "id": "umpleAssociation_1",
      "classOneId": "Client",
      "classTwoId": "Account",
      "multiplicityOne": "1..2",
      "multiplicityTwo": "1..*",
      "name": "Account__Client",
      "roleOne": "undefined",
      "roleTwo": "undefined",
      "isLeftNavigable": "true",
      "isRightNavigable": "true"
    },
    {
      "offsetOnePosition": {
        "x": 93,
        "y": 0,
        "width": 0,
        "height": 0
      },
      "offsetTwoPosition": {
        "x": 93,
        "y": 45,
        "width": 0,
        "height": 0
      },
      "id": "umpleAssociation_2",
      "classOneId": "Manager",
      "classTwoId": "Employee",
      "multiplicityOne": "0..1",
      "multiplicityTwo": "*",
      "name": "Employee__Manager",
      "roleOne": "undefined",
      "roleTwo": "undefined",
      "isLeftNavigable": "true",
      "isRightNavigable": "true"
    }]
}



As of now, it is not connected to the UmpleOnline server. However, it can easily be connected to UmpleOnline if UmpleOnline has a new command in the umplesync.jar file that can take only JSON.

The current feature of this app is add new class (add methods and attributes and drag around classes (associations' positions change as well)

The file structure of UmpleApp is simply broken down to:

-Umple Core Components-
UmpleClass
UmpleMethod
UmpleAttribute
UmpleAssociation

-Umple Main Diagram- *Draws components and reacts to user input
UmpleViewController

-Umple Diagram Editor- *Edit diagrams
UmpleModelMenuViewController
UmpleClassEditorViewController (double tap the diagram)

To run the app, simply download the project, open it with Xcode, and run it with an iPad iOS 7 simulator.

Clone this wiki locally