This solution is gonna be used by truck drivers that will receive notifications when enter or leaving a certain geofence area.
You are not asked to make a fully release-ready solution, but a fully functionally application that we can build on top of.
The solution must include:
Using Xamarin Forms implementation for Android and iPhone with the use of Shiny.
Add( and remove) geofence locations with separate radius definition for geofence enter and exit transition.
The geofence monitoring should never expire when activated by starting the program or manually stop/restart within the program.
The geofence monitoring must work with the application in the background too. In fact, it's very important that it always is alive and also automatically started after a phone reboot.
The app shall not do notifications but instead send a POST call to a REST API service method when exit or enter a geofence area. The data format for sending data to the method is:
string data = $"device=mobile&device_model=mobilemodel&device_type=mobiletype&id={userId}&latitude={lat}&longitude={lng}×tamp={date}&trigger={direction}";
The locations that is going to be added as geofence locations in the App must be retrieved by doing a POST call to a REST API service method and receive the locations in JSON format. The properties of the received data is:
public string Id { get; set; }
public string Name { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public int EntryRadius { get; set; }
public int ExitRadius { get; set; }
The UI must include:
A START button for starting Geofence monitoring;
a STOP button for stopping monitoring;
below a text field and SAVE ID button for entering a number(a user id) can be entered and saved in the phone (in preferences or somewhere else easy accessible);
below a scrollable log view where all events should be sent so for for information/debugging.