This is the last post in a series on how to get the Xamarin based code for a hackathon we did with Missing Children’s Society of Canada up and running on iOS, Windows & Android. This article will focus on how to distribute the app.
For reference here is the series of articles available
- Technology for Good
- Technology Overview
- Cloning the Project
- Running Xamarin App on iOS
- Running Xamarin App on Android
- Running Xamarin App on Windows
- Hockey App, Push Notifications & Wrap up
Although we used Hockey App to distribute the Android application, unfortunately due to time, we did could not complete a full Develop – Test – Build – Distribute pipeline built out for the Xamarin application.
We did end up just manually uploading APKs, but you definitely want to automate your mobile app lifecycle process!
Here is an example of a customer app we did at RedBit in Visual Studio Team Services where we have API, Web App, iOS and Android build and release pipelines setup
Definitely worth the time to set this up when building out full software products!
Push notifications was being worked on a separate branch specifically by Denys Linkov and Mohammed Eseifan from Silicon Halton’s Tech Under 20 who I invited out to help develop the software for the weekend. You can find the notifications branch here https://github.com/CDN-Missing-Children-Hack/client/tree/NewNotifications
Unfortunately, we did not have time to merge those changes into the master branch but we left it there as notifications were working on iOS, Android and Windows. Notifications leveraged Azure Notifications Hub which is an easy way to send notifications to multiple platforms. For more details see here https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-push-notification-overview
If you have never worked with notifications with Xamarin this article will give you a good walkthrough https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push
Obviously we did not get everything we wanted done in a weekend and there were a few things we wanted to get to but just didn’t have enough time. Some items that are still on the TODO list
- Merge in the notifications branch and integrate with the back end server
- Include a map page (already in the shared project as MapPage.xaml) to show social media content for a case on a map. Again, potentially showing the location of a missing child when investigating cases
One ‘moonshot’ feature we wanted to add is Azure Cognitive Services to determine sentiment of social media content or possibly using some ‘AI’ to determine if social media content for a registered user is a possible threat. For example, analyze DMs in Twitter coming to registered users to determine possible threat cases. Again, this is a ‘moonshot’ for a weekend but the technology is there.
This is Not the End!
I’m personally excited to part of an amazing hack for trying to solve a real problem in our world. As a long time developer, it’s great to use technology to help make a difference in our world. Although we did not get everything we wanted completed we did get to work with people dealing with this everyday and the feedback gathered from Missing Children Society, Calgary Police and City of Calgary was all positive and made this a successful first step! But not the last!