Earlier this year (2017 for any future people) I designed, built and released my first application onto the Appstore. It’s been something I’ve been wanting to do for years but between work commitments and lacking drive to really learn Swift or Objective C I’ve never quite got around to it. There’s been many ideas in that time, all million dollar ideas of course, but most have been quite daunting and not knowing where to start has been a real blocker. I felt that 10 years of Frontend Development hadn’t quite prepared me to tackle a full application on my own.
This year though something clicked. I was not having a particularly good experience at work but in that time I’d started to realise that maybe I could do more. Instead of looking at the things I couldn’t do or wasn’t as good at, I should look at what I could do. For too long I had started projects and not finished them. Now was the time to commit. I decided to take the smallest of my ideas, one that would actually make a difference to my daily life and build a prototype.
Weather to ride was born from my daily commutes to work on my bike. I rode along a river and sometimes the commute home would be horrific. The wind would driving directly into my face and it would feel like I was getting nowhere. I just needed an app to quickly let me know what the conditions would be when I heading home so I could decide to cycle in. With the goal of the app now sorted and of course the best name ever (who doesn’t love a good pun) I was ready to design and build a prototype.
I have to admit that I’m a bit of a geek for process. I love using tools like Zeplin, Invision, Sketch and Trello and having clear processes. Research, Personas, User Journeys, Wireframes, Design then an Agile Design and Development process. This is kind of how I thought it would treat this project even with only me working on it. Straight away though I skipped a lot of the early processes. The app was primarily for me so as long as it worked for me I would be happy. Straight onto the wireframes, but it just felt like I was stalling. All of these processes and steps are nice when there’s a team around you and you have time to burn but I wanted a result.
I converted those early wireframes straight into a design. This had to be one of the hardest parts. Years ago I classed myself as a designer but since then I’ve been conditioned to only do development and let the designers do their stuff. Breaking out of that cycle and getting confidence to put my own work out there again was difficult. I decided to again keep the design quick and simple. It was under a days work to wireframe and design one main page for the app. Time to build a prototype.
Hybrid app frameworks had been getting increasingly getting more buzz and these felt like a good fit for the skills I already possessed. I’d had a few days worth of experience of Ionic 1 previous to Weather to ride and at the time realised it was perfect for a Frontend Developer with desires of grander things. Ionic 2 Beta had since been released and with it came an avalanche of guides from developers such as Josh Morony. These guides and the documentation helped immensely but my primary goal was to stick with stuff I could do and release on iOS quick.
I chose the Dark Sky API as that was free and straightforward to use and focused on getting data relevant to me displayed in the app. As soon as that worked I was on a roll. I was making small increments to add new features and designing in the browser as I went. Working with Ionic meant that I could debug, design and build in the same ways that I do on the web. I was at home and flying. It only took a few days (albeit scattered across a few weeks) to get the app feature complete. There were a few stumbling blocks such as trying and failing to get Local Notifications working but these were either skipped or overcome quickly. Features such as saving your location were easily solved with local storage and accessing the google maps api.
Ionic also made getting a demo sent out to people easy with their Ionic View app. However as soon as I started using some Cordova plugins I needed to step it up. This is where Ionic steps away and we enter the world of iOS deployments. I spent a full day trying to wrap my head around provisioning profiles, certifications and getting a dev license but eventually I was able to send my app out to people through Hockey. Hockey is a great tool for distributing beta apps. It doesn’t have the same approval process as apple so it’s hours quicker to release updates. However you still need to make sure your app is built correctly through Xcode which I found tricky the first few times I did it.
After stumbling through the Apple submission process, I’d finally got there. My app was ready for release. I set a low price and sent out a few emails and tweets to cyclists and friends I thought may be interested. I built a website (http://weathertoride.io) and submitted my app and website to a few sites and galleries. I felt extremely proud to finally have something out there which was completely my own.
I’ve had a bit of interest on the app and have some regular users but not as much as I hoped. After the initial buzz it quietened down quite quickly which was shame but to be expected. I don’t think the app is ever going to get a massive audience but I think my lacklustre marketing didn’t help. I spent a lot of time getting the Ionic and tech community to look at my app, which increased traffic to both the site and app. However these people were not buying the app. When I managed to get some exposure direct to the cycling communities sales boosted a bit.
I’ve really enjoyed working on Weather to ride and I’m still proud that it’s on the App Store. I got a new job shortly after releasing it and the app certainly helped me in getting that job. The new job has definitely meant that I’ve slowed down work on Weather to ride and put features on the back burner.
Over the past couple of months my interest in the app had waned slightly. Sales were only trickling in and I’d stopped marketing it, then out of the blue I received a tweet. A random guy was asking about an Android version of the app. Suddenly I felt revitalised. People are interested, even if it’s only one or two. People want something I’ve made. That Android version should be coming soon and thank you to @willforsyth on Twitter for giving me a kick up the arse I needed to get it sorted.
In the pipeline
If you’re interested in what’s coming up we’ll hopefully have:
- Android release
Some lessons I have learnt
- If you have difficulty starting or finishing projects, pick something that you will use
- Prototype fast and get to an MVP asap
- Without the correct marketing you will find it very hard to get users
- Reach out to people — the Ionic community is awesome (special thanks to David Frahm for advice)
- Redefine what success means to you — instead of awards and becoming a best seller, I chose “releasing a product that works”. (I still want those things but I’m happy at the moment)
- Finishing a project is hard but totally worth it