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

        <files>
            <file clsid="TIDEProjectFileSource">
                <name>ApplicationShutdown</name>
                <created>2012-08-18T11:14:02Z</created>
                <notes/>
                <source>dW5pdCBBcHBsaWNhdGlvblNodXRkb3duOw0KDQppbnRlcmZhY2UNCg0KdXNlcyANCiAgdzNzeXN0
ZW0sIHczY3RybHMsIHczY29tcG9uZW50cywgdzNmb3JtcywgdzNhcHBsaWNhdGlvbiwgZm9ybTE7
DQoNCnR5cGUNCiAgVEFwcGxpY2F0aW9uID0gY2xhc3MoVFczQ3VzdG9tQXBwbGljYXRpb24pDQog
IHByaXZhdGUNCiAgICBwcm9jZWR1cmUgSGFuZGxlQmVmb3JlVW5sb2FkKFNlbmRlcjogVE9iamVj
dCk7DQogICAgcHJvY2VkdXJlIEhhbmRsZVVubG9hZChTZW5kZXI6IFRPYmplY3QpOw0KICBwdWJs
aWMNCiAgICBwcm9jZWR1cmUgQXBwbGljYXRpb25TdGFydGluZzsgb3ZlcnJpZGU7DQogICAgcHJv

would now be saved as

      <file clsid="TIDEProjectFileSource">
        <name>ApplicationShutdown</name>
        <created>2012-08-18T11:14:02.000Z</created>
        <notes></notes>
        <source>
          <![CDATA[unit ApplicationShutdown;

interface

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

type
  TApplication = class(TW3CustomApplication)
  private
    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.

image

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.

image

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