LoginSignup
2
3

More than 3 years have passed since last update.

iPadのplaygroundsはプログラミングの学習ツールではなくガチの開発環境だった

Last updated at Posted at 2020-01-15

パッと見で、子供でもプログラミングを学ぶことができる学習ツールに見える iPad の Playgrounds ですが、各種フレームワークも呼び出せるガチの開発環境だったので、SceneKitで3Dオブジェクトを表示するまでを紹介します。

新規プロジェクトの作成

E7B50CD2-B173-4752-9B36-BB7088199426.jpeg

Playgrounds を起動したら、左上のアイコンをタップして新しい空のプロジェクトを作成します。

コードの入力

8314A241-833A-4898-9706-C15D6F09DF18.png

ダブルタップでソフトウェアキーボードが出てくるので下記のコードを入力します。

内容は SceneKit を使って、ライトとカメラと立方体を作成して配置しているだけのシンプルなものです。

scenekit01.swift

import PlaygroundSupport
import UIKit
import SceneKit

var sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 1000, height: 200))
var scene = SCNScene()
sceneView.scene = scene
sceneView.backgroundColor = .black
sceneView.allowsCameraControl = true
PlaygroundPage.current.liveView = sceneView

var lightNode = SCNNode()
lightNode.light = SCNLight()
lightNode.light?.type = .omni
lightNode.light?.intensity = 1000
lightNode.light?.shadowMode = .deferred
lightNode.position = SCNVector3(x: 2, y: 2, z: 2)
scene.rootNode.addChildNode(lightNode)

var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 0, y: 0, z: 5)
scene.rootNode.addChildNode(cameraNode)

var material = SCNMaterial()
material.diffuse.contents = UIColor.red

var box = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0.2)
var boxNode = SCNNode(geometry: box)
scene.rootNode.addChildNode(boxNode)

box.materials = [material]
boxNode.rotation = SCNVector4(x: 1.0, y: 1.0, z: 0.0, w: 0.0)
boxNode.scale = SCNVector3(x: 1.0, y: 1.0, z: 1.0)

実行してみる

AD7687D8-A20A-44FA-8982-2CE63B835561.png

allowsCameraControll を True にしているので、ドラッグで回転とかをする事ができます。

最後に

エディタの反応が少し悪くイラつく事もあるのですが、 iPad だけで、ガチの swift コードが書けることに感動しました。

これで自宅外でいつでもプログラミングができます!

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3