Sunday, May 10, 2015

A Simple Swift iOS App from Start to Finish - Planning the App

Introduction

This is part of a series of articles detailing the creation of a simple iOS app. A complete list  of articles is included in the first part A Simple Swift iOS App from Start to Finish - Introduction.

I have set up a web site for the finished app at http://DaysWithoutThings.com and you can download it free directly from the app store:



In this article I will discuss the purpose and features of my app, the platforms it will work on and the design and workflow of the app.


Purpose and Features

Overview

My app will mimic the 'Days without accidents' signs that are displayed in some work places. It will enable the user to track how many days they have gone with or without one or more things. It will also allow them to count the days until or since an event. The user can specify any number of things to track. They can be anything. For example they can be things the user wants to avoid like accidents or cigarettes or things the user is hoping will happen like nice weather or a pay raise.

The Main View

The main view will display each thing in turn with the current number of days accompanied by an appropriate graphic. Each thing is tracked independently. If the thing is set to show days with or without the graphic will be a set of tally marks. If it is set to show days until or since the graphic will be a winding row of boxes representing the days.

If more than one thing is being tracked the display will change to the next one every 3 seconds. The user can move to the next or previous thing immediately using right and left swipe gestures respectively.


It the user taps the screen it will move to the list view. If no things are defined it will automatically move to the list view as soon as the app loads.

The List View

The list view is a table view that enables the user to add or delete things.
It implements the standard table view swipe-to-delete functionality and has a + button to add new things.
When a new thing is added the app will create a new thing with a default name and move automatically to the Edit view.

The Edit View

The edit view enables the user to set the name of the thing. The app will not allow the name to be blank or a  be a duplicate of an existing thing's name.

The edit view also enables the user to set whether the main view should display 'days with' or 'days without' for the thing. This option is included to avoid  awkward grammar. For example enabling the user to track 'days with exercise' rather than 'days without no exercise'. 


The edit view also enables the user to just track a thing to or from a specific date. The user can also pick a separate background color for each thing.

The edit view also displays the current number of days and the record number of days. The current number of days can be reset to zero using the button on this view. The record number of days is the maximum that the day count has ever reached for the thing.



Target Platforms

My app will run on all the platforms that the Xcode 6 iOS Simulator currently supports:
iPhoneiPad
iPhone 4s
iPhone 5
iPhone 5s
iPhone 6 Plus
iPhone 6
Resizable iPhone
iPad 2
iPad Air
iPad Air 2
iPad Mini 1, 2, and 3
Resizable iPad


Design

The app will comprise 5 main elements:
  1. App icons and launch images.
  2. A Core Data data model.
  3. The main view.
  4. The list view.
  5. The edit view.
When a new thing is created a new record will be added in the Core Data store for it. That record contains a startDate field which holds the time and date at which the record was created. If the user resets the current number of days for a thing, using the button on the edit view, that startDate field is reset to the current date and time.


Workflow

The launch image will be displayed whilst the app is loading. Once it has loaded the main view will be displayed. If no things are defined the main view will automatically open the list view.
The list view is where the user will add and remove things. If they tap the back button it will return them to the main view. The back button will only be available when one or more things are defined.
Adding a new thing in the list view automatically shows the edit view populated with the new thing's properties. 
Once one or more things have been defined the main view will begin displaying them. 


Wrapping up

Having planned my app the next step is to create an Xcode project for it which is what I will do in my next article.

No comments:

Post a Comment