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!

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.

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.. 

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.

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.