SwiftUI用のジョイスティックUIライブラリ OMJoystickを公開した

Takuya Ichise
TAKUYA ICHISE
Published in
3 min readSep 12, 2020

SwiftUI用のジョイスティックUIライブラリ OMJoystickを公開しました。CocoaPodsとSwift Package Managerからダウンロードできます。

なぜ使ったか

Takuya Ichise はomicroというロボットボールを個人で作っています。

omicroを操作するiOSアプリはこれまでUIKitで書いてきましたが、SwiftUIに書き換える作業が発生したので、そのタイミングでジョイスティック部分をライブラリ化して公開しました。

動作イメージ

インストール方法

CocoaPodsからインストールする場合はPodfileに下記のように記述します。

pod ‘OMJoystick’

サンプル

以下のコードで、デフォルト設定のまま動かすことができます。

import SwiftUI
import OMJoystick
struct ContentView: View {
var body: some View {
OMJoystick(colorSetting: ColorSetting()) { (joyStickState, stickPosition) in
}
}
}

アイコンやサイズ、色などの見た目を変えたい場合は、下記のように設定します。

import SwiftUI
import OMJoystick
import SFSafeSymbols
struct ContentView: View {
let iconSetting = IconSetting(
leftIcon: Image(systemSymbol: .arrowLeft),
rightIcon: Image(systemSymbol: .arrowRight),
upIcon: Image(systemSymbol:.arrowUp),
downIcon: Image(systemSymbol: .arrowDown)
)

let colorSetting = ColorSetting(subRingColor: .red, bigRingNormalBackgroundColor: .green, bigRingDarkBackgroundColor: .blue, bigRingStrokeColor: .yellow)

var body: some View {
GeometryReader { geometry in
VStack(alignment: .center, spacing: 5) {
OMJoystick(isDebug: true, iconSetting: self.iconSetting, colorSetting: ColorSetting(), smallRingRadius: 70, bigRingRadius: 120
) { (joyStickState, stickPosition) in

}.frame(width: geometry.size.width-40, height: geometry.size.width-40)
}
}
}
}

--

--

Takuya Ichise
TAKUYA ICHISE

🗻Engineer, Maker 🎥http://youtube.com/@tichise