コードスニペットの管理ツール

いつもTableViewCellのロードのコードとかをちまちま書き換えるのがめんどかったり、定形のコードをせっせと探したりするのにたいがいむかついてきた。Twitterでいいのがないか聞いてみたら、師匠 Akamatsuさんからリプライ!

snippetsapp

デザインも可愛くてよさそう。これを愛用されているそうです。とりあえず僕は30 Day Trial!

 

広告

僕がFingerPianoを作ったワケ

最近、自分がどうなりたいのか、自分が何をつくっていくべきか迷う。

やから、元にもどって、僕のコアな部分って何なのか考えてみた。以下ポエムですが・・・

始まりはYoutubeのビデオ

[youtube:http://www.youtube.com/watch?v=3f4MLDFdw8A%5D

この動画。カノンを弾いている、べつにすごく巧い訳でもないんだけど、心に響くものがあって、感動したんだなー。

何回も見るうちに、この素晴らしさを誰かに伝えたいと思うようになった。僕が感動するものを、一緒に共有してほしい。

このカノンの素晴らしさを伝えたい。

だから僕は自分で弾くことにした。

少し練習してみて、同じ音色が自分の指先から生まれることに驚いた。ピアノまじスゲエ。

でも、僕は楽譜が読めない、読めてもキーとマッピングできない。訓練できっとマッピングできるようになるけど、そこはプログラマー、Computer Aided Musicと行ってみようと思った。

こうして、FingerPianoは生まれた。

そんで、結果的には僕は結婚式で嫁さんにカノンと感動をとどけることができたんだな。僕にとっても素晴らしい経験を、よめさんにとっても素晴らしいプレゼントができた。

結局は僕が面白いと思ったことや、美しいと思ったことを伝えること、感じたことを共有してもらうこと、これが僕のやりたいことなんやと気づいた。

だから、楽しいことやら、便利なことやらを思いっきりやって、それを咀嚼して僕のエッセンスを加えて、再配布することが僕のやるべきことなんだ。

もっと新しいことをしって、できることをじゃんじゃん増やして、そんでミックスしてアプトプットしていく。それで良いんやと思う。

やりたいことを外から見つけちゃいけない。それはやりたいことじゃない。自分の心が感じるやりたいこと、楽しいことに気づかないとあかん。

感動のキャリアとしてがんばりたいと思う。

Tweetie for Mac

Tweetie for Mac が美しすぎる。ビデオを見るべし!

http://www.atebits.com/tweetie-mac/teaser.html

dnu3ghwfumino0aqiy86bdyoo1_400

即購入です。

こういうの大好き。多少機能がおとってよーが、こういう見た目のがスキです。そしてアニメーションも素晴らしい。アニメーション嫌いな人もいるとおもうけど、Macのアニメーションはあんまり重くないのでよいかと。今まではTwitterPodだったけど、しばらくTweetieにする。

機能はおとってもってかいたけど、Tweetieは相当いいかもしれない。でも、いくつか不満なところがあるかも

  • 複数の人にリプライするのがむつかしい
  • 新規ポストがポップアップなのがイヤ。これは慣れかも

いいところ

  • ダブルクリックでカンバセーションが開く。TwitterPodではできないっぽかったから
  • ある人にメッセージを送っている人を一覧できる
  • かわいいスクロールバー!
  • 最高級のデザイン

もだえるデザイン!最高!

UIAlertViewの向き

plistでUIOrientationをLandscapeにしている状態で、UIAlertViewを表示すると、残念なことに縦向きに表示されてしまう。

どうやら、UIAlertViewの向きはStatusBarの向きに依存しているようで、StatusBarもLandscapeにしてやらないといけないらしい。

AppDelegateのapplicationDidFinishLaunchingで、向きを変えてあげるとよい。

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;

via UIAlertView didn’t rotate in landscape mode

iPhoneの音を再生するAPI

どうもSDKに乗ってないAPIもあるようで、赤松先生の投稿に

GSEventPlayAlertOrSystemSoundAtPath
GSEventPlaySoundAtPath
GSEventPlaySoundLoopAtPath
GSEventPrimeSoundAtPath
GSEventStopSoundAtPath

というのがあった。一応ポリフォニックらしいのでいっぺん試してみよう。

だけど、調べた感じではこれも短いオーディオの再生に使われるようだ。結局CoreAudioの仲間なのかな

Cocoaのオーディオ環境は謎多い感じ。日本語のドキュメントがほしいよ

IBOutletと初期化

InterfaceBuilderで設定したボタンとかのインスタンスが、IBOutletと関連づけられるタイミングについて。
Windowのロードが終わったあたりでサウンドの読み込みとかしたいけど、IBOutlerのインスタンスがまだリンクされてきてないから困ったことになる。

cocoaではIBOutletなものが関連づけられたあとに、すべてのコントローラ(すべてのオブジェクトかもしれない)に- awakeFromNibというメッセージが送られる。よって、このswakeFromNibをハンドルして初期化コードを書けばよろしい。

cocoaプログラミングなれないなぁ

TableViewのデータソースの概念

cococaにはTableViewっていうグリッドコントロールがある。こいつは、平たくいえばDataGridみたいなやつだ。

でも、Objective-Cの流儀なのか、普通にTableView.Items.Add()みたいなことはできない。あるのはデータソースへの接続だ。

で、そのデータソースはどうやって作るかという問題なんだけど、.netとかならICollectionの実装をもっていることとか、そういう感じになると思うが、cocoaでは

  • Public Function numberOfRowsInTableView(byval tableView as TableView) as Integer
  • Public Function tableView(byval objectValueForTalbeColumn as NSTableColumn ,byval rowIndex as integer)
VB的書いたけど、この二つのメソッドを実装しておけばデータソースとして機能する。時にインターフェイスとかは必要ない。Objective-CはC言語のスーパーセットなんだけど、こういうレイトバインド的な使い方もできるらしい。やっぱ結構変態言語だな。