How mobile and web applications are structured, built and released, using practical projects.

What this course covers

How mobile and web applications are structured, built and published. This is a step beyond a first programming course, and it assumes you can already write basic code.

An application is different from a page in ways that matter. It has state that persists. It has users who are not the same as each other. It has to keep working when the network does not. Those differences are the substance of this course.

What you will learn

  • How an application is organised, and why the structure matters as it grows
  • Screens and navigation, and how a user moves through an app
  • Handling input, and validating it before it causes damage
  • Storing data, locally and remotely
  • Talking to a server, and what to do while waiting for it
  • Handling failure: no signal, slow responses, requests that never return
  • User accounts, and why different users must see different things
  • Preparing an app for publication

Who this is for

  • Anyone who has completed a first programming course and wants the next step
  • Students whose module covers application development
  • Web developers moving towards applications
  • People with an idea for an app who want to understand what building it involves

You need to be comfortable with variables, conditions, loops and functions. If those are not yet familiar, the coding and programming course is the place to begin.

The part beginners underestimate

Handling things going wrong.

Almost every tutorial application assumes the network works, the server answers, and the user types what was expected. Real applications spend a striking proportion of their code on the cases where that is untrue, and applications that ignore it feel broken even when the main path works perfectly.

So error handling and offline behaviour are treated as core material rather than as an advanced topic. An app that says "no connection, we will retry" is a competent app. One that hangs on a blank screen is not, and the difference is not talent, it is having been taught to expect it.

State, which is where the difficulty actually lives

The hard part of applications is rarely the screens. It is keeping track of what is currently true: who is logged in, what has been loaded, what has changed but not yet been saved, what the user did while the request was still in flight.

Most confusing bugs in applications are state bugs. We name this early and spend time on it, because recognising a state problem for what it is turns a mystifying afternoon into a solvable one.

Where it leads

Enough to build a working application and understand how a real one is put together. Enough to read an existing codebase without being lost, which is what most first jobs actually require.

Questions we are often asked

Android or iPhone? The concepts are shared, and we focus on those rather than on one platform's particulars.

Do I need a Mac? Not for the course content.

Can I publish what I build? The publication process is covered. Whether a given app is ready for a store is a separate question and we will be honest about it.

Is this enough to build my business idea? It will let you understand and evaluate the work, and possibly build a first version. We are straight with people about the gap between a working prototype and a product.

Interested in this course?

Tell us where you are starting from and we will suggest a route.

Get in touch