05 Jul

12 Step Notebook iOS App Process: Ideas, Design, Development and Release to the App Store

This is an article on a recent project of mine. My intention is to detail as much of the iOS app process as I can, like I did with Mocle. Special thanks to Matt for letting me tell the story.

The Idea

I typically have two initial meetings with a prospective client.  The first is a meet and greet, with a little bit of background on my portfolio and capabilities.  What’s on my website, but in the flesh.  The prospective client presents their idea and end goal.  I first met Matt and his referring client of mine for lunch at a coffee shop in between our workplaces.  He explained the impact of Alcoholics Anonymous in his life, and produced from his pocket The Big Book, the organization’s main publication.  His idea was simple and smart.  Put that into an app.

Now, as a former attorney, I always think of legality first.  I explained to Matt that AA likely owns everything in that book, and reproducing it in a popular app would attract attention from their legal team.  Then why, Matt asked, was a non-AA app in the store able to get thousands, maybe tens of thousands, of downloads with that same content?  We agreed to investigate the copyright status of The Big Book independently and meet again, then joked around for a bit before realizing that we only had a few minutes until respective work meetings, and had forgotten to actually eat.

A week or two later, we met again, this time at a coffee shop in Grand Central Station, my favorite landmark in New York City.  After catching up, he told me his discovery – due to a legal oversight, the 2nd edition of The Big Book is in the public domain, and although the text was several decades old, subsequent versions had only made minor edits.  In addition to that impressive find, Matt had a business plan ready.  He’d charge less than a competing app, and pledge to give some of the proceeds back to AA, as a thank you to the organization for impacting his life in such a positive way.  He’s been sober over ten years, and through his hard work and determination, has experienced personal and professional success.

So what features did he want?  I recounted the tale of Apple’s rejection of an early app of mine on the grounds that it was only text.  We’d need to include more than just words to get to market.  He urged me to take a look at his competition.

I downloaded it. 

Its antiquated design.  Cursive.  Clouds.  Shadowed, dated fonts.  Blurry icons.  Given the speed at which iOS UI evolves, it was prehistoric.  I knew that I could do better, so we hammered out a feature set.  First, we’d have a note-taking feature.  Turn the highlighter digital.  Make the searching faster than the hard copy’s index.  And add in contacts, to have a quick list of people most important to users in the context of recovery.  Just like jotting down a name and number in the back pages of The Big Book.  I explained how I might modernize the look and feel, and promised to send a proposal.  The cost to Matt would be on the low end of my price range, because the app would be self-contained.  We wouldn’t need to keep the content up-to-date with a database in the cloud.

The Design

After our meeting, I sent Matt a questionnaire.  What colors did he prefer?  Any favorite fonts?  Were there existing apps on Pttrns, both related and unrelated, that caught his eye as being particularly nicely-designed?

He got back to me quickly, proposing sand and green colors, with a modern notebook as inspiration.  Clean, flat, simple, modern interfaces, with basic system fonts with quick navigation.  Here’s a sampling of his thoughts.

12snb-inspiration-general-design-1Screens of Lemon Wallet and Uniqlo Recipe from pttrns.com

Matt didn’t have an interest in an Android version, at least not initially.  This freed me to stick to native iOS components.  Apple loves their tab bar at the bottom of the screen, used to navigate sections, and I’d noticed that it was in these examples.  His app’s handful of features could be tied to bar buttons.

12snb-inspiration-general-design-2Screens of Simple, Uniqlo Recipe, and Nextdoor from pttrns.com

The tan texture of the Simple app could be flattened, and the mint greens could be used as an accent color.  I looked at several modern notebooks, and quickly ruled out elaborate cursive.  Futura, a favorite font of my wife’s, seemed reverent enough, and available through Apple’s SDK.  I picked bold for a more serious slant.  The gravity of the font might come from Stanley Kubrick’s titles – I’m not quite sure. I also picked Arial for the headings.

12snb-title-screen

12snb-text

12snb-contacts

His example of functionality made it clear that we’d need a Settings section in the app.  Here I borrowed from Apple’s iBooks app.  For easier reading, users would be able to change the text’s background colors, fonts, and sizes.

12snb-settings

Finally, I needed a name and icon.  I wanted to stick to Matt’s design inspiration – a notebook.  12 Step Notebook.  And the icon should look like a little book, in tan and green.  It took a few tries to get right, and even now I’m not entirely satisfied with my work.  The binding doesn’t look right – does it open from the top?  And given the perspective, the mint bookmark would fall off the edge and appear angular.  But, even with those flaws, I’m proud of how it turned out, given my inexperience with Photoshop.

12snb-icon

The Pitch

I sent Matt my designs a week or two later, and we met to discuss the proposal on a Sunday.  I was able to convince him to come to a favorite Brooklyn coffee spot – Hungry Ghost – near my apartment, in the same neighborhood where he’d purchased a place.  They serve Stumptown there, a loaded cold brew that always powers me through long days of coding.

As I always do, I provided a flat fee to develop exactly what was in the Powerpoint document.  A couple of extra options – landscape support and taking the app universal – were priced out as well, in case he wanted those.  I’m always asked by people what the costs of apps run.  Without getting into too much detail, I typically charge between $3,000 and $12,000.  As we’d decided earlier, the app could be self-contained (i.e., no cloud service or synching) but had a lot of manual work – the transcription of the text – involved.  So Matt probably wouldn’t mind if I said that it was toward the low end of the spectrum.

Matt had a few ideas for color changes, but other than that was totally on board with both of the extras and agreed to pay around 30% up front.  I offered to take him to a Nets game down the street with his friend and referring client, Cassie (the subject of an earlier post), and he offered to bring the deposit to the arena.  It’s a funny thing – as a kid, I remember seeing businessmen at baseball games and it always seemed extravagant.  But it makes sense now.  For a fraction of what a client pays you, you can sit in great seats, bond, give a token of your appreciation, and just hang with someone that you consider a new friend.  The Nets roared back in the final minutes.  High-fives were given, to other fans, ushers and within the Smith & Sons family.

The Development

The first challenge that I encountered was practical.  How would I get the book’s words into the app?  In iOS, there are several ways to enter text and display it.  PDFs were out of the question because the content had to be resized and recolored in several fonts.  Simple text would be tough because page number placement was crucial.  AA members often need to refer to a particular page.  So I settled on HTML files.  Apple’s SDK can convert HTML to strings of text with assigned attributes.

Taking what’s available online as the text of the 2nd edition and converting it into the HTML took a lot of copying and pasting, and using find and replace with regular expressions.  Searching would be slow, but I found a way to progressively present search results as the app went through the text.  With hundreds of pages, on a newer iPhone, the app only takes a few seconds to return even the most popular terms.

Contacts and Settings were straightforward enough, and adapting for other displays went relatively smoothly with auto-layout and size classes.  For notes and annotations, I used an open source library with a flexible license from the makers of Slack.

After wrapping the bulk of development, Matt wisely wanted to proofread every word of the thing.  I’m glad he did.  He picked up the primary source, a hard copy of the 2nd edition of The Big Book, off eBay.  His attention to detail was remarkable.  He pointed out the differences between hyphens and dashes throughout the text.  I cleaned up the chapters, and we were ready for submission.

The Release

Prior to releasing, Matt had some homework.  He needed to form an entity, and sign up for an Apple developer enterprise account.  Sounds easy but it’s frustrated several clients, so a note to future app owners: if you plan to release an app, you’ll want to get started on this as soon as possible.  After jumping through the hoops, Matador Enterprises LLC was ready and granted me access to their accounts.

We agreed to release in two steps.  First, I’d upload a beta version of 1.0 to Apple’s TestFlight.  That would allow Matt to take a look at what would be available.  It met his expectations, and we exchanged the source code for the rest of the payment.  After providing the metadata, Matt flipped the switch to release, and submitted to Apple.  Two weeks later we went live in the App Store!

The Future

This project went even better than I’d hoped.  It’ll be fun to see how Matt and his team works to market the app, which will appeal to a subset of users that is relatively-easy to locate on messageboards and blogs.  Also, I have high hopes for app components on the Apple Watch.  I’ll save both of these for future posts.

Thanks to Matt for being a great client, and thanks for reading. If you have any feedback on this post, or would like to discuss your idea, contact me anytime at drew@smithandsonsapps.com.

20 Apr

If My Shelf of iOS Programming Books Could Talk

A few weeks ago, I moved from New York to St. Louis, and brought with me a stack of iOS programming books, each representing a chunk of time in my professional development.

Starting Out

Objective-C Programming: The Big Nerd Ranch Guide by Aaron Hillegass
objective-c
One day, before heading to work at my job at a patent firm, I sat on a coffee shop patio and while gesturing wildly, karate-chopped coffee directly into the pages of this book. Many months later, after I’d started my first programming job, I took the beat-up thing with me on a solo trip to the beach. The buses back into the city were screwed up, so I had a couple of hours to thumb through it on the way back – more than ample time to brush up on it and pick up a few things I hadn’t caught the first time around. It now smells like sunscreen.
Big Nerd Ranch: @bignerdranch

iOS Development Essentials by Neil Smyth
This series of books made me the programmer I am, and yet I haven’t been able to thank their author. Honestly, it’s 2015 and I can’t find a trace of the guy. Not on Twitter and not on the back cover of his book. At Smith & Sons, we’d make him an honorary member just by virtue of his name. Every year, this elusive author delivers exactly what I needed when I was starting out: focused, self-contained chapters on one simple task. Apple rejected an early app of mine because it was just PDFs of patent office documents, suggesting that I add something a little more native and interesting. Well, one chapter in the iOS 5 version of this book covered touch and animation. After only a few dozen lines of code, tapping on a point on my phone’s screen would rotate and move a blue box just beneath my finger. I was blown away, and promptly added a flying guy in a jetpack to the patent app, just because.
Techotopia: @techotopia

iOS by Tutorials by the Ray Wenderlich Tutorial Team
iOS-7-by-tutorials
Ray Wenderlich. The guy has built a publishing empire with dozens or maybe even hundreds of collaborators, releases new videos every week, and doesn’t even stop to get a new headshot to replace the one where he’s wearing a backpack. Makes sense he’d treasure that bag though, because he has to carry around these books, all stuffed to the gills with information. Imagine if the Wu-Tang Clan operated the 80s Nintendo game counselor help line. It’d be as magical as this.
@raywenderlich

The Core iOS Developer’s Cookbook by Erica Sadun
In the iOS 6 book, there was a really slick tutorial on making a cover flow collection view layout. 3D rotations, scaling, and everything. Honestly, if you came by my desk in March 2013, I don’t care who you were, I was going to subject you to testing a cover flow layout. Bonus points for teaching me how to structure my code, which is now less spaghetti and more one-day old gingerbread house.
@ericasadun

Deep diving

iOS Programming Pushing the Limits by Rob Napier and Mugunth Kumar
pushing-the-limits
About a year into my mobile dev job, I’d settled in comfortably and could rapidly prototype and release some simple apps. But there were a few times when that wasn’t enough, and I had to dig into Instruments, custom drawing of cells, and so on. One Friday night I was taking it easy playing video games when my manager texted the news that my app crashed on his boss’s phone – a dinosaur at two generations old. I consulted this book to streamline the drawing code. Bonus points for referencing Scarface’s Push It To the Limit. Seriously, they thank Rick Ross in the acknowledgments.
Rob Napier: @cocoaphony
Mugunth Kumar: @mugunthkumar

Tapworthy by Josh Clark
Learning iOS Design by William Van Hecke
learning-ios-design
Summer of 2013. iOS 7’s visual overhaul of 6 was on the horizon. At work, I was turning around proofs-of-concept every couple of weeks, and may have been sacrificing interesting design for speed. Luckily, at WWDC, I scored valuable 1×1 time with an Apple designer. I showed him an app where users arrange physical objects in 2D space, among other tasks. I asked him how I should handle object duplication. Long press? Double-tap? He yawned, sighed, pulled his hoodie lower over his eyes, and grumbled that I shouldn’t think in terms of the physical world. Maybe I should have the user hold one finger on the object to duplicate, and write, using my other index finger as a stylus, the number of objects desired. Just write a 5 in the middle of the screen and poof! Five fresh copies. Transcend the physical reality of the object. My mind was blown. I said thanks, he coiled back into the fetal position. The next week I bought these two design books. Tapworthy is a landmark book, a long series of app screens with commentary, which at the time of publishing in 2010 predated almost all mobile design blogs. A few months after, I managed to catch a talk by the author at a Drupal event at 30 Rock and really enjoyed his material. William Van Hecke’s unique and fascinating book reads a little more academic, tackling human/phone interaction theory, and is thus relevant even today.
Josh Clark: @bigmediumjosh
William Van Hecke: @fet

Make It So: Interaction Design Lessons from Science Fiction by Nathan Shedroff and Christopher Noessel
Fun book discussing how speculative interfaces from science fiction films have influenced real-life controls. Awesome mashup of film and UI/UX discussion. After this, I tried to make a crazy sliding grid to help users navigate an org chart. Like Frogger crossed with Minority Report crossed with Robocop. I ended up using a list, through no fault of these fine authors.
Make It So at Rosenfeld Media

Big Nerd Ranch: Advanced iOS Programming by Joe Conway, Aaron Hillegass, and Christian Keur
A couple of years after first purchasing my copy of the BNR Obj-C book, work sent me to the Advanced iOS Boot Camp near Monterrey, CA. My teacher was brilliant (and is a personal favorite on Twitter) but the regimen wasn’t for me. I was reflexively coding and needed to have daily interaction with people not in the industry. Well, as luck would have it, I’d convinced my boss to let me fly into San Francisco and drive through the valley to the camp, rather than fly directly to Monterrey’s airport, so I was one of the few attendees with wheels. I took advantage on Wednesday night and jumped into the car, hung out for an hour in a park along the ocean, drank a hot chocolate in a quaint coffee shop nearby, then tore off down the road to Carmel and ate some pizza, chatting up random strangers at each stop. On the last day of the camp, I had plans to drive up the coast to Santa Clara, and walk the boardwalk featured in the movie Lost Boys. But, that morning, I solicited Facebook for a name of someone at Apple. Well, it turned out that a friend of a friend worked at Apple and could meet me for lunch. So I bolted early (I think I lost out on a camp t-shirt), jumped into my car, and tore up the coast, skipped the boardwalk to fly through the mountain highways to Cupertino, where I got to relax on the grass and eat lunch in the middle of the main building. Went in the gift shop and bought one of those cheap Apple T-shirts in large that shrinks to Baby Gap size.
@randomstep

NSHipster: Obscure Topics in Cocoa & Objective-C by Mattt Thompson
nshipster
A few years ago, I attended a meetup for iOS developers at the New York Times HQ. When introducing Mattt Thompson, the author of the NSHipster blog and this book, the gushing event host said, “I explain it to my girlfriend like this: he’s the Michael Jordan of iPhone development.” Well, I think of him more as Phil Jackson, because he’s sharp, chill, and creates nuggets of wisdom like, “Understanding the concept of nothingness is as much a philosophical issue as it is a pragmatic one. We are inhabitants of a universe of somethings, yet reason in a logical universe of existential uncertainties. As a physical manifestation of a logical system, computers are faced with the intractable problem of how to represent nothing with something.” I wish I could code half as well and write a quarter as well as him. Like Zen and the Art of Motorcycle Maintenance for a bunch of coders.
@mattt

Rounding things out

Offscreen Magazine
offscreen
If you’re reading this blog, and connected in any way with tech, you should have a subscription to Offscreen. Each issue tells of success stories in the industry, but not in that Fast Company-pose-in-the-empty-office-with-shadows-in-the-face way, or the New York Magazine-look-at-these-jerks-with-money way. Everyone is presented in their own words, and given ample pages to offer wisdom learned in their brief but successful careers. A seminal, unique publication operated by one skilled and friendly person, Kai Brach.
@offscreenmag
@kaibrach

Clog Issue 2: Apple
clog-apple
Clog is an interesting architectural journal that features a series of small one-or-two page essays on a single particular topic as it pertains to architecture. I first spotted it at the register at a bookstore – the Sci-Fi issue had a little hologram on the cover and I’d just seen Elysium in the theater. A short time after, I ran across a stack of the Apple issue. The editors devote a lot of space to Apple’s Headquarters, and there’s one particularly disturbing essay about birds fatally swooping into the glass cube store on the southeastern edge of Central Park. DesignBoom has some pages and Clog is still selling this issue if you’re interested in picking up a copy. I’d also recommend the issue on Miami.
Clog’s site
Designboom feature

Games

iOS Games by Tutorials by the Ray Wenderlich Tutorial Team & Friends
A quick way to making a 2D game, with tutorials involving cat physics and rotating zombies. Around the time I was reading this book, while demoing a game for some other people at my company, I realized that I had ended up a video game developer and tester – a fact about which my 10 year-old self would’ve high-fived me.

Learning OpenGL ES for iOS by Erik Buck
learning-opengl-es
In early 2015, I was flown to the UK for a week, to meet a legendary contract developer from Vienna and some British colleagues at our office there. That week, we got the green light to use Apple’s GLKit to make a new, huge game. After the work week, on Friday afternoon, I went into London and wandered rainy streets, browsing the computer sections of Charing Cross bookstores and found this intelligent book buried deep in one multi-story shop. They had a nice little cafe on another floor, and I remembered drinking a soda and embarrassing myself by asking a British gentleman where the “bathroom” was. After I left, I wandered more through the streets, to an old, beautiful umbrella shop, James Smith & Sons, that inspired my own branding, all with dark, lovely, moody London rain falling. If you’re wondering if the book is any good, it is. Without the sample code, I wouldn’t have gotten the app shipped. However, with iOS 8, Apple opened SceneKit for developers, which hides OpenGL ES entirely, and makes GLKit more or less obsolete. Apologies to whomever is maintaining that code I wrote!

Kill Screen – Issue 8: Virtual Reality
kill-screen
My history with Kill Screen, the literary journal on video games:
Issue 2: Bought it
Issue 3: Attended a release party, had some interesting conversions with the issue’s authors and got some free video games
Issue 4: Wrote an essay on the game Passage and was quickly rejected
Issue 8: Attended the journal’s annual conference, TwoFiveSix, for work, and got this issue at the door. Spent the entirety of the day coding an app in the audience.
@killscreenmag

Console Wars by Blake J. Harris
In 2014, I went to Boston for the Games for Health conference. Through a glitch with the company’s hotel booking software, I ended up at a swanky hotel with a massive roof overlooking the city. Each day after the conference, I had a couple of sunny, silent hours on the roof before the bros started streaming in. I’d park myself in a recliner, with a strong drink on the table, a nice cool breeze, and Console Wars – a captivating story of Sega, Nintendo, and Sony centered around the 16-bit era. It’s quick but dense with stories of marketing genius and charming restraint.
@blakejharrisNYC

A few more I want to recommend (brag about reading) but about which I can’t think of a story.
super-mario-2
Super Mario 2 by Jon Irwin (basic but nostalgic gold)
Steve Jobs book by Walter Isaacson (fascinating)
Jony Ive one by Leander Kahney (inspiring)
The Circle by Dave Eggers (cheesy but unsettling)

31 Dec

Mocle: App Development from Idea to Beta

This is the first in a series of posts about the app-making process. It’s about the app Mocle, which I had the privilege of designing and developing, and is currently in beta testing.

The Idea

“It’s like Tinder meets Yelp,” Cassie said.

As an app developer, you hear a lot of pitches. Most these days are twists on, or mashups of, existing services (Uber for laundry!), so of course I wrinkled my face when I heard this. Cassie, a potential client, was explaining her idea on a rooftop bar. After she’d emailed me asking if I could develop an app, I’d given her two choices for meeting places: either over strong coffee at Stumptown or strong margaritas on a scenic roof overlooking the city. She’d picked margaritas.

pod-39Luckily, my obvious distress didn’t dissuade Cassie. As a VP at a nearby global asset management firm, she knows how to keep cool. She explained her eureka moment, which occurred when visiting Portugal. She and her female friends had booked the trip to without much planning. Without a good guidebook, or set itinerary, they didn’t have a clue where to spend their days and nights. A solution? Fire up Tinder, set the location to Porto, generously swipe right, and start asking the matched local gentlemen where to hang out. Tinder, in NYC and presumably in Portugal, is typically used for a quick date. But Cassie and her friends didn’t have the usual intentions. They simply wanted to know where handsome local dudes liked to spend an evening.

She envisioned a scrolling list of all locals – not just men or women – each of whom had picked their three favorite places. Users could see people near them, and message those users about their three spots. To join, users had to set their hometown and pick three nearby places. She sketched a few layouts in my notebook.

mocle-notebookI’m not at liberty to say the proposed name for the app. Suffice to say that I frowned again. Whoops! From a prior career, I learned enough about trademarks to know that a made-up name is best. It doesn’t have to be trendy babyspeak, but at the very least, a matching domain name and Twitter handle should be readily available. I suggested that Cassie spend some more time thinking of a new one.

At this point, I was intrigued, and could see myself building her vision. However, two points of concern for me are always funding and milestones. Funding, in this instance, would be a small investment on her part. She would personally pay for a beta that was suitable to show investors. Something capable enough to have her friends and interested parties use. She’s savvy enough to know that marketing and scaling the architecture would require a larger investment, and more knowledge than my own. So, the stopping point would be that “100 person beta” as I imagined it. If investors jumped on board, we could come to another arrangement for future work.

After some more time discussing apps and future ideas, and a few more margaritas, we parted with the agreement that she’d send me some UI mockups and a new name. I could then put together a pitch for her.

Research

After the meeting, I sent Cassie a list of sites to peruse for design ideas. My instructions were to send over a few fonts, two or three Chameleon colors, and her favorite screens from pttrns.

mocle-sketchWithin a week, she responded with her preferences and some more sketches. Cursive fonts. Clean, flat, sharp design with a focus on good, round photos. Messaging like iMessage. And the name? Mocle. Rhymes with local. My local. Not in the dictionary, and Mocle.co and @MocleApp are both available. I did a test submission to the App Store and it didn’t bounce back with a “app name already taken” error.

I asked for a couple of weeks, and promised a Powerpoint presentation of mockups with a quote. No obligations.

Design

At Pfizer, I often rapidly prototype an idea. While our mobile team has a whip-smart, talented UI/UX designer, sometimes she’s got a full plate and I only need to get a few screens on a device within days. While I could use Balsamiq or Photoshop to mock up screens, it’s faster to just open up Xcode, drop a few items into an interface, add some transitions and static data. If the app is greenlit, then I already have a head start on coding it.

Without a designer to help, and with only rudimentary knowledge of Photoshop, I went ahead with coding the interface. If Cassie didn’t like the mockups, or wanted to abandon the project, well… I’d have something nice for my portfolio. I’d be out about 20-30 hours of work. If she wanted them developed exactly as shown, then I had a jump on the project. In addition, the components I used – the buttons, lists, toolbars, etc., were all doable. Oftentimes, when I’m going off a designer’s wireframes, certain requirements are considerably more work than a non-developer might imagine. One example – I once worked on an app where superscripting the copyright symbols throughout took more time than any feature.

I combed through fonts on DaFont to find the perfect one. Thanks to uiFaces, I had a few willing volunteers. And yes – I contributed my own face to the project. Use me in the future!

mocle-proposalAnother lesson from my day job – a professional, well-done slide deck can go a long way. My format is: screens on the left, text on the right, logos on top, and CONFIDENTIAL written underneath. In my opinion, the most important thing is that the images are actually shown on devices. A flat, borderless screenshot won’t have the same power. The closer that an image can look to the final product, the better. On each page, there was one aspect, along with add-ons. Cassie, having a background in pitching investors, would have a good idea what should be fully functional at a meeting and what would be superfluous. So, at the end of the document, I gave three configurations at three prices.

mocle-iconAs for actual design, I went off what she’d sent, taking a few liberties but erring on the side of being conservative. I kept in mind a few principles. Signup should be as fast as possible, navigation often works best with tabs, and the content should shine. The icon I made was a simple, abstract rendering of eyewear with a shiny finish.

After a week of deep thought, shallow coding, and a few deep breaths, I fired off the document and scheduled a meeting for the following week to discuss next steps.

The Pitch

The second time I met Cassie was at the Ace Hotel’s lobby, a hip spot in the city for startup workers to meet. My opinion is that a pitch shouldn’t be in a standard coffee shop, or office. The app should be explained where it’ll be used. In this case, with a few drinks surrounded by coolness. I’ve found that a hotel lobby bar is a good spot for coding or meeting, because hotels are positive, bustling places brimming with people exchanging ideas and experiences.

After some small talk, and suspense from the client, Cassie revealed that she wanted the full set of features and loved the design. Success! She initialed all the pages, the price and payment structure (30% on project start, 70% on delivery of code), and left another mark on the pages. A few drops of her prosecco!

Development

mocle-feedTruth be told, the actual coding of the app was pretty straightforward. I’d work on a screen or two, then send Cassie a Snapchat as a 5 second teaser. In a few places, we agreed to make some changes. We streamlined setup. For finding three local places, we switched from the Apple natural language search to the Google Places API, and back again, with a few adjustments to focus on user neighborhoods. We tweaked the data model in Parse, and routed messages through there as well.

Personally, the biggest challenge was push. While the push code isn’t hard to drop into an app, and configuration with Parse is easy enough, configuring an App ID, certificates, and provisioning profiles through the Apple Developer portal got hairy. And testing! I had to use two phones, with two copies of the app each, each copy signed with a different certificate tied to a different Parse app record. There had to be separate Facebook and Twitter keys for each environment. Finally, in order to properly test push, the phone in a few scenarios needs to be off. So, you can’t just run the app and view the log messages console in Xcode.

mocle-pushNow, at my day job I’d have people running test scripts. But with two phones running iOS 8, I can’t be sure what will happen on other devices. Sure enough, one device that Cassie wanted to install to was an iPad running iOS 7. Well, the push library had changed for iOS 8, and the different aspect ratio resulted in a chopped off button at the bottom of the screen. By this point, Cassie and I had a real rapport, but nevertheless, it was embarrassing to have a dud installation, and I took a couple of weeks to shore things up before showing her the next build.

In the end, push did end up seamless and reliable, and Cassie and her friends have been using it to chat. And I’ll never criticize another app for a dodgy push implementation!

Beta Testing

Beta testing had initially been through old TestFlight. In early October, when Apple rolled out the new TestFlight distribution, we jumped at the chance to use it. In the process, I learned a few more lessons. First, I had to create a single, distinct email address for myself to administer the app in developer portal and iTunesConnect. In order to submit the beta build to TestFlight, I had to have my ducks in a row. And of course, the first submission was rejected because we didn’t pre-create the Apple tester a profile. Odd, considering that profile creation (from Twitter, Facebook, or from scratch) is a big part of the app!

After that was fixed, a day later we had a first beta! We soon found out that Apple’s TestFlight app only works in iOS 8. So, even though Mocle works in iOS 7, testers (mostly friends) couldn’t install the build without upgrading their phone. And there’s an odd glitch in that users can’t properly launch the TestFlight App from within non-Apple apps. So, trying to launch the TestFlight app from the Gmail didn’t work. Copying the link in the email to Safari and running it did.

The Future

mocle-titleAnd that bring us to the current day. For the past month, we’ve been using Slack to bounce ideas and files back and forth. There are a few minor tweaks and fixes needed, but in large part, the app is being seen and used by potential investors, only four months after work started. Pretty cool, considering that both Cassie and I have full-time demanding jobs!

I was extremely lucky to have a patient, trusting, fearless client, who always understood that the most important thing is that we get to beta. I can’t stress enough the value of just getting something out. While I have no control over where Mocle goes next, other than pitches for the next iteration, it’s a safe bet that Cassie is going to do big things.

You can find out more about Mocle at Mocle.co.

16 Oct

The Missouri Form 14 App: A Smith & Sons Collaboration

I’m happy to announce the release of a new app, Missouri Form 14, available for the iPhone and iPad, in the App Store now.

form-14-screenForm 14 is a worksheet used to calculate child support amounts in the state of Missouri. It’s notoriously difficult to complete, and attorneys and non-professionals struggle through it each day. My dad created and runs a popular website with self-calculating Adobe forms to help, and released an iPhone app called Form 14 in 2011. Sales were great for a niche product, but in recent years we plotted to release a new, more modern version, with emailing, printing and saving.

After a couple of hiccups discovered during testing, and an unusually lengthy Apple submission process, the product of this effort is finally available for download.

Although I enjoy the subject matter of my other apps – basketball, gardening, and math – this is my most personal app so far, because it was a collaboration between my dad, brother, and myself.

The story of Smith & Sons is fully detailed on the About page, so I won’t rehash it here. But the short of it is that my dad has spent the bulk of his career working in Family Law, and has coded on the side for decades. My brother, Neil, has his own firm in St. Louis – and is always looking for ways to use tech to streamline and optimize his practice. But, as we later discovered, Neil was using other tools to complete Form 14. He didn’t use the original Form 14 app, and is exactly the type of customer that would benefit from upgraded features.

So, development over the late summer was a joint effort. I designed and coded the interface, my dad wrote the logic for calculating all of the numbers and correcting human errors as needed, and Neil suggested alterations and gave us constructive criticism on why he would or wouldn’t switch from existing tools. While I always find app development enjoyable, this particular project took on special meaning, as it was the first true “Smith & Sons” release.

If you’re an attorney or non-professional user of the app, and could use some help with the form – contact Neil at The Smith Law Firm. Direct any comments, feedback, or ideas for other legal apps to info@smithandsonsapps.com or by using the Contact page.

23 Aug

Snapchat: the Unlikely Prototyping Tool

snapchatIf you haven’t heard of Snapchat, it’s the app where users send pictures that self destruct in 10 seconds or less. Last year, the company politely declined Facebook’s offer of $3,000,000,000 for this free app. This year, they might receive an offer for three or four times that figure.

And yes, it’s the app where people send dirty pictures. Which is why, last week when I sent a client a preliminary mockup using the app, I was told that it was the most innocent Snapchat ever. Although I did it partially as a joke about my quiet Friday nights, I realized that oddly, it actually was a great tool.

This is why. When I first get the chance to pitch a person, and learn that client’s style and favorite apps, I can’t help but start building out a convincing (albeit non-functional) interface. I’d never want to have the client next to me during the process – they’d get discouraged by all of the little missteps and experiments in design. And I wouldn’t want to liveblog it as I go, because I want the client to see my design as a whole, fully-branded, and fleshed-out project. But, that being said, I get hyper and fired up about creating, and clients usually do too, especially if it’s close to their vision. And it’s valuable to check in, without giving the client days to study the pictures for minor inconsistencies with their vision.

Which is why Snapchat is powerful for my prototyping. I mock things up in Apple’s tools, take a simple picture of the simulated iPhone or iPad, set the timer to 5 seconds, and tap the send button. It’s just enough to whet a client’s appetite without risking overthinking or judgment. And I really think that within a few seconds, the client can give valuable feedback, along the lines of “that’s the exact font I wanted!” or “use a more traditional font!”

So if it’s Friday night, and you get a Snapchat from my phone, get ready to study the screen. Because it’s your brief glimpse at what I’m building, and I won’t let you look for long!

16 Aug

Working Without Quite Working – Avoiding Burnout

Every software developer suffers burnout. When Matt Gemell, a pioneering iOS figure, walked away from writing apps to focus on blogging and his novel, he filmed himself ceremoniously dragging his programming software into the trash. He’s since blogged about creative burn out. At times, I’ve spent 60 or 70 hours a week on development for months. In order to stay sane, I take walks through a nearby park. I lounge in coffee shops trying to not look like I just emerged from a cave. And sometimes I go for binge-watching TV, playing video games, or reading something light.

A trick I recently learned is that I could avoid burnout and enjoy the downtime without sacrificing productivity. When I do those light things, like stare at a TV, play Super Mario 3 for the hundredth time, or thumb through a magazine just looking at the pictures, I try to consume things at least partially related to what I do. I’ll explain with two examples that also count as recommendations for late-summer entertainment.

Halt and Catch Fire just wrapped its first season on AMC. The show follows a team of people at Cardiff Electric, a fictional computer company based in Texas in the 80s. I pitch it to friends as Mad Men with computers. However, that’s just my attempt to get them to tune in. It’s probably better described by explaining the four main characters and their motivations. There’s a married couple, nerds with great bone structure, who suffer financial failure and the occasional spat in front of the kids. There’s a cocksure, punk rock coder, both wildly talented and charmingly naive. Looks like a model with a platinum pixie cut. The show’s fulcrum and star is a mysterious business man who never stops trying to build Cardiff into an empire – knifing people in the back, waging emotional warfare, smashing windows, and shoving men and women into walls for all kinds of reasons. Beneath the nods to the time period, office makeouts, and furious smashing on typewriters, there’s a lot of sincerity that spoke to me. In particular, the moments when these four characters are confronted with difficult choices. That binary, pick-A-or-B, branching structure gives the show its power. My favorite moment in the entire season is when one character has to make a judgment call on the day of a conference, and you can see on his face when he realizes that his choice will either destroy his career or his personal life. So, while the show can be campy, nerdy, and straight out of a soap opera, I find myself thinking back to particular scenes and their lessons. Should I scrap a feature I truly believe in, just to keep the boss happy? Should I risk significant sums of money when failure could cost me for years? How should I treat coworkers, when I know that they’re not pulling their weight? In this way, I’m not burning out because my elbows aren’t on a desk and I’m not clacking away at keys, and just letting my mind rest a little bit, but still thinking a little bit.

Console Wars is a beefy book by Blake Harris that covers the forces behind Sega, Nintendo, and Sony during the era of the Genesis and Super Nintendo. I picked it up expecting a rehash of a lot of the famous stories of the era, but what I found is that the book’s author wrote in the style of Moneyball. He conducted hundreds of interviews, wrote a long narrative story with some paraphrased quotes, and gave his subjects the right to see those quotes and suggest changes. So, as with HACF, at times it’s over the top, and almost soap opera-ish. But what I realized halfway through was that it’s slyly a book about management, branding, creativity, and business ethics. At work, it’s been suggested that I read some books that teach management skills. Every coder must eventually do it. But to me, those books read like posturing, written by people who never actually had to make hard choices. In Console Wars, Sega claws and scrapes and baits Nintendo into a battle. The company puts on daring publicity stunts, like hooking a Genesis up to a gigantic screen in Times Square, makes tough choices like allowing edgy games not appropriate for kids, and witnesses stubborn and fawning clients and vendors. A personal highlight was when Sega was vetting creative agencies. They’d picked a favorite, but had one last meeting, which they took as a courtesy. The pitch by that last agency included a humorous video of the agency workers showing their proximity to Sega by hitting golfballs off their roof into Sega’s lot and an ultimately successful effort to learn every intricacy of every game that had been released on the Genesis. The book was stuffed with marvelous moments where execs made the same tough decisions, either harming the business or their reputation.

I know what you’re thinking: there’s value in not even thinking about tech for hours on end. You’re right. All I’m suggesting is that if you pick up the business section of the paper before you read sports, and leave HBO on after Game of Thrones for Silicon Valley, it’s possible to work without working, and avoid burnout. Might keep you from dragging your favorite software into the trashcan.

09 Aug

Finding Inspiration With Design Resources

I have a confession. I don’t download many apps. Not Candy Crush, not Clear, not Dark Sky. My 4 year-old nephew was astounded that his Uncle Drew, who makes apps for a living, only had one game (programmed by me) on his iPad. It’s more than a little embarrassing when I’m asked, as an app developer, about my favorite apps and name check some obvious ones: Instagram, Facebook, Tweetbot and HBO Go. But the reality is that using an app usually just tempts me into creating one.

So, how to I keep up with design trends, stay fresh, and keep an eye on competition? The three resources name-checked below should be the first destination for a potential client. All will get your creative juices flowing, and provide lessons on how the most celebrated apps organize and present complex information.

Pttrns

pttrns

Pttrns focuses on one thing: showing screens of nicely-designed new or recently-updated iPhone and iPad apps. A few thousand app screens are separated by app and type. For instance, users can search for screens for the Airbnb app, or comb through dozens of examples of how newsfeeds or maps are presented in successful apps. To me, it’s a hyper-efficient way of finding inspiration, because I can survey the app landscape without downloading apps and going through a registration process. For anyone approaching me with an idea, it’s a valuable way for us to communicate about design principles effectively. Check it out.

Dribbble

Dribbble features work from a massive number of artists, designers, and coders. It also covers all sorts of devices – not just mobile, but also websites, stamps, stationery, sketches, advertisements, and so on. If Pttrns is the department store whose clothes fit you perfectly, Dribbble is the fashion warehouse. You’ll find a lot of gems, but you’ll need an effective way to search to find things applicable to a specific project. Just searching the site for “iPad” will give you icons, sketches, and photos of iPads alongside actual usable interface ideas. My recommendation is to visit Dribbble when you don’t have a particular project in mind, and are just looking for a little inspiration.

Cocoa Controls

cocoacontrolsCocoa Controls primarily directs its content toward app developers, but others can benefit too. Recently, a potential client wanted a fresh way to present information on people. I googled “circular wheel” and found a very intriguing design that could fit the bill. Cocoa Controls goes beyond just showing users the design – it shows how to code the component. The controls are usually publicly available, and in many cases their creators permits usage by others in their own apps. So, whereas on Pttrns and Dribbble, you can’t usually just copy the design, Cocoa Controls is an excellent place from which you can pluck some great, fresh design ideas. Even better, the fact that most controls have publicly-available code cuts down on project cost. If you’re curious, “Cocoa” is a reference to Apple’s programming interface.

If you know of any other great design resources, send them my way!

29 Jul

Looking for Patent App Beta Testers

When I first started developing iOS apps, I was working as a patent agent (and later, as a patent attorney) at a small firm in New York. Without any bright ideas, and limited know-how, I made a couple of simple apps that helped me on the job. The first, Dial-a-Patent, was a simple patent finder. Punch in a number, get a document. The other, the unfortunately-named MPEP Plus gave you the ability to review the MPEP in pdf form, track down patents with a wildly-complex and intricate card-themed interface, calculate patent length, and download some commonly-used government forms. I even threw in an animated version of a guy wearing a jetpack from a published patent illustration. Earlier this year, I removed both from the App Store. Amazingly, these apps, coded in my first few months of studying iOS development, still functioned properly two years later. But they looked dated, and needed a rewrite.

patent-app-1patent-app-2Well, I’m happy to announce that those apps have a replacement, a new iPad app that’s nearing completion. In it, users can search for US patent applications by inventor, applicant, title, application number, and priority number. In many cases, several documents from the case are available as well. PDFs of each can be printed, emailed or saved for later. A couple of screenshots are to the left.

So, I’d like a few good beta testers to take a look. I haven’t practiced patent law in two years, so I’m a little distanced from actual cases, and want to effectively test the app. If you’re a patent attorney, agent, holder, or any other interested party, please let me know and I can send you a build. Expected date of release of the beta is August 11th. If you need an incentive, I’d be happy to repay you with a drink if you’re in New York, or with a bit of friendly advice about the app business if you’re not.

You can email us or use the contact form on this site.

16 Jul

The Way I’ll Remember This

Working“There either is or is not, that’s the way things are. The colour of the day. The way it felt to be a child. The saltwater on your sunburnt legs. Sometimes the water is yellow, sometimes it’s red. But what colour it may be in memory, depends on the day. I’m not going to tell you the story the way it happened. I’m going to tell it the way I remember it.”
― Charles Dickens, Great Expectations

When asked about my switch to app development, I tailor the story to the audience. I tell romantics that I needed a free hobby after buying an engagement ring, go-getters that I needed activities after law school, sports fans that a condensed NBA schedule allowed me to code and watch, lawyers of how I applied to tech after dreading my firm job, and other developers of the epiphany that I could do this as a career.

That’s the way I remember it. The sensations. Feeling powerful as a magician after a tutorial, when a blue box spun to my touch – or did I adjust the box color to red? Stopping on a sidewalk to download my very own app from the App Store – or was that earlier, when the app was approved? The white-knuckle, sleep-deprived frustration when I couldn’t manage to pass data between screens – how’d I find the answer and celebrate? Marveling at the smooth spike in downloads after a generous blogger reviewed one of my apps – were there only a handful of downloads?

Fortunately, there’s no end to the magic. In June, at WWDC 2014, Apple unveiled iOS 8. The company showed a new programming language to try – Swift. Easier 3D game development with SceneKit. A way to sync up your users with background data in the cloud. HealthKit, which might revolutionize the way people track their nutrition and medical information. In the next several months, I plan to run through Apple’s Swift book, work on a 3D skydiving game, add reviews and photos to the NYC Hoops app, and slap on an iWatch for the first time to track my sleep patterns. These are exciting times to design, develop, and use apps.

If you’re considering venturing into app development yourself and would like advice, drop us a line. I recapture that excitement every time I listen to clients’ brilliant ideas.