In this tutorial, you will create a small game 👾 for the Apple Watch based on the game of rock, paper, and scissors 👊✂ 📃.
- Mac OS Mojave or higher.
- Xcode 10 or higher.
- iPhone simulator.
- Apple Watch simulator.
To start, we created a new project in Xcode of the WatchOS type.
Fill the Product Name input with the value "RockPaperScissorsSwift" and then uncheck the option Include Notification Scene.
🖥 A normal iOS solution is created with two additional projects.
- WatchKit App (where the storyboard goes)
- WatchKit Extension (code of the controllers)
The graphics interface of the project should be as follows:
🖐❇️ The construction of the interface is the same as in iOS dragging controls and should be as follows:
- Label to see who chose the watch (stone, paper or scissors)
- Label to see the result (win, lose, draw)
- White thin line separator
- GroupView with three buttons
- GroupView with a label on the left and a timer on the right
The Label to see the result must have a height proportional to the size of the clock, to assign these values in the Size section.
- Width, is assigned Relative to Container with a value of 1, which will take 100% of the width
- Height, Relative to the Container is assigned with a value of 0.4, which will take 40% of the clock's height.
A GroupView is a view that accommodates each control side by side horizontally.
To align a control within a GroupView to the right in the toolbox within the Aligment section with right value.
The timer is a control that shows a type of clock in the form of Label.
- Declares an array options with the 3 elements and a variable counter to bring the number of games won.
- When initializing we place the images to the buttons and the timer starts to show the elapsed time.
- A function is created with the logic of how to determine the winner.
The complete code of the controller is as follows:
The project is executed and the application is executed as follows:
Creating an application for the Apple Watch is very similar to building an iOS application, in this example we saw that with basic controls you can create great things.
🌎 You can check the application code on Github