Please remember to
after upgrading Fuse.
- Native date and time pickers on Android and iOS
- All new Fuse dashboard
- Images that have associated Exif data will automatically be rotated
- Added Restart to the Viewport menu to reset all state in your app
- Fixed several issues with the installers for Android tools and Sublime plugin
- Introduced Fuse.Controls.DatePicker class, which wraps native date pickers on Android and iOS. See the
DatePicker class documentation for more details.
- Introduced Fuse.Controls.TimePicker class, which wraps native time pickers on Android and iOS. See the
TimePicker class documentation for more details.
- Images that have associated Exif data with the orientation tag will automatically be rotated so that they are displayed in the correct orientation
Pro feature: CameraView
- The CameraView API has been replaced by a new and revamped version
- Promised based JS API that can fail gracefully. Makes for a much better experience both in production and while coding in preview
<CameraView.CapturePhotoImageSource /> and
<CameraView.PhotoLoaded /> . An
ImageSource that can be used to display instant preview when you capture a photo. The
CameraView.PhotoLoaded trigger will fire whenever a preview of a captured photo is ready.
- This is a breaking change. The previous implementation will not be supported. For the time being you can find the previous implementation in
Fuse.Deprecated.CameraView but we strongly advise you to migrate to the new implementation.
- Please check the updated documentation and the example app for reference.
- Known issue: If you use
CameraView.PhotoCaptureImageSource on iPhone 6 and older you will only be able to capture one photo - additional attempts will fail with an error. This will be fixed in the next release.
- Fixed issue on android where placeholder text on a
<TextInput IsPassword="true" /> would be drawn as password dots
- Invoke now takes an
Action<Scripting.Context>. This is the first step in refactoring our scripting layer to make sure code does not evaluate JS on the wrong thread
Observable property has been removed from Context & IThreadWorker
- Fixed an issue about certain event not triggering a proper update and redraw on desktop preview/build
LinearRangeBehavior now correctly responds to
UserStep values, providing quantized input
RangeControl.RelativeValue to properly update when bound in UX
Minimum to be less than
RangeControl making it easier to do left-to-right
- Fixed a defect in position calculations in
LinearRangeBehavior. It now uses the immediate Element parent for bounds calculation as opposed to the
UserStep support to Android and iOS native Slider
- Exported the methods goBack, goForward, reload and stop for use in FuseJS
- Fixed regression in 1.3 that broke WebView when using URISchemeHandler
- Fixed a NullReferenceError that could happen while using ScrollViewPager in preview
- Fixed bug on Android where setting
TextWrapping="NoWrap" would force the
TextView to be single line. New behavior is to instead allow the view to scroll horizontally instead of automatically wrapping the text.
- Added native support, meaning it can be used by images inside a
- Fixed bug in Video where playback actions, like
Play, used before the video was initialized would end up getting swallowed.
- Fixed a bug where UX expressions that produce two component floats did not expand to four compoent floats the same same way as literals did.
Fuse.Reactive framework changes (Uno-level)
- These are breaking changes, but very unlikely to affect your app:
ExpressionBinding class constructors no longer take a
This expression classes has been removed. The UX compiler will now compile these as
Constant expressions that contain the actual objects instead.
IContext interface no longer contains the
Fuse.IRaw interface removed (now internal to the
Fuse.Reactive.ListMirror class is no longer public. This was never intended to be public and has no practical public application.
- Added detailed docs for many of the interfaces in the
Fuse.Reactive.IWriteable interface has changed (breaking!). The method signature is now
bool TrySetExclusive(object) instead of
void SetExclusive(object). Unlikely to affect your code.
- Fixed a regression causing iOS apps not to be accepted to the Store apparently due to use of push-notifications even though they are not used in the project.*
IObservableArray no longer push their initial value on
- Fixed an issue where some users had to log in again every time Fuse started
- When starting Fuse 1.4 for the time, you will be logged out even if you were logged in with a previous version
- New and improved dashboard
- Fixed an issue on macOS where we kept polling for the installation status of Sublime and the Sublime plugin even after closing the Setup Guide window. This would cause a Fuse icon to appear and disappear periodically in the Dock, stealing focus from other applications
- Fixed an issue that made Fuse crash on macOS when clicking a menu item, when running various software with access to control the computer (like Moom, EVE and possibly others).
- Fixed console output so errors are written to stderr and other output to stdout
- Fixed so the logger names in
fuse.log correspond more closely to the source of the message
- Added new command
fuse unoconfig which prints the current Uno configuration.
fuse preview now also accepts a flag
--print-unoconfig which will print the current Uno configuration before starting preview
- Removed Ant from
fuse install android, as it is no longer used
- Added Restart to the Viewport menu
- Fixed an issue where
fuse install android would fail on macOS with case sensitive file systems
- The following unused entities were removed from
- The following unused entities were removed from
- Added support for customizing
settings.gradle by using
[Require Gradle.Settings="include ':something'"].
- We now check that finally clauses don't contain illegal control flow.
return are not allowed in finally clauses.