Development Technology

Workflow V2.0

Since upgrading my hardware and buying a Mac Mini and an iPad Pro, my workflow has undergone a big change for the better.

I used to spend time designing on lots of A4 paper, creating written notes and drawings of UIs. This was a good way of working, but it meant either carrying around loads of A4 to wherever I was working, or more often just leaving the paper notes behind thus rendering them useless: Enter iPad Pro, Apple Pencil, and Notability.

Notability is my note-taking app of choice, as it combines typed notes and drawings in one note. I’m now able to make design notes sat in front of the TV (relaxed working), and take them with me when I need to translate the notes into Swift code at my computer desk (focused working). No more piles of A4 cluttering up my desk.

ExerPlan UI notes.
ExerPlan UI notes.

Another app that’s been useful on the iPad is Swift Playgrounds. I can try out code ideas before I delve into Xcode and doing this has helped me learn a lot about Swift in isolation. Again, I can take the iPad with me when working at my desk, and transfer what I’ve learnt to my main app.

Finally, I’ve been using Numbers to store my data model. A spreadsheet is a good tool for a data model, as the tabular format makes entering a table’s column details easy. In conjunction with the excellent Git client Working Copy, I’ve been easily keeping the data model and code base up to date.

Although it was a big investment in new kit I’m really glad I did it. My workflow has altered for the better and I am more productive with my app work than I’ve ever been.

Now if you’ll excuse me I’ve got some websites to search for details of implementing UIViewControllers in Swift code…

Development Fitness

ExerPlan – Exercise Planning App

ExerPlan is the working title of a new app I’m working on, designed as a general exercise planner.

In the past I used Excel to plan my running training. More recently I’ve started doing more types of exercise, such as strength training, yoga, and lots of walking. I wanted an app to record and monitor my plans, rather than having to use Excel, and so I started work on ExerPlan.

With Excel and a big screen it was easy to see a full training plan at once. That won’t be possible on an iPhone screen, but my aim is to offset the loss of readability with the fact that I’ll have the plans to hand more often. I may eventually extend the app to iPad so I can get some of that big screen functionality back, but my initial focus will be on the iPhone.

ExerPlan will be based around the concept of activity types and sub-types. An activity will be something like “Running”, “Walking”, “Yoga”, while a sub-type might be “Hill Running” or “Intervals”. The app will allow the user to plan sessions of those activities in one of two ways. They’ll be able to add the planned activities to a calendar-style view, but also group activities into Plans. For example, a user might want to do yoga twice a week but not have it be part of any particular plan. Whereas, another user might want to enter a 16-week marathon training plan. ExerPlan will allow for both these things to be logged.

Once an activity is added it can be updated with the actual activity, e.g. I planned to run 5 miles, but only ran 3. In this way I’ll be able to track planned vs actuals, and provide data visualisations. I’ll be able to track performance against the plan, and also against specific activity types, e.g. how often do I plan a Hills session and how often do I actually complete them! I may also implement a badge system to “reward” users if they complete enough planned activities, but I think that’ll be a V2 development.

I’ve been designing ExerPlan for a few weeks and I finally started coding the app last week. Most of the database gubbins has been written and I’ll be moving onto the good bit next; the UI.

Well, that’s the plan 🙂