2013-01-01から1年間の記事一覧

2013 年ふりかえり

毎年恒例、一年のふりかえり。 まずは今年最初のエントリを見てみる。 謹賀新年 - present Ruby と HTML5 に注力すると書いていたけど、 実際書いたブログエントリを見てみると、iOS アプリ開発ネタが多かった。 最初のほうは Rails や AngularJS や Backbon…

Objective-C のカテゴリでプロパティを定義する方法のメモ

objc/runtime.h で定義されている、objc_getAssociatedObject メソッドと objc_setAssociatedObject を使う。 #import <UIKit/UIKit.h> @interface UIViewController (SideMenu) @property (nonatomic, readonly) UIBarButtonItem *menuButtonItem; @end #import "UIViewCon</uikit/uikit.h>…

アンクル

アクロス福岡の隣、ダヴィンチビル地下1階にある喫茶店『アンクル』。 ここのオムライスが以前から評判が良いらしい。 臨時収入が入ったので行ってみることにした。 注文したのはビーフオムライス(880円)。 ケチャップライスを玉子で包み、デミグラスソース…

RubyMotion で MagicalRecord を使う

最近、RubyMotion 向けのラッパー gem じゃなくて、 Objective-C のライブラリを使ったほうがいいのでは、って思うようになってきた。 CoreData なら MotionData や MotionDataWrapper じゃなくて MagicalRecord。 そこで RubyMotion で MagicalRecord が使…

RubyMotion で CoreData を使うとき Xcode で作成した Data Model をラッパー gem なしで読み込む

先日 RubyMotion で CoreData を使うために試した MotionDataWrapper、 ソースコードを見たらシンプルな実装で難しいことやっていなかった。 Xcode の Data Modeler で作成したエンティティ定義を読み込むけど、 それは CoreData.framework が提供している機…

backbone.stickit を使って Backbone でデータバインディング

最近また AngularJS が盛り上がってる気がする。 AngularJS のデータバインディングは魅力的だけど、自分は Backbone 派。 でも Backbone でもデータバインディング使いたい。 そこで New York Times 製の Backbone プラグイン backbone.stickit を試してみ…

実践 Vim

『実践 Vim』は Vim のコア機能に特化した本。 TIPS 集の形式ではあるけど、そのほとんどが Vim のコア機能を使った方法だった。 プラグインの紹介は少ない。 Vim のコア機能を使いこなせるようになりたい。 プラグインは必要最小限で、あまりカスタマイズし…

UITableViewCell の imageView をタップしたとき処理を行う方法

UITapGestureRecognizer を使う。 ついでに、タップされた位置からセルの indexPath も取得してみる。 // タップされた位置からセルの indexPath を取得 - (void)imageViewTouched:(UITapGestureRecognizer*)sender { CGPoint point = [sender locationInVie…

FontAwesomeKit の使い勝手が良かったので移行した話

FontAwesome-iOS、motion-fontawesome を経て、 今は FontAwesomeKit を使っている。 PrideChung/FontAwesomeKit FontAwesomeKit は開発が活発なので、最新の FontAwesome 4.0.3 に対応している。 しかも FontAwesomeKit という名前なのに、FontAwesome 以外…

チョコレートショップ

チョコレートショップの『博多の石畳』っていうケーキを一度食べてみたくて、 会社帰りに買ってみた。 右が『博多の石畳』。 勝手に凄く甘ったるいチョコレートケーキを想像していたけど、そんなことはなかった。 チョコレートムースがほんのりビターで大人…

MotionDataWrapper を使ったモデルのスペックを書く

CoreData を使ったモデルのスペックを書く場合、NSManagedObjectContext などのセットアップと、 テストデータの後始末が面倒。 このうちセットアップは MotionDataWrapper が楽にしてくれる。 あとは後始末だけど、こいつも MotionDataWrapper の spec にお…

MotionDataWrapper と NSFetchedResultsController を組み合わせる

MotionDataWrapper を使うと、CoreData を ActiveRecord ライクに扱えるため、 # すべてのエントリを配列で取得 all_entries = Entry.all # 下書きのみを配列で取得 draft_entries = Entry.where("draft = ?", true).all という風に、簡単にデータを取得でき…

Ruby で CSS をパースする

先日、motion-fontawesome を FontAwesome 4.0.3 に対応させたときの話。 利用できるアイコンを Hash で定義する箇所があり、 手入力でやるには数が多すぎる上に、さしみたんぽぽ作業。 なので、FontAwesome の CSS をもとに Hash を組み立てる Ruby スクリ…

メゾン・カイザー

大丸地下2階にある『メゾンカイザー』のパンが無性に食べたくなったので、 週末天神に出かけたついでに3種類のパンを買って帰った。 まず『ル・デリス・ブラン』。 今回はこれがお目当て。 福岡の情報番組で映っていたのが気になっていたもので。 ホワイトチ…

RubyMotion で FontAwesome を使う

自分はデザインが苦手、特にアイコンが作れないので、 FontAwesome を重用している。 これがないとアプリ開発できないと言ってもいいくらい。 当然、RubyMotion でも使いたい。 前に Objective-C で FontAwesome を使ったときと同じ方法 を採用してもいいけ…

MotionDataWrapper で多対多のリレーションシップを実現する

MotionDataWrapper を使って、ブログのエントリとカテゴリみたいな、 多対多のリレーションシップに挑戦した。 すんなりいくだろうと思っていたけど、意外に嵌ってしまったので、 メモを残しておく。 エンティティとリレーションシップの定義 Xcode Data Mod…

RubyMotion のデバッガが LLDB になっていた

気づいたら、RubyMotion のデバッガが GDB から LLDB に変わっていた。 どうやら、iOS 7 から LLDB しか SDK に含まれないようになったためらしい。 @t_nakamura iOS 7 から LLDB しか SDK に含まれないようになったので、それに併せて GDB から LLDB に切り…

Formotion の Date row と Subform row で嵌った

Grouped スタイルの UITableView を使ったフォームを簡単に作成できる、 RubyMotion 用の gem 『Formotion』が便利。 clayallsopp/formotion 文字列入力や数値入力やスイッチなど、たいていの入力は README 読めば使える。 ただ自分の場合、日付選択とサブフ…

JINS PC

福岡限定セールで JINS の全品が1割引になっていたので、 JINS PC を購入してみた。 正直、「ブルーライト 50% カットしたところでたいしたことないだろ」なんて思っていたけど、 かけるようになってから目薬の消費量が激減。 以前は1時間に1回くらい差して…

MotionDataWrapper

はじめに 「RubyMotion で CoreData を使うなら MotionData を導入した方がいい」って勧めておいてなんだけど、 その後『MotionDataWrapper』を知って速攻で移行してしまった。 macfanatic/motion_data_wrapper MotionDataWrapper の特徴 MotionData は Data…

Vimmer のための Xcode プラグイン『XVim』

Vim

Objective-C で書いた iOS アプリを保守するために Xcode を強いられているんだ! Xcode は補完が賢くて便利なんだけど、Vim のキーバインドが体に染み付いているせいで、 つい Vim の時と同じことをしようとしてしまう。 入力が終わったらつい Ctrl + [ で…

大名ちんちん

赤坂にある『大名ちんちん』で坦々麺と炒飯のセット(850円)を食べてきた。 小学生が喜びそうなアレな店名だけど、味はいたって真面目。 食べログ福岡の坦々麺ランキングで 1 位になるくらいに。 まず坦々麺。スープはごまの風味が濃厚で、細い麺によく絡んだ…

Homebrew で最新の Vim をインストール

neocomplete.vim を MacVim だけでなく Vim でも使いたいけど、システムにプリインストールされている Vim のバージョンは 7.3。Homebrew で最新版をインストールすることにした。 brew install vim --devel --with-lua を実行すると、Vim 7.4.52 が /usr/lo…

Homebrew の再インストールでエラー発生

Mac

先日、下記ページの方法で Homebrew をアンインストールしたわけだけど、それから今までインストールし直すのを忘れていた。 Homebrew をアンインストールする方法 - present ターミナルに Homebrew 公式ページに書かれているコマンド ruby -e "$(curl -fsSL…

天神たんか

渡辺通にある焼肉店『たんか』は、名前から分かるとおり牛たんが人気。 そして同じくらい人気で、先に全国で名が知れた(かもしれない)のが、 〆に食べる『焼きめし』。 メニューはチャーハン1種類だけ! こだわりまくりのチャーハン専門店に行ってきた - ね…

RubyMotion で CoreData を使うなら MotionData を導入した方がいい

RubyMotion で CoreData が使えることは確認できた。 * ただ、CoreData のエンティティ定義をコードで書くのは結構シンドイ。 NSManagedObjectContext の初期化や CRUD を含めると、CoreData だけでかなりのコードを書くことになる。 正直、CoreData のラッ…

RubyMotion で CoreData を使う

# -*- coding: utf-8 -*- $:.unshift("/Library/RubyMotion/lib") require 'motion/project/template/ios' begin require 'bundler' Bundler.require rescue LoadError end Motion::Project::App.setup do |app| app.name = 'CoreDataSample' app.frameworks…

Vim の入力補完プラグインを neocomplcache から neocomplete.vim に移行した

Vim

今さらながら、Vim を使う上で個人的に必須プラグインの neocomplcache に、後継の neocomplete.vim があることに気付いた。 neocomplcache はまだ保守されているみたい。でも開発の主軸は neocomple.vim に移っているようなので、遅ればせながら移行するこ…

Bitissues v1.1.0 をリリース

Bitbucket イシューの iOS クライアント『Bitissues』の v1.1.0 をリリースしました。 今回のリリースには下記の修正が入っています。 iOS7 対応 イシューの検索 イシューの絞込み 担当者 種類 優先度 完了・未完了 イシューの並べ替え 作成日付昇順・降順 …

Homebrew をアンインストールする方法

Mac

Homebrew 開発者が Git に削除用のシェルスクリプトを公開しているので、それを使えばいい。 Uninstall Homebrew 今回はコマンドを抜き出して実行してみた。 cd `brew --prefix` rm -rf Cellar brew prune rm `git ls-files` rmdir Library/Homebrew Library…