30 Days to App, Week 3
There are 12-ish days remaining in my quest to create my first iPhone app. And by create, I mean learn the Swift programming language, then design and develop my first app. I’m making good progress but still teetering between pessimism — that there’s no way I can pull this off the time remaining — and optimism it will all come together. As I write this, the optimistic side is winning.
Learning more Swift
Since my last update, I completed my second demo app, complements of the Apple Developer tutorial. Compared to the first tutorial I completed, the Apple tutorial provided a richer set of examples. It covers building a UI, creating custom view controllers, working with table views, and saving data. Rather than copying and pasting the provided Swift code, I ‘wrote’ (i.e. transposed) as much as possible. Along the way, this helped me appreciate Swift’s sensitivity to capitalization. When your app won’t build and your code looks identical to the example, you quickly learn case-sensitivity can make or literally break the build.
While I wasn’t building the demo app, I took time to review Apple’s extensive Human Interface Guidelines. As a longtime iOS user, I can’t say there was any relevatory information, but it helps to be familiar with best practices and understanding what users expect.
I also familiarized myself with the AutoLayout Guide, which is handy tool for understanding how to create app layouts that automatically work across a range of screen sizes. If you’re familiar with the concept of responsive web design, AutoLayout will be familiar territory. Given the simplicity of the layout I’m envisioning, I shouldn’t need to use any of the complex layout methods like nested stack views, but again, it’s good to know what’s possible and know where to look for answers should I need them.
Concepting and Sketching
Finally, I took more time to sketch more ideas for the overall UI, interactions, and transitions. In terms of giving me the optimism I can hit my goal, this was one of my most productive activities in the last week. I started by making a few pages of empty boxes with dimensions roughly equal to a standard iPhone screen size. From there, my goal was to sketch and not stop until all the boxes are filled. This technique is similar to one I learned from famed copywriter and creative director, Luke Sullivan. He wrote the Bible for creating great advertising, “Hey Whipple, Squeeze This”. His book (now in it’s 5th edition), has two chapters dedicated to generating and finding ideas that work great for any creative endeavor… whether you’re creating advertising or apps.
With this approach, the first few sketches invariably reflect expected ideas — my take on apps I’ve used or inspiration I’ve gathered. As more ideas are generated, they naturally become more unique and creative because you have to dig deeper to fill the page. Once the pages are filled, you edit out the bad ideas and refine the good ones. This process led me to a solution I’m really excited about. It naturally provides a unique marketing angle for the app — something like: ‘the world’s fastest, simplest note-taking app’. Plus, I should be able to complete it in the days remaining.
Naming the App
The results of the concepting exercise naturally led me to a range of ideas for naming, so I’ve started capturing ideas as they come to me. I’ve been running my favorites through an App Store search. I’m looking for two things; first, if there are similarly named apps — I’d like to avoid conflicts or confusion with existing note-taking apps. Second, I’m trying to see if others are advertising on keywords. If I decide to advertise the app, I’d like to avoid competition for popular keywords.
The Week Ahead
In the week ahead, I plan to translate my sketches to a real UI and trying to create a simple, working version of the app in Swift. I’ll also try to generate more ideas for the app’s name before I start to hone in on my favorite options.
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.