macOS 画面動画Gif変換

macOSのショートカットを使えばスクリーンショットや画面を動画として収録できます。

画面全体のスクリーンショットの場合キーボードの[ ⌘ + シフト + 3 ]

範囲指定画面スクリーンショットの場合キーボードの[⌘ + シフト 4]

mac画面の動画を収録する場合キーボードの[⌘ + シフト + 5]

キーボードの[⌘ + シフト + 5]を同時に押すとスクリーン下部に下のような画面が表示されいます。

画面全体を指定するとmacのスクリーン全体が収録されいます。範囲指定を選択するとスクリーンに範囲を選択できる枠が表示されますのでマウスを使って調整します。

画面指定したあと、スクリーン下の[収録]をクリックするとスクリーン範囲指定した動画収録できます。

画面収録中は、下のようなスクリーン上のメニューバーに(■)ボタンが出ています。収録を終了したい場合はその(■)をクリックします。

収録した動画はデスクトップに保存されています。「画面収録 yyyy-mm-dd hh.mm.ss.mov」

動画ファイルを動画GIFに変換します。

Mac App Storeに「Gifted」というアプリがあるので下記URLからインストールします。

https://apps.apple.com/jp/app/gifted/id771955779?mt=12

Giftedをクリックすると下のような画面で出てきますので 作成した画面収録動画ファイルをドロップします。

動画ファイルをドロップできたら[Start]をクリックします。

動画GIF変換が完了すると「 /Users/ユーザー名/Pictures/Gifted 」の中に出力された動画GIFが入っています。

Swift 配列と辞書【Array | Dictionary】

swift array2

Swiftで変数を配列としてもたせる場合は下記のように記述することができてとてもシンプルです。

var array1= [1,2,3]
var str_array1= ["あ","い","う"]

数値や文字列を自動で判断するようですので、型を気にする必要はありません。数値と文字列を混ぜる場合 as [Any]をつけて対応することもできます。

var array1 = [1,"い","う"] as [Any]

上記のような場合、型はどうなっているのか確認したいので、下記のように記述し型を取得します

var array1 = [1,2,3]
print(type(of: array1))
var str_array1 = [1,"い","う"] as [Any]
print(type(of: str_array1))

実行すると 数値だけの型はArray<Int>で、数値と文字列が混ざっている場合Array<Any>になっていました。

Array<Any>だと何でも入るのですが文字列かどうかを判断する必要があります。

let ar1:Array<Any>  = [1, "文字列", Button("Button1",action: {})]
print(ar1.count)
print("ar1[1] = " + (ar1[1] as! String))

上の例は、配列の1番目を取得したので文字列にキャストしています。

配列の追加・削除【append】

配列に追加・削除したい場合下記のように記述できます

var array1 = [1,2,3]
array1.append(4) //追加
array1.remove(at: 0) //0番目削除

配列に4を追加して 配列の0番目を削除しています。

mapを使って配列の値を一括に処理したい場合

var array1 = [1,2,3]
let array2 = array1.map {
    $0 + 2
}

mapを使って、[1,2,3]それぞれに+2したarray2を作成しました。array2 = [3,4,5]になります。

swift array2

配列内を一つづつ取得し処理したい場合【for】

配列を繰り返し処理したい場合、for inforEachが使えます。

var array1 = [1,2,3]

let array2 = array1.map {
	$0 + 2
}

array1.append(4)
array1.remove(at: 0)

array1.forEach{ i -> Void in
	print("array1 = \(i)")
}
for i in array2{
	print("array2 = \(i)")
}

辞書 【Dictionary】 を使う

DictionaryはKey, Valueがセットになっていて Keyで指定したValueが取得できます。PHPなどの連想配列のようなイメージでしょうか

var dic1 = [1:"a", 2:"b", 3:"c"]

上記のように値をセットするとDictionary<Int,String>と自動的に判断します。

var dic1 = [1:"a", 2:"b", 3:"c"]
dic1[1] = "abc"  //値を変更
dic1[100] = "百" //新たにキーと値を追加

値を指定して代入や新たにKeyとValueを追加することもできます。

DictionaryでforEachを使う場合

var dic1 = [1:"a", 2:"b", 3:"c"]
dic1.forEach{(k,v) -> Void in
	print("key = \(k), value=\(v)")
}

Xcode 旧バージョンをダウンロードとインストール

客先でのシステム要件Xcodeが古い場合が多々あります。そういった場合Xcodeの古いバージョンをインストールして使うことになります。Xcodeは複数の旧バージョンをインストールすることも可能なので客先側と同じ開発環境に合わせることができます。まずは、旧バージョンのXcodeダウンロード方法です。

https://developer.apple.com/download/

上記URLのApple Developer Downloadサイトを開き右上にあるMoreをクリックします。

下のようなダウンロード一覧画面が表示されます。

左側に入力フィールドがあるのでそこでXcodeのバージョンを絞り込むことができます。

一覧の中から旧バージョンのXcodeを選択し(Xcode 11.3.1)、Xcode 11.3.1.xip(7.3GByte)をダウンロードします。

ダウンロードしたあとFinder上でダブルクリックするとXcodeアイコンが出てきます。

ローカルのmacOSにインストールされている最新のXcodeも使いつつ旧バージョンのXcodeも使いたいので、ダウンロードフォルダにあるXcodeアイコンのファイル名を変更します。私の場合旧バージョンのXcodeは「Xcode11.3.1」という名前に変更しました。

先程リネームしたXcode11.3.1をアプリケーションフォルダにコピーします。

アプリケーションフォルダにコピーできたあと、すぐには起動せずターミナルを使ってXcodeのDirectory Pathを変更します。

ターミナルを開き、「/usr/bin/xcode-select」を使ってXcodeのPathを旧バージョンのXcodeにPath変更します。

sudo xcode-select --switch /Applications/Xcode11.3.1.app

正常にPathが変更されているか確認します。

  ~ xcode-select --print-path
/Applications/Xcode11.3.1.app/Contents/Developer

Xcode11.3.1.appになっていることが確認できたら Xcode11.3.1(旧バージョン)を起動します。

最新のXcodeにPathを戻す場合は、同じようにターミナルから下記コマンドを入力します。

sudo xcode-select --switch /Applications/Xcode.app