Smart Mobile Studio
  • News
  • Forums
  • Download
  • Store
  • Showcases
    • Featured demos
    • The Smart Contest 2013, Round 1 – Graphics
  • Documentation
    • Get the book
    • System requirements
    • Prerequisites
    • Getting started
      • Introduction
      • Application architecture
      • The application object
      • Forms and navigation
      • Message dialogs
      • Themes and styles
    • Project types
      • Visual project
      • Game project
      • Console project
    • Layout manager
    • Networking
      • TW3HttpRequest
      • TW3JSONP
      • Loading files
  • About

Introduction

Smart mobile studio is an exciting new development studio for web and pascal programmers. It’s key feature is that it completely replaces javascript with object pascal. Our advanced compiler technology takes your object pascal source-code and transforms it into state of the art, cutting edge javascript which can be executed by all modern browsers.

As the name implies smart mobile studio is first and foremost a tool for building feature rich mobile applications (iPhone, iPad and Android devices). But due to the architecture of our visual component library (VJL) it is equally suited for desktop browser apps. In fact some of the games that have already been created with smart run flawlessly on the desktop and can be enjoyed in browsers like Google Chrome, Mozilla FireFox and Apple Safari. Browsers that offer hardware accelerated graphics, 2d and 3d transformations, memory allocation and local storage.

Smart Mobile Studio IDE

Smart Mobile Studio IDE

Programming language

All languages have a particular strength or flavour of expression that can be difficult to capture in another language. When doing cross compilation on our scale it’s easy to ruin both sides of the coin if you impose to many restrictions. Smart does the exact opposite. We enrich javascript with features from object pascal. Features that by many have been regarded as extremely hard to achieve in a browser environment. If not impossible all together. So you write ordinary object pascal and from this smart generates robust and optimized javascript code with no dependencies. Here are some of the language features smart brings to the browser:

  • Concurrent data-types
  • Classes
  • Object inheritance
  • Virtual and abstract methods
  • Interfaces
  • Closures
  • External classes
  • Class helpers
  • Record helpers
  • Array helpers
  • Var parameters
  • Class functions
  • Record functions

It is important to understand that none of these features are supported by javascript out of the box. Javascript doesn’t even have a concept of classes, so the above list of features is no small achievement. As a bonus we added that extra little something:

  • Code obfuscation
  • Code optimization
  • Code compacting
  • Range checking
  • Instance checking
  • Condition checking
  • Loop-step checking
  • Verbosity
  • Debug information
  • Smart linking

Smart linking is one of our latest additions. When enabled it means that only classes and procedures you have actually used is included in your compiled program. This is a great feature that will ensure that your apps are lean, compact and highly portable. And in good object pascal tradition – there are no dependencies.

The IDE

Smart mobile studio comes complete with integrated development environment containing everything you need. The IDE draws on many different sources but is primarily influenced by Embarcadero delphi and the C# mono project. Those coming from a delphi background will find that the similarities are more than striking: the keyboard shortcuts are the same, the general layout of the IDE is the same, and the way you work with units (source code files) is pure object pascal.

Those coming from C# will recognize the way projects are stored (one folder per project) and the ability to save a project as a single file (the project file can embed all the other files).

The IDE also have a so called mock form designer, which you use to quickly create a visual layout using drag and drop components. You simply select one of the many components from the component palette – and then click on a forms design surface. Once added you can move, size and edit common properties. You then proceed to write the object pascal code which makes the form come to life.

The component palette

The component palette

The mock designer is capable of rendering the actual HTML, so can see immediately how the form will look like. To achieve this we have embedded a custom Chrome browser directly into the application. You don’t need to install chrome (and it wont cause conflict with chrome if you already have that installed). So with a single click you can see what your layout looks like on a mobile device.

Live rendering of HTML

Live rendering of HTML

Source editor

The sourcecode editor is a vital part of any development studio, and the smart editor have full support for modern features such as syntax highlighting, code insight, pair matching – and a handy look-up function which covers the VJL units. To make it as friendly as possible we have also adopted keyboard shortcuts from delphi.

Editing sourcecode under smart

Editing sourcecode under smart

Technical overview

With this brief introduction to the programming environment, let’s continue with the the application architecture and the central units (sourcecode files) that makes up the heart of the VJL.

Pages

  • About
  • Feature Matrix
  • Forums
  • News
  • Release History
  • Download
  • Showcases
    • The Smart Contest 2013, Round 1 – Graphics
  • Store
  • Documentation
    • Creating your own controls
    • Debugging, exceptions and error handling
    • Differences between Delphi and Smart
    • Get the book
    • Getting started
      • Introduction
      • Local storage, session storage and global storage
      • Application architecture
      • The application object
      • Forms and navigation
      • Message dialogs
      • pmSmart Box Model
      • Themes and styles
    • Layout manager
    • Networking
      • Loading files
      • TW3HttpRequest
      • TW3JSONP
    • Prerequisites
    • Real data, talking to sqLite
    • System requirements
    • Project types
      • Visual project
      • Game project
      • Console project

Archives

  • December 2019
  • December 2018
  • November 2018
  • July 2018
  • June 2018
  • February 2018
  • September 2017
  • April 2017
  • November 2016
  • October 2016
  • September 2016
  • April 2016
  • March 2016
  • January 2016
  • October 2015
  • September 2015
  • July 2015
  • April 2015
  • January 2015
  • December 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • November 2011
  • October 2011
  • September 2011

Categories

  • Announcements (25)
  • Developers log (119)
  • Documentation (26)
  • News (104)
  • News and articles (16)

WordPress

  • Register
  • Log in
  • WordPress

Subscribe

  • Entries (RSS)
  • Comments (RSS)
© Optimale Systemer AS