Thirty Days to App, Week 2
I’m making steady progress on my goal to create my first app in 30 days. At times, this goal feels daunting / impossible, especially when I realize how much I don’t know (the known unknowns, if you will). But then I remind myself that I’m creating a relatively simple note-taking app, and focus on enjoying the journey.
Since the first recap, I’ve technically made my first working app, thanks to a Lynda.com tutorial (‘Building a Note-Taking App for iOS 10 with Swift’). With a time investment of 3 — 4 hours, the tutorial served as a good orientation to the Xcode development environment and the mechanics of creating a working app, even if I wasn’t always sure exactly what was going on. The biggest challenge was troubleshooting and bug-fixing. I worked in the same project as I completed each stage and followed each lesson to a T, but in later lessons, the app crashed. Eventually, I discovered the later lesson files reverted to earlier versions of the code. In the end, troubleshooting and figuring out what was driving the errors was a good way to gain a deeper understanding of how all the components of the project work together.
In addition to the tutorial, I’ve been busy with several other exercises:
I’ve sketched a few of the initial screens that have been floating around in my head.
When I’m starting on any design, there are two ways I tend to start:
- Visualize designs and work through options in my head, which can take anywhere from a few days to a week. While I’m going through this process, I’m keeping my eyes open for inspiration. If something really strikes me, I’ll capture it somewhere, otherwise I’m just making mental notes. I’ve found the strongest ideas just stick, and once they’ve stuck long enough, I either sketch them out to add detail and notes or, more often, jump straight to the computer to see how they translate to the screen. At this stage, I try to keep the designs low fidelity (working in black and white or a limited color palette helps), but I tend to add detail to the strongest ideas.
- Grab a notebook and start sketching — pushing for quantity, even if there’s a direction I feel strongly about. Initially, this tends to be faster than my other approach. But can take longer once I move to the computer because I’m trying more ideas just to see what works.
Over the years, I’ve learned to avoid immediately starting on the computer. It’s a really comfortable place to start, but I tend to spend more time on ideas that ultimately don’t go anywhere.
For this project, I feel like I need to go wide (i.e. generate more ideas than I normally might), because I’m not sure if some of the interactions I’m imagining will be possible for V1. I’m keeping my eye out for Swift libraries that might get me closer to the finish line, but I figure I have ~2 weeks to develop the app. So if a particular interaction isn’t working, I know I’ll need ideas to fall back on.
Out of curiosity, I downloaded Swift Playgrounds. Even though the lessons cover basics of programming (functions, loops, conditionals, etc), it’s a good refresher of programming fundamentals and how to combine the concepts to create cleaner, more reusable code. It doesn’t take long to complete the exercises — if you’re curious about programming (in any language), I recommend checking it out.
I also started working through an Apple Developer tutorial (‘Start Developing iOS Apps’), which walks through the development of a food tracking app. I’m learning how to update text fields, integrate photos and custom controls (ratings), and more.
Last but not least, I’m capturing ideas in Evernote. There are two sections in my ‘Xcode’ note:
Parking Lot. This is where I capture things I might need to look up later. For example, when you create a new project in Xcode, there are several project types; Single View, Master-Detail, Page-Based, etc. Both tutorials start with Single View, but don’t cover how you might use the other types. When the time is right, I’ll dig deeper.
Notes, ideas, and tasks. These are ideas features and interactions that I’d like to incorporate into the app. When I have some downtime, I’ll pick an item from the list and research possible solutions or documentation then update the note accordingly.
This week, my goal is to complete the Apple Developer tutorial, do more sketching and researching, then spend the next two weeks focused on building my still to-be-named temporary note-taking app.
If you enjoyed reading this post and want to follow along to see if I hit my goal, please recommend and share the post to help others find it.