- [Fabulous.XamarinForms] Fixed an issue where the application could crash when LiveUpdate tries to refresh the app with an invalid view (fabulous-dev#594)
- [Fabulous.XamarinForms] Fixed an issue where an InvalidCastException could occur (fabulous-dev#597)
- [Fabulous.XamarinForms] Fixed an issue where attached properties could be not applied correctly (fabulous-dev#592)
- [Fabulous.XamarinForms] [Extensions] Added an extension for FFImageLoading (fabulous-dev#581)
- [Fabulous.XamarinForms] Fixed an issue where an InvalidCastException could occur (fabulous-dev#589)
BREAKING CHANGES: This release introduces many small breaking changes to provide better type-safety and reducing update calls when using events. Please read the migration guide to know how to update to this new version (https://fsprojects.github.io/Fabulous/Fabulous.XamarinForms/migration-guide-to-0.50.html)
- [Fabulous.XamarinForms] Changed the View API to provide better type-safety for properties (see migration guide for more information)
- [Fabulous.XamarinForms] Changed the behavior of event handlers. Events will no longer be triggered by Fabulous.XamarinForms when it's incrementally updating the properties (e.g. changing Text triggering TextChanged). This was changed to prevent unnecessary calls to the update function and in some cases an infinite loop on Android
- [Fabulous.CodeGen] Introduced Fabulous.CodeGen, a new library, to help build your own library for your favorite framework using the MVU architecture with Fabulous. More documentation to come.
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] Fix issue for NavigationPage reuse
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] TableView now uses TableRoot and TableSections
- [Fabulous.XamarinForms] Property methods now have a similar name than before.
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] Fixed bug preventing use of events on ListView
- [Fabulous.CodeGen] Added helpers for Optimizers
- [Fabulous.CodeGen] Added missing converters for Double.NaN and Single.NaN
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] ListView now only accepts Cell types as items
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] Fixed an issue where an IndexOutOfRangeException could occur
- [Fabulous.XamarinForms] Made
View
a real static class (can no longer be instantiated) - [Fabulous.XamarinForms] Removed some read-only properties
- [Fabulous.XamarinForms] Fixed member ordering for ListView and ListViewGrouped
- [Fabulous.CodeGen] Changed the way properties are resolved, to rely less on BindableProperty fields.
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] Fixed an issue where events could be subscribed to several times in a row.
- [Fabulous.XamarinForms] Fixed naming/ordering issues in some exposed properties
This is an alpha release of an ongoing work with multiple breaking changes that might not be in the final version.
Please only use this version with a backup of your solution.
- [Fabulous.XamarinForms] Fabulous is no longer triggering property-related events when internally updating the value. This fixes the really annoying infinite looping issue on Android once and for all!
- [Fabulous.XamarinForms] Properties asking for an
obj
value are now requesting a proper type - [Fabulous.XamarinForms] Missing controls and properties have been added. Some existing properties have changed names.
- [Fabulous.CodeGen] Created this new library from the Generator that was private to Fabulous. This library allows creating your own Generator for your framework. It has been created with extensibility and overridability in mind.
- [Fabulous.XamarinForms] [Generator] A new .NET console app (will be a .NET CLI tool in the future) that uses the new Fabulous.CodeGen lib to replace the existing Generator of Fabulous
- [Fabulous.XamarinForms] Recompiled to resolve the compile errors preventing to upgrade to Xamarin.Forms 4.3, due to breaking changes. Proper support for new stuff in Xamarin.Forms 4.3 will be added later. (fabulous-dev#574)
- [Fabulous.XamarinForms] Added support for Xamarin.Forms 4.2 (fabulous-dev#559)
- [Fabulous.XamarinForms] Added support for Xamarin.Forms.Effect (fabulous-dev#544)
- [Fabulous.XamarinForms] [Extensions] Added missing properties coming from Xamarin.Forms.View (fabulous-dev#562)
- [Fabulous.XamarinForms] [Templates] Fixed opened namespaces and docs links in templates (fabulous-dev#547 + fabulous-dev#548 + fabulous-dev#553)
- [All] Added XML documentations inside NuGet packages (fabulous-dev#528)
- [Fabulous.XamarinForms] Added support for Xamarin.Forms 4.1 - You can now use the new CheckBox control :) (fabulous-dev#511)
- [Fabulous.LiveUpdate] Fixed an issue introduced in 0.40 preventing LiveUpdate to run correctly (fabulous-dev#513)
- [Fabulous.XamarinForms] Fixed an issue preventing reuse of existing views (fabulous-dev#507)
- [Fabulous.XamarinForms] [Extensions] Fixed a missing dependencies in the NuGet packages
- [Fabulous.XamarinForms] Fixed a missing dependency on Xamarin.Forms in the NuGet package Fabulous.XamarinForms
- [Fabulous.XamarinForms] [Extensions] Fixed an invalid dependency on Fabulous.XamarinForms.Controls instead of Fabulous.XamarinForms (fabulous-dev#503)
BREAKING CHANGES: Fabulous has been restructured and became Fabulous, Fabulous StaticView and Fabulous for Xamarin.Forms! If you're making apps with Fabulous, you will need to use Fabulous for Xamarin.Forms now. Please read the migration guide to know how to update from Fabulous v0.36.0 to Fabulous for Xamarin.Forms v0.40.0 (https://fsprojects.github.io/Fabulous/Fabulous.XamarinForms/migration-guide-to-fabulous-xamarinforms.html) For more information on this restructuring, please read fabulous-dev#481
- [Fabulous.XamarinForms] Reordered Picker properties to put in front the most commonly used ones (fabulous-dev#466)
- [Fabulous.XamarinForms] Fixed ContentPage.UseSafeArea not working as expected (fabulous-dev#500)
- [Fabulous.XamarinForms] [Templates] The templates have been cleaned and are now more consistent. Also the targets/props files used now match real files (fabulous-dev#481, fabulous-dev#494)
- [DynamicViews] Various fixes to improve support of Shell (fabulous-dev#428, fabulous-dev#430, fabulous-dev#447, fabulous-dev#450)
- [DynamicViews] Fixes to FormattedString and Span (fabulous-dev#431)
- [DynamicViews] Added missing Font properties for Picker (fabulous-dev#444)
- [DynamicViews] Added various missing properties and removed meaningless events (for Fabulous) (fabulous-dev#461)
- [Templates] Updated Android template to Android Pie 9.0 (fabulous-dev#453)
- [Templates] Changed the macOS template to automatically close by default after the last window is closed (fabulous-dev#460)
- [DynamicViews] Added support for Xamarin.Forms 4.0 (fabulous-dev#416)
- [Fabulous.Core] Added helpers to support the CmdMsg pattern (fabulous-dev#418)
- [Templates] Updated to Xamarin.Essentials 1.0.0 (fabulous-dev#420)
- [DynamicViews] Added support for Xamarin.Forms 3.6. Partial support for CollectionView, CarouselView and Shell (fabulous-dev#350 and fabulous-dev#406)
- [DynamicViews] Added support for ViewElement in Header and Footer of ListView/ListViewGrouped (fabulous-dev#408)
- [DynamicViews] Removed useless CommandParameter properties (fabulous-dev#386)
- [DynamicViews] Fixed an issue where an exception was raised when Fabulous tried to reuse a control with a different AutomationId (fabulous-dev#404)
- [DynamicViews] Fixed debounce not being thread-safe (fabulous-dev#394)
- [DynamicViews] Fixed ImageButton.Command not working as expected (fabulous-dev#389)
- [Extensions] Downgraded to Oxyplot 1.0.0 to avoid needing a preview package from a non official nuget feed (fabulous-dev#387)
- [DynamicViews] Fixed an issue in TableView where the items weren't recycled (fabulous-dev#364)
- [LiveUpdate] Fixed a bug where any changes throw a NullReferenceException (fabulous-dev#355)
- [DynamicViews] Added SizeChangedEventArgs to give access to the new size when SizeChanged is raised (fabulous-dev#336)
- [DynamicViews] Added an extension point to give a new default implementation for a control (fabulous-dev#342)
- [LiveUpdate] Updated Interpreter to fix some bugs. Plus changed the watcher with a new and easier command line syntax (fabulous-dev#338)
- [Fabulous.Core] Fixed a bug (possibly from Mono) that made Fabulous act weird on some Android devices (fabulous-dev#347)
- [Templates] Fixed the consistency of the namespace between the files in the WPF template (fabulous-dev#349)
- [Fabulous.Core] Added better type annotation to make the functions init and update easier to read (fabulous-dev#313)
- [Template] Added new UWP template (fabulous-dev#324)
- [Fabulous.Core] Added new helpers to extract data from ViewElement. Helpful for unit testing the views (fabulous-dev#325)
- [Xamarin.Forms controls] Added the property ScrollTo and the event Scrolled for ScrollView (fabulous-dev#332)
- [Xamarin.Forms controls] Added the events ChildrenReordered, MeasureInvalidated, Focused, SizeChanged and Unfocused for VisualElement (fabulous-dev#327)
- [Fabulous.Core] Changed the modules behind View; The builder functions are no longer hidden from IntelliSense (fabulous-dev#325)
- [Xamarin.Forms controls] Fixed the update of TableSection.Title (fabulous-dev#330)
- [Fabulous.Core] Added XML docs for Fabulous helpers (fabulous-dev#284)
- [Xamarin.Forms controls] Fixed the TitleView attached property on Page (fabulous-dev#305)
- [Xamarin.Forms controls] Fixed the Accelerator property on MenuItem (fabulous-dev#301)
- [Template] Fixed a typo in assembly name in macOS project (fabulous-dev#300)
- [Template] Fixed an issue where NuGet restore would fail due to a space in path on Windows (fabulous-dev#290)
- [LiveUpdate] Fixed: Using ViewRef produces a "No member found for key Fabulous.DynamicViews.ViewRef" error (fabulous-dev#286)
- [LiveUpdate] Fixed: Using a list a "No member found for key Microsoft.FSharp.Collections.FSharpList" error (fabulous-dev#286)
- [LiveUpdate] Fixed: Calling a function that takes unit from a module in a separate dll produces a "No member found for key" error (fabulous-dev#286)
- Added support for Xamarin.Forms 3.4 (fabulous-dev#257)
- Added new GTK template (fabulous-dev#268)
- Changed behavior of SKCanvasView "invalidate" (always triggers an invalidation while the property is true) (fabulous-dev#262)
- Updated WPF template to target .NET Framework 4.7.2 by default (fabulous-dev#267)
- Updated NuGet inside the template to v4.9.2 (fabulous-dev#271)
- Fixed MacOS template by adding some missing references (fabulous-dev#276)
BREAKING CHANGES:
- Replaced Minimum and Maximum properties of Slider/Stepper by a single MinimumMaximum property (tuple) (fabulous-dev#246)
- Replaced the "fscd" daemon (embedded in the Fabulous.LiveUpdate package) by a new dotnet CLI tool "fabulous-cli". See https://fsprojects.github.io/Fabulous/tools.html for more informations. (fabulous-dev#247)
- Added a dispatch method accessible in the app projects (fabulous-dev#240)
- Added a debounche helper function (fabulous-dev#237)
- Fixed a cast issue in ViewRef<T>.TryValue (fabulous-dev#235)
- Added TextChanged event to EntryCell (fabulous-dev#227)
- Added Cmd.ofMsgOption and Cmd.ofAsyncMsgOption (fabulous-dev#224)
- Fixed Microsoft.CSharp warnings when building a project created with the template (fabulous-dev#216)
- Fixed a bug in ListViewGrouped that prevented groups to be updated (fabulous-dev#229)
- Fixed description of the NuGet packages (fabulous-dev#220)
- Added "CurrentPage" and "CurrentPageChanged" to TabbedPage and CarouselPage (fabulous-dev#215)
- Added support for byte array with Image.Source (fabulous-dev#217)
- Improved exception protection in LiveUpdate (fabulous-dev#214)
- Fixed an issue in LiveUpdate preventing the use of some kinds of discriminated unions (fabulous-dev#213)
- Added StyleClass property (fabulous-dev#209)
- Added support for SourceLink (https://github.com/dotnet/sourcelink)
- Fixed wrong type for the new ViewRef
- Fixed missing incremental update for ListView rows
- Added support for Focus and Animations (access to the underlying control with "created" event & ViewRef)
- Added "invalidate" flag to SkiaSharp extension
- Added WPF to template
- Fixed bad dependency for Fabulous.Maps package (fabulous-dev#188)
- Fixed missing SelectionMode property on ListViewGrouped
- Fixed fabulous-dev#136
- Updated to Xamarin.Forms 3.1
- Changed LiveUpdate to only display corresponding indications based on the current platform (Android, iOS, other)
- Rename project Elmish.XamarinForms --> Fabulous
- Rename namespace Elmish.XamarinForms --> Fabulous.Core
- Rename dll Elmish.XamarinForms.dll --> Fabulous.Core.dll
- Rename package Elmish.XamarinForms --> Fabulous.Core
- Added TextChanged on SearchBar
- Fixed module name for SkiaSharp extension
- Added LiveUpdate to the iOS template by default
- Added AutomationId property on all controls
- Added LineBreakMode property on Label
- Added ShowJumpList property on ListViewGrouped
- Changed ListViewGrouped's Items property to accept a group name
- Fixed namespace for Extensions
- Fixed NavigationPage recycling
- Added support for ImageSource on Image and ImageCell controls
- Fixed ListViewGrouped
- Fixed LiveUpdate for CalculatorApp (AddressOf, out args, pattern matching)
- Fixed templates so you can update Xamarin Forms
- Fixed LiveUpdate for iOS
- Moved to Newtonsoft.Json instead of FsPickler
- Add 'let rec' to code accepted by LiveUpdate
- Add local mutables to code accepted by LiveUpdate
- Rename Xaml.* --> View.*
- Fix compilation of template on OSX
- Fix packaging problem with fscd tools
- Fix errors raised by interpreter
- Fix sample look and feel
- Fix repeated live updates
- Add experimental LiveUpdate
- Added oxplot extension
- Fix dependencies in nuget packages
- Missed a renaming in the extension API
- Remove unnecesary boxing in extension API
- Improved documentation
- Adjust extension API to be more type safe
- Add Fabulous.SkiaSharp
- Adjust extension API to require use of attribute keys
- Add Fabulous.Maps
- Require extensions to give the correct size for attribute count, and don't reallocate the attribute array
- Fix template
- Use an attribute builder
- Adjust template to deploy to Android by default for Any CPU
- Fix template
- Fix template
- Rename
XamlElement
-->ViewElement
- Rejig
XamlElement
to store an immutable array of attributes rather than aMap
- Using
open Fabulous.StaticViews
is now necessary to use static Xaml bindings and theNav.*
type - Obsolete
Program.withDynamicView
andProgram.withStaticView
in favour ofProgram.runWithDynamicView
andProgram.runWithStaticView
- Remove
StaticXaml/MasterDetailApp
sample since it's not a great sample anyway - Add template
- Base dependency is now Xamarin.Forms 3.0
- Add
Resources
property toVisualElement
- Add
Styles
property toVisualElement
- Add
StyleSheets
property toVisualElement
- Toolbar, ToolbarItem support
- MenuItem support
- Support Page properties: BackgroundImage, Icon, IsBusy, ToolbarItems
- Support Page events: Appearing, Disappearing, LayoutChanged
- Add docs on modal pages
- Support FormattedText parameter to Label
- Simplify generated code
- Code generator now in F#
- Remove
x |> margin 3.0
pipelined versions of properties and instead people always need to use membersx.Margin(3.0)
app.Model
-->app.CurrentModel
andapp.SetModel(model)
- Sequences not lists for model inputs
itemAppearing
anditemDisappearing
now use integer indexes- Old view elements are now reusable after application resumes
- Global
dispatch
function available to reduce number of closures
- Sync base version of XF to that listed in paket.lock
- Add
fix
,fixf
- Add
canExecute
to Button etc. - Show how to persist model using JSON
- Change
run
to return a runner object (used to reset the model on restore) - Add docs on validation
- Remove
Program.runDebug
in favour ofProgram.withDebug
- Updates to README
- Add
dependsOn
- Add
RelativeLayout
andAbsoluteLayout
- Use struct options internally
- Add
TableView
support - Fix repeated update of image sources
- Simplify size requests
- Add
ListView
andListViewGrouped
support - Use and recycle
ObservableCollection
forListView
entries - Updates for accurate
ListViw
selection - Updates for more accurate view memoization
- Include the code generator
- Lots of updates to dynamic views
- Correct version in assembly
- Correct mistake in nuget pacakge
- Add multi-page and navigation
- Add dynamic views (NOTE: not usable since they flicker, see README.md)
-
Adapt to latest Xamarin.Forms and match latest Elmish.WPF
-
Elmish all the Xamarin.Forms!