Environs version 0.9.6 has been released which focus on stability, performance, and low memory footprint for long running (>> 24h) apps:

  • Reworked: MediatorListener in Mediator client layer
  • Updated: ChatApp OSX protocol (request text before image)
  • Updated: SetDebug/GetDebug of Environs object
  • Added: KeyEvent handler to osx layer
  • Updated: usage of weak pointer in DeviceBase
  • Fixed: Bug in message notifications (using correct source type)
  • Added: (Fix for mediator responses) Padding to DeviceInfo
  • Fixed: Bug in MediatorDaemon where missing areaMaps lead to failing of registration of new clients
  • Updated: Usage of objID in native layer and platform layer for DeviceInstance
  • Updated: Observer notification handling in platform layer
  • Added: objID to DeviceInstance objects
  • Added: Use of lock callback in crypt layer
  • Updated: MediatorDaemon protocol for short messages
  • Renamed: GetDeviceList to CreateDeviceList (Environs object)
  • Added: async flag to Environs object (platform layer)
  • Added: Using host part of IP for deviceID generation (if its set to 0)
  • Updated: Disposal of FileInstance / MessageInstance of DeviceInstance
  • Fixed: Bug in DeviceList updating where device updates leak temporary device instances

Have a look at the CHANGELOG.md for an exhaustive list of changes.

Environs version has been released which is a small maintenance release:

  • * Fixed: Network interface detection on windows platforms
  • * Updated: ClearMessages / ClearStorage using async flag of DeviceInstance objects

Have a look at the CHANGELOG.md for an exhaustive list of changes.

Environs version 0.9.5 has been released which focus low memory footprint of native and platform layers. The most important changes are:

  • * Updated: Notification loop handling in platform layers
  • * Changed: Removed NewStringUTF from Android layer with externally originating strings. NewStringUTF crashes unrecoverable on some devices and on some not …
  • * Added: SetMessagesSubscription/GetMessagesSubscription to Mediator layer
  • * Added: SetMediatorNotificationSubscription/GetMediatorNotificationSubscription to Mediator layer
  • * Added: Size check in TcpListener/BulkListener of DeviceBase before refactoring the heap located receive buffer
  • * Updated: BitmapFactory.decodeByteArray for Android ChatApp (creates high cpu load which never drops)
  • * Added: ERR_remove_state to cleanup crypto resources on error
  • * Added: ENABLE_DONT_LINGER_SOCKETS to native layer
  • * Updated: Threading in Android layer DeviceList/DeviceInstance updates/notifications
  • * Updated: Handling of spare sockets in MediatorDaemon
  • * Added: PreDispose and PrepareRemovalOfAllDevices to native layer (Cancel all device activities in advance before we actually wait for them to finish one after another)
  • * Updated: iOSX ARC disposal of DeviceInstance
  • * Updated: DeviceInstance update notification control using static flag (DeviceInstance.notifyPropertyChangedDefault)
  • * Updated: CPP API / CLI layer to provide non-UI device lists

Have a look at the CHANGELOG.md for an exhaustive list of changes.

With the release of version 0.9.1, Environs underwent major changes again mainly gets reflected through changed names for windows dlls:

  • The windows .NET layer dropped the C# code and moved to CPP/CLI in order to use the same code as for the CPP API
  • Added SetIsUIAdapter to DeviceList. If true, then all list modifications are dispatched to the UI thread. This option is set to true automatically depending on the initialization of a DeviceList object. Client code may set this option appropriately at any time.
  • Threading in platform layer has been improved to use worker threads and queues for notifications, list updates, etc.
  • Notification handling in platform layer has been improved.
  • Communication with Mediator services has been optimized.
  • Support for Surface 1 tabletop SDK has been dropped.

Overall, there are only three code bases for the thin platform layer in C++, Objective-C and Java. The C++ native core layer can be compiled for all platforms, e.g. Windows native, Windows .Net (C++/Cli), Linux, OSX, or iOS.