July 04, 2013

Smart 1.1.2

Next version of Smart Mobile Studio was released as a beta yesterday. It should be pretty much close to the release version (except for the bugs that will be found by first users) so you can use it in your normal development workflow.

Still, this is a beta and it has problems that we didn’t find in internal testing. Make sure that you read the Installation section of the release document (linked above) before installing it as the installer will kill your snippets file. (Stupid oversight for which I apologize.)

The official document contains a pretty long list of changes so go there if you want to know everyhing. Here I will just sum up the features that I find most important.

Smart is now much more version control friendly. Source files inside the .opp project are not stored anymore in the BASE64 encoding but use much more diff-friendly CDATA format. For example, a file that was previously stored as

            <file clsid="TIDEProjectFileSource">

would now be saved as

      <file clsid="TIDEProjectFileSource">
          <![CDATA[unit ApplicationShutdown;


  w3system, w3ctrls, w3components, w3forms, w3application, form1;

  TApplication = class(TW3CustomApplication)
    procedure HandleBeforeUnload(Sender: TObject);
    procedure HandleUnload(Sender: TObject);

Handling of ‘external’ (not stored in the .opp) units and forms was also much improved and all newly created units and forms can now be external by default (there’s a Preference setting for that).

Compiler was improved again (go Eric!). I especially like the sort and map support for dynamic arrays and improvements in the for in support. Sets will also come handy, I’m sure.

Some long standing bugs in the RTL (like the inability of TW3Label to be displayed in a disabled state) have finally been fixed. Otherwise, RTL didn’t change a lot. Oh, there’s a new Android Holo theme (CSS) which give the application much more ‘androidish’ look. The old Android theme (which was just renamed iOS theme) is also installed but you can safely ignore it.

I am a great fan of the new IDE behaviour where editing state (open tabs, bookmarks) is stored in the project file and is restored on load. Editing and code navigation has also been improved – see the changelog for more details.

The last great addition, built-in diff viewer, was shamelessly copied from the Andreas Hausladen’s great DDevExtensions. (Well, the idea was copied. Implementation is our own.) When a file that is open in Smart Mobile Studio is modified externally, a ‘change’ dialog will pop up.


You can select a file (or even a form) and click Compare to run a diff engine based on the TDiff component, written by Angus Johnson.


You can also configure an external diff/merge tool such as TortoiseMerge or WinMerge.

All in all, 1.1.2 will be a very strong release which should ease waiting on the next big release, 1.2 (due in Autumn).

No comments:

Post a comment