As Apple’s “One More Thing” Mac event draws near, I find myself dreaming about Mac laptops in colors other than gray/silver. Black, rose gold, tangerine, cosmic purple, pumpkin spice; I literally do not care as long as they’re not gray. MacBook Airs in the original six colors would be so rad. #mbnov
It is an astonishingly beautiful day today. 82 degrees in Nebraska in November…I’ll take it! I’m outside with my family right now, soaking in the sunshine and hoping for better days. ☀️ #mbnov
Finding it nearly impossible to concentrate on coding right now, so I decided to learn how to play chess. Why chess? My husband watched The Queen’s Gambit and I happened to catch the final episode. Seems like a fun game to help take my mind off of current events! #mbnov
The prospect of a dark, dreary winter used to depress me; this year, I find myself oddly looking forward to it. Something about the juxtaposition of our warm interior lights and the frosty blue darkness out the window…it’s a whole vibe that I’m very much into right now. #mbnov
This is a test post from an iOS shortcut to Micro.blog. :)
I’ve long been a member of the S Club—the “tock” cycle of biennial iPhone upgrades. My first iPhone was the 4s, after which I diligently upgraded every two years to the 5s, 6s, and finally the iPhone X. After that, I was thrown onto a different rotation when I decided to join the iPhone Upgrade Program and purchase the iPhone 11 Pro. Now, for the first time, I’m sending my phone back after only a year instead of keeping it and handing it down to my husband.
I’ve always thought of the “S” models as being inherently cooler than their number-only counterparts. Every time I upgraded my phone, it got dramatically better. The iPhone 4s had an 8 megapixel camera, took 1080p video, and came with Siri. The 5s got the A7 chip and TouchID, and the 6s brought 3D Touch, a 12 megapixel camera, 4K video, and Live Photos. There was something exciting about being on that particular cycle and I find myself feeling the loss of that this year. I’m upgrading my phone, but I’m not pumped about it.
In the end, of course, that’s fine. What a first-world problem to have, right? Being bored with a yearly upgrade to my phone…sheesh. In the end, I’ll gain a slightly larger screen, slightly improved camera, cool magnetic case, and a lovely shade of blue.
Still, I’m left with a strange feeling after watching Tuesday’s iPhone event. It just seemed…off. The 5G marketing bonanza felt forced and nonsensical. Apple knows 5G doesn’t matter to most people, or at least, they should. The whole thing had a vibe of “we didn’t get to make the phone we wanted to make this year due to time, supply chain, and technological constraints but by golly we have to sell phones this year or our shareholders will eat us so HERE’S SOME 5G.”
That flavor of enthusiastic marketing jibberish in lieu of a compelling product story leaves a bad taste in my mouth. In contrast, the presentation of the HomePod mini was very good, and the iPhone 12 mini suitcase gag was cute and funny. The presenters did a great job despite the 5G bologna, and the transitions were slick af. Lots of good stuff there, only to be soured by the near constant presence of Verizon (and I say that as a content Verizon customer).
I will say, it’s getting harder and harder for me to imagine where cellular phones even go from here. If the new iPhones had gotten ProMotion displays and Touch ID sensors this year…like…what is even next? Maybe I’m just out of the loop, but I can’t even begin to envision the “next” thing.
I’m SO stoked for Apple Silicon Macs, though. Particularly laptops.
I hope they have 5G.
On September 24, I got an idea for a widget-making app.
8 days later, I released Scribblet, an app for turning doodles into widgets. It actually took a little longer than I anticipated; I decided at the last minute to curate some background images from Unsplash to include in the app and then quickly realized I would have to learn how to implement in-app-purchases all over again because I’d forgotten everything I’d learned from Snapthread… so in the end, I just went with RevenueCat, which I’m already using with YarnBuddy. I also forgot how long it takes to assemble screenshots (especially since I had to actually create some drawings of my own) and oh, yeah, make an icon.
That icon took approximately six minutes in Affinity Designer.
The app is written in SwiftUI, with a UIViewRepresentable wrapper around PKCanvasView. As of this moment (I’m writing on Sunday night), I’m about to submit an update (1.1) that allows you to import and export widgets. Building that feature gave me the opportunity to learn about creating custom file types and using the new fileImporter/fileExporter modifiers in SwiftUI—pretty slick!
Scribblet is FREE. “So what’s it good for?” you might ask. Having fun, of course! Doodle over images of your pets, play an awkward game of tic-tac-toe with yourself, draw your very own “Super S,” doodle a quick napkin-style design that you want to keep at the forefront of your mind, jot down a quote in your own handwriting, let your kids draw something…whatever you feel like. Just add a Scribblet widget to your home screen, long-press it, and select “Edit Widget” to choose which drawing (of the same size) you’d like to display.
For an optional $1.99 in-app purchase, you can add a background image to draw over. Choose one of your own or select from one of the 30 I picked out.
If you’re artsy, you can use Scribblet to improve your #ios14homescreen aesthetic. If not, it can help you sow absolute chaos amongst your app icons. I’m serious, just make it a real hot mess. Janky af.
Also, tweet me your doodles. I already love them.
iOS launch days are always a little bit like Willy Wonka’s chocolate factory contest. Millions of developers throw their apps—er—hats in the ring, hoping that some combination of skill and pure dumb luck will score them a golden ticket to the top of the charts. And just like in Willy Wonka, sometimes the App Store winners aren’t exactly the best apps (think scammy subscription apps that try to trick users, or casual games weighed down by IAPs, etc.).
This year, though, us indies got to see our very own Charlie Bucket—er—David Smith, find his golden ticket with his excellent widget-customizing app, Widgetsmith. A viral TikTok video showing how to make your iPhone home screen “aesthetic AF” catapulted Widgetsmith to the top of the Top Free chart.
Meanwhile, Brian Mueller, creator of everyone’s favorite snarky weather app, CARROT Weather, hit #1 on the Top Paid chart. Honestly, it was so much fun seeing everyone celebrating their well-deserved features on various App Store lists. In fact, for a moment, it almost felt like indie developers in general were on top of the world.
Of course, there’s another side to the whole iOS 14 launch story, and it’s one fraught with frustration, sadness, and disappointment. Despite submitting our apps the night before iOS 14 launched (with only a few hours’ notice!), developers like Charlie Chapman, Majid Jabrayilov, Arno Appenzeller and myself ended up stuck in a review queue nightmare that delayed our own launches.
Would I have made a lot of money if YarnBuddy had been featured? No, probably not. But it certainly would have been fun—something to celebrate and be proud of. And heck, maybe I’d even rake in enough to be able to upgrade a few of my devices this fall.
It was against this backdrop of emotions, and after seeing several frustrated tweets from my fellow developers, that I came across a short tweet by Matt Ronge.
Matt is absolutely right, of course. However, the unfortunate timing of his tweet appearing in my timeline made it feel a bit like a subtweet (even though I knew it wasn’t). I quoted his tweet and noted that while it was true, hope is all an indie developer has when their marketing budget is effectively zero dollars. This sparked some further conversation, which then led to the latest episode of Release Notes with Charles Perry and Joe Cieplinski. I listened to the episode on my drive to Costco this morning and really enjoyed it. In particular, I liked how Joe and Charles touched on the fact that not all indies are in the same situation or even have the same goals, so there isn’t really a “one-size-fits-all” marketing strategy.
I’ve listened to quite a few episodes of Release Notes and from what I’ve gathered, the most important part of marketing is finding your audience—like, literally figuring out where your audience hangs out, not just identifying who is a part of it. Charles markets his services to accountants and tax consultants, and he has found ways to get directly in touch with that audience.
My audience is knitters and crocheters. As the guys mentioned in the podcast, that’s actually a pretty enormous, sprawled out community. There are yarn shops, clubs, magazines, small blogs and YouTube channels, pattern creators, Etsy shops, and two major online communities: Ravelry and Reddit. I like to crochet, but I’ve never really felt the need to be a part of a community, so I don’t have a presence in either of those two main spaces. However, I now see that a presence is necessary in order for me to promote YarnBuddy without running afoul of community guidelines.
I don’t want my presence to be inauthentic, either. It has to be genuine. And so it will take time. I can’t afford to advertise anywhere, so I guess my next steps, aside from becoming a part of the communities, will be to continue trying to reach out to bloggers and other websites in the fiber arts space with promo codes. Any other suggestions are welcome!
One last thing I want to note is that for some developers, myself included, even this kind of “free” marketing is nearly unfeasible. For busy students, folks with demanding day jobs, stay-at-home parents (or PIPS: Parents in Pandemics)… there is just no time to become involved in communities or reach out to lists of bloggers and publications that will very likely ignore you. Advertising takes money, not time. Reaching out to folks takes time, not money. If you don’t have either, you hope for Apple to feature you. I think it was maybe Joe that said that hoping for a feature feels like desperation. It absolutely is. These are desperate times, y’all.
For now, my grand indie dreams for this fall have been dashed (that feels like too strong of a word…maybe “muted”?). However, my smaller, more reasonable goal of gaining 20 subscribers by the end of the year is going swimmingly. I’m currently at 17 subs and 11 lifetime purchases, and reviews are generally good.
If you’d like to help get me all the way to my goal, please let your knitting/crocheting friends know about YarnBuddy. It’s free to try, and I think they’ll like it. ?
YarnBuddy, my new app for knitters and crocheters, is now available on the App Store! I’ll go ahead and get down to the deets.
YarnBuddy is a project tracker and a row counter. That means its primary job is to help you keep track of all the knitting or crochet projects you’re working on (or have worked on in the past) as well as where exactly you left off on each one. Its secondary job is to help you keep an inventory of all the yarn you’ve acquired (there’s always so. much. yarn. ?).
Projects can either be “in progress” or “finished,” or you can optionally move them to the “Archived” section if you don’t want to see them in your main list.
You can import patterns from the document picker, your photo library, or a web page. I’m hoping to add the ability to import PDFs from your Ravelry library in a future release; however, I don’t really have any experience working with web APIs and OAuth, so it may take awhile for me to figure it out!
My favorite feature of YarnBuddy is the little drawer/sheet for row counters that appears at the bottom of a project’s detail view as well as its pattern view. You can add as many counters as you want, link them together, set them to repeat a range, change their color, and more. You can also expand a single counter to fill up the entire screen.
YarnBuddy allows you to add up to 10 projects and unlimited yarn for free. YarnBuddy Pro is an optional subscription that adds the ability to create unlimited projects, add tags and due date reminders, create notes with rich links for projects or yarn, add row alerts, and change the app’s icon. There is also a one-time purchase option with no expiration.
YarnBuddy was built using Core Data and is almost purely SwiftUI, with the exception of a few wrapped views: UISearchBar, UITextView, UICollectionView, and UITextField (because I needed to add an accessory view with a “Done” button to dismiss the numberPad keyboard). I also had to wrap the system pickers for documents and images.
Using an app-wide gradient in the navigation bar required fiddling with the UIAppearance APIs which are also foreign to SwiftUI.
Overall, creating a new project using SwiftUI was a blast, and I highly recommend it. However, I can’t imagine completely rewriting a UIKit app in SwiftUI. The two frameworks require such drastically different mental models for data flow that I get a headache just thinking about it!
I’m already working on a big update for iOS 14 that will include a modern iPad UI, a watch app, and a widget (at least, that’s the plan!). I also have an enormous list of feature ideas that may or may not make it into the next release, from data export and time tracking to ways to share your progress on social media. Finally, I’m going to think long and hard about clicking that “Mac” checkbox in Xcode. If everything else is shaping up well for the fall, I would absolutely love to bring YarnBuddy to the Mac.
Well, I think that covers everything for now. If you’re in my target audience and have feature requests/suggestions, I’d love to hear ‘em!
On May 22, I tweeted about how it would be really cool to be able to order an indie app sticker pack, since developers aren’t able to exchange pins and stickers this year at WWDC.
Later that day (!), Nathan Lawrence and Sam Gold, developers of Twitter client Nighthawk, began turning that idea into a reality. What came next was a whirlwind of collecting icon assets from 90 amazing indie developers and compiling them into a beautiful set of physical stickers that you can order today, for the low low price of just $12.99. (I want to be clear: I had nothing to do with this, it was all Sam and Nathan! And also Charlie Chapman, who made the awesome intro video.)
This is an incredible collection of icon artwork. 50% of proceeds will go to the World Health Organization’s COVID-19 Solidarity Response Fund and 50% will go to the Equal Justice Initiative. Honestly, this is probably the coolest thing I’ve ever been a part of.
Decorate your gear, fight racism, fight COVID-19, gain back a little missing piece of WWDC… what are you waiting for?! It’s on sale for one week only, so head on over to indiestickerpack.com and order yourself some sweet indie swag. ❤️
There aren’t many knitting apps on the App Store, and I’m not sure why. There are a couple dedicated to teaching you how to knit, a couple that will help you find knitting patterns, and about eight that could be classified as knitting tools (crocheters, just replace the word “knitting” with “crochet” and everything still holds true).
Of those eight apps, exactly zero of them look like native iOS apps. They all have custom interfaces that seem hellbent on ignoring as many platform conventions as possible. One of them allows you to create a new project by tapping an ordinary tab bar item instead of using a modal view. A few of them pop up full screen ads seemingly at random as you tap around the app. Despite these annoyances, most of them have very good reviews from real people who genuinely find them helpful. But they could be so much better. So why aren’t there any beautiful, well-designed knitting apps?
I have a few theories. The first is that there aren’t really any companies that would be incentivized to build such an app. Red Heart, a yarn brand, isn’t going to hire an iOS dev team. It just doesn’t make sense. There is no software company dedicated to making digital tools for the fiber arts. And while I’d wager that there’s actually a fairly significant overlap between programmers and knitters, the overlap between knitters and independent iOS developers is extremely small, and perhaps is just me (and I don’t even know how to knit…I just crochet!).
Then there’s the possibility, of course, that there’s no demand for such a product…but I don’t believe that. Not when there’s so many reviews on similar apps. Yes, there’s a sense in which knitting and crocheting should be decidedly analog activities, but I believe there are ways that technology can help without getting in the way: think voice commands for controlling a row counter, or a row counter right on your wrist as an Apple Watch app.
One good comparison would be a recipe app where you can add notes to the recipes. That way, when you returned to a recipe to make it again, you could easily see what modifications you made last time. Knitting patterns are like that too, especially if you’re creating a garment in a particular size. Things like notes and photos can be really helpful.
There are also a handful of apps on the App Store that act as clients for Ravelry, the largest online fiber arts community. Ravelry has around a million monthly active users. People use the site to add patterns (both free and paid) to an enormous community database, catalog their yarn stash, share what projects they’re working on, and discuss all kinds of topics in the forums. It’s essentially a social network for knitters and crocheters (you have your own profile, can add friends, etc.).
When I think about where YarnBuddy will “fit” in the world of knitting, crocheting, and apps, I’m hoping to position it as a handy tool for keeping your place in a pattern as well as an offline alternative for tracking your projects and yarn stash. Of course, I also want it to eventually work with Ravelry, using its API to import pattern PDFs (I don’t think that will make the 1.0, though). Finally, I want it to be beautifully-designed and a delight to use.
I’m both excited and terrified to find out if there really is a place for an app like YarnBuddy. The anecdotal data I’ve gathered from friends and family so far has been encouraging. If I’m successful, I have the chance to become one of two or three major players in this niche, and that’s pretty darn exciting. For now I’ll just keep chugging along, making an app that I’d want to use myself and hoping for the best!
Michael Tsai, the master of round-ups, has begun a list of WWDC wishlists, including mine. However, I wanted to highlight a couple of excellent wishlists that I only discovered because they linked to mine (yay for pingbacks!).
The first is by Steve O’Dell, who helps run a Girls Who Code after-school program at Bacon Elementary School in Colorado. His wishlist stems from a desire for Apple to once again become a major player in the education space.
Did you know that Apple has coding club packages that are (potentially) every bit as good as Code.org or Girls Who Code? If you don’t, it’s because the links to find it are all over the place, links to older versions haven’t been taken down yet, and instead of providing a club portal that does some of the admin for you, they aren’t much more than a PDF telling you how to get started and then leaving it up to you to execute.
I definitely did not know that. Apple has clearly committed itself to the areas of health and accessibility. Education seems like an obvious “third leg” to an overall strategy that seeks to improve global well-being. Health, accessibility, education. If I was in leadership at Apple, that’s what I would focus on.
The next wishlist I wanted to share comes from Daniel Andrews. It’s a great list; some of my favorite things are feature parity for Messages across platforms, the return of the magnification loupe, making better use of the iPad status bar, and improvements to search on iPad. He also mentions some specific improvements to Mail:
Better priority/VIP notification settings, snoozing emails etc would go a long way to making the default ‘good enough’ for most folks.
I would also add to that the ability to create Smart Mailboxes on iOS (as John Gruber mentioned), a search function that actually works (I can go to Gmail on the web and find what I’m looking for almost immediately. Mail usually comes up empty.), text formatting tools that aren’t all hiding behind a single button, the ability to easily see which email address an incoming message was sent to from the unified inbox, and yeah, something better than flags for assigning message priority.
E-mail should be so much smarter. How about a “This Week’s Newsletters” folder? How about a way to view all recent attachments? An email from the pharmacy that a prescription has been refilled and is ready for pick-up should automatically be transformed into a to-do list item in my app of choice. All of this should be possible. And that’s all I have to say about that!
Keep those wishlists coming! I’ve really enjoyed reading them.
As of today, Apple’s first-ever online-only version of WWDC is 40(!) days away. As always, I’m incredibly excited to see what Apple has in store for us (although I must say, I’m really disappointed we don’t all get the chance to own a WWDC 2020 jacket and pin set…?). And since YarnBuddy is written entirely in SwiftUI, I’m particularly looking forward to the next iteration of Apple’s new declarative UI framework.
I’ll go ahead and divide my wishlist into “SwiftUI” and “Everything Else.”
SwiftUI: Missing Pieces
Most of my issues with SwiftUI boil down to 1) Missing UI elements and 2) Missing customizations. Here’s a run-down of what I’m looking for in SwiftUI 2.0:
- A collection view of some kind
- A multi-line editable text view
- A search bar
- The ability to manage which object is first responder and to resign objects as first responder
- Accessory views for TextFields/TextViews
- Inactive/destructive states in Context Menus
- Context menu preview-providers (for showing a custom preview on long-press/right-click)
- Style parity with UIKit, including the new system colors and materials, the grouped inset table style, and the appearance APIs for styling things like navigation bars,tab bars, etc.
- Correct state restoration for TabViews and a fix for the frame delay/flash when switching tabs
- A way to prevent modals from being dismissed by dragging (and/or a full-screen modal style)
- A way to read the scroll position of a scroll view
- Smoother interoperability with QLPreviewController and PencilKit
I would really like to see an easier way to support the native Apple Pencil mark-up tools in PDFKit. In addition, I would love to see:
- A complete re-design of Mail. There is no perfect e-mail client, but like, maybe Apple could try or something?
- A system-wide color picker in iOS. It’s bananas that I can’t select some text in Apple Notes on my iPad and change its color. From what I can tell, every single Mac app has access to the color picker. As the great 21st-century philosopher Shia Labeouf once said, “JUST DO IT!” ?
- Apple Watch sleep tracking. There are great apps for this, but I’d like to see Apple’s take on it as well.
- Some sort of IDE for iPad that would allow me to work on my Xcode projects with some limitations. If I have a project that’s SwiftUI or UIKit with no storyboards and the only third-party dependencies were installed via the Swift Package Manager, I would expect to be able to edit and preview projects in this app. Could I release them straight to the App Store? Maybe not. Could I run the apps on an attached device? Maybe not. I just want to get some work done, yo.
- More home screen customization. Let us have an empty row at the top if we want. Give us some widgets. Allow for some chaos. Set us freeeeee.
- De. Fault. Apps. Let me change them.
- A way to automatically put my Apple Watch in theater mode at night so I don’t accidentally blind myself every time I move.
- A revamped iPad multitasking system (yep, just do it again until it’s right) that isn’t big ol’ hot mess. Make it so my 4-year-old can figure it out.
- Third-party Apple Watch faces (ahahahaha).
I think that’s all I have. If I think of anything else, I’ll throw some edits down below this paragraph. Now it’s your turn: what do you wish for this year? I always love reading everyone’s wish lists, so feel free to tweet them at me or mention me on Micro.blog.
I finally got around to setting up a landing page for YarnBuddy. If you’d like to receive one email when the beta is ready and another when the app has launched, I’d love it if you’d sign up for updates. That’s it—two e-mails, and I won’t bother you again after that. ❤️
“Even a minute of breathing can reduce stress,” my Apple Watch says, nudging my wrist gently. I dismiss it with a huff. Who even has a minute, right? The one-year-old wants to nurse, the four-year-old wants to build a block tower—no, wait, have a snack—no, wait, turn the TV on—actually, could I get him a different shirt? The one he’s wearing got slightly wet. Or maybe it’s the wrong color. Actually, it just has a loose string…could I cut that? I didn’t cut it close enough, he can still see it. And so on and so on until I collapse into bed at night (next to the one-year-old, because we’ve decided to co-sleep).
So far, the coronavirus has not made my life any more hectic (I realize I’m in the minority here!). I’m a stay-at-home mom, married to a farmer, with two kids who are too young to go to school. My family is used to being around each other, though I’m not sure we’ve fully appreciated that until now.
Lately I’ve been feeling anxious about my new unfinished app, YarnBuddy. I’ve been dying to ship it but I can only work on it a handful of minutes per day, and that’s starting to get frustrating. A couple days ago I paused to consider why I’m in such a rush to get it done. The answer was slightly uncomfortable: I’m hoping it’ll make good money, of course, but even more so I crave the attention I’ll get for releasing an app, and the recognition I’ll attain if it’s actually any good. How silly! (And yet, how human-nature-y!)
I’m giving myself permission to slow down now. I don’t need to release this before WWDC. I don’t need to release it until it’s done. One thing I’ve learned from all of this is that a lot of things can just. freaking. wait.
A high school friend posted two pictures of her calendar on Facebook: one from last month, and one from this month. Her February squares were densely-packed with hand-written appointments and activities for her, her husband, and their three children. I noticed she had scheduled date nights for her and her husband, and a special day for family time. Partway through March, it all just stopped. A sea of blank white squares. Blessed nothingness.
For decades it seems we’ve all been screaming for a slowdown. Time flies, we say wistfully. Our children grow too fast. They don’t get enough time to just be kids, instead spending their precious childhood years rushing from one activity to the next. We’re all too busy. We need more time to spend with our loved ones. We need more time.
And now it seems the world has hit the pause button. Things are frightening, and uncertain, but also quiet. Slow. Many of us, all over the world, have been given the gift of time. You don’t have to do anything monumental. Sit on your butt, if you can. Relax, if you can. Parents, did you know that people who homeschool their kids usually only spend 2-3 hours a day on schoolwork? You don’t need to schedule every minute until the 3:15 bell rings. Play with your kids, hug them, enjoy them. Read, play games, dance.
Listen to your watch when it tells you to breathe. You have the time.