Hi There,
I am happy to announce the beta release of SVOTI IDCL.
SVOTI pronounced "Swotty" is the Interaction Definition and Control Language (IDCL) extension for XAML.
SVOTI IDCL extends Xamarin.Forms XAML capabilities to enable the implementation of Interaction logic, Validation and lots more purely in XAML, without coding.
You can find all the technical info, on-line help and the Beta download here: www.jus-c.com
Seeing is believing they say so please see videos of the Samples UI and the MVVM example to get a feel for the power of IDCL and XAML.
Please bear in mind all the UI logic/functionality you see in the videos is defined purely in XAML, no code.
Here is a simple example of the IDCL XAML Mark-Up:
<ScrollView>
<StackLayout Margin="5">
<s:ValidationGroup x:Name="vGroup"
CurrentPage="{x:Reference TTSExample}"
IsVisible="False">
<s:ValidationGroup.OnLoad>
<s:Rule Purpose="One Time Page Load Actions" CheckType="NoCheck">
<s:Rule.OnTrue>
<sa:LoadEmbeddedText Purpose="Load DisplayInfo with Initial text."
TargetFieldName="DisplayInfo"
TextFileName="TextData.JUSC.XF.SamplesUI.TextToSpeechExample.txt" />
</s:Rule.OnTrue>
</s:Rule>
<s:Rule Purpose="Speech Muted handling" CheckType="ValidatorCheck">
<s:Rule.CheckValidators>
<sv:SpeechMutedValidator Purpose="Check if Muted" />
</s:Rule.CheckValidators>
<s:Rule.OnTrue>
<sa:SetVisible Purpose="Warn User" TargetFieldName="SpeechMutedWarning" />
</s:Rule.OnTrue>
</s:Rule>
</s:ValidationGroup.OnLoad>
</s:ValidationGroup>
<s:Label FieldName="DisplayInfo"
ValidationGroup="{x:Reference vGroup}"
HorizontalOptions="Start"
Style="{DynamicResource InfoTextStyle}"
Text=""
VerticalOptions="Start" />
<Label Text="Phrase to be read out:" />
<s:Entry FieldName="Words"
ValidationGroup="{x:Reference vGroup}"
Placeholder="Phrase"
PlaceholderColor="#B3E5FC"
HorizontalOptions="FillAndExpand"
Text="" />
<s:Button FieldName="cmdSayIt"
ValidationGroup="{x:Reference vGroup}"
HorizontalOptions="FillAndExpand"
Style="{StaticResource PrevNextButtonStyle}"
Text="Read It Out Loud">
<s:Button.Rules>
<s:Rule Purpose="Say words if any, otherwise complain" CheckType="ValidatorCheck">
<s:Rule.CheckValidators>
<sv:IsEmptyValidator Purpose="Are Words empty?" TargetFieldName="Words" />
</s:Rule.CheckValidators>
<s:Rule.OnTrue>
<sa:SayText Purpose="Complain to user"
Text="Do What? You want me to say nothing? Not Happening, No Way!" />
</s:Rule.OnTrue>
<s:Rule.OnFalse>
<sa:SayText Purpose="Say the Words" TargetFieldName="Words" />
</s:Rule.OnFalse>
</s:Rule>
</s:Button.Rules>
</s:Button>
<s:Label FieldName="SpeechMutedWarning"
ValidationGroup="{x:Reference vGroup}"
IsVisible="False"
Style="{StaticResource ErrorTextStyle}"
Text="Warning - Speech is currently Muted." />
</StackLayout>
</ScrollView>
Please try it out, your feedback would be much appreciated.
Thanks
Tim
PS. SVOTI is commercial software but there will be a big discount for small businesses and sole developers.