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
-
Making an Editable SwiftUI TagsView
Last post, we talked about the
TagView
but it was only view only. For this post, we talk about leveragingEditMode
to allowTagView
for both viewing and editing the data.All of the code for this blog post is in this sample code repo.
-
SwiftUI TagsView
Picking back up my
TaskManager
app project, it’s time to start on the UI/UX portion. When working on how your app or even how a single view is going to look, it’s tempting to wait until everything is perfect before sharing it with stakeholders.I’ve always found that a more iterative process works better. It may allow design and development to go back and forth on accessibility issues.
With that in mind, I write this as I try to illustrate some of the challenges in a simple reusable UI element in my current design.
How a
Tag
data model will represented as a view.All of the code for this blog post is in this sample code repo.
-
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 myTaskManager
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 hypotheticalTaskPaper
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 aDate
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