Xcodeのストーリーボードって意外と不便だと思う

 

アプリ製作者にしか分からない話だと思うんですが、Xcodeのストーリーボードって使いにくくないですか?

最初は画面の構成がそのまま見えるし、直接部品を置けるってことで、勝手に未来を感じてたんですよ。こりゃすごいと。

でも久しぶりに触ったら、非常に面倒でしかなかったです。

 

f:id:gevvoihorry:20160526192624p:plain

 

作るアプリのそれにもよると思うんですが、ここへきて一番便利に感じるのはSpriteKitですね。

Xcodeの最初の選択画面で「Game」って出るあれです。

 

f:id:gevvoihorry:20160526192757p:plain

 

久しぶりにストーリーボードを触ったとき、なにが一番不便だったかっていうと、それは各デバイスへの対応です。

バイスって表現で合ってるのか分かりませんが、ようはiPhone6とか5とかiPadに対応することですね。これが非常に面倒だったんです。

 

SpriteKitなら画面遷移のときにAspectFillをあてがえば、あとは自動でサイズを調整してくれるので、とっても楽なんですよね。

僕はいつもiPhone6の画面サイズで作って、あとはAspectFillで対応しています。

本当はもっとちゃんとしたやり方があるんでしょうが、今の僕にはこれで十分なんです。

 

let scene = GameScene(size:CGSize(width: 750, height: 1334))
let skView = self.view as! SKView
scene.scaleMode = .AspectFill
skView.presentScene(scene)

 

(GameViewController.swiftのところにこうやって書いてます)

あまり意味を分かってないんですが、画面遷移のときも同じですね。AspectFillって書いてますよ。なんでだかw
 

let skView = self.view! as SKView

let scene = GameScene(size: self.size)

scene.scaleMode = SKSceneScaleMode.AspectFill

skView.presentScene(scene)

 

ストーリーボードのそれと違って、各部品をX軸とY軸を指定して置いていくんですが、こっちのほうが断然楽ですね。最初は大変に感じましたけど、慣れれば圧倒的にこっちです。

最初に仮のサイズ(自分の場合はiPhone6)を決めて、それに対して座標を指定して並べるだけで、あとは勝手に各デバイスに対応してくれるんで、ほんと楽なんですよ。レイアウト対応に気を使うことがなくなりました。

(気を使うことがないだけで、根本的なレイアウトセンスは改善されていません)

 

iPhoneのことだけ考えるのなら、SpriteKitで作れるアプリは極力SpriteKitで作った方が楽なんじゃないですかね。

 

なんかそんなことを思った次第です。