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

Monthly Archives: June 2018

Smart Mobile Studio 3.0.0 beta2 released

Posted on 08.06.2018 by Jarto Tarpio Posted in News

Smart Mobile Studio 3.0.0 beta2 is released!

Installers

  • Smart Mobile Studio installer
  • Free command-line compiler

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

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