More Reliable Android Notifications
In this release, Android notifications become more reliable than ever. Whether you're receiving local or remote notifications, your notifications will always be delivered. Previously, when you fire up local notifications and the app is killed, you might not get notifications. Even worse, when you tap on the notification, your app will not start. In this occasion, we've tested the following scenarios to ensure that notifications will always be perfectly received:
- Using Services Samples, local notification is triggered with a delay of 5 seconds, then immediately suspend the application by pressing the Home key. Notifications are delivered.
- Still on the same sample, local notification is triggered with the same delay of 5 seconds, then immediately kill the application from the task manager. Notifications are still delivered.
- Using Synchronization Samples, remote notifications are triggered even when the app is active or killed.
Depending on which ViewModel you call the notification service, you can immediately navigate to the target ViewModel when the notification is received. Moreover, both local and remote notifications trigger the OnNotificationReceived method in the AppService class whenever a notification is received.
Custom Root Table View in iOS
When you use a UITableViewController, there are certain cases where you might need to add custom views to the sibling of the table view, for instance, you might want to add a custom toolbar below the table view. This is where the custom root view feature comes in handy, allowing you to easily plug a custom container with the desired views. At runtime, the table view is automatically merged to the custom container where you have full control over the table view's position and dimension.
To get a better understanding on this feature, we've prepared a tutorial accompanied with working sample which demonstrate how to create a dockable view below the table view.
Check out the step-by-step tutorial here.
Complex Object Persistence in SQLite
In this release, SQLite has been enhanced to support complex object and automatically persist it as your custom types.
To store your object in SQLite, all you need to do is simply marking your custom object or list property with the DataMemberAttribute and everything will work automatically. For more information on how to work with SQLite, see Querying SQLite Data and Inserting SQLite Data respectively.
Enhancements and fixes in this release
This release includes the following enhancements and bug fixes: