TrainBuddy Offline Search.
Between writing a service to report the location and providing offline search I choose to implement offline search first. I did so because I thought that would be easier. But sadly I was wrong. I wanted to reuse the currently implemented components as much as possible. But that was proven to be harder than implementing them from the scratch. There were few reasons. I was using static methods, No dependency injection. So though I tried my best to loosely couple the components there were dependencies between components which makes it harder reusing them.