Charlie Chapman

Charlie Chapman

I make indie apps, host Launched, and talk about building software on the internet.

St. Louis, MO, USA

Appearance Mac Power Users

821: Developer Roundtable 2025

I joined Casey Liss and James Thomson on Mac Power Users to discuss Apple platform development in 2025, including Liquid Glass, SwiftUI, documentation, subscriptions, and Apple Intelligence. Listen

Talk Swift Bharat 2025

App Marketing at Swift Bharat 2025

I spoke at Swift Bharat about developer-led app marketing, including ASO, product page management, and A/B testing.

Read more
Appearance Sub Club by RevenueCat

WWDC 2025: What Subscription Apps Need to Know

I joined David Barnard on Sub Club to unpack WWDC 2025 for subscription apps, from Liquid Glass and on-device AI to App Store Analytics and measurable promotions. Listen

Appearance Slices: The Deep Dish Swift Podcast

S3E18: Charlie Chapman

I joined Kai and Malin on Slices to talk about Deep Dish Swift, indie apps, Dark Noise, Framous, and what I had been building since my previous visits. Listen

Appearance Automators

164: Automating with Charlie Chapman

I returned to Automators to talk with Rosemary and David about automation, shortcuts, and how Dark Noise and my current workflows have evolved since my first visit. Listen

Appearance Sub Club by RevenueCat

WWDC 2024: What Subscription Apps Need to Know

I joined David Barnard and Jacob Eiting for Sub Club’s WWDC 2024 recap, covering StoreKit changes, App Store Connect updates, Apple Intelligence, and Vision Pro. Listen

Appearance Slices: The Deep Dish Swift Podcast

S2E17: Charlie Chapman

I joined Kai and Malin on Slices before Deep Dish Swift to talk about indie development, RevenueCat, Dark Noise, and what I was excited to see at the conference. Listen

Talk Let's visionOS 2024

Making Money with Spatial Computing

I spoke at Let’s visionOS in Beijing about making money with spatial computing and what developers should understand before building business plans around Vision Pro. Details

Blog Post

On Vision Pro

Note: This post was hastily written on my iPhone while traveling so please forgive the typos.

As I write this, I’m sitting at an airport, on my way to New York to attend a developer lab with Apple to try out Dark Noise on Vision Pro. This time tomorrow I don’t think I’ll be able to really share my thoughts on the product until after its release “early next year”.

And boy… do I have thoughts.

So I want to write them all down. Not as some smart tech insider who understands the ecosystem and can predict how this new product category will succeed or fail in the market. But more as a time capsule to capture the thoughts of a random iOS developer at this point in time. This will probably be an overly long and unorganized rambling… so you’ve been warned.

To cut to the chase… I don’t understand this product. Not just this expensive V1 pseudo-devkit they’re releasing next year. But also the whole future version of this overall product category, even after a bunch of incremental improvements.

Before I explain myself, I want to be clear. I am extremely excited about it all. It looks incredible from a technical and design perspective. It genuinely feels deeply thought through from the privacy angle, overal experience, and of course the classic Apple fit and finish. From what’s been shared publicly so far, everyone who’s worked on it should be extremely proud. Heck, I’m flying to New York just to spend a day trying it out and trying to understand how my app fits on this new platform.

But I don’t understand it as a mass market product.

Let’s start with what does makes sense to me.

Home Theater

Vision Pro looks incredible for watching movies. As long as you’re doing it alone anyway. No doubt it’s going to be hard to beat immersing yourself in a beautiful environment, looking at an enormous screen, and listening to wonderful simulated Dolby Atmos surround sound while sitting on your couch.

Even someone like me, who’s rarely watching a movie completely alone, will enjoy this for the occasional show I watch on my own on my iPad while my wife sits next to me in the living room watching something else. The pass through feature means I won’t feel totally isolated since I can still easily see her and can presumably pause and easily talk to her at any point (as long as the weird outward facing eyes on the headset don’t freak her out too much 😅).

And if the experience is actually good while on a plane? That would be amazing! Assuming it’s culturally acceptable and I wouldn’t feel like a total weirdo putting a big screen on my face.

But a $3,500 super nice personal home theater isn’t a mass market product. And that brings us to gaming.

Gaming

Sitting here in 2023, gaming is the obvious area of focus for a VR headset. So far, it’s the only place where VR has really found any product market fit, with Meta and Valve leading the charge.

Apple doesn’t seem to be addressing this market… at all? The gaming segment of the Vision Pro announcement video simply showed that you could pair a normal Playstation controller and play flat 2D Apple Arcade games on a big screen floating in front of you.

This feels completely bizarre to me. The iPhone has been a massive success in gaming, so I figured they would, at the very least, support some kind of 3rd Party VR hand controllers and allow VR games made for the Quest and Vive to be ported over to Vision Pro? It seems like it’d be the best non-tethered VR gaming system by a decent margin.

But to be fair, VR gaming hasn’t exactly been a game-changing platform. People buy them, and enjoy them. But they’re tiny platforms compared to traditional TV consoles like the Playstation, Xbox, and Switch.

Meetings

A frequently cited use case for VR as a platform is better meetings. A lot of digital ink has been spilled about how much more “presence” or “immersion” VR can provide when on a virtual meeting compared to a traditional conference call platform like Zoom or FaceTime.

This has never really made any sense to me. Maybe I’m being a luddite here, but even the most advanced version of a future VR based meeting experience I can imagine will still be worse than a mediocre web cam based video call. There’s sooooo much information being conveyed by simply seeing an actual representation of a person at that point in time (in the context of their space at that point in time).

“Ooh did you get a haircut, looks great!”

“You look really tired, you doing ok?”

“Whoa it’s dark there, is it storming there?”

These types of interactions happen constantly for me and help build a relationship and further trust with my team/family/friends. Losing that information resolution would require some kind of major gain from the technology. And a “feeling of presence” is difficult for me to imagine overcoming those drawbacks. But I’ve also never tired it myself, so maybe I’ll be surprised.

I do think there is a story around the “presence” thing where VR could enable a group meeting experience where multiple people could be in the same room and sustain multiple, separate concurrent conversations, which traditional video conferencing doesn’t really allow for currently. But that’s definitely not what I’ve seen from anybody so far.

Productivity

This is the one area where I can see a sliver of a compelling story for the future of VisionOS as a larger platform than just a personal home theater.

I can imagine a world where I sit at my home office, usually alone, and instead of staring at a desk full of monitors, I put on a headset and have an infinite canvas of big windows and maybe even some 3d elements all around me.

This is an experience the V1 Vision Pro can somewhat provide. Though the limited power means it couldn’t replace my Mac, and the current iteration of Mac mirroring limits you to a single 4K window. But I can project out a future of incremental improvements that get there. Maybe I could plug my battery pack directly into a beefier Mac for all of my heavier loads like Video Editing. And I’d probably still use a keyboard and trackpad. But that sounds like a nice experience and a much less cluttered desk.

But, importantly, this still wouldn’t replace my laptop. I’m not going to use this when my wife and I are planning a vacation, where we both are constantly showing each other our screens. Or take it to a coffee shop. Or take meeting notes in a customer meeting.

But as a solo use only desktop enhancement (or even replacement if your workload isn’t super heavy), yeah sure this would be a great experience. But how big is that market? And the price would have to drop way lower if that’s the only story right?

Full AR Glasses

“But wait!” I hear you say. “This isn’t about a VR headset, this is just the stepping stone to the eventual AR Glasses!”

This is a framing of this product that’s been around forever, but I don’t think that product is even on a 10 year time horizon from now. I’m not even sure we’ll ever see that product.

As far as I’m aware, there doesn’t exist a display technology that’s transparent, with the the ability to fully obscure your view (to render blacks), contains a backlight (to render whites), and can move the focus distance feet away from your eyes. I can imagine a version of this current product that’s been miniaturized down enough to look like some old-time motorcycle goggles or something, but I find it difficult to believe AR glasses, the way many people have described them, are remotely in the near future.

So what now?

I don’t know! Maybe this is exactly how people have felt about other revolutionary devices. I think, at the very least, Apple and others pursuing VR/AR are at least inventing a lot of cool technology that will make sense in other types of products with clear product market fit. It sure feels like the Spatial Audio features of AirPods may have come out of some of the work for VisionOS. Maybe it’ll be like Google Wave. A product not long for this world, but some innovations that live on to power other products.

Either way I’m truly excited to see how it all plays out.

Read more
Blog Post

Dark Noise Interactive Widgets & iOS 17 Support

Dark Noise Interactive Widgets

Today I’ve released Dark Noise 3.2 with support for iOS 17 and the all new interactive widgets.

Dark Noise widgets have been rebuilt from the ground up to support the all new interactive widgets in iOS 17. This means you can start and stop a sound right from your widget without needing to open the app.

Dark Noise Interactive Widgets Screenshots

There are now 8 different widget’s to choose from, each with 12 themes you can configure between. The small widgets all work wonderfully with iOS 17’s new StandBy mode, making it easier than ever to start your favorite ambient noise when you go to sleep.

Dark Noise 3.2 is available on the App Store to try for free.

Read more
Appearance Slices: The Deep Dish Swift Podcast

Charlie Chapman

I joined the first season of Slices to talk with Kai and Malin ahead of Deep Dish Swift about Dark Noise, Launched, and the wider indie developer community. Listen

Blog Post

Launched Diary: Dark Noise 3.0

Inspired by David Smith’s wonderful Launch Diary episode of Under the Radar I tried something a little fun last week and recorded an audio diary of my experience launching the big Dark Noise 3.0 update.

My original thought was that it would be a member-only episode for the Launched Patreon, but after listening I decided I wanted it to be a little more accessible than that. The episode is available to listen to for free and Launched members will see it automatically appear in their podcast player if they’re subscribed to their member Launched Pro feed.

Hopefully you find this helpful, or at least interesting! If folks like this type of thing I’d like to do more things like this for patrons in the future. If you have any ideas I’d love to hear them.

You can listen to the episode (and become a member if you want to support the show 😉) on the Launched Patreon.

Read more
Blog Post

Dark Noise 3.0: White noise, freed

Today Dark Noise 3.0 is finally released on the App Store.

The biggest change in Dark Noise 3.0 is the introduction of a new free tier. This free tier includes access to 8 free sounds, as well as full support for infinitely looping sounds, Shortcuts, Siri integration, the Timer, and all the deep Apple integrations you’ve come to expect from Dark Noise. This makes the app more accessible than it’s ever been before!

For those who want more features and sounds, there is Dark Noise Pro. This optional subscription or lifetime in-app purchase unlocks over 50 sounds, the ability to create custom mixes, alternate app icons, and alternate premium themes. With Dark Noise Pro, you can customize your white noise experience to your liking.

Dark Noise Tier Comparisons

I’ve been working on this update for quite a while, and a significant portion of that time was spent ensuring existing customers are taken care of. Customers who purchased Dark Noise before this update are called Dark Originals. At launch, they will have all Dark Noise Pro features unlocked automatically. There may be features introduced in the future that require a Dark Noise Pro subscription, but for now Dark Originals will receive all of the same features as Dark Noise Pro.

Dark Noise 3.0 also begins the process of improving the experience of Dark Noise with headphones or nicer speakers. This update includes 4 high quality stereo remasters of existing sounds: Rain, Thunderstorm, Beach, and Airplane Interior. Future updates will include more remasters as well as a new focus on increasing the variety of sounds in Dark Noise.

As always, this update includes a plethora of small enhancements and bug fixes including:

  • Newly updated App Icon
  • Rewritten theme picker
  • New Aurora premium theme
  • New Aurora alternate app icon
  • Mac window size restores from previous session

Dark Noise 3.0 is available now on the App Store to download for free! I can’t wait to hear what you all think. If you’re press you can find an extensive press-kit and more details on the release on darknoise.app.

Read more
Blog Post

Dark Noise Analytics: March 2023

I recently added some analytics into Dark Noise using the new(ish) privacy-focused analytics tool TelemetryDeck in preparation for my big update that will be adding a free tier. I want to get an understanding of how many users I might be dealing with going forward and some of my future plans lead me to want to understand what features, and sounds users are using most within the app.

It’s been a couple of months now so I have enough data to share some metrics with you all. I think it might be fun to see what changes when I switch to a subscription business model with a free tier. As always, this is meant to be helpful! I don’t know if these numbers are higher than average, or lower than average. This is just one data point that’s hopefully helpful to see, especially for other indie developers.

Alright, let’s start with the high-level stuff.

Dark Noise 2023 Stats Overview

It’s only been a couple of months, but so far Monthly Active Users have hovered right around 11,000 to 12,000 unique users. For reference, App Store Connect’s “Active Last 30 Days” analytics (which are limited to only users who opt-in) shows 4,300 users.

The Daily Active Users is surprisingly consistent at around 2,300 to 2,500 unique users.

Dark Noise 2023 Stats Hourly Active Users

The Hourly Active Users very clearly show peaks around nighttime in North America with a smaller peak in the morning confirming my assumption that a large portion of users are probably playing these sounds to go to sleep. The smaller peak in the morning is most likely because most people pause the app in the background or use the timer feature to automatically stop the sound.

Device Info

Dark Noise 2023 Stats Device Info

Looking at device info, about 1/5th of sessions came from Macs vs iOS which I have to admit surprised me to be that high. Good to keep in mind that the Mac does represent a significant portion of my app’s use.

A little over 90% of sessions came from the latest iOS 16 or macOS 13. This will be interesting to watch as I add a free tier. I think there’s a chance that a more accessible app will get a higher adoption among the less tech-enthusiast crowd which may actually increase the percentage of users I have on older OSs. Also, hello there iOS 17! 👋

Noise Play Counts

Dark Noise 2023 Stats Device Info

Dark Noise 2023 Stats Noise Count Donut

Wow… Brown Noise is king apparently 😅.

I expected some popular sounds and then a long tail, but I definitely didn’t expect Brown Noise to be that dominant. It’s cool to see custom mixes are very popular though. I get a lot of positive feedback about that feature, but I always wondered how popular it was to use by most people.

Extras

Dark Noise 2023 Stats Extras

Here are a couple of extra metrics I found interesting. There’s not a lot to analyze here other than it’s nice to have confirmation people really are using these features.

Wrap Up

I’m definitely glad I finally added some light analytics back in the app. I think this will be really helpful in guiding decisions on what features or sounds I should focus on going forward. And while TelemetryDeck is still a little young and rough around the edges, I feel confident in that team’s focus on privacy. And even in the short few months I’ve been using it they’ve dramatically improved the reporting UI.

Hopefully, this is helpful for you all! At the very least I think it’ll be an interesting data point to look back on in a few months after my update to subscriptions and having a free tier. As always, if you have any questions or comments I’d love to hear them on Mastodon or Twitter.

Read more
Blog Post

2022: A Break, a Breakthrough, and a Breakdown?

2022 was a bit of a weird year for me that I think kinda breaks down into 3 distinct parts.

  • A break
  • A breakthrough
  • And… a breakdown?

A Break

Since switching to iOS development and launching Dark Noise in 2019, I’ve been working pretty consistently hard on side project work. I wanted to establish myself in this platform and this community so I could avoid getting pulled back into web development like previously always ended up happening. Dark Noise and my podcast Launched were both mechanisms to keep pushing on both the technical/product side and the community side of things. This was especially important when the pandemic showed up and made connecting with the community much more difficult.

But 2022 was different. I was finally able to travel. We had just bought a new house at the end of 2021. And maybe I was a little burnt out? I’m not quite sure the full alchemy of reasons, but from the beginning of the year to the end of the summer my side projects really took a back seat.

I did keep producing Launched thanks to a schedule that pulled me along and a lineup of guests I was, quite frankly, extremely proud to have on. But Dark Noise development slowed to a crawl. I spun up a couple new app ideas that I ran out of steam on and never released.

And it had an impact! Dark Noise sales were down pretty significantly the first half of the year. I had no major releases in that period and being a paid up front app meant that really hurt.

Dark Noise yearly sales graph

Dark Noise yearly proceeds (released in August 2019)

This might all sound negative but I took advantage of this break and honestly I think I needed it.

I finally got to travel! I finally met coworkers for the first time in San Diego, vacationed with my wife without kids for the first time since the pandemic, went to Europe for the very first time (with the kids!), and finally got to meet folks in the iOS community in person at WWDC 😱.

Flighty Passport showing all flights I took in 2022

My Flighty Passport showing all of my 2022 flights

Also in between traveling, Apple reached out asking for a demo version of the Dark Noise Mac app. And now every Apple retail store in the world has a demo of Dark Noise pre-installed on all of their display Macs! 😱

A Breakthrough

Two things happened at the end of summer that changed my side project trajectory.

Dark Noise Returns

The first is simply Apple’s OS release cadence. The nice thing about Apple’s release cadence is it sort of forces me to get a release pulled together by a certain date. This year, that meant I needed Dark Noise to be ready with iOS 16 support and features like the new Lock Screen widgets in September with a follow up release in October to support the new Dynamic Island and Live Activities.

This release kind of woke me up from the side project blues and got the gears going again with regards to Dark Noise development. This was partially fueled by extra time I now had because of the other breakthrough I had at the end of summer.

Launched With Help

In August I decided I needed some help with Launched. Editing the show was simply taking too much of my limited side project time. I wanted to hire an editor, which meant I needed money. I didn’t want to take on selling sponsorships myself given I was already stretched too thin so I started putting together a pitch deck to see if I could find a network that would let Launched join.

Looking over the pitch deck stats I basically chickened out thinking the numbers were probably too low for anyone to consider and never even reached out to anyone. Instead I simply tweeted them out and moved on.

Surprisingly, this ended up paying off! Jonathan Ruiz had recently ended his show, Everyday Robots, and reached out to offer to edit the Launched. I took him up on the offer and every episode since has been edited by Jonathan.

I cannot express how big of an impact this has had. I am pretty precious with the edit of that show, but Jonathan has been outstanding. And the time it’s freed up has allowed me to pour more time into growing both the podcast (I’m gearing up to start taking on sponsorships) and turning Dark Noise into a potentially fully viable business into it’s own.

A Breakdown

Note: ok this headline is a pretty hyperbolic for the sake of keeping the “break” theme but you have to admit it’s pretty catchy yeah? 😅

The end of 2022 has been… turbulent to say the least. The tech industry has suddenly gotten a little unstable. And Twitter, the platform that the hosts the community I’d invested so much in, was imploding. There are also some personal career things I can’t discuss here that put me, an extremely risk averse personality, into hardcore de-risking mode.

I started putting together action plans. What do I do if I get laid off? How much runway do I have to find another job? Can I grow that runway if my side projects are making more money? Could my side projects be the other job?

This brewed a pretty weird concoction of excitement mixed with anxiety that’s launching me into 2023 with a pretty clearly defined set of short term goals.

  • Switch Dark Noise to a subscription model.
  • Monetize Launched with a combination of sponsorships and membership/Patreon.
  • Invest in the local (St. Louis) iOS community by starting some kind of meetup.

I feel like my goals have usually been more high-minded and “personal growth” focused in years past. It feels a little crass for a major theme to essentially be “make more money” but this is where I am. We’ll see where 2023 takes me, but either way I’m at least coming into it with a side-eye towards handling uncertainty.

Read more
Blog Post

iOS 15 Support with Dark Noise 2.6

Dark Noise 2.6 comes to the App Store today with full support for iOS 15!

Extra Large Widgets

New Extra Large Widgets

iOS 15 introduced a new widget size exclusive to iPad and Dark Noise 2.6 adds support for these new big sizes. Now you can fill your iPad with 16 wide button noises, or a whopping 32 square button noises in a single widget!

And of course these widgets support all of the themes and customizations you’ve come to expect from Dark Noise widgets.

Shortcuts

New Shortcuts Actions

Due to limitations in iOS 14, Shortcuts actions with parameters could not play audio without opening the app up in the foreground. This led to a confusing array of Shortcuts actions provided by Dark Noise. Shortcuts actions with parameters for setting up a timer or volume (began with the word “Start”) had to open the app in the foreground to start a sound, and shortcuts with no parameters (began with the word “Play”) were limited but could play sounds in the background.

With iOS 15 things are dramatically simpler. New “Play [Noise]” Shortcuts actions can play noises in the background and have parameter options for customizations.

There is also a new Shortcut action called “Find [Noise]” for advanced Shortcuts users. This action accepts a string parameter, searches Dark Noise for a matching noise, and outputs a Noise object that the new “Play [Noise]” action will accept as an input.

This allows for more advanced automations where you want to dynamically pass in a string for which noise you would like to play. To be honest I’m not entirely sure what the main use case for this is, but I’ve recieved enough requests for it that I thought it was worth adding. I’d love to hear from anybody who uses it to see what they’ve built!

Bug Fixes and Improvements

A new timer view using iOS 15’s new half sheet popover and some minor bug fixes round out the update. This year’s iOS beta cycle has been… busy to say the least (I moved into a new house!). Things are finally settling down and I’m getting back to work on Dark Noises next major feature!

Read more
Blog Post

Dark Noise for Mac

Dark Noise has come to the Mac App Store! The sleek UI and large selection of ambient sounds you know and love are now easier than ever to use while you work.

Mini Player

Big Sounds Mini Player

Taking advantage of the Mac platform, a new innovative “adaptive toolbar” UI allows you to shrink your window into a Mini Player to keep Dark Noise quickly accessible while taking up very little screen space. Dark Noise for Mac also features full menu support with keyboard shortcuts to feel right at home on your Mac.

All your favorite features

Themes

All of your favorite Dark Noise features are here including timers, custom mixes, widgets, and multiple themes. And with iCloud syncing, all of your custom mixes will automatically be available on your Mac.

Get it now!

Dark Noise Family

Dark Noise for Mac is now available on the App Store here as a universal app including the iPhone and iPad versions. Existing Dark Noise customers will be able to download Dark Noise for Mac for free.

Read more
Blog Post

Overviewer Week 1

Overviewer app icon

Last week, when I released my new app Overviewer, I honestly thought it was a pretty niche product and was just hoping it would find the few other teachers out there who it could help during this wild year of virtual learning. With that in mind, I didn’t really do much in the way of marketing like I did with Dark Noise. But it turns out, there’s more interest in turning an iPhone into a document camera than I thought! 😅

As is tradition, I’d like to go through some quick metrics for the app launch and see if there’s anything. Let’s start with the basics:

  • 📈 181,000 “App Units Sold” 🤯
  • 📍 17,170 Sessions (opt-in only metrics)
  • ⭐️ 192 ratings avg 4.8 stars
  • 📝 57 reviews
  • 💥 0 crashes 😁 (opt-in only metrics)

Alright, we need to address that ridiculous 181,000 “App Units Sold” number because… that’s kind of unbelievable. When something looks unbelievable there’s probably a reason.

The first sign something weird was happening was actually immediately after launch when the app supposedly got 32,000 downloads in the first hour. And while “sessions” metrics are only available to users who have opted in to allow developers to see their analytics, 17,170 seems way lower than what you would expect if there were truly 181,000 users.

It turns out, school districts have access to something called the Volume Purchasing Program (VPP) that allows them to purchase apps for distribution to all Apple devices in their districts. When an app is free, admins can “purchase” as many licenses as they want and some folks on Twitter said they would “generally buy at least 3x the number of devices I could possible deploy to and then deploy as needed”.

So most likely these huge numbers of “purchases” are school admins grabbing way more licenses than they’ll actually use just to cover their bases. If we break down unit sales by “device” I think we can see this in the data.

7 Day Unit Sales by Device

Here you can see about 157,000 units were purchased on “Desktop” while about 24,000 were from iOS devices (and 5 on iPod touch 😆). Overviewer isn’t available on the Mac, so I think it’s safe to say those 157,000 are actually from volume licensing and only a small fraction of those ever end up downloaded to a device. But the 24,000 from iOS devices are probably mostly legitimate downloads.

Press

These numbers are way higher than I was expecting! So what happened? Unlike with Dark Noise, I didn’t try to build up a big TestFlight group or reach out to the press beforehand, but I did make a simple presskit and wrote up a blog post with the story behind the app.

Pretty quickly after releasing my blog post, 9to5Mac, iMore, and Knapsack all wrote up articles about the app. This led to a lot of follow-on articles from loads of smaller blogs around the world. Then later in the day, The Verge wrote about the app! 🤯 I’m going to be honest here, seeing that pop up in my feed almost broke me. I was literally shaking.

I have 2 theories for how I got all this press.

  1. I’ve already built a little reputation with Dark Noise and some relationships that put me on some tech writers’ radar right out of the gate.

  2. I told a compelling, relatable story that fit a broader narrative for the world we all live in right now.

If you don’t already have a reputation or relationships with anybody in the press, there’s not a lot you can do for the first point. I would say making a decent press kit and cold emailing writers is probably the best you can do here.

Point 2 wasn’t exactly something I did on purpose, but it was pretty clear as more articles came in that the story - “Nerdy Dev Makes App to Help Teacher Wife with Virtual Learning” - was the thing a lot of folks were keying in to. It fits neatly into the narrative we’re all currently living through, where we’re trying to come up with interesting solutions to our pandemic world.

I think telling a compelling, relatable story when announcing your app can go a long way to help you get the word out there.

I also made a tutorial video to try to help explain how the app works, and I think this may have inadvertently added to the personalized story behind the app since I’m the one personally showing the app off on camera.

Sources

Overviewer Sources Metrics

Here are the sources metrics from App Store Connect. As expected The Verge and 9to5 did a lot of the heavy lifting on the Web Referrer side, but the size of Facebook in the App Referrers initially surprised me. I searched around and found that a lot of people (usually teachers) were sharing The Verge article on Facebook. Presumably, since the Facebook app has a built in browser, any links from The Verge to the App Store would actually be counted as coming from the Facebook app.

Thanks 🙏

I guess I’ll wrap up by saying thanks to everyone who shared the app with any teachers or educators they know who might find it useful. Seeing that this little app I made is being used in the real world and helping teachers and kids learn during this wild year is extraordinarily fulfilling. I’ve also heard from some people using Overviewer for tabletop gaming with friends over Zoom which is totally awesome and not something I had considered at all.

If you haven’t yet can download the app for free on the App Store here. And as always, if you have any suggestions for how to improve the app, or if you find another alternate use for it outside of virtual learning, let me know!

Read more
Blog Post

Launched Year 1

One year ago today I released my first episode of Launched. While January 2020 feels like a different world than January 2021, I still think 1 year in is a good time to assess how the project is going compared to my initial goals. And just as I did after week 1, I’d like to run through the metrics and see if there are any interesting findings.

But first, some quick vanity metrics!

  1. ⬇️ 53,666 Total Downloads
  2. ⏱ 27 hours 33 minutes of total content
  3. 🐦 1,067 Twitter Followers
  4. ⭐️ 5.0 Rating on Apple Podcasts1

Great Expectations

Let’s start with expectations. In my Launching Launched post I explained the 3 main reasons why I started the show.

Any project that’s going to require a significant investment of your time deserves to have this question answered: Why? For me, there is one “altruistic” answer and two selfish ones.

  1. I want this to exist and genuinely think other devs and creators would find it beneficial.

  2. I think it could help me raise my profile in the community which would help with future app launches and all the nice benefits of having a strong network.

  3. I’d get to meet and talk to a bunch of interesting people whose work I really respect.

My understanding is that the vast majority of podcasts fail to reach a substantial audience, so 1 and 2 may never happen. But 3 is a benefit I get either way, so in the end, I felt it was worth giving it a shot.

I’m counting #3 as an unambiguous success ✅. Just look at this guest list! I still can’t believe I got to talk to all of these people. Not only with huge inspirations for me in the iOS developer community but also internet creator heroes I’ve been looking up to for years and years like Seth Worley and Myke Hurley.

For #1, I’m giving myself a pass as well. The show exists ✅ and I’ve heard from more than one listener that they find it beneficial ✅.

#2 is a bit trickier to measure. Based only on listener metrics I’m not sure how much the show has “raised my profile” as we’ll see in the next section, but I think there’s no doubt it’s helped benefit my network within the iOS community. In a year devoid of networking events, I’ve been able to have regular long conversations with developers I admire every other week.

Metrics

Because Launched is an interview show my expectation for downloads was a lot of variation in each episode (since each guest brings different sized audiences along) but hopefully slow growth over time since each guest’s audience would hopefully bring a few new subscribers.

Something like this: Launched Expectations

Instead, here are the downloads for every episode in year 1. It’s separated by day 1 of release to day 90 of release since the most recent episodes haven’t been out as long and it wouldn’t be accurate to compare total downloads. So you can compare all of the “7 Days” download numbers (green) for each episode for example.

Launched Year 1 Metrics

This wasn’t at all what I was expecting 😅. After the spikyness of the first 5 episodes (which was unique in that I released an episode every day), it pretty much completely leveled off into a nearly flat line. Very few spikes and almost no valleys.

I have to admit that, despite all my lip service about my goals not being about audience size, this was a little disappointing. Admittedly I didn’t do much in the way of marketing after the initial launch, nor do I really know what options I even have (feel free to reach out if you have any ideas 😁). I think I just incorrectly internalized that if I could bring on interesting guests and keep at it regularly that I would probably grow, despite intellectually knowing that the vast majority of podcasts don’t reach that big of an audience.

There is some hope, however! Episode 20 with Brian Mueller was the first episode after an extended “Back to School Break” and it saw a pretty big bump in downloads (I don’t have 90 day numbers for it yet though). And it looks like each episode after has sustained a larger average than before the break.

Time will tell if this is a trend or a fluke, but it does feel nice to see a little boost in the audience size.

And here’s the user agent and location metrics:

Launched Listener Data

I don’t have much commentary to add here other than pointing out that Overcast having a bigger percentage than Apple Podcasts is, I think, evidence of the nerdy, iOS centric profile of my listenership 😅.

Also, as someone who lives in a small midwestern American city, it’s very cool to see how many countries people are listening from!

Diversity

One of the areas where I’ve failed my original ambitions is ensuring a diverse list of guests. Of the first 24 episodes, 14 are white men, and only 3 episodes have women guests.

I think my failure here comes before scheduling and booking. My problem is I don’t know or follow enough diverse indie developers.

Everybody I bring on the show is someone whose work I genuinely admire and look up to. And I really don’t think the right thing to do is to bring on token diverse people, so I need to expand my network to find the folks doing interesting work who come from different backgrounds than me. I don’t know what the best method for addressing this is though, so if you’ve read this far and you have any ideas please let me know!

Wrap Up

Overall I’m really proud of Launched. I think I’ve produced a high-quality show featuring interesting guests filled with fun and educational conversations. It’s honestly a lot of work, but for now, it’s worth all of the effort.

2020 threw a curveball at everybody’s life and for me Launched helped get through it. It provided the excuse to connect with a lot of developers I was really hoping to get to meet at conferences and meetups that no longer happened this year.

To all of you who listen, I can’t thank you enough.

  1. In the US. I don’t know how to aggregate international Apple Podcast reviews 

Read more
Blog Post

Meet Overviewer

Overviewer app icon

Today I’m releasing Overviewer, a totally free new iOS app for teachers that can turn your iPhone into a document camera on Zoom or other video conferencing apps. It’s proven difficult to explain what the app is actually for if you don’t already know what that is, so let’s start with a quick explanation of a document camera (or visualiser for our UK friends).

Document Scanner

iOCHOW S1 Document Scanner - $219

A document scanner is essentially a mounted webcam pointed straight down on a desk that can project or stream a top-down video of anything the presenter wants to physically show on their desk. Many teachers use these now instead of the old overhead projectors for showing worksheets, working through math problems, ect while teaching.

My wife is a Kindergarten teacher and when COVID hit she had to figure out how to teach a bunch of 5 and 6 year olds how to draw letters over Zoom. Initially she made her own document camera using her iPhone and the default camera app. Zoom has a wonderful feature where you can share your iPhone’s screen by plugging into your laptop with a lightning cable or even wirelessly over AirPlay but when you open the camera app there are two issues.

  1. There’s a bunch of buttons and chrome around camera view so it looks clunky
  2. The camera app doesn’t actually rotate when you turn it sideways (just some of the labels) so you can only share your phone in portrait mode which means huge black bars on each side of the zoom call and a tiny video stream of what you want to share.

So being the dorky husband that I am, I quickly built an app that does nothing other than show what the phone camera sees with zero chrome, and properly rotates the whole app so that you can share it in landscape on zoom. This did the trick and she actually used it! But over time she’d point out little annoyances and I’d add a feature here and there to make it a smoother experience like a button to turn on the flashlight to light the desk, and one for forcing a rotation change. I also went ahead and fully supported streaming it over AirPlay as a sort of learning experience and before I knew it I had an interesting little app on my hands.

I figured this may be useful for other teachers out there so I gave it a fresh coat of paint, a fun icon (with alternates of course 😄) and put it on the store for free. To be honest, I’m not really sure how many people will find this useful. It’s pretty tailor made for exactly my wife’s use case but I would think that would be a pretty common one for teachers to be in right now in our current virtual teaching world.

So if you’ve made it this far, here’s what I’m asking of you. I know most of you probably wouldn’t use this yourselves, but if you know of any teachers or educators in your life that this may help, tell them about the app. It’s totally free for a reason! If getting this into the store makes one teacher’s life easier this year I’ll consider this whole side-project a success 😁.

I also made a little video tutorial to show how it works. This video is specifically for use with Zoom, but the same principle should apply to any video conferencing app that lets you share an iPhone screen.

There's also a link to this video inside of the app as well.

You can download the app on the App Store here. If you have any suggestions for how to improve the app, or if you find an alternate use for it outside of virtual learning, let me know!

Read more
Blog Post

First Sale

Dark Noise has been in the App Store for over a year, yet I’ve never actually run a sale before. In fact, the only price change I’ve made at all is increasing the price by a few dollars when I shipped my 2.0 update.

This was due partially to laziness, but also a slight sense of feeling gross about sales for some reason? Truth be told I don’t have a good reason for this, but I had this generic (and quite frankly silly) notion in the back of my mind that it feels slightly desperate and devalues the product somehow.

So when François reached out about joining his Indie App Santa project and putting Dark Noise on sale for 50% for 1 day I was weirdly hesitant. But I figured “what’s the worst that could happen?” and agreed.

Based on literally no data I kinda figured that I’d probably get around double the sales from the Indie App Santa Twitter account promotion and me tweeting about it from my account. At 50% off this would mean I’d pretty much be breaking even on revenue. Since Dark Noise is paid up front with no subscription or in app purchases, this would basically be a wash with a slight bump in users.

I was wrong.

Here’s my sales for the month of december. See if you can spot what day the sale took place! 😅

Dark Noise December Sales

Note: This is sales, not units so the 50% off is already taken into account.

This was a way bigger bump than I was expecting, easily making up for the price difference. It’s worth noting it did trail off pretty quickly after the sale ended. It’s a bit hard to tell exactly how quickly because sales bumped again a few days later on Christmas when the app was mentioned in a few “Best apps for your new phone” articles.

One thing I’m curious about is what’s driving the sales spike. Indie App Santa has almost 5,000 followers on Twitter who are actively looking for app deals, so I’m curious how much is driven by them and how much is the sale itself.

Lets look at the Sources data provided by App Store Connect.

Dark Noise Sales Sources

As expected Web Referrers and App Store Search have big spikes, but curiously so is App Store Browse (customers who found the app through general App Store browsing vs direct link or specifically searching my app). Possibly this is because the price is lower so more people who saw the app converted to sales? My conversion rate for the day was up 59.3% (though still very low) but there’s so much noise from all the direct sales that this is hard to really tease out what’s really going on here.

Let’s dig into where the web referrers are coming from.

Dark Noise Web Referrers

The actual numbers here are much lower than the numbers on the aggregated "Sources" page in App Store Connect. Not sure what to make of that?

“t.co” is traffic coming from Twitter (I think that’s something to do with their url shortener or analytics or something?) so that definitely lines up with what I was expecting. And most other referrers are probably from people doing some research on the app through my website or reviews written about it after they saw the app on sale on Twitter. Somebody also made a Reddit post on a subreddit that promotes app sales that drove some sales as well.

App Referrers also has a few interesting tidbits.

Dark Noise Web Referrers

Here again actual numbers are lower than the aggregated "Sources" page.

The excellent app Scriptable at the top is, I believe, a result of their partnership with Indie App Santa where you could make a widget for what app is on sale each day using Scriptable. Tweetbot and Reddit apps make sense for the same reasons as the web traffic (I believe the official Twitter app will always show through Web Referrers because it routes you through Safari when you click links?).

The interesting bit here is that there appears to be some apps out there still that track apps with price drops that can drive at least a some sales. I’ll have to experiment at some point by lowering the price with zero promotion and see how that impacts sales for the day.

Overall I think this experience shows me I should definitely be experimenting with pricing and sales more (duh!). I think I still want to keep them relatively infrequent for now, but in 2021 I think I’ll probably do some more experiments to see what I can do when promoting them on my own.

Read more
Blog Post

iOS 14 Support With Dark Noise 2.1

With Apple’s release of iOS 14 I’m releasing Dark Noise 2.1 with support for many of the new iOS 14 features. And it’s available in the App Store today!

Widgets Widgets Widgets

Large Widgets

The biggest new feature of Dark Noise 2.1 is multiple new widgets that act as a shortcut to quickly start playing your favorite sounds. There are 3 new widget types to choose from and you can create as many as you want and place them anywhere on your iPhone home screen1. Each of the new widgets allow you to customize the theme and select a noise for each button.

Single Widgets

The “Single Sound” widget has a few more features. You can configure each one to start your sound with a different timer and even automatically set the volume to your prefered level, perfect for a nighttime routine.

Other features

Along with the new widgets there are numerous enhancements included in Dark Noise 2.1

New Timer View

New Timer View • The timer view has been rewritten to make setting a timer more streamlined.

Siri Enhancements

Improved Siri Support • When asking Siri to play a sound on Dark Noise that has multiple options, Siri will show you the alternatives and you can select a different sound to play.

New Icon Picker

New App Icon Selection Page • The app icon selection page has been rebuilt to show off the alternate app icons a little bit better.

Wind Down • Dark Noise will now show up in the new iOS Wind Down feature.

Dark Noise 2.1 is available on for iPhone and iPad on the App Store here.

Promo Video

For context read this Twitter thread on the long windy road to getting this through to the store 😅

  1. On the iPad they are currently still limited to the “Today View” to the left of your home screens.. 

Read more
Blog Post

Dark Noise 2

Today I’m finally releasing the biggest update of Dark Noise to date to the App Store! Dark Noise 2 is the next major evolution of the best ambient noise app on iOS. Mixing sounds has been the most requested feature since launch and I’m excited to announce it’s finally here! A lot of work went in to maintaining the simplicity and tight iOS integration Dark Noise is known for and I’m very proud of the results. Along with iCloud syncing, new sounds, new icons, and loads of bug fixes this is the biggest update to date.

New Features

Create Mix Examples

Create Mix • Build your own custom mix from any number of sounds. Mix multiple of the same sound for even more variety! Animated icons can be built using the new icon creator or images or animated GIFs can be imported from the Photo Library.

iCloud Syncing • Custom mixes and favorites will now sync to all of your devices using iCloud! No need to sign in or configure anything, your data will simply follow you to all of your Apple devices.

New Sounds

8 New Sounds • New sounds have been added to the Dark Noise catalogue for playing on their own or added to mixes including:

  • Rain on Tent
  • Wind Chimes
  • Windy Trees
  • Seagulls
  • Lake
  • Ship Deck
  • Flag
  • Lullaby

iPad Pointer Support • Navigate Dark Noise 2 using a trackpad or mouse with full pointer support on the iPad.

New Icons

New Icons • Inspired by the new design of macOS Big Sur a skeuomorphic icon was added to the list of custom icons. And the new Launched icon is in honor of my new(ish) podcast of the same name.

And More! • Bug fixes, improved shortcuts support, and a rewritten audio engine, and even a new “Auto Volume” experimental feature round out the biggest update yet.

What’s Next

There’s still so much more I have planned for the future of Dark Noise. First is getting ready for iOS 14. Some early tests with the new Widgets look really promising, and improvements to Siri and Shortcuts look to unlock even more automation possibilities. After that I want to expand on the customization abilities I’ve added with the create mix feature.

Thank you so much for all of your support and kind words over the last year. I’m so excited to see where Dark Noise can go in the future!

Dark Noise 2 is available on for iPhone and iPad on the App Store here.

Read more
Appearance Swiftly Built

WWDC Debrief Day 4

I joined Swiftly Built for a WWDC 2020 day-four debrief with Ben Gohlke and friends. Watch

Appearance Everyday Robots

WWDC 2020

I joined Everyday Robots to recap WWDC 2020 and talk through the Apple developer announcements that stood out that year. Listen

Blog Post

Parallax Effect in UIKit - NSCoder Chicago

This year one of my goals was to try to get into confrence speaking. That… uh… isn’t exactly working out thanks to our good friend COVID-19. But I was given the opportunity to do a quick talk for a remote NSCoder Chicago meetup and I talked about an experiment I’ve been doing using UIInterpolatingMotionEffect to create some parallax effects in UIKit. This is a raw screen recording with only my audio.

Read more
Blog Post

Tutorial: Creating Sketch Style App Icons with Procreate on iPad

For each episode of Launched I create a custom version of the podcast artwork where I replace the paper airplane with a “sketchified” version of the guests app icon (or something else representing the guest if they aren’t an app dev or can’t give me permission to use their icon).

This has eventually led to a few developers adding that icon into their app as an optional custom app icon, which delights me to no end ☺️. I tweeted as much and there was a lot of questions asking how I make them. It’s pretty straight forward so I made a little tutorial showing how I make these sketch style app icons using Procreate on my iPad Pro.

I’ve also created 2 files that I use when creating these icons that you can download here:

As always, feedback is appreciated. If I said anything dumb (likely) or if you end up using this technique for a project yourself I’d love to hear about it on Twitter!

Read more
Blog Post

Launching Launched

After launching my new podcast Launched last week, I’d like to share basically everything I did to design, structure, and plan the launch of the podcast. This will probably be overly long so, uh, buckle up.

I’m not pretending to be an expert at this. I just want to share everything I tried with the hope that it may help others in the future (and so I don’t forget 😅). Check out my previous post outlining the week 1 stats to get a sense of what kind of results I ended up achieving with my approach.

I’m also not going to be talking about the technical aspects of recording a podcast. The purpose of this post is to talk about designing and launching the podcast, but I would really like to write about my recording set up and editing workflow at some point. If that sounds interesting to you let me know on Twitter and I may bump that up on my priority list.

The Idea

Let’s start at the beginning. Last year while building my first app Dark Noise I ran across a series of interviews that Heidi Helen Pilypas did after launching her app When Did I? that I found extremely useful in preparing my own launch.

A few months later, this four Tweet thread pretty much kicked off the show in my mind.

Launched Beginning Tweet Thread

The idea of an interview show that could feed off of the constant stream of interesting new apps coming out was really intriguing. I wanted this to exist, and I thought I might be able to actually pull it off.

Why tho?

Any project that’s going to require a significant investment of your time deserves to have this question answered: Why? For me, there is one “altruistic” answer and two selfish ones.

  1. I want this to exist and genuinely think other devs and creators would find it beneficial.
  2. I think it could help me raise my profile in the community which would help with future app launches and all the nice benefits of having a strong network.
  3. I’d get to meet and talk to a bunch of interesting people who’s work I really respect.

My understanding is that the vast majority of podcasts fail to reach a substantial audience, so 1 and 2 may never happen. But 3 is a benefit I get either way, so in the end I felt it was worth giving it a shot.

Choosing a Name

Naming is hard. I think this is a truism in basically every discipline (except Sony game consoles 😉).

For this show, I wanted a very simple word that conveyed the idea releasing an app. I knew early on that I didn’t want it restricted to only app developers, so I wanted to keep it a little more vague while still conveying that idea. Here’s my note with the names I was considering:

Launched Name Ideas

Launched fulfilled all of my checkboxes. It was one word, vague enough to allow for interviews with people in all sorts of industries and disciplines, and it wasn’t already taken in Apple Podcasts (though “Launch” was). It also just sounded cool.

Once I had a name, I needed a logo. I think the logo for a podcast is actually really important. It’s basically your one shot at convincing someone to try out the show, and it’s your only real visual connection you get to make with most of your audience once they subscribe. It also gives me something tangible to hold on to while developing the project that makes everything feel more real.

A name like launched immediately conjured up images of rockets but I felt like that wouldn’t stand out as much as there are a lot of space podcasts with rocket logos that seem to overlap audience with the technology category. I also toyed with the idea of a shipping container but couldn’t find something I liked.

I landed on the idea of a paper airplane. I liked the idea of it being a smaller, handcrafted item as I knew most of my guests (and audience) would be indies. And while there are a million email apps that use a paper airplane icon, I didn’t see any other podcasts using it as their icon.

I started by sketching some ideas in the wonderful Linea Sketch app by The Iconfactory.

Icon Sketches

Early artwork concept sketches made in Linea Sketch.

After asking for feedback on Twitter I got an unexpectedly strong positive reaction to the “sketch” look. I was originally thinking of going with a cleaner style, but I thought a rougher look would actually fit with the theme of the show being about people creating something new.

I also really liked encasing the icon in the iOS squircle. I knew I was going to want to make custom artwork for each episode (we’ll get to that later) so I figured this would give me an easy spot to place custom assets.

I wanted a strong color rather than black and white sketches, so I started playing around with a blueprint look. This would still fit the rough sketch style but also give me a strong pop of color to hopefully stand out in podcast apps.

Icon Drafts

Different variations I tried of the paper airplane artwork design.

I ended up going with the simple clean outline with various sketch marks on it (top right). I don’t really have a good reason other than it felt the nicest.

Custom Episode Artwork

I love shows that make custom artwork for each episode so I wanted to do the same for Launched, but I knew I’d need to come up with a system that allowed me build them quickly. If it was cumbersome to make, I knew I’d be angry at myself in 4-6 months when the novelty of the show had worn off and it started getting overwhelming.

Custom Icons

Some of the custom icons I created for Launched episodes. The "Beta" artwork is used for the draft episodes I send to guests to let them listen and ask for edits if they want. The glass of ice is used for the "Ice Breaker" chapter in each episode.

The iOS icon provides a nice frame that I can swap in a hand drawn style of an app icon or symbol that represents the guest of that week. It’s also extremely fast for me to create these using Photoshop on my iPad Pro and Apple Pencil. I can just duplicated my existing Photoshop psd file, grab an image of the icon from the internet, and trace over it with the pencil.

Timelapse of my process creating the custom artwork for each episode using Photoshop for iPad.

It only takes a few minutes to put most of them together and I think the style looks really interesting and fits the whole theme of the show. It also could make for an interesting custom app icon if any developers that I interview wanted to sneak it in their app. 😉

Note: It’s important to point out that I’m asking everyone if it’s ok to use their logo. Most people have been fine with this, but there are cases where people aren’t comfortable or even legally can’t for trademark reasons so keep that in mind if you ever want to try something similar.

Structure

With a name and logo out of the way, I was ready to start putting together the structure of the show. Starting at the highest level, I needed to pick a schedule. While I might be able to sustain weekly for a short amount of time, the complexity of scheduling new guests in different timezones every episode is too much for me to attempt weekly. So I landed on a target of every other week.

Side Note: The app CalZones by David Smith has proven to be extremely useful scheduling all of these interviews across many different timezones. I’ve also been told Calendly is very good for this as well but I have not tried it yet.

I don’t actually listen to a lot of interview shows so I wasn’t sure what the best approach would be to structure the episodes themselves. I knew that I wanted them to be conversational in tone but I wasn’t sure how to keep things from feeling too stiff since most of the time I would be speaking to people for the first time.

I happened to be chewing on this problem while listening to an episode of Upgrade where they start each show by asking one of the hosts, Jason Snell, a random question given by the audience. They’re often off the wall questions like “When putting in AirPods which ear do you put in first?” This often leads to a funny conversation that get’s the episode going with a fun energetic vibe.

I decided to co-opt that idea as an ice breaker question and so far (5 episodes in) I feel like it’s succeeded in building a little rapport with the guests before getting into the episode.

The bulk of the episode is outlined on a per episode basis using research on the particular guest and letting the natural flow of the conversation guide me from section to section.

At the end I’m asking each guest for a person who’s been an inspiration for them that they want to shout out and recommend others follow. This serves two purposes:

  1. I want to use this podcast as a way to elevate people making cool things and this is a way to add to that.
  2. I selfishly want to find more cool people to follow and potentially try to get on the show. 😏

So this leaves the general show template like so:

  1. Intro
  2. Ice Breaker
  3. Guest specific stuff
  4. Guest’s inspiration
  5. Where to find guest (Twitter/website/ect)
  6. Outro

It’ll be interesting to see how this changes over time, but so far I’ve been happy with the balance of structure and loose conversation.

The Launch

My understanding with podcasting is that consistent output is the best way to grow an audience. If you don’t have a big pre-existing following (which I did not) launch day is not really that important. Despite this, I figured I’d try to come up with something to make as big as a splash as I could at launch hoping this would help boost numbers which would make it easier to occasionally book bigger guests, which in turn would help boost numbers… ect. ect.

A few years ago, a motion designer named Joey Korenman started a series of After Effects tutorials called 30 Days of After Effects where he posted a brand new After Effects tutorial every day for 30 days straight. Tutorials are really difficult to put together so this wasn’t something that I had ever seen before and it’s always stuck with me how quickly that intense burst of output catapulted his brand, School of Motion, into the limelight.

I decided to try a similar approach with Launched but at a smaller scale. Not only was 30 episodes in a row way more work than I could manage, but I don’t think most people would actually want 30 episodes clogging up their podcast queue that quickly. So I settled on 1 business week of 1 episode a day to kick off the show. This would hopefully generate some buzz as well as give listeners multiple episodes to hear in a row to decide if they liked the show, rather than one and done.

On the advice of Matthew Cassinelli I also created a short teaser episode and released it a month before launching the show. This ensured the podcast was properly set up in all of the major podcast directories and players, and also gave me a small list of subscribers who would get the first episode immediately after release.

I also Tweeted a lot about the journey leading up to the launch of the show as has apparently become my thing. 😅 This may not be broadly applicable advice but I do think it helped build up a sense of excitement around the launch, and helped make more people invested in its success.

Wrap Up

I’m really happy with how the launch of the show turned out. I’m proud of the episodes released so far and I’m so excited to keep making more and develop the show over time. Hopeful this post was helpful or at least interesting for you. If you’d like to talk about anything related to this you can find me on Twitter at @_chuckyc.

Read more
Blog Post

Launched Week 1 Stats

Last week I launched my new podcast Launched and I wanted to share a little bit about how I went about creating the show similar to what I did with my posts about designing and marketing my app Dark Noise.

But before I write that up I want to share some stats about how week 1 went. I’m very happy with how it’s been received so far, but honestly I don’t know the podcast world enough to tell you if these numbers are good or not (though they are significantly better than my previous podcasting efforts 😅).

As I’ll explain in a later post, I released 1 episode a day all week, so there are 5 episodes included in these stats. Here’s the quick rundown:

  • ⬇️ 5,727 total downloads
  • ⬇️ 1,047 average downloads per episode
  • 📖 13 Reviews
  • ⭐️ 22 Ratings

Downloads

Because it’s an interview show, there is expectedly quite a bit of variance betwen episodes. I don’t think it’s fair to guests to share stats attached to their names, so I’m not labeling which episode is which.

Week 1 Top Episode Downloads

Total downloads per episode after week 1 (in order of downloads)

Episode Lifespan

Downloads per day per episode

It’s really hard to make to many assertions based on this data so far. There’s a lot of variables from the guest down to the day of week the episode went live.

Demographics

Let’s look at some demographics.

User Agents

Apps used to download episodes. Spotify not listed here but only has 119 "starts" which sets it between Breaker & Firefox

Locations

Where episodes were downloaded from.

Two things stand out here. Overcast is dramatically over represented compared to my understanding of the industry average. This makes sense given the more tech (and Apple specifically) target audience, but that’s still pretty striking. It makes me happy that a large portion of the audience is using a player that supports the chapters and custom artwork that I put a decent amount of work into. 😊

I’m also pretty pleased that the rest of the world just edged over 50% vs the United States. It really makes me goofy smile to know that there are people all over the world listening to something that I’m making.

Wrap Up

The only other metrics that may be interesting are the social network numbers. The podcast’s Twitter account has 395 followers which I’m pretty happy about. And the subbreddit r/LaunchedFM has 63 members which… isn’t much in Reddit terms. I’ll talk about this more on an upcoming post, but I’m not sure Reddit makes as much sense for a show of this size as I was originally thinking it would.

If you’re curious about any other metrics please don’t hesitate to ask me on Twitter. I like to be as much of an open book as I can on this stuff.

And hopefully I’ll get a post up relatively soon walking through the development and marketing process of Launched!

Read more
Blog Post

Introducing Launched

Launched Thumbnail

Today I’m really excited to be releasing the first episode of my new podcast Launched. Here’s the pitch:

Launched is a fortnightly show where I interview app developers and other creators about their experiences releasing their creation out into the world.

Last year while I was working towards the release of Dark Noise I found that listening to developer interviews on podcasts was extremely helpful in preparing me for what to expect and giving me ideas on how to build a marketing plan around the release. My hope is that Launched can be a resource for aspiring creators by providing a platform for people to share their experiences launching something into the world.

I’m pretty excited to see where this goes! Rest assured I’ll be posting updates with stats and I’ll try to do a post outlining everything I’ve done to try to market the show similar to what I did with the Marketing Dark Noise post.

If this sounds interesting you can find links to subscribe here. And if you enjoy it please consider giving me a rating or review in Apple Podcasts

You can also follow the show on Twitter at @LaunchedFM and check out the dedicated Subreddit /r/LaunchedFM to talk with other listeners about the show.

And if you’re a creator who’s recently (or soon to be) launched something and would like to tell your story, you can apply here to potentially come on the show.

Read more
Blog Post

Dark Noise 1.2

Today I’m releasing the first update to Dark Noise bringing new iOS 13 features and adding a few new sounds. With Dark Noise 1.2 I’ve brought 3 main feature improvements:

Dark Mode

Dark Noise already has multiple themes, including a pure black mode, but I still wanted to take advantage of the new system-wide dark mode in iOS 13. In Dark Noise 1.2 you can now select a separate theme to use for the system dark and light modes.

Dark Mode Theme Settings

This will allow you to quickly switch to a darker theme by hitting the switch in control center, or automatically switch themes based on the time of day using the new system appearance scheduler.

Parameterized Shortcuts

In iOS 13 Apple added a new feature to Shortcuts that allows users to set parameters for actions provided by apps. For Dark Noise, this means that you can now create a shortcut action that sets a timer with a user specified time set directly in the shortcuts app.

Dark Mode Parameterized Shortcuts

There’s a few unfortunate caveats that I need to address however. Shortcuts with parameters cannot run audio without opening up the app first (unless you’re Apple Music 😒) so any of the new shortcuts will not be able to run in the background.

For this reason, I’m also including the old style shortcuts that will allow you to run the audio in the background. The old style shortcuts all begin with the word “Play” and have a toggle for “Show When Run”. Unfortunately there is a new bug (feature?) in iOS 13 that only allows me to add 10 of these so you will see the most recently played noises as options in the shortcuts app.

On top of this there is also now a “Play Pause Noise” shortcut that will pause the currently playing noise. This will work even if the “Mix Audio” setting is turned on which prevents the system level “Play/Pause” action from working.

Siri

Dark Noise is now integrated with Siri in iOS 13! This means that without setting anything up ahead of time you can say “Hey Siri, play distant thunder in Dark Noise” and Siri will start the sound.

Dark Noise Siri

In the current version of iOS 13, Siri integration is still a bit rough around the edges. It frequently gets the noise name wrong and will fail to play. It’s also not currently working on the HomePod since, as of the time of this writing, the HomePod software still hasn’t updated from iOS 12. These issues should improve as Apple releases updates throughout the year, but I wanted to make sure I called them out.

New Sounds

Last but not least, Dark Noise 1.2 has 4 new sounds, each with custom animated icons of course! This first batch was based on the most highly requested sounds since launch, but I’ve been collecting all of your suggestions and will keep adding more over time so don’t worry if your request isn’t included.

Here’s the new sounds for Dark Noise 1.2:

  1. Cat Purring
  2. Spaceship Engine
  3. Frogs
  4. Distant Thunder

New Sounds

What’s Next?

By far the most highly requested feature since launch is the ability to mix multiple sounds together to create your own personal soundscape. Now that my iOS 13 update is out of the way, this is my top priority.

I’m a slow, deliberate developer and this is not my full time job (currently 😏) so it will take some time to do this right. I’ve already started playing around with the design and I would love to hear any feedback or ideas from you all through Twitter, Reddit, or Email.

You can find the app (as well as a spiffy new app video preview) on the App Store today!

Read more
Blog Post

Marketing Dark Noise

It’s been 1 month since I released my app Dark Noise in the App Store. The release went very well, and I’ve had quite a few people ask how I marketed the app. I wanted to post this right away, but first I wanted to let the launch stats settle down so you can get a better picture of what the actual results are.

Let’s start with some quick 1st month stats.

  • 📈 4,545 Downloads
  • 💰 $19K Sales
  • 💵 $12.6K Proceeds (after Apple cut)
  • ⭐️ 212 ratings with a 4.8 avg
  • 📝 43 reviews

I’m really happy with these numbers, but they definitely don’t paint the entire picture. Let’s look at a graph of unit sales over the first month.

Dark Noise Month 1 Unit Sales

Metrics from App Store Connect

I think launch week went exceptionally well for a first time developer, but sales have settled down to averaging around the 20-30 downloads a day range. I’m sharing this to give some context around what the marketing of Dark Noise produced.

Alright, now that the context is out of the way, let’s get to the goods. Don’t think of this as advice as much as it’s a document detailing everything I did to help market Dark Noise.

Private Beta

Once I had a usable app that could successfully play a few white noise sounds and I was confident enough that I was actually going to release the app, I enrolled in the Apple Developer Program and opened up a private beta through TestFlight.

Initially I targeted a single user, my sister, and made sure it had a sound I knew she listened to at night. Her first request was for a timer, and almost immediately it was helpful talking to a real person using the app.

Over time I slowly added people to the beta, collecting feedback and bug reports. It was surprisingly difficult to show people the app at this early rough stage, but I cannot express how valuable it was.

Getting early feedback allowed me to make some design changes before I went too deep in one direction. Just as importantly, it helped me squash a lot of little embarrassing bugs before opening the beta to a wider audience.

There was also a higher level of engagement per user at this stage, since everybody was either a person I knew, or someone who had to explicitly ask for an invite through Twitter.

Public Beta

Once I had the app in a state I felt was worthy to really start showing off, I opened the beta to the public. I sort of treated this stage like a soft launch of the app. I had a lot of work I wanted to do, but I treated these users as if they were customers and I created an app Twitter account to tweet out updates and respond to user feedback. I launched the beta on July 9th, so about a month and a half before the actual launch.

Opening the beta to the public early was definitely one of the best decisions I made. The feedback from users was invaluable, and I built up an excited audience, who was invested in the app by launch. This really helped build up some pre-launch hype, and I received a lot of reviews and tweets on launch day from people that started with “I’ve been on the beta for a while…”. I believe this lent an air of credibility that I wouldn’t have had otherwise as a brand new developer.

The last note I’d like to make on the public beta is that I really tried to show beta testers how much I appreciated their help. I tried to respond to emails quickly, but also conversationally. If they sent me an idea I didn’t plan on implementing, I tried to explain why. And when people sent bugs or features I used, I tried to express how thankful I was both in my response, and also by adding a little personalized thank you in the beta release notes.

Twitter

Probably the biggest contributing factor to the successful launch of Dark Noise was the excitement I built leading up to the launch through Twitter.

While working a feature I’d usually tweet about the progress and hype up the next beta release if there was something coming. Frequently people would chime in with feedback or suggestions that I could incorporate immediately. This both made the app better and also gave those who engaged on Twitter a little slice of ownership in the app. This is one of those things that only an indie app can pull off, and I think it’s part of what makes people love them so much.

One feature that really blew up was the custom app icons.

Tweet about custom icons

Open tweet in Twitter here

Earlier this year I saw David Smith add a tribute to Myke Hurley in his app CalZones by creating a theme called #MykeWasRight (the name of his old Tumblr blog) as a thank you for some help in the early stages of the app. I love Myke’s podcast Cortex that he hosts with CGP Grey so I thought it might be fun to add a similar tribute to my app in the form of a custom icon.

This idea really excited me and I ended up running with it and creating a bunch of custom app icons for a lot of tech podcasts I really like. When I tweeted about it, it seemed to really strike a chord with my fellow Apple tech nerd followers and generated a little buzz, enough so that it even came across the radar of Federico Viticci, Founder and Editor-In-Chief of the incredible MacStories. I don’t actually know this for sure, but I suspect that this is what led to Ryan Christoffel finding the app and eventually writing up a review on MacStories.

I’m not sure what the lesson here is. In my case using social media to build up an audience and hype up new features really paid off. I think attempting to fish for “influencers” attention is something that will almost certainly backfire, but if you’re excited about what you’re making and you talk about it enough in a genuine way, you might eventually get the attention of someone who can really make a difference.

Press Kit

I don’t have a whole lot to say about this. I made a press kit. You can check it out here. I don’t know if it’s a good one, or a bad one. I do know that it was helpful for a few people who ended up writing a day one post about Dark Noise, specifically the screenshots and hero images.

</iframe>

I also made this little promo video. To be honest, this was an indulgence for me as I love motion graphics and needed a break one evening. I didn’t really make it for marketing purposes, but I did end up using it in my “official” announcement tweets for the Dark Noise Twitter account and pinned that tweet. I’ve gotten a few comments from people that it lends a credibility to the app since it looks pretty professional.

I also should add this to the top of my website, but I still haven’t gotten around to that. 😬

Contacting Press

I don’t think I did the best job with reaching out to the press, but I did end up getting a few articles written about Dark Noise. Here’s a quick list of launch articles from both traditional tech websites and some personal tech blogs:

One thing I haven’t mentioned yet is that I selected a release date about a month beforehand. Not only did this help me with forcing myself to stop adding features and drive towards polishing up what I had, but it also allowed me to give the press a hard target for when to expect the app to come out.

Once I had the app in a state I felt wasn’t embarrassing, and I set up my press kit and website, I started contacting the press. Basically I just went to a bunch of websites I like, and found the emails of writers there that had covered apps before. I started doing this about 3-4 weeks before releasing that app, but continued pretty much up to launch day as I thought of different publications to reach out to. I emailed them with a short pitch of the app, a release date, and a link to the press kit.

Example email to press

Here's an example of an email that I sent out to the press.

I received a few “thanks I’ll check it out” responses, but that was basically it. I believe pretty much all of the press I received on launch day was due to attention and relationships I made during the months of development through Twitter and the public beta.

While writing this article I reached out to a few members of the press and asked them if they had any advice for app developers. The main takeaway seems to be that you should make your pitch short but clear, and then include relevant information like price, release date, and a link to your press kit with all the assets and images a writer would need to make your app look as good as possible if they do a write-up (specifically high resolution app icon was called out more than once). This quote from Victor Marks really sums it up well:

Basically, I need 650 chars to 400 words telling me who it’s for, what it does better, and images and icon to work from with a link to your site and the App Store. Write like we’re friends or you want to be friends, not “professional pr voice”. For the love of god, tell me whose problem you’re solving and why it wasn’t adequately solved before.

Looking back at my emails I don’t think I articulated my sales pitch very well, and that may have contributed to the lack of interest. Talking to other devs, this seems to be a pretty common outcome, so don’t get discouraged if you never hear anything back.

Pre-Order

About a week before launch day I submitted the app to the App Store and once it was approved, I released it for pre-order. My thinking was that I would build up a list of day one purchasers which might help boost my ranking in the store. I’m still not clear on whether pre-orders actually helps your ranking though.

You can also still submit a new version while pre-orders are open, so I actually made a few updates after I released for pre-order and submitted a new version before the real release day.

One interesting thing to note about pre-orders is that they release around midnight in the users local time. So customers who pre-ordered in New Zealand will have the app released to them the day before everyone in the United States. For me it was actually kind of fun watching the app make it’s way around the globe through users on Twitter, but it’s something you’ll want to be aware of.

Launch Day

This may sound cheesy, but launch day for Dark Noise is a day I’ll never forget. It was kind of a whirlwind but so much fun. I took the day off of work not really sure what to expect, and I’m really glad I did.

First thing in the morning I posted an article on my blog about the release and made announcement posts on Twitter and Facebook. Once the press coverage started coming in user feedback and questions on Twitter really picked up. I spent the majority of the day retweeting positive comments and answering questions on Twitter. I tried to do my best to make it feel like a big splash, so anybody who followed the app account or me would see a lot of activity on that one day.

Aside from responding to people and generally trying to make the launch as noisy as possible, launch day was mostly just watching. I kept waiting for some embarrassing bug to come up that I’d have to scramble to put a release out for, but it never came. And since Dark Noise is currently completely offline, I didn’t need to watch over any servers.

Podcasts and Blog Posts

Everything I’ve talked about so far has pertained to marketing Dark Noise specifically, but there is actually another piece to this. Since I’m completely new to the iOS dev scene, I wanted to establish myself with this community. The bulk of that was done through engagement on Twitter, but I also guested on multiple podcasts and wrote up a few blog posts like this one.

I didn’t really do much active work to get on the podcasts, just tweeted out that I was available and accepted basically any invitation I got. 😆 I’m not sure how effective these were at promoting Dark Noise specifically, but I still think it was worth it for the relationships it helped build and (hopefully) helping establish my voice in the community.

Odds & Ends

I tried out App Store Search Ads, but personally I didn’t find them very effective. I’m just using the “Basic” ads, so I’m not really doing much work to make them effective, but just want to call that out.

I also posted to /r/Apple on Reddit which did very well and drove a lot of sales. They (currently) allow developers to post about new apps on Saturdays, but definitely read their rules before posting.

With regards to feedback, I’ve tried to respond to people as quickly as possible whether through Twitter, the Dark Noise subreddit, or email. I’ve gotten a number of 5 star reviews that specifically call this out, so I think it’s paid off.

Wrap Up

Hopefully this is helpful for some of you. I think I’ve captured most of the marketing efforts I made for Dark Noise, but I may update this post if I remember something else.

If you have thoughts on anything I talked about here, or marketing ideas that have worked for your app, please reach out to me on Twitter at @_chuckyc. I love talking about this stuff!

Read more
Appearance AppleInsider Podcast

iOS 13 is here, iPhones are upon us

I joined the AppleInsider podcast around the iOS 13 launch to talk about the new iPhones, camera upgrades, and Apple’s fall releases. Listen

Appearance Waiting for Review

132: Charlie Chapman and Dark Noise

I joined Waiting for Review to talk about launching Dark Noise, early App Store traction, and the first week of being an indie app developer. Listen

Blog Post

Week 1 Stats for Dark Noise

Week 1 of Dark Noise is in the bag! Here’s some quick stats of how the week went:

  • 📈 3,192 Downloads
  • 💰 $13.5K Sales
  • 💵 $8.99K Proceeds (after Apple cut)
  • ⭐️ 69 ratings with a 4.86 avg
  • 📝 24 reviews

In ranks Dark Noise peaked at:

  • 2nd in Health & Fitness on iPad
  • 5th in Health & Fitness on iPhone
  • 77th in Top Apps
  • 162nd in Top Overall (includes games)

I just wanted to give a brief breakdown of some of the metrics gathered from the first week of Dark Noise being released in the store, and some of my (very amateur) thoughts. Hopefully if you have an app release incoming, this might be helpful in setting expectations or at the very least be interesting 😅. This is mostly just me sharing my experience rather than giving advice, so take any theories I have with a heavy grain of salt.

Dark Noise Week 1 Overview

Metrics from App Store Connect

The app launched on August 27th, but notice I have a few sales from the 26th? That’s because I used Apple’s pre-order feature, which it turns out will release the app around 12:00am the morning of release date in local time, presumably based on which regional App Store the pre-order was made from.

Since App Store connect appears to update metrics based on midnight California time, anybody who pre-ordered or downloaded the app right away from east of the US such as New Zealand or the UK, will show up on the 26th.

Anyway, let’s look at the numbers. Day 1 was easily my biggest sales day. I believe this was mostly made up from the small community I had built up through the beta testing period and some press I received including a wonderful review on MacStories. So let’s look at the sources!

Dark Noise Week 1 Source of Page Views

Sources for App Store page views

Dark Noise Week 1 Source of Unit Sales

Sources for App Store page views that lead to units sold

I think the combination of App Store Search and Web Referer lines up with people following direct links from reviews and social media, as well as people searching directly for Dark Noise after seeing it somewhere else.

At first, there seemed to be a pretty strong correlation between page views and units sold, but as the week progressed, App Store Browse page views started climbing, but didn’t seem to have much of an impact on sales. I believed this might be linked to the App Store ranking. So let’s take a look at the rankings!

Dark Noise Week 1 Ranking

Week 1 rankings provided by appfigures

I was wrong! Ranking actually seems to be pretty correlated with unit sales instead. So I have no idea why my App Store Browse page views started climbing so much to seemingly no effect 🤷‍♂️. Dark Noise was just added to the top of the Apps We Love Right Now list on the US app store but that was after the week 1 date range we’re looking at here.

Now let’s talk about that second spike on Saturday. That was the day I posted about Dark Noise to /r/Apple on Reddit.

That subreddit is huge, and they allow app devs to post announcements about their apps on Saturdays. I read about this a while ago, set a reminder on my phone for the Saturday after I was planning to launch, and promptly forgot about it until my phone reminded me Saturday morning.

The post ended up going to the front page pretty quickly gathering 1,500 upvotes and hundreds of comments which had a pretty clear impact on sales. If you’ve got an app coming soon, I cannot recommend this enough. You can see the results right here!

I don’t have much more analysis, but here are some other metrics that you might find interesting. And as always feel free to reach out on Twitter if you have any questions or metrics you’re interested in seeing. I like sharing and comparing this data as it really helps me understand the market better, especially as a newcomer.

Dark Noise Week 1 Territories

App Units by Territory

Dark Noise Week 1 Devices

App Units by Device

Read more
Blog Post

Designing Dark Noise

Today I want to talk about the process I used for designing my new app Dark Noise. It’s an app for playing different ambient noises to help with sleep or focus. I’m not a designer by trade, and this is the first app I’ve made for iOS, so this is more of a brain dump of everything I did and less of a proposal on how design should be done.

Before I placed a pixel in any design tool, I first figured out what the guiding principles for the app were, and what features I wanted to include. I detailed this step in a separate post, but the end result was:

  • Configurability
    • Targeting pro users who want as many options and hooks to work the app into their workflow as possible
  • Speed
    • Opening app to playing sound should be as fast as possible with no compromise since this is the 99% use case
  • Keep it dark (expect fat fingers)
    • Most users will probably be using this in a dark environment, possibly without their glasses on or half asleep. Keep that in mind.

I have a little bit of experience playing around with Adobe XD, so I decided to use that to build out my mockups. I ended up loving XD so I’d highly recommend it. It’s even free! 1

Round 1

The first thing I built was a player page based on the 3rd principle: Keep it dark (expect fat fingers)

Dark Noise design version 01

In case you doubted my lack of design pedigree, this was full design, not a wireframe 😅

Once you get passed the blandness, you can pretty much see the bones of the app from the beginning. An easy to hit play button, a name, and a way to get to the other sounds.

The “Create Noise” page was based on my original idea of generating the different color noises on the fly, and building a little color picker style control to let you mix your own noise. For technical/scope reasons I ended up not going this direction at all, but I do anticipate implementing a “Create Noise” feature at some point in the future.

I also had the main swiping gesture for minimizing the player there from the beginning. One cool thing about Adobe XD is that you can quickly setup prototypes with swiping gestures for animations, and then demo them interactively on the phone. So I could quickly play around with different ideas and get a sense of how they felt.

Dark Noise design version 01

Recorded on my iPhone previewing the XD prototype. I toyed around with having the player minimize to the top, but the rapid prototyping with XD quickly showed me that didn't feel right

The “Charcoal Dreams” name has an interesting back story. From the beginning I knew I wanted to add some sort of fun whimsical feel to the app. I thought it might be fun to give each noise an obnoxiously whimsical name, and if you 3D touched the name you’d get a silly description along the lines of “earthy notes with a hint of cinnamon” or something.

Since I switched strategies to using audio recordings, this didn’t make as much sense, but I didn’t give up on that goal of having something fun.

First video I could find of a working version of the app. This was in May, so about 4-5 months in.

This first design wasn’t pretty, but the structural bones were pretty good. It gave me a direction to go on as I built out the first version of the app.

Round 2

At this stage I actually had a functional app that had a lot of the features I wanted, but it just looked… bleh. I am not a designer by trade, so I didn’t really know what to do to make this look better. A designer friend at work pointed me to Mobbin. It’s a simple website that allows you to view screenshots of hundreds of different well designed apps, with a pretty good search functionality.

Mobbin

Here I'm searching for "Audio Playback" patterns in apps under the "Music" category on Mobbin

Mobbin helped point me at what elements make up a good looking mobile app, and after iterating on a couple ideas in XD, I landed on a design that will start to look familiar if you’ve used the app.

Dark Noise design version 02

This should look familiar.

There are two interesting design details I’d like to call out.

Select Noise Arrow

I really liked the idea of the initial view you see of the app being a super simple page with a big play button, but that meant I had to hide the other sound options behind the second screen. I ended up with a slightly unusual design that treated the first page you see as a maximized player that you have to swipe down to reveal the rest of the app.

I was worried it wouldn’t be immediately clear how you’re supposed to proceed from that page if you wanted to change your noise, so I borrowed a design element from my first MacBook Pro and gave the down arrow a little “breathing” animation. I’m hoping the gentle bounce and opacity change will draw a new users eye enough to guide them through the app, but also not be an annoying distraction in the future.

Icon Animations

One thing I really like about some other audio apps is when it’s visually clear when audio is playing so if your speakers are muted you have an indication that sound should be coming out. For example, in Overcast, a darker tint color bounces on the pause button along with the audio that’s playing to let you know that there is sound being played.

I came up with a few ideas in After Effects, but I either couldn’t figure out how to implement it properly, or it just didn’t feel right once I implemented it into the app.

A couple play / pause ideas I tried out.

One idea I had pretty early on was to make a looping animation for each of the static noise icons I was already building. This sounded fun for me, but I was afraid it would take a long time and not really be worth the time it would take me.

At one point I finally decided to try it out and see how it felt. I made the animation for the White Noise icon and added it to the app, and it just felt awesome.

Some of the icons I created for Dark Noise

This solved my “playing indicator” problem, but even more importantly I found the fun I was looking for that I could use to stamp the app with my personality.

Last Thoughts

There are other small touches throughout the app, but I think this touches on the biggest ones. Like I said, I’m not a designer by trade, this is just to outline my thought process while I still remember it. Hopefully this is helpful to somebody out there.

If you have any other questions about my process or design choices, definitely reach out to me on Twitter I love talking about this stuff.

  1. I actually do have a Creative Cloud subscription, but I believe all that gets you with XD is more storage space and access to their fonts. 

Read more
Blog Post

I'm feeling lucky

Yesterday’s release of Dark Noise exceeded my wildest expectations. According to my stats from Apple, the app sold 990 copies which brought in $4,190 in sales for a take home of $2,780 after Apple’s 30% cut.1

Dark Noise day 1 stats

Statistics from App Store Connect

And the reaction from the community has been unbelievable. Friends and strangers alike have said so many kind words on Twitter, personal blogs, podcasts, and even a YouTube video! And to top that all off, one of my favorite websites, MacStories, wrote up an amazing review.

A few people have asked me how I got the coverage that I did considering I had essentially zero following and zero connections a few months ago, and my honest feeling is that I didn’t do anything special and simply got lucky. But I think that’s kind of a cop-out answer.

In a recent podcast, Myke Hurley mentioned that he’s stopped saying he got “lucky” in achieving the success he’s had with his company Relay FM and started using the term “fortunate” instead. As usual, I think #MykeWasRight.

The truth is, I did work really hard and tried a lot of different things. I have no idea what really worked and what didn’t, but I can at least share what I did and explain my mindset.

I’m going to try to write up as much as I can over the next few weeks while this is fresh on my mind, so keep your eyes on this feed if you’re curious. If you have particular questions or topics you’d like me to cover, please reach out to me on Twitter.

  1. I’m sharing this all in the spirit of openness. I really hope this doesn’t come across as bragging and please let me know if it does 

Read more
Blog Post

Dark Noise is in the App Store 🥳

Today I released my first app to the App Store, Dark Noise. It’s a simple yet powerful way to play ambient noise to help you sleep, focus, or relax.

This is the part where I’m supposed to tell you about a brilliant revelation I had that led me to solve a problem you don’t even know you have. But I cannot, because that’s now how all of this went down.

The truth is, Dark Noise started as a simple learning exercise and has turned into something more. I chose to build an ambient noise app because I’m very picky, and there wasn’t one in the store that fit exactly what I wanted: simple, fast, and fun. There are a lot of options out there, many of them quite good, but I think I’ve landed on a balance of those three attributes that is truly unique.

Simple

Player and sound picker screenshots

From the beginning, Dark Noise was designed to be simple to use. I primarily use ambient noise to help me sleep, and I wanted to make something that was really easy to use at night, half-asleep without my glasses on.

The main player page has a simple big play button that stands out in the dark. And a quick swipe down will reveal all of the different noises that can be played with a tap.

Fast

Favorites, Siri, and widget screenshots

At the end of the day, an ambient noise app’s job is to start a sound, and then get out of the way as fast as possible, so I designed Dark Noise to have multiple ways to quickly start your favorite sound.

You can add and reorder your favorite sounds to a section that always shows at the top of the selection page. Siri Shortcuts integrations allows you to create a shortcut to start any specific sound using only your voice, even through a HomePod! And a customizable widget and Home screen quick actions allow you to quickly activate a noise before opening the app.

Fun

Dark Noise themes

Something I learned from the wonderful weather app Carrot is that a utility app can be delightful to use. I wanted to try to make Dark Noise something that is fun to open up and interact with.

I loaded it up with multiple themes, and (way to many) custom app icon options, but the thing that I’m really proud of is all of the custom animations. Each noise has a custom icon that comes to life when you start playing it. And the buttons throughout the UI have little animations peppered throughout to make the app fun and fluid to navigate.

</iframe>

I’m really proud of how Dark Noise came together, but it wouldn’t be close to what it is today without all of the help I’ve received along the way. First from my friends at work who’ve essentially let me leech Swifty wisdom from them over the last 8 months. And also from the iOS developer / enthusiast community. Over 900 people have joined the beta and provided me with countless bug reports, feature ideas, and marketing advice. I can’t express enough how helpful this has been and it’s inspired me to try to lift others up more than I do.

This is just the beginning and I’m excited to see where Dark Noise goes from here. As always, I’d love to hear your thoughts and feedback on Twitter or on the Dark Noise Subreddit

Read more
Blog Post

The Principles of Dark Noise

At the beginning of this year I started working on my first indie app to release in the App Store called Dark Noise. It’s an ambient noise app for iPhone and iPad.

At first, I had a giant list of feature ideas and no idea how to distill them into a focused product. So I started by forcing myself to pick 3 principles to guide the design.

I eventually landed on these core principles:

  • Configurability
    • Targeting pro users who want as many options and hooks to work the app into their workflow as possible
  • Speed
    • Opening app to playing sound should be as fast as possible with no compromise since this is the 99% use case
  • Keep it dark (expect fat fingers)
    • Most users will probably be using this in a dark environment, possibly without their glasses on or half asleep. Keep that in mind.

After creating the principles, I took my list of feature ideas and tried to slot them all into one of those principles. If they didn’t fit, I tossed them in the backlog.

Dark Noise Principles in Action

Keeping these principles in mind as I tried to design and form an MVP was really helpful. I have a tendency to get overly excited by an idea and drop whatever I’m doing and build it. Often that’s a bad idea, but sometimes it’s good!

Whenever I had the thought of adding a bunch of custom app icons referencing podcasts I like, I realized it was something that might actually resonate with the pro users I was targeting. And seems to have done just that!

Dark Noise App Icons

This also played into my pricing decisions as that market tends to prefer paying up front and is a little more averse to ads. That’s not to say I won’t add a free tier in the future (in fact I probably will) but it’s something I’m always keeping in mind as I make these decisions.

Anyway, I’m not an expert at this, heck I’m barely a beginner, but maybe you’ll find my thought process interesting nonetheless.

This post is an attempt to make a more permanent record to this tweetstorm from a few weeks ago.

Read more
Blog Post

Thinking With Portals

Being able to learn a new software language, framework, pattern, or platform has been one of the cornerstones of my career. I’m generally pretty quick to pick something new up, and I get distracted easily so I end up doing this a lot.

I bring this up because at the beginning of this year I moved into iOS development, a whole new ecosystem1 where I didn’t know the language (Swift), framework (UIKit), or any of the tooling (Xcode), and in the last week I reached one of my favorite milestones of learning a new skill: thinking with portals.

In Valve’s 2007 game Portal, you have to solve a series of puzzle’s using a unique “Portal” gun that allows you to arbitrarily place portals on the walls, and you can jump through them. While simple on the surface, it’s deceptively complicated, and at first you sort of fumble your way through the mechanic to make it through the challenges.

Eventually you will suddenly realize you’re brain automatically looks at a puzzle and starts calculating portal placements and jump trajectories, and the game’s robot narrator praises you with the phrase “Now you’re thinking with portals”.

This same phenomenon occurs every time I learn a new software development skill. I’m not talking about the part where you know you can fumble your way through any problem with enough time, though that is exciting as well. This is the part where your brain automatically thinks within the framework or pattern you’re using in the background, and instead you’re free to focus on the actual design or engineering problem at hand.

This over the last week, I’ve stopped spending my time figuring out how to do something on my iOS projects, but instead figuring out the best design that I should do. It’s a subtle difference, but it’s deeply satisfying to finally cross that threshold.

The beginning of learning a new skill is always daunting, but I know that, if I stick with it, eventually I’ll reach the Thinking With Portals moment and that’s one of the greatest feelings in the world.

  1. I actually have done a bit of mobile development back in the day with Windows Phone 😂, but for the most part I’ve been up and down the web stack for my career. 

Read more
Blog Post

Control Your Christmas Tree Lights with Google Home

Google Home

A couple of years ago when we set up our Christmas tree, we bought a cheap little RF light switch to plug our tree into so we didn’t have to climb underneath the tree to turn on and off the lights. In the last year, we acquired a Google Home Mini, and I decided we could try to make our Christmas tree experience a little smarter.

After a bit of experimentation, I can now say “Hey Google, It’s Christmas Time” and my tree lights up, Christmas music starts playing, and my TV turns on and starts playing a fireplace. Check it out!

So, let’s talk about how I set this up.

Control the Lights

To start, I want to control the lights through my Google Home, and to do that, I need something that will connect my dumb tree lights to my WiFi, and ultimately Google Assistant. There are hundreds of smart plugs on Amazon, but you want to make sure you get one that’s compatible with Google Assistant. I got this one from Gosuna, but I think the same instructions will apply with any smart plug.

To set it up, I just plugged my tree lights into the smart plug, and the smart plug into the wall. I followed the instructions that came with my plug to get it hooked up to Google Home (which included downloading their app) but ultimately you need your smart plug to show up in the Google Home app page like below (I’ve nicknamed mine “Decoration Lights”).

Google Home App Screenshot

Now you should be able to tap the “On” / “Off” buttons in the Google Home app and see that your Christmas tree lights turn on and off correctly. You should also be able to say “Ok Google, Turn on the Decoration Lights” and it should control the lights as well.

Set Up a Routine

So you can now control the tree with your voice, but “Turn on the Decoration Lights” is pretty boring and hard to remember. So let’s make this a bit easier using something Google calls Routines.

Fair warning, Google has frequently moved things around the Google Home app, and I’m using an iPhone, so these directions might not be exactly the same for your app (let me know if not and I’ll try to update this post).

  1. From the Google Home main page, tap on the avatar icon on the bottom right of the screen
  2. In the “Google Assistant” section, tap on “… More Settings”
  3. Tap on the “Assistant” Tab
  4. Tap “Routines”

Phew, ok, so hopefully you’re now on a screen that looks something like this.

Google Home Routines

Now, let’s create a new custom routine.

  1. Tap the blue “+” floating action button on the bottom right
  2. Tap the “Add commands” button

This is where you pick the command you want to say to your Google Home to trigger this routine. So here you can type “It’s Christmas Time” and tap save.

NOTE: You can add multiple phrases to trigger the same routine. Simply tap the “Add commands” button again and tap the blue “+” floating action button to create another phrase.

Now, to tell your Google Home what to do when you say this command:

  1. Tap ADD ACTION
  2. Tap popular actions
  3. Check the box next to “Adjust lights, plugs, and more”
  4. Tap the settings gear next to “Adjust lights, plugs, and more”
    • Your smart plug should show here
  5. Tap on your smart plug
  6. Select “Turn on” from the popup menu
  7. Tap back
  8. Tap “ADD” in the top right corner (I constantly forget this one)
  9. Now tap “Save” in the top right corner

You should now be back on the Routines page, but with your new Routine at the top of the list.

Google Home Routines With New

You should be able to use this on your Google Home now. Just say “Ok Google, It’s Christmas Time” and your lights should turn on.

Add Some Music

Alright, now you have a custom routine, but it’s only doing one action. Let’s make things more interesting by playing some Christmas music as well as turning on the lights.

  1. Tap on your custom routine
  2. Tap “ADD MEDIA”
  3. Check the “Music” radio button
  4. Tap the gear icon next to “Music”
  5. And type into the text box “Christmas Radio” (or whatever command you would use to trigger a custom playlist or album)
    • This will use whatever music service you’ve set up as the default.

Give it a shot. Say “Ok Google, It’s Christmas Time” and your lights should turn on, and Christmas music should start playing out of your speaker.

Put a Fire on the TV

Ok, this is probably the trickiest one, and may not work for many of you. Let’s start by explaining how I have my TV setup.

I have a Chromecast (1st generation) plugged in to an HDMI port on my TV, but powered by plugging into the wall, not the TV’s usb port (this is important). My TV supports HDMI-CEC, which is a spec that allows devices like BluRay players, video game consoles, and Chromecasts control your TV over HDMI.

In my case, my TV will allow my Chromecast to turn on the TV and switch to the input my Chromecast is connected too. But it will not allow my Chromecast to turn off my TV for reasons unknown.

If your TV does not support HDMI-CEC then you will have to manually turn on your TV and switch it to the Chromecast’s input.

Alright, with that aside, here’s how I set up the fireplace within my new Routine.

  1. Open your custom routine
  2. Tap “ADD ACTION”
  3. Type into the text field “Play https://www.youtube.com/watch?v=L_LUpnjgPso on TV
  4. Tap “ADD” on the top right
  5. Tap “Save” on the top right

Typing into that text box let’s you arbitrarily type any command you can say to your Google Home. So you could type “Play Fireplace on TV” here and Google will search Youtube and find a fireplace to put on your TV.

But what if you want to play a specific video? Since we’re typing into this command instead of talking out loud to our Google Home, we can actually clarify a specific Youtube video URL to play instead of just doing a search.

To do that you first need to get the URL for that video by tapping “share” in the Youtube app or just copying the url from the browser. Then you can just paste that URL into the command “Play [insert-url-here] on TV”.

If you have multiple TVs in the house, you might also have to specify which TV such as “Play Fireplace on living room TV”.

Now when you say “Ok Google, It’s Christmas Time”, your tree lights should turn on, music should start playing from your speaker, and your TV should turn into a fireplace!

Keep Tinkering

So now that you have the basic building blocks, you should be able to expand on this idea quiet a bit.

You could create a new routine called “Cancel Christmas” that turns off the lights, fireplace, and music. Or you could add an action to ask Google Home to tell you how many days till Christmas.

Routines are a bit confusing, and the current Google Home app certainly doesn’t make that process easier, but it can be really powerful. Even with just a couple pieces of smart hardware you can build up some impressive workflows pretty quickly.

Hopefully this was helpful! Please let me know if any of these directions don’t work or you have any other ideas. Best place to reach me is on Twitter at @_chuckyc.

Read more
Blog Post

Apple vs Apple: The New OS War

Apple vs Apple

In the last couple years, I’ve heard iPad users frequently bemoan the professional community not “taking them seriously”. This reached a fever pitch with the release of the new (and pretty great looking) iPad Pros and the onslaught of reviews deeming the new device amazing but “still an iPad”.

As someone deep in the Mac ecosystem but definitely interested in iOS, I’ve always regarded these complaints as people being overly sensitive. When people say they can’t do “real work” on an iPad, I’ve always translated that to mean they can’t do “their work” on an iPad. I assumed nobody outside of internet trolls were actually saying that people who use iPads aren’t “real” professionals..

Then I read this tweet from senior editor at The Verge, Tom Warren

Granted, Tom’s primary focus is Windows news, but I think this goes to show that this sentiment of the iPad as a toy is not relegated to comment section flame wars, but actual influential members of the prominent tech press.

It feels like we’re entering a bizarre OS war reminiscent of the Windows vs Mac or Android vs iOS days, complete with passionate angry “fans” attacking the each other as being “stuck in the past” or “using toys to try to do real work”. Only this time both platforms, iOS and MacOS, are owned by the same company.

It’s weird because I don’t really see them as competing platforms as much as complementing platforms. A Mac, an iPad, and an iPhone make an incredible combination. It’s more like an iMac vs a MacBook. People with desktop computers don’t usually make fun of laptops being underpowered. And laptop users don’t usually make fun of desktop’s lack of portability. And many people have both!

Admittedly none of this matters. It’s probably just typical Twitter / Tech Blog drama. But on behalf of non-iPad users everywhere, I’m sorry for the jerks out there. iOS is not ready to replace my Mac (I don’t think1), but that doesn’t mean it’s not ready for anybody. Personally, I’m hoping iOS 13 and Marzipan lead to a glorious future where iOS and MacOS can frolic together, hand in hand, into the glorious computing future.

  1. While there are definitely some things I simply cannot do in iOS yet, I bet I can do more of my computing on an iPad than I currently think. 

Read more
Blog Post

First Post

It’s been a while since I wrote a blog. A quick look at my old Blogger account shows my last post was August 5, 2012. That was 2 jobs, 2 kids, and 1 house ago!

I’m not sure why I stopped, but over the last couple of months I’ve found myself wanting to write again. Unfortunately the task of getting a blog up an running again has always stopped me. Last week I finally decided to jump in and build a new site.

I had really good experience with Gatsby building the website for my podcast A-Town FM so I decided to use it again, and boy I’m glad I did. I’ve had so much fun putting the site together over the last week that I’ve completely forgotten what the article I wanted to write was that sparked me to build this in the first place.

For some reason I’ve always had an easy time starting projects, and putting the time in to truly build them out. But when it comes time to actually release them to the world, the need to get it just right freezes me up to the point that I often don’t release at all.

I’m hoping by releasing this post with this (probably buggy1) version of the site to the world, I’ll get over that hump and just enjoy adding to it over time.

  1. Seriously, I haven’t even opened the page on a Windows computer, much less Edge. So something is bound to be broken. 

Read more