I’m a programmer who has done mobile development for a number of years and specialized in iOS development for most of it. In my development career, I’ve had an interesting journey including quality assurance, release engineering, teaching, mentoring, and documentation.

Below you’ll find a series of weekly blog posts about the development of an app to manage tasks and appointment:

Posts

  • Text Models

    One of the biggest factors into why I love TaskPaper is the way that it effortlessly converts to and from text files. For my TaskManager app, I consider that to be must have functionality as well.

    We’ll be talking about String parsing as we break down converting back and forth from a hypothetical TaskPaper project with multiple tasks. Some of these tasks may have a variety of tags. As well as the possibility of notes.

    All of the code for this blog post is in this sample code repo.

  • Testing Event Kit Manager

    Unit Testing a manager that wraps third-party functionality can be challenging. You don’t want to waste your time and energy testing something that one assumes that the vendor has already tested and supports. If they’ve given you an API, you need to trust that API is accurate.

    What you want to test is your business logic and your code. There are two ways to do that. One is to leverage a pseudo object that conforms to the API but you can control the outputs. Ie; if you should be thrown an error, you can trigger that; or if you should be given a response, you can control what the response is.

    This lets your tests focus on your business logic, not someone else’s.

    All of the code for this blog post is in this sample code repo.

  • Event Kit Manager

    Apple’s EventKit can be a pain to work with. There’s specific logic that you need to make sure that you follow, so your app handles the permissions properly.

    The easier way to do this is to wrap the EventKit functionality in a manager that will manage the requests for permissions and ensure that the actual calls to the services are done properly.

    All of the code for this blog post is in this sample code repo.

  • Models and Extensions

    This is where we start getting into the nuts and bolts of the infrastructure for the project by building models, extensions to make the use of these models easier as I put together date utilities to make my life easier.

    Luckily, TaskManager makes things a little easier in terms of dates. We only have two major date formats to convert to and from a Date foundation class: "yyyy-MM-dd" and "yyyy-MM-dd HH:mm" (ie; "2024-10-31" and "2024-10-31 10:31").

    All of the code for this blog post is in this sample code repo.

  • The Power of Enums in Swift

    Enums are one of my favorite parts of the Swift language. They’re one of the most powerful value-based objects.

    In this post, we’ll be discussing increasingly complex uses of enums.

    All of the code from this blog post is in a playground.

  • TaskManager Overview

    Breaking down a project into milestones and figuring out your roadmap can be a struggle. Let’s walk through an example for the project that I’ll be working on in a series of blog posts.

subscribe via RSS