Finding the Right Fit

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!

More WWDC 2020 Wishlists

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.

My WWDC 2020 Wishlist

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

Everything Else

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.

Something New

Wow, what a year this past few months have been, eh? It’s snowing heavily outside as I write this. On April 16. 😒 According to the local newspaper, we should expect “the first significant snow of the season” today. But like…what season? Winter? Spring? Summer? What is even happening?

And yet, here I am, finally enjoying a few moments of peace. My husband and the kids are all napping, and I’m sitting in my recliner watching the snow fall and typing this blog post in iA Writer, as one does.

I wanted to write a little bit about the new app I’m working on, because I haven’t really done that yet (and it’s not meant to be a secret!). It’s called YarnBuddy, and it’s a simple project tracker for knitters and crocheters.

The app serves two primary functions: 1) to keep an organized record of your crocheting or knitting projects (for fun, posterity, or business reasons), and 2) to track your progress in a pattern so that you don’t lose your place. You can also keep track of your yarn stash, convert between metric and imperial units, and calculate yarn substitutions (i.e. how many balls of yarn you’ll need if you don’t use the yarn listed in the pattern).

Before release, I’m hoping to create a companion Watch app for counting rows/stitches, add the ability to set reminders that will pop up when you reach a particular row (i.e. “Switch colors!” at row 48), and create a few more alternate app icons.

I also need to implement the majority of the logic for the row counters, which is tricky because there are lots of different scenarios one might encounter in a pattern. For example,

  • “Rows 12-24: Repeat row 6”
  • “Repeat rows 3-15 9 times”
  • Multiple parts of a garment, such as a front, back, and two sleeves

I’ll need a flexible counter system that allows the counters to be linked on both increase and decrease, while also displaying the number of repeats.

I also have tons of ideas for features that won’t make the 1.0, such as time tracking, a place to keep an inventory of what tools you own, pattern annotation (it was just too hard to get this to work in SwiftUI, so I punted it), and fun ways to share what you’re working on. I’m hoping WWDC will bring much-needed improvements to SwiftUI that will allow me to deliver a great iPad experience as well (right now it’s a little bit wonky).

I’m planning to have a landing page ready soon so folks can sign up to be notified when a beta is ready. Until then: take care, be safe, stay home!

The Great Slowdown

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

Shaken Faith

Late last night I blogged about how the general atmosphere of the Apple community has been bumming me out lately. That post garnered quite a response (much bigger than I expected!), with many expressing agreement and decrying the whole industry that seems to have been built around fashionable, clickbaity Apple hate.

My post lacked a bit of nuance, though, and I have a few thoughts I’d like to add. First, I want to make it clear that I don’t think that everyone who is hypercritical of Apple is a “hater.” It’s quite the opposite, I know. When you really love someone, you want them to be their best self. And if they’re struggling, you want to help them become their best self. Fandom isn’t a whole lot different in that respect. People just want the nerdy things that they love to continue being awesome. That’s not hard to understand.

A lot of people in the Apple news and developer community have big audiences and big opinions. They have popular apps and blogs, news sites and podcasts, and Apple employees read and listen to them. With great power comes great responsibility, right? I don’t blame these people for feeling like they should use their megaphone for good: to convince Apple to turn from its erring way, to listen to its most ardent fans, to “get its poop in a group,” as my high school theatre teacher liked to say. Personally, I’m glad these folks speak out the way they do.

The problem is, since our conversations with Apple are generally one-sided, things tend to escalate during the quiet periods between major announcements. We’ll start by calmly stating our opinion about how some OS or hardware feature is broken or missing or confusing or whatnot. And then, since we don’t know if Apple is really aware of what we’re saying (they are) or if we do, we simply don’t trust them to do anything about it (ah, there’s the issue!), we just yell louder. And more frequently. And there’s more handwringing and hyperbole and everyone just feeds off of each other until it’s just this thing, you know?

So then, there’s a lack of trust. Our faith in Apple to do what’s in the best interest of its customers has been shaken. The era of “customers would just ask for a faster horse, so it’s up to us to show them what they really want” as a business strategy is over. Apple tried that with its Mac line-up, and brought upon itself the wrath of Mac users, who, in fact, really did just want a faster horse. And they wanted it yesterday. With more ports. And an SD card slot.

I think Apple is trying to be a better listener. We can help them be their best self by writing thoughtful blog posts, having thoughtful discussions, proposing thoughtful solutions, and writing thoughtful software. Why did I say thoughtful so many times? Because there is value in infusing everything we do and say with empathy. Every word, every feature, considered.

Apple is a big ship. I’m not a sea captain, but I’m guessing it’s not easy to maneuver a big ship. To continue with this metaphor, it seems like some of Apple’s attempts at course correction have been akin to throwing deck chairs off the Titanic. They just didn’t help. Complex, systemic problems call for systemic solutions. Sometimes they call for leadership changes. The question is, does Apple think it has deep systemic problems? Or is its judgment, as I hinted at in my last post, clouded by hubris? We’ll find out one way or another eventually, I suppose.

My favorite response to my original post was this, from Matt Thomas (@mthomas): “…when I start to feel like this, I find the best resolve is to get off social media and make something.” Amen. In closing, that is my wish for all of you: that you would experience the joy of getting off social media and making something. ❤️

[As one last aside: I know I said “we” and “our” a lot in this post, but I obviously don’t mean to speak for everyone. The range of opinions in this community is huge, so yeah…you do you!]

Apple Malaise

Maybe it’s just me, but the Apple news/developer community seems to have settled into its own particular, cozy brand of misery as of late. And sure, 2020 is off to a bit of a slow, dismal start––it appears the world is going up in flames, both literally and figuratively, and the Apple rumor mill, which once brought us a bit of cheer throughout the winter doldrums, is now greeted with a general sense of weariness and indifference.

The 10th anniversary of the iPad’s unveiling really cracked open a can of worms. From John Gruber’s pointed criticism of the current iPad multitasking situation (which I agree with) and Ben Thompson’s The Tragic iPad to the more general Six Colors 2019 report card, the disappointment in the air is thick. I think it was Marco Arment who said, on a recent episode of ATP, something along the lines of “the technical foundation at Apple is rotting.” Nobody wants a rotten Apple.

And yet, here we are. Oh how I wish I could have been an Apple fan in its glory days. And how awesome would it have been to be a developer during the App Store gold rush? Alas, I’ll never know. I’m stuck with today’s Apple, a vast and unwieldy mega corporation that has all but lost sight of what made it great. What happened? How did we get here? I’m not sure, but if I had to guess, I’d say it probably boils down to hubris. Most things do. I have always felt that greatness necessitates humility. Confidence and humility are not mutually exclusive and both great design and great execution require both.

Anyway, I’ve digressed. All of this is really just to say that I’m feeling pretty bummed about all the pessimism in my favorite community. I’m not saying any of it is unjustified—just that I’m bummed. And what can we do? File radars? Write blog posts? Complain on Twitter? Yes, and these things we will continue to do, shouting passionately into the void.

I like to imagine that indie developers have an opportunity to show people what Apple used to be. That it’s up to us now to think different. To work within and around all of our crappy constraints and ludicrous App Store rejections to share something beautiful and cheerful and functional with the world. That even if Apple fails to stay true, we can somehow carry on its mission…

Well…okay. Maybe not that dramatic.

At least they fixed the damn keyboards.

~Fin~

Status

Inktober 2019, Day 31, “Ripe”

And that’s a wrap for Inktober! It was a fun addition to my daily schedule and I’m pleasantly surprised that I managed to complete it without missing a day. Now, back to coding! 🙂

Status

Inktober 2019, Day 25, “Tasty”

This is a sign for a restaurant in Lincoln that opened in 1948 and closed in 2013. I never ate there, but I’ve heard that it was much loved.