You are on page 1of 72

O.B.D.E.

On-Board Development Environment

(c)2010 VisualNewt Software


Preliminary
As of 06/03/2010 - contents WILL change!

All contents (c) 2010 VisualNewt Software.


Objectives

• What Is OBDE?

• What can you do with OBDE?

• OBDE IDE Functionality

• OBDL
What is OBDE

• An on-board iPad development environment.

• An on-board iPhone runtime environment.

• An interpreted development language.


OBDL V1.0

• This is the first release

• Will evolve across future releases.

• V1.0 is described in this presentation.


What Can You Do With
OBDE?
• Develop on the iPad.

• Write programs that run on the iPad and


iPhone.

• Use all public frameworks supported by the


iPhone and iPad.

• Generate UIs from XIBs imported onto your


device.
OBDE Workspaces
• OBDE has two "workspaces"

• A project:

• The source code, XIBs, and resources implement an OBDE app.

• You can have any number of projects.

• The library

• Contains all items that can be used in a project.

• There is a single library.

• OBDE functions work across and in these workspaces.


OBDE IDE
Functionality
• Project management

• Source code editing

• Debugging environment

• Runtime environment

• View generation/XIB regeneration


The OBDE IDE
The user interface
Main Screen

• The launch
screen

• Shows main
functions

• Shows OBDE
projects.
OBDE
Project Management
Project Management

• Associate XIBs,
resources, source
code into a project.

• Manage project
components.

• Projects are folder


oriented.
Functions

• These are
common to all
screens.
Project Management
Commands

• Allow you to
manage
selections

• The library
contains all items
whether or not
part of a project.
Project Management Project

• Allows you to manage


projects.
Project Information

• Manage project
metadata
OBDE
Source Editing
Source Editing

• Edit and manage


source code.

• Test parse the


syntax.

• Use code snippets


and fragments.
Source Editing
Functions

• Common to all screens


Source Editing
Functions

• Allows you to
manage the
source file.
Source Editing Library

• View and edit


source files in
your library.
Source Editing Project

• View and edit source


files in a selected
project.
Source Editing
Snippets

• Quickly write code


using predefined and
your own snippets.
OBDE
Debugger
Debugging
Environment

• On-Board
Debugger

• To be done
OBDE
Run
Runtime Environment

• Runs on iPhone and


iPad

• Requires only the


project folder and
OBDE runtime.
OBDE
View Processing
View Generation

• Generate
views
graphically.

• View and
manage item
properties.
XIB Regeneration

• Display views based


on XIBs

• Display properties of
view-based objects.
View Processing
Functions

• These are common


to all screens.
View Processing
Functions

• Manage the current


view.
View Processing
Options

• Switch between the


tools and properties
palettes.
View Processing
Library and Project

• These allow you to


work with views in
your library or
project.
View Processing
Palette

• Another way to
get to the tools
and properties
when dealing
with full screen
views.
Tools Palettes
Properties Palette

• To be done
OBDE
(Testing Environment)
Testing Environment

• Not part of the the release.

• Gives me an internal view of


what is going on.
OBDL
The Language
OBDL
• On-Board Development Language

• Interpreted

• Ruby-like syntax

• Target-Action

• Hooks into Foundation and UIKit


Ruby-Like Syntax

• OBDL is not Ruby

• OBDL uses a minimal subset of Ruby


syntax.

• OBDL is object oriented (primitives are not).

• OBDL supports MVC.


OBDL Classes

• Base class inherits


from NSObject

• Can inherit from


other iPhone SDK
classes.
Program Structure

• One Main class

• One main method

• Use 'require' to
include other
classes.
Class Types
• Program classes:

• MVC-specific

• Main

• SDK-based

• Scoped to an MVC
class

• Or a main

• Encapsulated to
function.
Instantiating OBDL
Classes

• Explict instantiation
only.

• Different from Ruby.


Freeing OBDL
Instances

• To be done
OBDL Properties

• To be done
OBDL Methods

• Use dot notation to


invoke.

• 'initialize' method
called prior to all
others.
OBDL Conditionals

• 'if' statement
patterned after Ruby.

• Note it's not elseif,


but elsif!
OBDL Loops

• 'until' and 'while' loops


supported.
OBDL Loops

• 'for' loop in exclusive range.

• '...' syntax not supported.


OBDL and the SDK

• To be done
OBDL Target-Action -
Outlets
• Outlets are declared as:

• attr_writer :outletname

• Outlets and actions can


be generated from IB
XIBs.
OBDL Target-Action -
Actions
• Actions are
declared as:

• def name:

• Outlets and
actions can be
generated from
IB XIBs.
OBDL Models

• Models cannot refer to


view objects or classes.

• Declared as:

• class Name < Model


OBDL Views
• Use XIBs from IB

• Generates an OBDL View


class.

• Programatically create your


own

• Cannot refer to models.

• Declared as:

• class Name < View


OBDL Views XIB-Generated
Views

• To be done
OBDL Controllers
• Only class that can refer to
models and views.

• Declared as:

• class name < Controller

• If name ends in .xib, the


class controls a xib-
generated view.
OBDL Controllers XIB-Generated
Controllers.

• Given an IB XIB, OBDE can


generate a view controller
with:

• All outlets defined

• All actions stubbed out.


OBDE Current Status
Very preliminary
Current Status Project
Management

• All functions work apart from displaying


project metadata.
Current Status Source
Editing
• All functions work except

• Link to source parser

• Creating and managing snippets

• Inserting snippets at selection point (now


just appends)
Current Status View
Processing
• Parses all XIBs.

• Except for items requiring NSCoder.

• Regenerates views from XIBs

• Except for images and NSCoder-based items.

• Properly generates OBDL controllers based on XiBs

• Needs to generate OBDL views.

• Needs properties palette and functions

• Needs tools palette functionality.


Current Status Run

• To be done
Current Status
Debugger

• To be done
Current Status OBDL
• Core language defined

• Language parser mostly complete

• Language pcode generator mostly complete

• Expression parser needs to be done

• Metadata classes and program environment


mostly complete
Current Status PCode
Runtime

• To be done
Futures
Things to come
In Future Releases

• OBIB - XIB creation

• OBCB - Code builder - visual programming


Summary
Version 1.0

• Coming ...

You might also like