🐘 Mastodon Archive

if you're curious about the backstory behind my app @albums, i finally wrote down an overdue announcement post on my personal site. i dive into why music is so important to me, my guiding principles for developing the app, and more.

if anyone takes the time to read it, i'd love to know what you think! josephmclaughl.in/posts/albums

before i even started working on @albums i wanted a quick and powerful search for my music library that was always within reach. it’s been super fun making my wish come true this week! indieapps.space/@albums/110027

so the backstory to this photo of Dutch is that i took his squeaky ball that he was playing with to encourage him to settle down for the night.

instead he started scheming ways he could retrieve the ball from the back of my nightstand 😂

monochromatic photograph of a goldendoodle sitting on a bed, looking off to one side of the camera with a determined expression. in the foreground part of a MacBook Pro is visible with some blurry code in Xcode.

unrelated... what are people putting in indie app press kits nowadays? anyone have a best practices doc or particularly proud of one they've put together?

if anyone in the press would like to check out the latest version of @albums which just shipped with support for iPad (unlike the upcoming classical music app), i'd love to get you set up with a promo code. feel free to reply here or email me: joseph at zero1software.com zero1software.com/albums/

submitted version 1.1 of @albums to Apple for review. by far the least fun and most stressful part of the developer experience, but necessary to get this huge update out.

also on the heels of the announcement that Apple’s new classical music app won’t support iPad… version 1.1 of Albums will support iPad 🎉

git stats: 30 commits, 40 changed files with 2,978 additions and 769 deletions. not bad for a month on a side project!

when someone purchases my app and then goes to the trouble to reach out and compliment it and/or suggest fixes and features it really puts a smile on my face! it's really fun to make an [opinionated] app and have it resonate with people.

this weekend’s agenda:
• put the finishing touches on the @albums 1.1 beta
• go snowboarding

kudos to anyone and everyone who shares work in progress in any public forum. every time i do it i’m scared for any number of reasons (will people like it? is it wrong? will i hate/change it two minutes after i post it?)

it’s scary being a perfectionist on the internet.

anyway, i've been working on a now playing screen for my app @albums so that the screen reflects the album artwork, but all the text and controls are still readable with high enough contrast. here are a couple examples (wip):

can i vent for a second? telling your friends “oh wow, this looks professional!" is not the compliment you think it is if the thing you're complimenting is in any way tied to their profession.

uh yeah, the app does look professional, do you know why? i'm a professional app developer and have spent almost 15 years honing my craft and hundreds (sometimes thousands) of hours working on the app you're looking at. it damn well better look professional.


it’s really disheartening to read stories like this seemingly every other week. app review is the final boss that you need to defeat before releasing your app to the store, and often you have no control over whether you’ll win.

when apple introduced the “spam apps” rule, it was supposed to filter out “low effort” submissions. but like all subjective measures, it’s arbitrary and without recourse. 100s of hours invested in an app only to be told “no” at the threshold. lucas.love/blog/pagi-app-store

there's no better feeling in iOS-land than when you really nail a custom interactive transition 🤩

got coffee this morning via the drive through and as we were pulling away one of the employees exclaimed “is that dutch?!” (our dog’s name)

we’ve made it ladies and gents, we’re regulars. probably helps that our dog is so cute 😊

photograph of a black and silver goldendoodle with his head cocked to the side and snow on his face

for the curious: the main win was pre-calculating the cell sizes (whenever a setting/resize event caused them to need to be recalculated). these devices are so fast now that we get lazy/complacent running a few minor calculations in `sizeForItemAt:`, but that’s called every time a cell is going to come on screen. save some cycles, precompute sizes if possible.

great scrolling performance should be table stakes for any app. all our high end devices can scroll 120fps, and yet some apps struggle to maintain 30ish.

anyway, spent part of today tuning the scrolling in @albums and hot damn it’s looking good. scrolls like butter.

got a new toy

photograph of a silver iPod nano (third generation) with the screen on, showing the classic split-screen iPod UI showing there’s no music

one of my favorite things to do when creating reusable components or helper functions in a codebase is to add a simple set of comments using triple forward slashes (///) so that they appear nicely formatted when ⌥-clicking on the symbol in Xcode.

self-documenting code is great... but good documentation can be better.

a screenshot of a popover view in Xcode showing documentation for a custom function called “translucentAppearance” which returns a UINavigationBarAppearance object. it shows as being declared in the file “UINavigationBarAppearance+DS.swift”.

the summary reads: “A fully translucent background with no hairline at the bottom.”

the discussion reads: “Used in the app for nav bars that have a secondary row in combination with `UIView.DS.navigationBarBackground`, which has the same look as our standard nav bars, but can be set to a custom height.”

one of the most satisfying things is replacing custom components with standard ones (where it makes sense).

today's success has been replacing a half dozen different "custom" navigation bars in our app with system ones that look identical or better and behave in a more consistent and predictable manner (with transition animations for "free”).

what are some technologies that when they work are so magical they're almost "too good to be true", but when they don't work there's seemingly no way to troubleshoot or fix them?

i'll start: bluetooth

today i fought the rectangles and came out the winner, but it was close.

feels so nice to be able to browse and send toots from my mac via Ivory (thanks @chrispederick and @esamecar for sounding the early alarm!)

one of the things i appreciate about shipping an indie app is the opportunity to hone skills outside my immediate wheelhouse. this morning i spent probably far too much time tweaking a template to share reviews, but i enjoy how it stretches my brain in different ways from building apps. here’s a before/after of my initial take (which i shared this morning) and the reworked version.

life is good, appreciate all the love today ❤️

i’m excited to announce my new app @albums is available on the app store today for $2.99!

i’ve been tweaking and tuning the core premise for over three years and over the last few months i’ve put in the work to get it to v1.0. there are plenty of features missing, but this is a great starting point for the future development.

if you listen to complete albums via Apple Music/iTunes, i’d be honored if you’d check it out and let me know what you think! apple.co/3XmlZlf

any recommendations for good office plants? desktop, shelf, or floor are all good. my office gets almost entirely indirect sunlight.

this article is fascinating and i resonate with a lot of it. maybe it’s time to give it a try? thanks @gn for sharing ungated.media/article/lowercas

I’m really excited about the upcoming release of my first indie app in over 12 years (my last indie app was released in 2010 😱), which I submitted to the App Store yesterday.

If you’re interested in getting updates, I’ve created an account on indieapps.space and I’ll keep the promotion to a minimum over here – @albums🎵

I couldn’t sleep last night and found myself scrolling through the local timeline of Hachyderm.io and knew I had found my people. All the wonderfully nerdy stuff y’all are up to is so fun to read about!

👋🏼 Time for a re-introduction as I’m moving to Hachyderm.io

👨🏼‍💻 I’m a software engineer that’s been primarily focused on iOS and macOS applications since 2008. I’m back at a startup after spending time at bigger companies like Apple and Time Warner. I’m also working on some indie apps at Zero1 Software.

⛰️ I love the outdoors and spend time mountain biking, snowboarding and hiking with my wife and dog around SLC, Utah. I’m a big sports fan and follow MLB, NFL, NBA, golf, and F1.

I built an iOS app to browse and play albums from your Apple Music library and I think it’s finally ready to see the light of day. I have lots of fun plans for it and would love to get feedback from people outside my immediate circle. What’s working for you? What isn’t? Thanks for taking a look! 🎧

(If you can spare a boost, I’d really appreciate it! 🚀)


Some days it hits me how lucky I am to get to work from here.

Photograph of a work from home desk setup. Pictured: part of a Pro Display XDR, AirPods Max, MacBook Pro, two iPad Pros, a Liquid Death Mango Chainsaw, and a Jones brand snowboard neatly arranged on a desk.

T̶w̶e̶e̶t̶i̶n̶g̶ Tooting from the public version of @ivory by @tapbots.

Direct link while App Store search propagates: apps.apple.com/us/app/ivory-fo

I’m sorry, but your web app will never be as good as a native app.

Exhibit a:

A screenshot showing a warning that the Figma web app has used 63.4% of the available memory.

I wish more people showed where they lived on the internet. Not stalker-level house/apartment pins, but city would be nice. I see all these cool pictures and I wonder where they’re from but I don’t want to be that annoying guy in the replies asking “is this around Lake Tahoe?!”

I’m loving Louie Mantia’s new-ish blog. The writing is genuine and really resonates with a lot that I’ve been thinking about. I’m trying to be more authentic with my writing this year as we distance ourselves from “the corporate web”. josephmclaughl.in/links/2023/0

I’m so glad Apple is bringing back a new higher end HomePod! apple.com/homepod-2nd-generati

I don’t need a new MacBook Pro. I don’t need a new MacBook Pro. I don’t need a new MacBook Pro.

But maybe…

I’ve been using the long weekend to get a (non-work) app closer to my 1.0 milestone. The first line of code in the project was written over the 2019 holiday break (then 2020 happened and all motivation for side projects vanished).

It’s feeling really good to get it so close to shipping! 🚀

Whenever I find myself browsing eBay, I wonder why every seller is still using a camera from 2008.

Unrelated: I am the leading bidder for a gently used iPod Hi-Fi (and you all better not go and out-bid me!)

You should go buy fonts (and stuff) from @simplebits, they’re excellent and add tons of character to anything you’re working on! I use his Cartridge font on my website right now for the headings. mastodon.social/@simplebits/10

A screenshot of a webpage displaying the style of the “Cartridge” font by Dan Cedarholm of Simplebits.

The best New Year’s resolutions are the ones that are just as applicable on August 27th as they are on January 2nd as they are on January 1st. If it’s a “one shot and you blew it” type of thing, you may want to rethink it. The goal is improvement, not perfection.

I wrote a few words about my theme for 2023 – consistently show up – on my blog. What are you all working on this year?


Me waking up early any day of the week: why is this even a thing? Yuck. Never again.

Me waking up early to go snowboarding: oh hell yeah, let’s go!

<insert inspirational remark about aligning incentives or something>

Incredible powder day up at Brighton! A super fun end to calendar year 2022, but definitely not the end of the snow season! 🏂🤙🏼

I love little touches in apps that show that the dev/team is part of the target demo.

Went snowboarding tonight and my group was calling it, so I ended my session on Slopes (by @parrots). As we headed out I saw the lift line was empty, so I went on One Last Run™. Since I’d already ended my session, I started a new one. As I was riding up I thought “it’d be cool if you could merge sessions so all your stats are combined”, but oh well…

Guess what? Slopes auto-merged my last run 🤯👏🏼🏂

This week is all about side projects, snowboarding, and maybe a blog post.

Starting by giving joemc.xyz a little love:

• Changed my data importer to pull toots instead of tweets
• Added back my snowboarding section for the season
• Embedded my investment portfolio (via Commonstock)

Thinking I might give the site a fresh coat of paint as well. This design has been fun for the last year, but I’m ready for a change.

It’s been a while since I spent the Christmas holiday away from the frigid temps of the Rocky Mountain West. It’s odd ordering an iced coffee on Christmas Eve, but I’m not mad about it!

I spent almost 15 years on the bird site. Made a lot of good friends, had great conversations, laughed at funny jokes, and watched news unfold in real-time. It’s a bummer it came to an end, but I’m looking forward to getting back to the open web.

The fediverse is only one part of this whole thing. We need people to write articles instead of long Twitter threads, embrace web apps that rely on open standards for distribution, and pay for services and content that you value.

Merry Christmas and happy holidays from our family to yours! 🎄

I want a way to auto-filter any post I’ve seen (via boost or direct follow of the account) in the last {time period} (adjustable: 3d, 7d, 30d). Would love this to be a server-level feature, but a client specific implementation wouldn’t be the worst thing either.

Your boosts are great, keep them coming, but I see the same ones every day. 😅🚀

“Reserved” a Rivian R1T. Estimated for a late 2023 delivery, but I’m super excited!

Have had a wonderful time visiting this weekend. Rainy, but super fun!

Me: *trying to get a midnight snack*
Dutch: is there anything for me over here?

Seeing so many familiar faces here brings a smile to my face! Over the past few weeks/months I’ve wondered if we had lost something special forever, but I’m feeling optimistic that we’re still in a good place.

We took Dutch to my parents’ place for Thanksgiving and he loved playing in the snow every day. It’s the little things in life, you know?

Five and a half years later, I guess we’re all back here. Hey all! 👋🏼

Hmm… will this one last as long as App.net?