読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

XcodeのiOS Simulatorを単独で起動させる

iPhone

開発環境やCocoaPodsの関係でiOS 7のサポートが切れると嬉しいなと考えています。

XcodeのiOSシミュレータは、単独で起動させることができます。

$ cd /Applications/Xcode.app/Contents/Developer/Applications
$ open ./iOS\ Simulator.app

または

$ open /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app

Xcode 6.4付属のiOS Simulatorを単独で起動させる

複数のXcodeを共存させることが可能です。「xcodebuildを使った自動化の記事」でも書いた方法でXcode 6.4に切り替えます。

$ export DEVELOPER_DIR=/Applications/Xcode6.4.app
$ xcodebuild -version
Xcode 6.4
Build version 6E35b

切り替えた状態でiOSシミュレータを起動させます。

$ cd /Applications/Xcode6.4.app/Contents/Developer/Applications
$ open ./iOS\ Simulator.app

または

$ open /Applications/Xcode6.4.app/Contents/Developer/Applications/iOS\ Simulator.app

ちなみにEl CapitanだとiOS 7.1シミュレータを起動できません。具体的に書くとシミュレータそのものは起動するんだけど画面が真っ黒いままになってしまいます。iOS 8.1シミュレータは正常に起動しました。

MacでiOSとAndroid用のアイコンを1024x1024のストア申請用の画像からスクリプトで一気に作成する

iPhone Android

とあるプロジェクトでiOS/Androidそれぞれに対応したアプリを開発しているのですが、アイコン用にストア申請用の1024x1024の画像をいただきました。

たかだか十数枚なのでペイントツールを使って1枚1枚手作業で縮小しても構わなかったのですが、微調整が入る度に手作業で縮小しないといけないのは労力を考えると心が折れてしまいそうだったので、シェルスクリプトで一括処理させてみました。

スクリプト

Macで標準で用意されているリサイズ用のコマンドsipsを使用します。アスペクト比を保ったまま縮小させるオプションがあったりとなかなか便利なコマンドです。

#!/bin/bash

# iOS
mkdir -p iOS

sips -z 40 40 "${1}" --out "iOS/Icon-40.png"
sips -z 80 80 "${1}" --out "iOS/Icon-40@2x.png"
sips -z 120 120 "${1}" --out "iOS/Icon-40@3x.png"
sips -z 120 120 "${1}" --out "iOS/Icon-60@2x.png"
sips -z 180 180 "${1}" --out "iOS/Icon-60@3x.png"
sips -z 76 76 "${1}" --out "iOS/Icon-76.png"
sips -z 152 152 "${1}" --out "iOS/Icon-76@2x.png"
sips -z 29 29 "${1}" --out "iOS/Icon-Small.png"
sips -z 58 58 "${1}" --out "iOS/Icon-Small@2x.png"
sips -z 87 87 "${1}" --out "iOS/Icon-Small@3x.png"

# Android
mkdir -p Android/mipmap-hdpi
mkdir -p Android/mipmap-ldpi
mkdir -p Android/mipmap-mdpi
mkdir -p Android/mipmap-xhdpi
mkdir -p Android/mipmap-xxhdpi
mkdir -p Android/mipmap-xxxhdpi

sips -z 72 72 "${1}" --out "Android/mipmap-hdpi/ic_launcher.png"
sips -z 36 36 "${1}" --out "Android/mipmap-ldpi/ic_launcher.png"
sips -z 48 48 "${1}" --out "Android/mipmap-mdpi/ic_launcher.png"
sips -z 96 96 "${1}" --out "Android/mipmap-xhdpi/ic_launcher.png"
sips -z 144 144 "${1}" --out "Android/mipmap-xxhdpi/ic_launcher.png"
sips -z 192 192 "${1}" --out "Android/mipmap-xxxhdpi/ic_launcher.png"

適当に resize.sh とか名前をつけて保存しておきます。

使い方

ターミナルで下記のように実行します。

$ resize.sh source.png

どばーと縮小画像が生成されます。これで一通り必要なアイコン画像を生成できるはずです。

f:id:ch3cooh393:20160522104900p:plain

間違い・漏れがあれば教えてください。

嫁と「ヨッシーのクッキー」で遊んだ

ガジェット

嫁が帰ってくると「今日は疲れているからジョジョまで寝るわ*1」って言ってた。

今、僕の中ではゲームといえばスプラトゥーンを指すんだけど、あまりにも熱中しすぎてて独り言が多くなるので、嫁が寝るんだったら静かにしておかないとあかんな……と、レトロフリークを引っ張り出してきてテトリスを始めた。

嫁が寝たらWii Uに電源を入れてスプラトゥーンをする構えだ。

ファミコン版のテトリスは落下速度を速める操作ができない。「一番下まで落下させる」か「回転」しかできない。途中の穴に入れたい場合はその場所に自然落下でたどり着くまで待たないといけない。

f:id:ch3cooh393:20160521123651p:plain

のんびりゲームをしてると嫁が興味を示した。コントローラーを渡すとテトリスを始めた。でもすぐに死んでしまう。4ライン消しをしたくて積み上げてしまうみたいだ。

嫁は「私の知ってるテトリスと操作方法がちがう」とは言う。ゲームセンターのテトリスはもっと操作しやすいらしい。僕はテトリスの種類はファミコン版のと中国製のキーホルダーのやつくらいしか知らない。

他に遊べるゲームを探した。ぷよぷよとかボンバーマンがあればよかったんだけど、カセットが実家で消失していてないので初心者でも遊べそうなゲームを探した。

「ヨッシーのクッキー」が最適そうだった。ヨッシーのクッキーは、5列同じ種類のクッキーを並べると消えるのでノルマのポイントを達成するか、時間切れになるか(クッキー消すと時間は回復する)で勝負は決まる。

簡単な操作だったからか嫁もすぐに操作方法を覚えてハマったみたいで寝てくれず、延々と対戦してた。

結局、0時30分までヨッシーのクッキーで対戦してジョジョを見て寝た。

「テトリス」や「ヨッシーのクッキー」は、シンプルなルールで1ゲームが短いので飽きずに楽しめる。8ポイントハンデをつけると良い勝負になることがわかった。

テトリス

テトリス

ヨッシーのクッキー

ヨッシーのクッキー

テトリスって1988年発売なんですか……

*1:東京ではジョジョ4部は土曜日0時30分から始まる