2014-09-10

Apple Watch 発表 — 発売は 2015 年初旬

Apple は 2014-09-09 (米時間) にスペシャル・イベントを行ない新製品 Apple Watch を発表した。発売は 2015 年初旬を予定。価格は $349〜。iPhone との連携が必須で、対応デバイスは iPhone 5 以上。

Apple Watch は 3 モデル。ベーシックな Apple Watch、スポーツ向けの Apple Watch Sport、高級感を高めた Apple Watch Edition。各々に大小モデルが存在する (男性用と女性用かな?)。大きい方は縦 42mm、小さい方は縦 38mm。時計に付けるバンドは取り替え可能で、ラインナップは多い。

特徴

「Mac のマウス、iPod のクリックホイール、iPhone のタッチパネルに続く」という前置きで紹介されたのは Apple Watch の右横に取り付けられた竜頭 (りゅうず) だった。本来は時計の針を動かしたりするのに使う竜頭を Apple はデジタル・ガジェットの部品として再定義した。名称をデジタル・クラウンと言うらしい。

時計のディスプレイは小さい。タップ、スワイプは出来ても、iPhone のようにピンチ・イン/アウトで拡大というのは難しい。デジタル・クラウンを回すことで、シチュエーションに応じて画面の拡大・縮小もしくはスクロールが可能。押すとホーム・ボタンとして働く。もちろん、Siri により音声入力にも対応。ただ、Android Wear が音声コントロール押しだったのに対して、Apple Watch はデジタル・クラウンを前面に出して来た。ハードウェアとソフトウェアに統一感を感じる。こういう分野では Apple に一日の長がある。

デバイス

Apple Watch のデバイスは (今、分かっている限りで) 以下の通り:

  • Wi-Fi (iPhone との連携用か?)
  • GPS
  • 心拍センサー
  • 加速度センサー
  • スピーカー
  • マイク

充電は Mac の様にマグネット式の充電器を使う。といっても、コネクターがある訳ではなく、Apple Watch の背面にマグネット式の充電器をくっつけるだけ。非接触タイプの充電。一回の充電でどれだけ使えるかは不明。一回の充電で一日は持って欲しいところ。

アプリ

Apple のデモでは、下記のアプリが紹介されていた。特に通知用途に効果を発揮しそう (括弧の中は紹介された機能の一部):

  • 時計 (沢山のデザインとそのカスタマイズ)
  • 電話 (受信・送信)
  • メッセージ
  • マップ (ルート案内)
  • 写真 (閲覧)
  • カレンダー (予定の閲覧、通知)
  • リモートカメラ (iPhone カメラのリモート操作)
  • Twitter (タイムライン表示)
  • Facebook (友達リクエスト承認)
  • メール (受信通知)
  • アクティビティ (フィットネス計測アプリ / ムーブ・エクササイズ・スタンドを分類)
  • ワークアウト (フィットネス計測アプリ / トレーニング用)

そうそう、iPhone 6 から導入された決済システム・Apple Pay を Apple Watch から使えるのも素晴らしい!!

あとがき

Apple Watch が発表された時、Android Wear との差別化に疑問を持った。Mac, iPod, iPhone と同列に並べられる「新製品」かと訝った。

こうして記事を書いていて、最初の印象とは裏腹にどんどん期待が膨らんでいっている。デザインがいい。タッチ・ディスプレイと Siri とデジタル・クラウンの統一感が秀一。面白味がある。初代の Mac, iPod, iPhone を考えれば、今後の進化具合にも興味がわく。面白い一品が登場した。

iPhone 6 and 6 plus — Apple Event

Apple が 2014-09-09 (米時間) にスペシャル・イベントを行ない、iPhone と iPhone 6 plus を発表した。

  • iOS 8 リリース: 2014-09-17 (水)
  • 予約開始: 2014-09-12 (金)
  • 発売開始: 2014-09-19 (金)

iPhone 6 シリーズは従来の iPhone より大きくなる。iPhone 5s が画面サイズ 4.0 インチだったのに対して、iPhone 6 は 4.7 インチ、iPhone 6 plus は 5.5 インチ。一方、薄さは iPhone 5s が 7.6mm だったのに対して、iPhone 6 が 6.9mm、iPhone 6 plus が 7.1mm と薄くなった。

iPhone 6 シリーズは、新デバイスとして NFC と気圧計が付き、Wi-Fi は 802.11 ac に対応した。更に iPhone 6 plus には光学手ぶれ補正が付いた。

iPhone 6 シリーズには 128 GB モデルが登場。価格は iPhone 6 で、32 GB が $199 (67,800 円)、64 GB が $299 (79,800 円)、128 GB が $399 (89,800 円) とのこと。

大雑把な現行機との比較は次の通り:

iPhone 5siPhone 6iPhone 6 plus
CPUApple A7 + M7Apple A8 + M8
123.8mm138.1mm158.4mm
58.6mm67.0mm77.8mm
厚さ7.6mm6.9mm7.1mm
重さ112g129g172g
画面サイズ4.0inch4.7inch5.5inch
ディスプレイ1136x640 (326ppi)1334x750 (326ppi)1920x1080 (401ppi)
Wi-Fi802.11 a/b/g/n802.11 a/b/g/n/ac
NFCYES
気圧計YES

iPhone 6

iPhone 5s と比べて、大きく、薄く、高速になった。NFC を採用し、(後述の) Apple Pay 対応が目玉か。Wi-Fi で 802.11ac に対応したのも嬉しい。

iPhone 6 plus

iPhone 6 より更に一回り大きなモデル。使い勝手がどうなるか気になる所。大画面を活かして、新しいランドスケープ・ビュー (横向き表示) に対応。カメラには手振れ補正が付いた。価格は 32 GB モデルが $299 で、iPhone 6 の同モデルより $100 (一万円) プラス。

Apple Pay

Apple Pay は Apple が提供する決済システム。お財布ケータイの便利さとクレジット・カードの決済を統合したような機能で、Touch ID (指絞認証) と iPhone 6 以降に搭載される NFC によって実現される。Apple Pay は 2014 年 10 月から、アメリカでスタートする。日本での開始はいつになるのかな?

Apple Pay にはクレジット・カードを登録する。現在対応しているクレジット・カードは American Express, Master Card, VISA の三種。対応するリーダーに Touch ID を押しながら近づけるだけで決済終了。決済にはワンタイム・パスワードに類する「一度だけしか使えない取引番号」が生成・利用される、とのこと。この方法のメリットは iPhone が盗まれても (クレジット・カード情報を iPhone が持っているわけではない or 暗号化している? ので) iPhone を遠隔操作して支払いを止めることができること。クレジット・カードを止めなくても良いこと。

ちなみに、Apple 曰く個人情報も全く流さない、らしい。本当なら素晴らしい。

対応しているショップの一例にはマクドナルド、ディズニー、Apple Store などが上がっていた。日本で早く始めて欲しい。

あとがき

今回の iPhone 6 の発表は、画面サイズの巨大化と Apple Pay が最大のインパクトだった。ただ、Apple Pay の日本開始はいつになるか分からないし、巨大化した iPhone の使い勝手は不明。Wi-Fi の 802.11ac 対応は IT に詳しい人には嬉しい機能 (無線のスピード・アップが期待できるからね)。NFC は Apple Pay のみに言及されていたけれども、Bluetooth のペアリングとかにも使えるのかな? iPhone 6 plus の光学手ぶれ補正は手放しで嬉しい。

日本に限って言うと、「地味に良さそう」な新 iPhone。手に取ってみないと、良し悪しを語れそうにない。

2014-08-11

Homebrew のパッケージを Brewfile で管理してみる

最近の Homebrew には、パッケージ管理ファイル Brewfile をデフォールトで使えるようになっている。

適当な場所に Brewfile を作成し、brow bundle コマンドを実行する。これで、Brewfile に書いてあるパッケージがインストールされる。書式に下記の通り:

$ cat Brewfile
# Packages

install git
$ brew bundle

上の例では git パッケージがインストールされる。

あとがき

Brewfile を使えば (Mac OS に) インストールするパッケージを git でバージョン管理することができるようになる。複数の Mac 環境を持っている場合に、パッケージを統一できるので便利。

追記

brew bundle を実行すると、こんな警告が出る。Brewfile はこれからも使えるのかな?

Warning: brew bundle is unsupported and will be replaced with another, incompatible version at some point.

2014-08-09

エアコンの除湿と冷房、効果と電気代の差について

Never まとめに良いまとめがあったので、自分メモ用にまとめとく。

結論を先に書くと、除湿だけなら「冷房の方が効果も高く、電気代も安くなる場合がある」。

目的

冷房と除湿では目的が違う:

冷房
部屋の「温度」を下げる
除湿
部屋の「湿度」を下げる

「冷房」の目的は温度を下げることだけど、副作用として除湿も行なってしまう。どれくらい除湿するかは考えられていない。何故なら、目的が部屋の温度を下げることだから。

「除湿」の目的は湿度を下げることだけど、「できるだけ温度を下げずに湿度を下げる」という制限がある。

二種類の除湿

除湿には二種類のタイプがある:

弱冷房除湿
冷房の機能を弱めたもの
再熱除湿
冷房機能で除湿した後、部屋が冷えないように温め直す

特に記述がなければ、普通の「除湿」は「弱冷房除湿」と思っていい。

電気代は 「弱冷房除湿 < 冷房 < 再熱除湿」という順になる。

比較表

温度低下湿度低下電気代金
冷房
再熱除湿
弱冷房除湿

あとがき

実家に帰ってエアコンの説明書を読んでみたけど、「弱冷房除湿」か「再熱除湿」かは分からなかった。最新のエアコンを調べてみると、「再熱除湿」がついていたり、ついていなかったり。比較的最近の機能なのかと思う。少くとも、うちがエアコンを買った数年前 (?) には、そんな機能はなかったんじゃないかな。

Never まとめにもあるよう:

電気代をおさえたいときは、弱冷房(じゃくれいぼう)除湿や、高めの温度に設定した冷房(れいぼう)がおすすめ

高温・多湿な夏に、除湿と冷房を同時に行ないたければ、(うちの機種だと) 冷房だけの方が電気代も効果も高そう。かなり勉強になった。

各種プロジェクト向け .gitignore ファイル

新しいフレームワーク、新しいツールを使ってプロジェクトを開始する時、当然そのプロジェクトは git で管理するとして、.gitignore をどうするかは頭痛のタネになる。

例えば、ぼくは XCode で iOS アプリを開発しようとしているけれども、どのファイルを Git で管理すれば良いのか分からない。どのファイルを無視して良いのか分からない。そこで役に立つのが GitHub が集積している .gitignore ファイル一群。

XCode ならば Objective-C.gitignore というファイルをコピーすればいい。

# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/

内容充実な .gitignore ファイルが用意されている。

CocoaPods を使う場合は Pods ディレクトリーを .gitignore に含めることを勧めない、とのコメントもあり。ぼくは Pods ディレクトリーを ignore しちゃう派だけど、そこら辺は自己責任で決められたし。Pods ディレクトリーを含める・含めないについては下記記事を参照とのこと。

あとがき

ここには Objective-C の他にも、Android, Elisp, Rails, Scala, Swift, TeX と様々な言語・フレームワークへの gitignore ファイルが集まっている。gitignore ファイルをどうするか頭を悩ます時間があったら、サクッとここのファイルを使わせてもらおう。時間の節約にもなるし、勉強に繋がることもある。

bash 変数を使って cd を楽にする方法

深い階層へ軽動したい時、cd コマンドを打つのは面倒。たとえ bash のパス補完が効くとしても、手間はかかる。そこで、目的のパスを bash 変数に保存することでこの問題の対処をしている。例えば、このブログ記事の下書きが置いてあるディレクトリーへ移動するには、次のコマンドを使う:

$ cd $blog

.bashrc に書く設定は次の通り:

blog="$HOME/Documents/blog/"

ディレクトリー階層がどんなに深くても、この方法なら一発で辿り着けるので便利。

パスに空白が含まれる場合

時として、パスに空白が含まれる場合がある。自分でそういうパスを作ろうとは思わないけど、他人の git repository を clone したらパスに空白が空いていた、等々何ともしがたい状況はある。そういう時、同じ要領で変数を指定しても cd で失敗する。

$ grep somedir ~/.bashrc
somedir="$HOME/Documents/path with space"
$ cd $somedir
bash: cd: /Users/ataka/Documents/path: No such file or directory

path の中に含まれる空白が引数の区切りとして扱われている。「path with space」というディレクトリー名の最初の「path」しか cd に渡っていない。これを解決する方法は、多少武骨だけれども変数を "" で囲む。

$ cd "$somedir"

これで「path with space」へと移動できた。

あとがき

ディレクトリー移動はコマンドライン操作の基本。ここで楽できると、随分ストレスが減る。もし良ければ試してみて欲しい。

2014-07-26

ReactiveCocoa 勉強会に参加した #rac_kansai

2014-07-26 (土)。はてなの京都オフィスを借りて開催された ReactiveCocoa 勉強会に参加した。

内容は Objective-C で Reactive プログラミングを行なうライブラリー ReactiveCocoa の勉強会。

LT で 10 分弱、話しをしたので資料を置く。

ReactiveCocoa では直接 Collection 系 (NSMutableArray とか NSMutableDictionary とか) を Observe できない。RACSubject を使えば大低の場合、代替の機能を提供できる、という話をした。

スライドには簡略化したコードしか書いていない。サンプル・コードは ViewController の他に ViewModel と Model を作って MVVM な作りにしてある。また、口頭でしか伝えなかった KVO と ReactiveCocoa を使った Observe のサンプル・コードも書いてある。興味のある方はどうぞ。

see also.

2014-07-14

find コマンドでファイル名正規表現検索

find コマンドの検索では専ら -name オプションを使う。これだと細かいファイル名指定が出来ない。先日、正規表現が使えると教えてもらったのでメモ。

画像検索を例に...

JEPG, PNG 画像を検索してみる。-name オプションを使う場合はこんな感じ。二回に検索を分ける。

$ find . -name '*.jpg'
$ find . -name '*.png'

正規表現を使う

正規表現を使う場合、検索開始パスの前に -E オプションを付ける。検索には -name の代わりに -regex を使う。拡張子 .jpg と .png なファイルを検索する場合はこんな感じ。

$ find -E . -regex '^.+\(jpg|png)$'

大文字・小文字を無視したい

Windows 系のソフトを使うと、ファイル名が大文字だったりする。アルファベットの大文字・小文字を無視させて検索する場合は -regex ではなく -iregex を使う:

$ find -E . -iregex '^.+\(jpg|png)$'

沢山の画像フォーマットに対応

JPEG の拡張子は .jpg の他に .jpeg も使われる。画像ファイルには GIF もまだ健在。ウェブをやっていると ico ファイルも扱うか? 最近は .svg も使われるようになってきた。全部に対応するよう、正規表現を書いてみる。

$ find -E . -iregex '^.+\(jpe?g|png|gif|ico|svg)$'

ここまでくると、随分、実用的になったかな。

Man は Mac OS X に付いてくるものを参考にした。BSD 系の find みたいね。

2014-06-26

What's New in Android (Google I/O 2014) 殴り書きメモ

Google I/O 2014 のセッション「What's New in Android」が YouTube ライブされていたので見た。司会の二人は止まることなく口を開き、1 時間のセッションを駈け抜けた。大まかな内容は掴めたけど、テキストに直せるほどの情報はメモしきれなかった。きっと後日公開されるスライドを見て欲しい、ということなのだと思う。

詳しいことは、スライドや他の人のブログに譲るとして、速報的にメモの欠片を箇条書きで出してみる。

Meterial APIs

  • ウィジェット
    • View.setElevation()
    • View.setTranslationZ()
  • アニメーション
    • Activity Transitions
    • Animation curves
    • Animated Reveal
  • アイコン
    • State Animations (StateListAnimator, AnimatedStateListDrawable)
    • Touch Feedback Ripples (RippleDrawable)

Render Thread

  • UI Thread: UI 部品を作るスレッド
  • Render Thread (NEW): 表示するスレッド

Supported Lib

  • CardView
  • RecyclerView
  • Palette
  • RoundedBitmapDrawable
  • ViewPropertyAnimator

カメラとオーディオ

  • Camera2 APIs
  • 新しいオーディオのバッファリング
  • Media Session - フレキシブルなプレイバック・コントロール
  • Media Controller

ステータス・バー

  • Theme attr: android:statusBarColor
  • 固定色 (solid color)
  • 透明 (@color/transparent)

マルチ・ネットワーキング

  • SMS
  • 特定のキャリア機能

Android L での通知

Material テーマ

  • 背景: カード型、影付き
  • 前景: dark text
  • アクセント・カラー: 小さな丸アイコンの中の色を設定 (Notification.Builder.setColor())
  • 小さなアイコン・バッチ
  • 開くビュー (Expanded views) とアクション・ボタン
  • 必要ならカスタム・ビューも OK

Media Style

  • アクセント・カラー: 背景色
  • 最大 6 個までのアクション・アイコン
  • 畳み込んだ時は、最大 2 個まで
  • カスタム・プログレスバー
  • 新しい Media Session API 対応

Hands-up 通知

以下の要件に使われる:

  • 高い優先度
  • 人を誘う
  • 音を出す
  • full screen intent

ロック画面

3 種の通知: 状態によって表示する通知情報が変わる

  • visibility_private
  • visibility_public
  • visibility_secret

通知のスマートなソート

  • カテゴリー: 電話・メッセージ・アラーム・ソーシャル
  • 古いものより、良いものを

Android Studio

ほとんどの情報が黒塗りで公開されず。笑いを誘う。

その他

  • Enterprise
  • ART (Dalvik を置き換える)
  • Android Wear (スマホ・アプリへの通知は自動的に wear にも)
  • Android TV (対応!)

Android Wear 〜 身に付けられる Android

Google I/O 2014 のキーノートで Android Wear SDK が発表された。Wearable、いわゆる「身に付けられる」ガジェットに対して Android アプリを作成できるようになる (もちろん、そのガジェットは Android ベースでないといけない)。

Android Wear として 3 つのスマート・ウォッチが紹介された。

  • LG G Watch (今日から Play Store で発売)
  • Samsong Gear Live (今日から注文受付)
  • Motorola Moto 360 (2014 年夏発売)

(日本での発売は??)

Android Wear SDK

Android Wear SDK を使うと以下の機能を持った「Wear」向けアプリが作れる。

  • カスタム UI
  • センサー制御
  • 音声操作
  • データ転送 (スマホやタブレットへ)

デモ by LG G Watch

Android Wear では「OK Google」からの音声検索、Android 通知の受信なども基本的にサポート。タッチパネル方式で、左右のスワイプでページをめくったり、上下のスワイプで通知を表示するデモが行なわれた。

対応しているアプリとして、Gmail, Twitter, Facbook、万歩計、天気予報などを見ることができた。この他、音声入力からリマインダーを設定したり、Google Keep にノートを取ったりと機能も多彩。

極めつけは Lyft を使って車を呼ぶデモまで見せた。

Android Wear SDK は、今までと一味違ったサービス提供の門戸を開きそう。