ちょっとした NSView の使い方

MacDev

AppKit はとにかく資料が少ない。世の中に出回っている情報は古く、最新情報は OS X の新バージョンが出るタイミングで発行される AppKit Release Notes ぐらいにしか書かれていなかったりするので、これを読んでいないとすぐに置いていかれてしまう。

今日は NSView の描画の話。「UIView みたいに backgroundColor プロパティがないから面倒だ」みたいな話をときどき見かけるけど、正しい方法を知っていればそこまで手間はかからない。

highlighted プロパティに応じて YES ならレッド、NO ならグレーの角丸矩形を描画する NSView サブクラスを考える。

@property (nonatomic, getter=isHighlighted) BOOL highlighted;

→ 続きを読む

「1 台の MacBook Pro でなんでも」生活を続けて

MacHard

(2017.6.5 公開。ずっと前に書いた記事だけど公開されないまま放置されていました。)

「母艦」「サブマシン」というように、PC や Mac をどういう台数/構成で運用するのかという選択によって作業スタイルは大きく変化する。面白くて悩ましい選択。

zumuya では 2010 年に MacBook Pro を手に入れてからというもの、常に 1 台の MacBook Pro だけでなんでもやるスタイルを続けてきた。作業机でも外出先でも同じマシン。

ラップトップ 1 台であっても作業机の上では広いディスプレイをつないで Bluetooth のキーボードやトラックパッドを使うからそんなに窮屈ではなかったし、技術の進歩によって性能も向上したから昔のように「ノート型だから力不足」と感じることも少なくなっていた。

そこそこ快適に 5 年以上過ごしてきたけど、やはりメリットとデメリット両方あるので個人的に感じたことをまとめてみる。あくまでも自分の環境での話。

💚 利点 1:データを丸ごと持ち運べる

これは本当に快適。マシンが増えるとどのデータがどのマシンに入っているのか把握してやり取りすることになるし、マシンごとにバックアップも増えてしまう。1 台ならシンプル。「必要なファイルは絶対にこの中にある」とわかる安心感。

災害などがあっても MacBook Pro さえ持ち出せばすべてそこにあるのだ。

💚 利点 2:アプリケーションや設定を多重管理しなくてよい

メインマシンでもサブマシンでも同じアプリケーションを使いたいことはよくある。それをインストールしたかどうか、バージョンいくつが入っているのか、あるマシンで加えた設定の変更をほかのマシンにも適用したか、などその管理が面倒になる。

iCloud で設定を同期してくれるアプリケーションがもっと増えれば楽になるかもしれないけど、現状ではまだまだ。Dropbox とシンボリックリンクを使って無理やり同期するのはやりたくないし...

💚 利点 3:作業を別の場所でそのまま再開できる

蓋を開ければいつでも作業の続き。たとえ何時間後、別の場所であっても前回の光景がそのまま一瞬で戻ってくるのだから素晴らしい。

このスリープ復帰の早さは、たとえ 1999 年発売の初代 iBook であっても 2、3 年後に出た OS X を入れれば実現する。(OS 9 までは遅いし不安定だった。)

Apple については「Apple 製品はちょっと見た目がきれいなだけ」「革新的とか言うけど実際は後追いばかり」みたいに言う人もいるけど、スリープやトラックパッドみたいな「形だけ実装されがちだけど本当は端末の使い勝手に大きく影響する部分」にいち早く着目し、こつこつと完成度を高めてきた真面目なメーカーだと思う。最近は Windows PC でもよく見かけるトラックパッドの 2 本指スクロールだって 2004 年(MacBook Air や iPhone が登場するよりもずっと前!)の PowerBook G4 から搭載され、上下左右斜めどの方向にも 1 px 単位でスムーズに動く完成度を最初から実現していた。

💔 欠点 1:作業机に戻ったら何本もケーブルを挿し直す手間がある

ディスプレイをつなげば再起動なしで簡単にデスクトップマシンに変身するとはいえ、机の周辺機器をフルに使うため、MagSafe、光デジタルオーディオ、USB、mini DisplayPort の 4 本のケーブルを毎回抜き差ししていた。10 秒かからないけど何度も繰り返すと無視できないストレス。

そんなこともあり USB-C や Thunderbolt 3 には期待していた。すでに PC の世界ではそれらに対応した Dock も増えている。Thunderbolt Display でも実現できなかった、ケーブル一本の抜き差しで完結する夢の世界。

...なのに Apple ときたら。USB-C ポートの MacBook が 1 年以上前に出ただけで、その後の動きがまったくない。最初の Thunderbolt にいち早く飛びついた勢いはどうした!

💔 欠点 2:外部ディスプレイをつないだときにウインドウを配置し直す手間がある

フルスクリーンを多用している人やスクリーンぴったりにウインドウを配置する人には関係ない話だけど、個人的にはスクリーンサイズごとに使いやすいウインドウ配置って違うと思うので、ディスプレイを抜き差しするたびに開いているウインドウを配置し直していて面倒だった。AppleScript 書いて自動化しようとしていたこともあるけど、仮想デスクトップのことなど考えると完璧にはいかない。

💔 欠点 3:処理性能が(デスクトップに比べて)低い

これは欠点として挙げたけれども、最初に書いたようにそんなに不満はない。

💔 欠点 4:放熱に余裕がない

欠点 3 よりもこちらの方が大きいのだ。"Pro" だから「重い処理もどんと来い」かと思いきや、次から次へと負荷をかけているとマシンの温度はどんどん上昇し、ファンはうるさく回り、速度も抑えられてしまう。

パームレストから手に熱が伝わるのは気持ちがいいものではないし、フラッシュストレージやバッテリーは高温になると寿命に悪影響があるから気を使う。ビデオ編集とか写真の RAW 現像とか、長時間重い処理を続ける目的には明らかに向いていないのだ。Xcode でコードを書いてときどきコンパイルするぐらいならほとんど問題ないけれども。

💔 欠点 5:dGPU で重い処理をするとバッテリーが減る

dGPU 搭載の MacBook Pro があると外出先でも重いグラフィック処理が軽々できるようになって便利なんだけど、iGPU から dGPU に切り替わるだけで目に見えてバッテリーの減りが激しくなり、発熱も...

💔 欠点 6:大容量フラッシュストレージモデルが高価

利点 1「データを丸ごと持ち運べる」を活かすためには、(滅多に使わないデータを外付けディスクに入れるとしても)基本的には必要なファイルがすべて入るだけの内蔵ストレージが必要になる。

Mac の場合は独自端子どころか基板直付までするようになり、iPhone のようなストレージ容量ビジネスになってきた。マシン購入時にいくら払うかでその後のストレージ容量が決まってしまい、あとからの交換は基本的にできない。いい感じに下がってきてる SSD 市場価格を知っていると Apple プライスには躊躇してしまう。

とはいえ不当に高いとも言い切れず最近は PCIe 接続で高速なものを採用していたりするのだけど、個人的にはこれまでの SATA 接続で十分な速度なので、こんなに速くないかわりに安く大容量にできる選択肢も欲しい。

💔 欠点 7:常に同じ光景

シルバーなアルミ削り出し筐体、平らなパームレストにブラックなキーボード。とても完成度が高くて美しくて気に入って使ってきた。でも、2008 年の初代 MacBook Air からほとんど変わらないデザイン。何回乗り換えても同じ見た目。どんなときでも同じ光景。さすがに飽きた。変化が欲しい。

---

そんなことをいろいろ考えた結果、今回は iMac をメインマシンにすることにしたのだ。