Smart Mobile Studio 3.0.0 beta2 is released!
Installers
Portable installation
Smart Mobile Studio can also be downloaded with the SmartUpdate utility. To get the beta, make sure to select the BETA channel. If you already have the Alpha-version installed, you can upgrade it to the Beta -version by running the SmartUpdate.exe with the /changechannel switch.
Changelog since beta1
8.6.2018
RTL:
– Prevent whole page from being dragged down/up in iOS.
– TW3TabControl: New property AllowSwipe, to control if tabs can be changed by swiping sideways.
– Bug fix to TW3CustomControl.SetNativeScrolling.
7.6.2018
NodeJS:
– New Ragnarok message framework.
– Lots of changes and improvements to the websocket server.
– Use the latest node.js engine and get rid of the websocket.io framework.
– SQLite3 import api: Nodejs.SQLite3.pas
– Lots of imporvements to TApplication object.
– Lots of improvements and bug fixes to the WebSocket server
– TW3DirectoryWatch moved to SmartNJ.Device.Storage.Watch.pas
– New logfile using write-stream in append mode: SmartNJ.LogFile.pas
RTL:
– New base-classes for a unified DB Framework: System.DB.pas
– All Base64 and UTF8 encoding implemented in Smart Pascal code instead of external js.
– Added OnChildAdded/Removed events to TW3TagContainer.
– New TIniFile-class: System.IniFile.pas
– TW3TagObj.FreeAfter, which can be used to free components after a delay.
– Src property published in TW3IFrame
– TW3ScrollControl to lock scrolling direction to the detected direction.
– Can be controlled with ScrollController.LockMovementDirection -property.
– Improvements and bug fixes to TW3ListBox
– Added InvalidateVisible for a quick and full repaint.
– Added horizontal scrolling if ItemWidth is wider than the listbox.
– Improvements and bug fixes to TW3EditBox and TW3Memo
– Fix text selection bug in Firefox.
– Add MaxLength-property.
– New function TString.EncodeTags, which converts tags and dangerous characters to safe html symbols.
– EventManager: Prevent extra mouse events if OnClick was generated from touch events.
– TabControl:
– Prevent from calling InitializeForm twize, if the tab was a form.
– Improve tab header resizing.
– ListBox:
– Change TagValue to Variant.
– Fixed mouse handling bugs in the ACE editor.
– Bug fixes to font measurement.
Compiler:
– Implemented ‘static’ linking of Javascript files: {$I ‘file.js’}
18.3.2018
RTL:
– Moved WriteLn and WriteLnF from SmartCL.System to System.Types, so they can be used
in WebWorker -projects.
Demos:
– New WebWorker -demo, which counts Primes, demonstrating how you can use all CPU cores.
17.3.2018
RTL:
– Moved coversion and encoding related functions from System.Types to System.Types.Convert,
which results in a lot smaller js-size in WebWorker projects.
16.3.2018
Bug fix to WebWorkers.
14.3.2018
Bug fix to the IDE and TW3GoogleMaps to make the CenterLat- and CenterLng-coordinates work.
13.3.2018
IDE:
– Added TStrings-support to Object Inspector, which allows editing of:
– TW3ListBox.Items
– TW3ComboBox.Items
– TW3RadioGroup.Items
– TW3TabControl.Tabs
– NodeJS background executions are stopped when project is closed.
– Bug fixes to OmniXML
– Updated Datasnap proxy generator dll to latest
– Fixed problem with Datasnap access interface importer
RTL:
– New control: TW3GoogleMaps
– TW3TabControl can use Forms as Tab contents (Check TabForms -demo)
– Updated node.js headers to version 8.10.0 LTS compatible with stable v9.8.0)
– Isolated node.js EventEmitter in separate unit (NodeJS.Events) as per specification (node.js v6.9.1)
– Implemented System.IOUtils with storage independent TPath class
– Implemented a synchronous node.js filesystem API, TW3NodeSyncFileAPI class in SmartNJ.System
– Implemented abstract directory parser (TW3DirectoryParser in System.IOUtils)
– Implemented standard system file and folder functiction in SmartNJ.System
– Upgraded our virtual, BTree based in-memory filesystem to use TPath
– Changed TW3VirtualFileSystem to store data as TByteArray rather than variant
– Implemented directory parser for Linux, Unix and Windows
– Implemented abstract storage device driver (System.Device.Storage)
– Implemented storage device driver for browsers (SmartCL.Device.Storage)
– Implemented storage device driver for node.js (SmartNJ.Device.Storage)
– Implemented TW3DirectoryWatch class for node.js (SmartNJ.Device.Storage)
– Implemented TApplication object for node.js, exposing traditional properties and process info
– Updated our message api (SmartCL.Messages) to support javascript messagechannel ports
– Added full support for socket.io clients (SmartCL.Net.Socketio)
– Updated TW3Memo control to initialize states for autocorrect, autocapitalize etc.
– Added GetIsRunningInBrowser function to system.types
– TStreamReader and TStreamWriter moved to System.Reader and System.Writer units.
This deprecates the System.StreamReader and System.StreamWriter units.
– Implemented new string parser functions for recognizing intrinsic types (TDataType in System.Types.Convert)
– Updated TW3DatasetFilter to use new parser framework
– Fixed string-to-intrinsic-type (TryStrToInt, TryStrToBoolean etc) functions
– Full re-implementation of our parser framework (System.Text.Parser)
– Partial class TBinaryData, under node has functions for consuming and emitting data as a node buffer
– Fixed bug in our node.js http server (SmartNJ.Server.HTTP) where the response object would not release if an
error occured, causing the server to drop the connection.
– Cleaned up multiple declarations for JBuffer and JNodeBuffer, now isolated in unit nodejs.core
– Changed default creation flags for node.js files to R+W as opposed to R+W+E (only affects Linux)
– Fixed bug where TNJHttpRequest.GetHeaders function returned null
– Removed use of JError under node where applicable, now use TJSErrorObject from system.types unit
– Updated bytecode assembler and virtual machine project to latest
– Removed TFileNameHelper class from SmartCl.Legacy unit, this is now handled by TPath in System.IOUtils
– Updated codec manager (system.codec unit)
– Implemented RC4 encryption codec and binding (System.Codec.RC4)
– Updated Base64.js to latest revision (libraries/base64.js) which is added by the linker on demand
– Full re-implementation of base64 codec (System.Codec.base64 unit)
– Changed TString.ToBase64() function to use new codec
– TW3GroupBox header fixed, now uses TW3Label rather than mapping the unreliable “legend” tag
– Improved AutoCreateForm routine, this now performs better checking before construction
– TW3Grid control now uses TW3ScrollControl as a container, adding momentum scrolling and better touch handling
– Fixed important problem with TString helper class, function missing @ for result caused exception
Demos:
– Full reimplementation of our websocket server, replacing websocket.io with the standard ws package
– Updated all node.js demos to use our high-level classes
– Updated WebSQL demo to use correct names
– Updated “Binary data” demo to use TBinaryData class (System.Memory.Buffer unit)
– Fishfacts demo updated to use new functionality
– Fixed problems with advanced demos (biotopia in particular) to work with latest RTL