EZ-NET

UPDATES

更新日 内容
2015-03-30 Swift でデリゲートを実装する方法。
Swift でデリゲートパターンを実装する方法を整理してみました。Objective-C でお馴染みのデリゲートメソッドの実装を任意にする方法についても紹介します。
2015-03-30 #yidev 第18回勉強会を開催しました。
今月のはじめに #yidev 横浜 iPhone 開発者勉強会を開催しました。
2015-03-15 Apple Watch に画像のボタンを設置する。
Apple Watch アプリで画像を使ったボタンを設置する方法です。
2015-03-15 Apple Watch アプリと同時に親アプリもデバッグする。
Apple Watch アプリをデバッグするとき、Apple Watch を制御する Extension が親の iPhone アプリとは別プロセスで起動するため、そのままでは Extension だけしかブレークポイントで止められません。そこで、親の iPhone アプリでもブレークポイントで停止できるようにしてみました。
2015-03-14 Apple Watch アプリから親アプリの情報を更新する。
Apple Watch アプリで使っているデータを親の iPhone アプリに渡して、それを iPhone 側の画面に表示してみました。
2015-03-14 簡単な Apple Watch アプリを初めて作ってみる。
Apple Watch アプリを作ってみようと思ったものの、どこから手をつけたらいいかわからなかったので、まずは起動して動かせるだけの簡単な Apple Watch アプリを作ってみることにしました。
2015-02-24 XCTest に便利な Xcode のショートカット。
Xcode の XCTest でテストコードを書くときに覚えておくと便利なショートカットを紹介します。
2015-02-20 Swift で Optional で包んだクロージャーを扱う場面
そういえば Optional で包んだクロージャーも糖衣構文で簡単に扱えるのかなと思って確かめてみました。そこから、コールバックとして使うクロージャーの受け取り方についても考えてみます。
2015-02-20 Swift でプロパティへの代入時に KVC で変更を検出する。
KVC を使っていると、その変更を検出するには setValue:forKey: メソッドを使って書き込む必要があります。ただ、プロパティに直接書き込むコードの方が読みやすいので、プロパティに直接書き込みされた時でも変更を検出できるようにしてみました。
2015-02-18 ツールバーをウィンドウのタイトルバーとして使う。
OS X Yosemite 対応以上のアプリであれば、NSWindow のタイトルバーに NSToolbar を使って自由度の高いタイトルバーを作れます。
2015-02-18 Xcode のコマンドラインツールをターミナルから切り替える。
Xcode 6.3-beta で Swift 1.2 が登場して、Swift 1.1 とは言語構文にも違いがあるものだから、どちらで作ったコードかで Xcode を正式版と Beta 版との使い分ける必要がたびたび出てきました。そこで、ターミナルからコマンドラインツールを切り替える方法を調べてみました。
2015-02-13 SourceTree から Xcode-Beta を開く。
先日に SourceTree から Xcode のプロジェクトやワークスペースを簡単に開けるカスタムスクリプトを作成しましたが、正式版とベータ版とを切り替えて開けるようにしたくて、Xcode-Beta で開くスクリプトを作成しました。
2015-02-11 Swift の不変値変数で定義と初期化を分ける構文について考える
Swift 1.2 で不変値変数の定義と初期化を分けて書けるようになりましたけど、別けない方が何かと都合が良いようにも感じました。
2015-02-11 島根県を旅してきました。
なんとなく気になっていた島根県。神奈川からだと遠くてなかなか行ける距離ではなくて月日は過ぎて行きましたけど、なんとなく機会が巡って念願の島根県は松江と出雲を訪れる運びとなりました。
2015-02-08 GitLab をアップデートする。
先日に GitLab 7.6.2 をインストールしましたが、それより新しい 7.7.2 がリリースされていたので、それにアップデートしてみることにしました。
2015-02-06 TrueCrypt で USB メモリをまるごと暗号化する。
USB メモリに大事なデータを入れて持ち歩きたいときってありますけど、もし落としたときにそのまま中身が見れてしまうのは不安です。そこで TrueCrypt というソフトを使って USB メモリを暗号化してみることにしました。
2015-02-05 Swift の失敗可能イニシャライザでのプロパティ初期化の必要性
Swift では初期化不能と判断したときに nil を返せるイニシャライザがありますが、構造体とクラスとで、ストアドプロパティの初期化の仕方(必要性)に差がある様子でした。
2015-02-05 Swift のイニシャライザから呼び出せる機能まとめ。
Swift のイニシャライザでは初期化前の値が使われないように、使える機能が制限されています。幾らかの段階を経てイニシャライザ内でも全ての機能が使えるようになるので、どの段階でどの機能が利用できるのか整理してみました。
2015-01-30 OS X でスクリーンショット取得時のファイル名を変更する。
OS X でスクリーンショットを取得すると、ファイル名に「スクリーンショット」というプレフィックスが付いて保存されますが、プレフィックスは自由に変更できるようになっています。
2015-01-30 Haskell 実行環境を OS X にインストールする。
Haskell を知れば Swift の Swift らしさがより感じられるかもしれないと思って、Mac に Haskell 実行環境をインストールしてみました。
2015-01-28 OGP タグでブログの情報をソースに埋め込んでみる。
たとえば Facebook でブログをシェアするときに、適切なサムネイル画像を選択できないことがあります。OGP タグを埋め込んでおくとページの情報を伝えることができるので、自分のブログにも埋め込んでおくことにしました。
2015-01-26 SourceTree で一覧からリポジトリをターミナルで開く。
SourceTree のリポジトリの一覧から、選択したリポジトリのワーキングコピーのディレクトリをターミナルで簡単に開けるカスタムスクリプトを作成しました。
2015-01-23 SourceTree から Xcode を開けるようにする。
SourceTree から Xcode のプロジェクトやワークスペースを簡単に開けるカスタムスクリプトを作成しました。
2015-01-23 iOS Developer Program を更新しました。
iOS Developer Program は、期限が切れる 60 日前から更新できます。今年に入って欧州で契約料金が値上げになったらしく、もしかして日本でも値上げされるかもと噂されていたので、さっそく更新しておきました。
2015-01-20 『東京駅開業 100 周年記念 Suica』の再発売決定ですね。
本来の発売日には大混乱で発売中止になった『東京駅開業 100 周年記念 Suica』でしたが、再発売の日程が決まりましたね。今度はインターネットまたは郵送での申し込みで、希望者全員が手に入れられそうで嬉しいです。
2015-01-16 could not build ObjC Module エラー。
Xcode 6.1.1 で Swift で書いた Cocoa Framework をビルドしたところ could not build Objective-C module エラーが発生したので、その原因と対処方法を調べてみました。
2015-01-16 自分専用で使う CocoaPods の非公式 Pods を作る。
自分で作ったライブラリを管理するのにも CocoaPods が便利そうだったので、自分専用の Pods リポジトリを作成してみました。公式の Pods のようにバージョンによるライブラリの管理も簡単です。
2015-01-15 SSHでToo many authenticationエラーに。
Mac OS X のターミナルを使って Linux Fedora へ SSH 接続しようとしたところ Too many authentication failures というメッセージが表示され、接続できなくなってしまいました。今回はその対応方法を紹介します。
2015-01-15 GitLab に Google Analytics を設定する。
GitLab の Web インターフェイスには Google Analytics のトラッキング ID を設定できるようになっていたので、Google Analytics で GitLab のアクセスを解析できるようにしてみました。
2015-01-15 GitLab の HTTP ポート番号を変更する。
GitLab の Web インターフェイスは、既定では HTTP の標準ポート (80/tcp) でアクセスできるようにセットアップされます。自分だけが使う GitLab の場合、標準ポートで運用する必要もないので、今回は別のポート番号に変更することにしました。