I started working at Judo about 7 weeks ago with little knowledge of how to use the product or how to code in SwiftUI. So, as the newly appointed Product Evangelist, I had my work cut out for me.
I began by going through tutorials by one of SwiftUI’s most prominent teachers—Paul Hudson of Hacking with Swift. I learned a few things from Swiftful Thinking on YouTube and I got a lot out of Apple’s developer documentation and tutorials, too. However, as someone with minimal coding experience, I found that playing around with Judo’s visual builder taught me the most about SwiftUI and allowed me to get started building right away, even though I couldn't yet write the code.
I kicked off my learning with a partial recreation of the Airbnb app which, coincidentally, recently announced its adoption of SwiftUI. At the time, I hadn’t realized the significance of such a public switch. However, after getting to know just how far SwiftUI has come in the past few years, I couldn’t be more excited about what we’re building at Judo.
As SwiftUI continues to gain maturity, more designers and developers will start building iOS apps with it. But not everyone has a penchant for learning how to code (yes, I’m one of those) which is why one of my first priorities is to improve our documentation, making the product more accessible for new Judo users, too. Before I could start writing, though, there were a few things I had to learn.
What I learned while recreating the Airbnb app.
I started recreating the Airbnb app in Judo shortly after watching only a few Judo tutorials on YouTube, and referenced templates and documentation as I was building.
To figure out how to build an app with a tab bar, I went through the entire Shopping Cart template featured in the Judo app. That’s how I learned that in SwiftUI, tab items are built on a main screen that houses instances of the primary screens of your app. This would’ve been easier to find in our learning center, if there had been an article.
Knowing vocabulary like components and instances from my experience with Figma helped me in some cases, but I found that I had (and still have) quite a lot of SwiftUI vocabulary to catch up on. It would’ve been nice to have everything Judo and SwiftUI-related in one place to save time. By learning how to build things in SwiftUI, I could’ve better understood the logic for designing in Judo, too.
When figuring out how to change the color of a selected tab item, I hit a dead end on Google because the highest-ranking results featured an outdated modifier. It was only after I randomly clicked on the Tab View layer in Judo that I uncovered the suggested Tint modifier which allowed me to customize the color of the selected tab bar item.
I also submitted a bug that wasn’t actually a bug because I hadn’t yet discovered that Apple’s SF symbols with fill options would always be used for the tab bar items, regardless of whether the outlined or filled-in one was selected. Even the code didn’t reflect that!
I’ll spare you the details of every problem I faced and every new concept I learned, but as you can imagine, it took a lot of time to build my first template as I had to go through a variety of Judo and SwiftUI resources (and submitted a few unnecessary bugs along the way). I already found that I worked more efficiently on my next template, but it’s my job to push through and learn—if our users face the same learning curve, I can’t imagine they’d stick around for long.
Check out the first app I recreated in Judo:
You can download the Judo file to see how I built it.
I’m thrilled with the second app that I recreated in Judo (and this was after only a month of using the product!), but I’ll share more details on it later. In the meantime, I also wanted to spend some time going over my initial experience learning to code in SwiftUI.
My experience writing SwiftUI for the first time.
While I can code some basic SwiftUI now, I still have a lot to learn before I can build what I have in Judo. While I am cognizant of the fact that I’ve spent more time in Judo than with SwiftUI, I know that as someone with minimal coding skills, the learning curve to build in XCode is much greater than in a visual tool like Judo. The latter is more intuitive for me and the best part is that it generates the exact code that I would’ve written, had I known what to type.
To start, writing code on a mostly empty page was daunting. Instead of trying to build my design, I was just trying to recall how to best write the code. While the Selectable canvas mode and the pop-up inspector helped make the task a bit more visual, remembering all the right commands and actions took more brain power than I would’ve liked. It took some time to discover those features, too. Trying to remember which type of punctuation should go where in my code was a battle in and of itself.
In XCode, I decided to build an app about my dog, so I began by building my home screen which would house instances of all my primary screens. I started writing it the way I would’ve built it in Judo and it mostly worked! I just had to make some tweaks to my code after researching how to properly write some parts out. However, since coding just the bare minimum took so much time, I didn’t even get a chance to learn how to build conditionals, for example, which I can build so easily in Judo. Thankfully, I work on a team of SwiftUI experts, so if something is taking me a long time to learn, I can hop on a call for a quick explanation. However, most learners don’t have that kind of help readily available to them.
Now that I am comfortable navigating around Judo and know where to go if I still need help, I’m ready to start filling up our learning center with how-to guides, frequently asked questions, and more. When you start learning Judo, I want you to feel as if you’re learning SwiftUI, too, for a better understanding of the logic or constraints in the Judo builder. Therefore, I’ll be adding some SwiftUI code and explanations in our articles so that you have everything you need in one place.
Can you guess what the first article will be about based on this post?
Some of the learning center articles will also have video alternatives which I’ll start publishing soon! I’m currently building a recreation of Netflix in Judo and my file has so many layers that you may just get an entire video series on it in the near future, too.
Our learning center is also undergoing a major revamp as we speak. We took a page (or two) from Apple’s Human Interface Guidelines to improve on navigation, article layout, and more. I can’t wait for the big reveal!
From learning the basics of SwiftUI to recreating popular iOS apps, I’ve learned a lot these past few weeks to get comfortable working with and teaching others about Judo. I’m excited to take everything I’ve learned (and will continue to learn) to not only build out our learning center, but also become an informed, friendly voice in the community. Here’s to many more busy, but rewarding weeks of work here at Judo.