実験的な意味も含めてCocoaアプリの開発を始めた。完成したものはMac App Storeに並べてもらうべくiOSと同じように申請して審査してもらっている。
そもそもMac App Storeに並んでいるアプリはなんと呼ぶのが正解なのかすらよくわかっていないが、Cocoaアプリということにしておく。
iOSの開発は5年ぐらいやっているけれど、Cocoaアプリの開発は全くの初めてだったから調べながら進めている。今は単機能のSingle Windowアプリを3つ作った程度で、ドキュメントベースのアプリケーションのような複雑なことはしていないが、Cocoaアプリ開発についてのコメントというか感想を書いてみようと思う。ただの感想文ですよ。
情報が少ない、見つけにくい
まず言えるのはこれだと思う。iOS開発の情報はネットの世界に溢れている。日本語でも大量の情報があるから大抵のことは調べればできる。
その反面、Cocoaアプリケーションの情報はなかなか見つからない。日本語で書かれたそこそこ新しい情報がたまにヒットするが、大抵はAppleのドキュメントページが検索のトップに来る。そしてその情報も数年前に書かれたものだったりする(必ずしも情報が古いというわけではなく、SDKが変わっていないというだけだったりするが)。
検索自体もしづらい。例えばAVFoundation OSX Swift ○○
とか調べようとするとiOSの検索結果がずらりと出てくる。iOSとは独立してはっきりしたネーミングがあればよかったのにと思う。
最近気がついたのは、Cocoa
というキーワードを入れておくとなかなか良さそうな検索結果を得られる気がする。
お作法が割と違う
UI周りがまあまあ違う。iOSのように画面サイズを制限されない分、自由にビューを配置したり複数のウィンドウを使ったり色々なことができる。
例えばiOSではUIImage
を使っているところをCocoaではNSImage
を使うことになるんだけど、このクラスのインターフェースが微妙に異なるので同じように使えるもんだと思っているといちいち躓く。
で、ドキュメントを探したり例を探そうとすると最初の話「情報が見つからない」に行き着いて時間がかかる。
慣れるまでは同じことを何度も調べる可能性があるので見つけたページはEvernoteのWebClipすることにしている。この機能は最近全く使っていなかったけれど久しぶりに重宝しそうだ。
iOSの経験はかなり活きる
お作法が微妙に異なるとは言え、SDKの思想はiOSとほぼ変わらないからiOS経験者は比較的すんなり入ることができる。
例えば、縦横の表を表現するときにはNSTableView
を使うが、iOSの経験のない人がいきなりこのViewを使おうとしたら混乱するんじゃないかと思う。予想です。
iOSのUITableView
もこのNSTableView
もdelegate
とdataSource
を用いてコンテンツや挙動を制御するわけだけど、行と列がある分NSTableView
のほうが複雑と言っていいと思う。先に複雑じゃないUITableView
を触っていれば、比較的すんなり入れるんじゃないかな。
Cocoaアプリケーション開発でもStoryBoardやSegueのようなUI開発の仕組みがあるし、Cocoapodsなども活用できるからiOS経験者にはハードル低いんじゃないかな。みんなやったほうがいいよ。
おわり
これからは備忘録的にちょくちょく書いていく予定。
ちなみに最初に作ったのはiPhoneやiPadのAppStoreで使えるPreview動画を自動生成するアプリ。ネーミングやデザインなどはお察しだけどなかなか便利なのができたよ。
Movie Resize for App Previewsカテゴリ: ユーティリティ, グラフィック&デザイン