Comment être notifié de la hausse et de la baisse et du prix des carburants de vos stations services proches de chez vous …
L’histoire
Le projet consiste à créer une interface (UI) et une expérience utilisateur (UX) augmentée lors de la recherche de stations service proposant les prix les moins cher.
Plus besoin de se connecter à l’application et de vérifier les tarifs des stations environnantes. Soyez averti automatiquement lors de la baisse et/ ou de l’augmentation de prix par le biais de notifications de vos stations préférées et des stations environnantes disponibles sur votre trajet (en fonctions des prix pratiqués dans vos stations de références).
Rejoignez les stations via Apple Plan, Google Maps et Waze, Apple Car et Android Auto.
Certaines fonctionnalités nécessites un abonnement payant que j’offre à tout souscripteurs.
Risques et défis
Le défi majeur est d’être prêt pour 2024, année ou les prix vont exploser à la pompe. Le 2ème défi est de développer l’algorithme côté serveur qui permet de notifier les baisses et les hausses de tarifs en fonction des stations de préférence des utilisateurs.
Engagements pour l’environnement
Utilisation d’un backend serveur dans le cloud pour limiter les consommations électriques énergivores.
Xamarin.Forms Shell reduces the complexity of mobile application development by providing the fundamental features that most mobile applications require.
Customization
This post will offer you a way for customize the TabBar of the Shell on iOS and Android platforms by adding a centered button.
To achieve to do it like above, first of all, open Visual Studio 2019 and create a “Shell Forms App”
Add the Nuget Package
Click right on the solution and select “Manage Nuget Packages”. In the search box enter “ExtendedShellTabBar” and add it to the whole project in the solution.
The Centered Icon
If like me you have a licence of “MFractor”, add an icon in your project like below. If not, add your icon manually in drawables ressources for Android and XCAssets for iOS.
The XAML Shell
Update your “AppShell.xaml” file like below :
<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:ExtendedShellTabBarSample.Views"
xmlns:tabbar="clr-namespace:ExtendedShellTabBar.VisualElements;assembly=ExtendedShellTabBar"
Title="ExtendedShellTabBarSample"
x:Class="ExtendedShellTabBarSample.AppShell">
<!--
The overall app visual hierarchy is defined here, along with navigation.
https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/shell/
-->
<Shell.Resources>
<ResourceDictionary>
<Style x:Key="BaseStyle" TargetType="Element">
<Setter Property="Shell.BackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.ForegroundColor" Value="White" />
<Setter Property="Shell.TitleColor" Value="White" />
<Setter Property="Shell.DisabledColor" Value="#B4FFFFFF" />
<Setter Property="Shell.UnselectedColor" Value="#95FFFFFF" />
<Setter Property="Shell.TabBarBackgroundColor" Value="{StaticResource Primary}" />
<Setter Property="Shell.TabBarForegroundColor" Value="White"/>
<Setter Property="Shell.TabBarUnselectedColor" Value="#95FFFFFF"/>
<Setter Property="Shell.TabBarTitleColor" Value="White"/>
</Style>
<Style TargetType="TabBar" BasedOn="{StaticResource BaseStyle}" />
<Style TargetType="FlyoutItem" BasedOn="{StaticResource BaseStyle}" />
</ResourceDictionary>
</Shell.Resources>
<tabbar:ExtendedShellTabBar>
<tabbar:ExtendedShellTabBar.CenteredTab>
<tabbar:ExtendedShellCenteredTab
Command="{Binding ClickCommand}"
BorderColor="White"
BorderThickness="2"
CornerRadius="30"
Icon="centeredadd.png"
Width="60"
Height="60" />
</tabbar:ExtendedShellTabBar.CenteredTab>
<ShellContent Title="About" Icon="icon_about.png" Route="AboutPage" ContentTemplate="{DataTemplate local:AboutPage}" />
<ShellContent Title="Browse" Icon="icon_feed.png" ContentTemplate="{DataTemplate local:ItemsPage}" />
</tabbar:ExtendedShellTabBar>
<!--
If you would like to navigate to this content you can do so by calling
await Shell.Current.GoToAsync("//LoginPage");
-->
<!--<TabBar>
<ShellContent Route="LoginPage" ContentTemplate="{DataTemplate local:LoginPage}" />
</TabBar>-->
</Shell>
The View Model
Add a AppShellViewModel.cs file to handle the “ClickCommand” :
public class AppShellViewModel
{
public ICommand ClickCommand { get; set; }
public AppShellViewModel()
{
ClickCommand = new Command(async () =>
{
await Application.Current.MainPage.DisplayAlert("Click !", "You click the centered button inside the TabBar", "OK");
});
}
}
And don’t forget to declare the ViewModel in the code behind , the file “AppShell.xaml.cs” :
public partial class AppShell : Xamarin.Forms.Shell
{
public AppShell()
{
InitializeComponent();
this.BindingContext = new AppShellViewModel();
Routing.RegisterRoute(nameof(ItemDetailPage), typeof(ItemDetailPage));
Routing.RegisterRoute(nameof(NewItemPage), typeof(NewItemPage));
}
}