/FutureFlag

Simple cross platform feature toggles build for various flavours of .net and Xamarin

Primary LanguageC#Microsoft Public LicenseMS-PL

FutureFlag

Simple cross platform feature flags build for various flavours of .net

FutureFlag.Forms

.netstandard feature flags and also Xamarin Forms specific extensions

Releases

Release Pre-Release
Build status status
FutureFlag nuget nuget-pre
FutureFlag.Forms nuget nuget-pre

Feature Flags

  • All - A composite flag that enables when all children are enabled
  • Any - A composite flag that enables when any single child is enabled
  • AlwaysOff - IsEnabled = false
  • AlwaysOn - IsEnabled = true
  • JsonRest - IsEnabled when a JSON response comes back {isEnabled : true|false}
  • OnOrAfter - IsEnabled on or after a specific date
  • OnOrBefore - IsEnabled on or before a specific date
  • BetweenDates - IsEnabled between two dates
  • Random - IsEnabled is totally random
  • Version - IsEnabled on or after a specific version
  • Simple - IsEnabled is specified by the developer
  • Cached - Caches the IsEnabled result of a given IFutureFlag for a given amount of time.

note: you can create any custom Future Flag you like by using the IFutureFlag interface

Xamarin Forms

declare your Future Flag via xaml

<Page xmlns:futureFlag="http://github.com/chaseflorell/futureflag">
  <Page.Resources>
    <ResourceDictionary>
      <featureFlag:VersionFutureFlag x:Key="FutureVersion"
                                     Version="1.3"/>
    </ResourceDictionary>
  </Page.Resources>
</Page>

Use the attached property to attach a future flag to a VisualElement

<Label Text="I'm only visible on or after version 1.3" 
       featureFlag:VisualElement.FutureFlag="{StaticResource FutureVersion}"/>

Accolades

Attribution to Jason Roberts and his work on FeatureToggle, as it's what got me started.