Today I decided to get started on my goal of creating iPhone apps for myself as an indie developer. As mentioned yesterday, I have a few things I want to accomplish this year. My first release will be a pedometer app. There are several already in existence on the app store, but none of which do exactly what I want them to do.
If we rewind back a few years to 2013, I actually started this project in September that year just after the iPhone 5S was announced. However, like all other previous attempts at finishing my own apps I was sidetracked and ended up doing more work for clients. My app never got finished and sat in BitBucket gathering dust.
Moving back to today, I actually created a new project a few weeks ago and started creating some classes to stub out. Christmas happened and I took time off, and then today is when I am officially starting and writing some code for the app. The reason I created a new project is that I want to create this version (and finish it) in Swift. The previous version was written in Objective-C. It just seemed like a better option to start from scratch than working with everything I had from the previous attempt.
Just for fun I decided to download the repository for the app as I left it in 2013 and after adding a couple of privacy description keys to info.plist it worked. To the left is a very bad looking screenshot. At the point I got to in developing it a few years ago I had just extracted data and had it represented on an hourly chart. The chart I used in the demo app was MyAppControlls iOS Bar Chart View. I may use this in the new project if there are no problems with it, or I may create my own with PaintCode in a similar way I demonstrated how to create a line chart with PaintCode on my tutorial blog.
Having redone the design a few weeks ago to bring it to iOS 10 standards, I have everything I need on paper. I know what each view will look like. I’ve been through the several steps of design of which I highly recommend reading this article by Michael Flarup who speaks of the process of designing an app. I even have the classes I need written out and the relationships between them although some testing is needed to determine if modifications are needed (see next paragraph).
So my first step in the Xcode project is to work on fetching the motion data, then work on fetching Health Kit data for historical data, and finally I want to work on tests to see how quick data can be extracted from Health Kit. Will it be acceptable to just extract direct from Health Kit for weekly, monthly, yearly data representations? or will that cause delays in putting the data on the view? I don’t know yet as I haven’t tested the import speed. It might be that I opt for Core Data and do a one-time import of historical data from HealthKit so the app can analyse it more quickly when needed.
By the end of the day I expect to be extracting data from Core Motion and passing that to the view to put on screen.