Welcome to Judo! Let's go over some of the main features of the app and then dive into parts of an example Judo file.
★ Pro Tip
If you haven’t already, download the Judo Mac app from the App Store.
Where to Start
Every time you open Judo, you’ll be greeted with the Welcome Screen, which offers you a few different ways to get started. You can start building with:
One of the example files
One of the templates on the left-hand side
A recently created file
A whole new file
On the left, you’ll also find a collection of resources. Click on:
Video Tutorials to visit our YouTube channel
Documentation to check out our written documentation and tutorials
Community to share all of your questions, feature requests, and bugs
Let’s open up the List View template.
The Mac App
Judo is a visual design tool, so it looks and feels like many design tools that you’ve worked with. If you’re a designer, you’re going to love the Figma-like feel it. To start, you’ll find a panel of all of the layers in your project on the left, the canvas in the centre, and the Inspector panel on the right, which will allow you to customize your layers.
SwiftUI Modifiers
If you’re a developer that understands SwiftUI, you’ll also feel right at home as you’ll find many of the modifiers that you’ve come to love in Judo.
★ Pro Tip
If you have any questions about what each layer or modifier does as you design in Judo, you can click on the info icon to access our documentation.
The Code Inspector
Judo surfaces SwiftUI in a visual canvas, and everything that you create on the canvas translates 1:1 in the Code Inspector. Since SwiftUI is a fundamental part of Judo, the quality of the code is better than what other design tools are capable of, meeting the expectations of discerning developers.
For instance, notice how when we change the Navigation Title to “Solar Eclipses”, and apply the Toolbar Background Visibility and Toolbar Background Color modifiers, the changes automatically appear in the Code Inspector.
Let’s take a closer look at one of the Components.
Building in Judo
Adaptive Layouts
Stacks and Spacers are the foundational elements of all layouts in SwiftUI as they organize content horizontally, vertically, or on top of one another.
➡ Check out this tutorial for a complete breakdown of SwiftUI Stacks and Spacers.
Take, for example, this Row Component. It's made up of a VStack, which is a container that organizes layers vertically. In this case, it vertically stacks layers embedded in a Navigation Link and a Divider.
Within the Label of the Navigation Link, you’ll find a horizontal stack, or an HStack, which horizontally combines an Image layer, another VStack which vertically combines two Text layers, a Spacer, and another Image layer.
Stacks and Spacers are flexible, so they automatically adjust to varying screen dimensions and user device settings.
Navigating Between Screens
In Judo, you will use Navigation Links and Navigation Stacks to build interactive, multi-screen user flows.
A Navigation Link comes with two parameters: Label and Destination. Layers that you place in the Label parameter indicate what a user can click on to navigate to the next screen.
The Destination parameter sets the screen that a user will navigate to upon interaction with the Label.
In this example, the HStack in the Row will take a user to the Detail screen. This interaction is activated by the Navigation Stack placed on the root screen.
➡ To learn more about Navigation, check out this tutorial.
Components and Instances
To edit a layer, you can expand the layers from the Layers panel until you find the one you want to edit, or you can select the layer directly on the canvas. Let’s apply the Foreground Color modifier to this Text layer to make it blue.
Notice how after we edited the Text layer, the other Text layers changed as well. This is because this Row is a Component, which is an element that you can reuse in your design.
For instance, if you take a look at a different Component labeled List, you’ll find Instances of that Row Component in it.
In each Instance, you may also find a set of Properties. These are parameters that you create in a Component, which you can then edit in each Instance.
For example, in the Main Row Component, we have a Title, Image, and Subtitle Property with default values. When we select an Instance, we can change the default values. Since we’re building a list of solar eclipses, let’s upload an Image of an eclipse, change the Title to a date, and add the type of eclipse for the Subtitle.
Create Your First Component
Let’s create a simple Component together to get comfortable working with Judo. This Component will consist of a simple Text layer with a Background and we'll bind the Text layer to a Property, so that we can alter the text in Instances of the Component.
Insert a Text Layer
Let’s start from the Insert menu. Here you’ll find a variety of SwiftUI layers, containers, and controls that you can add to your project. Let’s insert a Text layer to the canvas.
Customize the Text Layer
To customize it, let’s apply the Font Modifier and set the Style to Caption. Let’s also apply the Background modifier to add a Rounded Rectangle behind it, and some Padding, to give the text some space to breathe.
To change the color of the Background, click on the Rounded Rectangle in the Layers panel and select a new color from the Inspector panel.
Turn the Text Layer into a Component
To make the text editable, let’s turn this layer into a Component. No matter which way you work, you can find the actions that you need from any location on the app. For instance:
Right-click to make the context menu appear and then click on Create Component
Use the keyboard shortcut ⌥⌘K
From the menu bar, click on Layer to turn the selected layer into a Component
Click on the Create Component button in the toolbar
Let’s name it Tag.
Create & Bind a Text Property
To create a Text Property, select the Component and then click on the plus (+) icon in the top-right corner of the Properties section in the Inspector panel. Let's call it Text and give it a default value of Learn More.
To bind the Text Property to a Text layer, select the Text layer, hover over the text box in the Inspector panel, click on the Property Ring Attachment, and select the Property labeled Text.
⬇ Note
An alternate way of creating a Property is to do so directly from the Property Ring Attachment menu.
Insert & Configure Component Instances
To insert an Instance of the Tag component, select the layer that you'd like to place it after in the Layers panel and then from the Insert menu, insert an Instance of the Tag Component.
Alternatively, you can right-click to Copy the Tag Component and then use the keyboard shortcut ⌘V to paste in an Instance.
You can change the text displayed in the Component Instance by replacing the default value of the Text Property in the Properties section of the Inspector panel.
Previewing Your Design
To preview how your screen will look and behave in real-time, you can send the file to your mobile device and preview it using the Judo mobile app.
➡ Click, here, to download the iOS app.
To make sure that the preview begins on the correct screen, check the box Use as prototype start point in the Inspector panel.
In the preview, you can scroll through the list of solar eclipses. When you click on one, the Detail screen appears, complete with a Back button so you can easily go back to the Main screen.
Exporting to Xcode
Judo is also designed to fit right in your Xcode project, so your design is always ready for handoff. With just a few clicks to export your file to Xcode, developers can immediately begin working with your design. The best part? Any adjustments made to the embedded Judo file in Xcode will automatically update in the project.
➡ Check out this tutorial on custom views.