Software Dev

“What you can see here is that I was learning…”

I love this post from swiftjectivec.com.

πŸ‘‰ Things I Made That Sucked

Not only does he detail the interesting stories of some old apps he made, but also the valuable lessons learned from each app that he shipped.

Highlights

Aim first, then shoot. “Ask yourself why you’re doing what you’re doing and channel your excitement into less action and more thinking before you fire away.”

Pace yourself and don’t complicate. “Take time to learn about design and holy moses don’t toss in an open source project just because it’s shiny.”

There is no overnight success. “Always remember that character is carved out rather than instantly created. Each of these misses can eventually add up to a win.”

My own lessons

Applying the same thought process to my own old sucky apps, here is what I come up with…

Where in the World is Santa Claus?

Ignorance is bliss. I genuinely thought it would be easy to make an augmented reality Santa tracker as my very first iPhone app. Who cared that built-in AR support on the iPhone was years in the future?

I understood that I’d have to learn Objective-C and Xcode as I went. However, I did not appreciate how much there was to learn about location APIs, motion APIs, audio APIs, audio editing, 2D animations, CoreData, the State Pattern, linear algebra 🀯, the terrors (at the time) of shipping in the App Store, plus legal/privacy matters. Also why not translate the app into six languages, starting with Spanish?

And all just to see Santa blink on your screen when you pointed your iPhone north. πŸ˜†

My blissful ignorance allowed me to jump in fearlessly and forced me to conquer a mountain of challenges as I went (or quit).

This app only ever sold a few hundred copies but was a goldmine of experience and made me a mobile developer.

Bedtime Balloons

Simpler is better. App #2 was more useful and less technically challenging than the AR Santa app. Bedtime Balloons let me get into some fun art and more interesting animations. Plus this app actually made a difference in at least a few people’s lives.

Third-party frameworks can kill your app. At the time, there was no standard 2D animation engine for iOS. SpriteKit was not a thing yet. πŸ€·πŸ»β€β™‚οΈ So just like the Santa app, I built the animations around the very nice Cocos2d engine, which would eventually morph and evolve and… break my app. πŸ€¦πŸ»β€β™‚οΈ Yeah, I could have rewritten my app, but again only selling a few hundred copies, I chose to avoid all the sweat and tears and just move on.

Continuous Math Cards

Be practical. I never expected to sell many copies of my barebones but highly configurable math flashcards app for kids.

Written quickly in the new (at the time) Swift language, the app was alright. πŸ€·πŸ»β€β™‚οΈ But it worked for me professionally. My next step would be a full-time day job as an app developer, which had long been my dream.

Software Dev

Scroll Hitch Rate

Xcode 12 is adding a new metric to objectively track how smoothly your app scrolls. This is kind of cool since scrolling smoothness feels right and is a sign of a good design.

Via iOS Dev Weekly.

Me

Three Millions Steps

My Sweatcoin app, which I had reluctantly decided to allow tracking all my steps, reported to me that in 2019, I had walked over 3 millions steps, or the distance from Lubbock (Texas) to Rochester (New York).

This was cool to know, helped inspire me, and turned out to be a surprisingly delightful experience. πŸ˜€ It’s much better than the usual “medal” or fireworks for doing my regular workouts. Granted, there was a full-year buildup for the one.

My only complaint is that the distance shows up in kilometers. I know this is America-centric of me, but srsly, kilometers? πŸ™„πŸ˜† I had to convert them to miles on Google to get any real meaning out of it. πŸ€·πŸ»β€β™‚οΈ (It’s 1472 miles.)

Software Dev

Anxious Offline

I make apps for a living. And one of the things that annoys me most is when an app just can’t handle being offline. It needs to be connected or else it acts unhappy or sick. I love apps that are offline first and silently sync with the network whenever they can. Some examples are Things, 1Password, or the stock iOS Calendar app. I know it isn’t always possible for an app to work offline. You can’t have all the movies on your device, after all. But a non-anxious offline app is a worthy goal that we app developers often forget about as we work through the endless details of making something work at all.

πŸ‘‰ My Apps Have an Anxiety Problem

Above is a great article kind of about offline apps. It’s not a UX article and not a software development article. But it does give a very human-centered perspective on “offline mode” and why it can be so agitating when it’s half-baked or too needy. πŸ˜†

My favorite quote from the article…

We often speculate the end of computing looks like an all-knowing orb or a Skynet spawning android super-soldiers to murder us. But maybe it just looks like a beachball that never stops spinning, never lets us open our apps because they are always fetching the latest data. Wouldn’t that be funny?