Setup Menus in Admin Panel

A Look into City of Fishers CrimeWatch App

By: Auri Rahimzadeh, Software Engineer and Owner at Auri’s Ideas

There’s an old saying, “Necessity is the mother of invention.” These days, it may be prudent to add, “You’ll wish you knew programming to build it.” With innovation increasingly becoming apps uniquely tying devices, data, and people together, inventing from your desk with code has become a powerful path to bringing ideas to life. This is how the City of Fishers CrimeWatch app came to be.

Sparking the Idea

On a typical Thursday at Launch Fishers, there’s a “Code and Coffee” meetup. We’re not always talking shop. It’s just a bunch of developers, and even those curious about becoming one, talking about whatever’s going on, be it IoT or Pokémon Go.

Ed Gebhart, now Assistant Chief of Police, but a Captain back then, had an idea. He saw most of his force was on their phones at roll call. They weren’t being inconsiderate, or not paying attention. “That’s simply how they communicate,” Ed would say when we met. He put two and two together and figured that’s the way suspicious activity should be reported in Fishers. Practically every citizen – even the teens – has a smartphone. If we built an app, they could communicate with their police force the “modern” way – and it could be faster and more accurate than a phone call. Even better – it could include photos, enabling the officer to visualize and assess the situation well ahead of arrival.

So Ed came to Code and Coffee, asking the table what it would take to build an app that did just that: enable a citizen to report suspicious activity from their phone and have it appear instantly on a map running in an officer’s vehicle laptop. It was only a few sentences of detail – typical of any software development project. I raised my hand and said, “Sure, I’ll do it!” That began our 18-month journey to getting the app released, our first arrest, and over three thousand users. A follow-up meeting at the local Starbucks led to a functional specification – always a good asset to have before any app dev effort – and development could begin.

Ulterior Motive

To be fair, I had an ulterior motive. No, not financial. I had been wanting to build a “real” cross-platform app. However, I wanted to use Xamarin, a native cross-platform app solution promising the “write once, run anywhere” dream. Xamarin, in theory, could enable me to write all the code in C#, and it would take care of keeping the Android and iOS versions in tow. This was a great opportunity to try Xamarin with an app that “really mattered.”

Without a cross-platform solution, I’d have to write the iOS app in Swift, the Android app in Java, and my back-end API and website would have been C#. That’s a lot of room for error, technical debt, implementation mismatches and more. It would have required maintaining three separate codebases, in four different languages – don’t forget about the JavaScript on the website! – and there’s no way I could build and support that. Oh, did I mention I was building all this for free? Yeah…

It turns out Xamarin had exactly what I needed and their Xamarin Forms tech took care of the user interface. Even though I had to write my own implementations initially, Xamarin eventually released cross-platform implementations of settings management, GPS, and even photo support. I had some bumps in the road – Xamarin 2 years ago wasn’t the Microsoft-acquired Xamarin of today, and the tools weren’t as great. Still, I was able to write the website and app all with a Microsoft stack – and an API initially built with donated time by Sasha Kotlyar, with much thanks – and arrive with an initial version running after only a few months. That wasn’t 40 hours a week, but it sure was a lot of evenings and weekends.

Building with the Community

From the beginning, Ed and I planned on ensuring the community was involved, making sure the app met their needs. After all, we need them to use it to help us. We kept the design simple, no more than four steps to report an incident – only three if you didn’t include a photo! Once the first beta of the app was ready, we enlisted the Fishers Volunteer Police Academy alumni, made up of just under 20 citizens, to give it a run. All feedback was kept in an online forum for them to share ideas and have candid feedback with us as we made improvements.

The good news: The mobile app user interface was a hit. They had effectively no complaints – that’s pretty rare. The “bad” news was really feature requests. Number one: We didn’t get every incident type they wanted. We never thought about including it, but “erratic driving” was an incident type they demanded, and it’s in there today.

Number Two: “Send us an email when the officer has responded.” They were right – so often we call the police and we don’t know if anything happened. We feel disconnected from the process. Adding the feature suddenly made visible the police force’s actions, which we often treat as out of sight, out of mind. It’s good to actually have proof your tax dollars are hard at work. Bringing light and recognition to the always-on nature of our law enforcement heroes have been an unexpected side effect of the app.

The result of all this collaboration was a laundry list of “nice to haves.” Some of these, like an in-app incident status list, have been added. Others, we’re vetting as time goes on. Remember, I’m building this for free, and both Ed and I have day jobs. Still, we’re 100% committed, and the community has been wonderfully supportive.

Getting it into the iTunes Store

After receiving the go-ahead from the community, and full endorsement from Mayor Fadness, Chief Kehl, and so on – we were good to go. We had a finished product and were excited to release it just after the new year. The iOS and Android apps were ready, well tested, and we wanted to release the both versions at the same time.

Publishing the app on Android was easy. The City – a town only a few days earlier – already had a Google Play Developer account. I uploaded the signed APK – a.k.a. Android Package – and it was ready to publish. I queued it up and asked for the Apple credentials. Whoops – there weren’t any!

Apple is an entirely different animal when it comes to getting an account. First, the city didn’t already have a developer account with Apple. That’s normally all you need – plus $99 – to release an app on the coveted iTunes store. Easy to get as a normal person, even a company. But this was a city. Apple wanted proof out the wazoo. Lots of proof. Lots of phone calls. The city attorney, Chris, was on the phone with Apple. Mayor Fadness got involved. Five months of back and forth ensued. It wasn’t until the beginning of May – after a process that started in December – that we were able to submit the app to Apple for approval.

How long did it take for Apple to approve the app? 3 days. Sheesh.

Paying Off

We released on May 19. TV stations, newspapers, and many websites covered the app launch for the next couple weeks. After all, nobody in the country had an app like this – connecting the citizens directly to the officers for non-emergency issues. Within a day, we had a few hundred users. Within a month we had almost a thousand. In less than 90 days, we had our first arrest – taking a drunk driver off the streets.

Today we have over 3,000 users, a dozen or so incidents reported every week, and it’s trending upwards. We’ve released 3 updates to the app. The website has been updated many more times. That’s the part citizens don’t see – the software running in the police vehicle. Just like from citizens, we’re always getting feedback from officers on how to make the software better. They’re excited to be protecting the community in modern, novel ways!

We have a lot planned for future versions of CrimeWatch. Stay tuned!

If you haven’t downloaded the app and you live in Fishers, you can get it at https://crimewatch.fishers.in.us/

1 responses on "A Look into City of Fishers CrimeWatch App"

    Leave a Message

    You Earned your GI Bill® Benefits. Now Use Them To Launch A New Career!LEARN HOW