Introducing YarnBuddy

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.

Features

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.

Development

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!

YarnBuddy on iPadOS 13

What’s Next

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!

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!