Q:

Branding in Xamarin Forms

In my xamarin forms application, I want to store all colors and fonts information that can be accessed through out the application.  One of the most obvious ways is adding them as ResourceDictionary in app.xaml. 
App.xaml
 <ResourceDictionary>
            <Color x:Key="Primary">#78909c</Color>
            <Color x:Key="PrimaryDark">#4b636e</Color>

            <Style TargetType="NavigationPage">
                <Setter Property="BarTextColor" Value="{StaticResource NavigationText}" /> 

        </ResourceDictionary> 

I have seen these kind of implementations in sample applications but I was wondering for enterprise level applications are they any efficient or better ways to do it? 
If so, can anyone advice a better approach and some example or source with the reason behind it? 
MODERATORS
I know this question is more about asking a better approach and has no right and wrong answers but I want to find an efficient way or enterprise level implementation for this.  So please don't mark it to close. 

A:

It really depends on context and what you need to achieve. 
One reason why you may not want to have colors and fonts in your main app.xaml file is readability and maintainability.  This is quite subjective however. 
A second reason why you may want to split out your colors and fonts is if you need to conditionally apply them or they belong to a Xamarin. Forms theme. 
Finally note that if you do require multiple resource dictionaries, you may need to look at the Merged Dictionaries feature, which is available from Xamarin. Forms 2.5 onwards (I previously had to roll my own!).  This blog post by the author of the official implementation also has more information.