Archive

Posts Tagged ‘three20’

three20:TTStyleの威力。

December 16, 2009 Leave a comment

iPhoneのサードパーティフレームワークthree20ネタ続編。

three20はnibファイルとの共存をさせようとして、ちょっとハマる。まだ深くは調査していないが、viewDidLoadが呼ばれなかったりと、不思議なことがいろいろある。

基本的にviewは手でコーディングしてしまえば、特には問題はないようだ。

three20でとても助かったのは、TTStyleによるUIコンポーネントのビジュアルをカスタマイズが可能な仕組み。これはHTMLでいうスタイルシートのようにスタイルを別に管理し、ビューコントローラでスタイルを指定できる仕組みで、TTStyleクラスを拡張したスタイル(クラス)を加工することによって、ボタン(TTButton)の形などを比較的容易にカスタマイズできる。

今回はアイコンの上に数字を表示するバッジをボタン上に配置する必要があったのだが、Cocoa TouchフレームワークではSpringboard(アプリ起動インタフェース)かUITabBarにしかつけることができない。通常このような場合はUIImageViewを拡張したクラスで実現するが、three20ではバッジのスタイルも既に定義されているので、以下のように簡単に実現できる。

TTLabel *myBadge = [[TTLabel alloc] init];

myBadge.style = TTSTYLE(badge);

myBadge.backgroundColor = [UIColor clearColor];

myBadge.userInteractionEnabled = NO;

[myButton addSubview:myBadge];

myBadge.text = [NSString stringWithFormat:@”%d”, itemCount];

[myBadge sizeToFit];

myBadge.frame = CGRectMake(myButton.width – myBadge.width-1, 4, myBadge.width, myBadge.height);

楽です。
Advertisements
Categories: dev/programming Tags:

three20のAppStoreリジェクト問題

December 10, 2009 Leave a comment

AppleはAppStore承認審査で非公開APIスキャンを実施し、使用が検出された場合はアプリはリジェクトされるようになったというニュースが10月くらいに開発コミュニティの中でまわっていた。

three20も非公開APIを使用しており、three20使用アプリが立て続けに却下されてしまい、three20の開発メンバーによって非公開API排除版が公開されたのだが、その後も問題がちらほら。

昨日Google Groupsのthree20コミュニティで共有されていた情報によるとどうも非公開APIと同名のメソッドをカテゴリで拡張していてもアップルの非公開APIスキャンで誤検出されてしまうらしい。

非公開APIのリストがあるわけでもなく、やっかいな問題である。却下されたらそのメソッド名をリファクタすればいいのだろうけれど。

ちなみにAppStore申請時に使うべきforkはuprise78/three20-P31です。

Categories: dev/programming Tags: ,

three20のメリット・デメリット

December 5, 2009 Leave a comment

諸々の理由でプロジェクトでiPhoneのサードパーティ開発フレームワークthree20を使うことになったので、数週間前から勉強し始めた。

three20はFirefoxのデバッグツールアドオンのFirebugの開発者でもあり、業界の有名人Joe HewittによってiPhone 向けFacebook app開発時に構築されたフレームワークである。(しかし2009年11月にJoe HewittはApple AppStoreのアプリ審査に関して不満を示しiPhoneプロジェクトを離れる)

three20の主な機能としては:

  • URLを使用したページ(View)間移動機能
  • HTTPディスクキャッシュ(iPhoneではメモリキャッシュしかない)
  • Flckrライクなサムネール&フォトビューア
  • スタイルシートのようなスタイル指定の外部ファイル化
  • HTMLのようにテキストフィールドの一部またはすべてにスタイルを持たせることが可能
  • ネットからのデータ取得処理管理を持つテーブルビューコントローラとイメージビュー

みなさんそれぞれ、フォトビューアを使いたい、HTTPディスクキャッシュが必要などthree20を使う動機はいろいろあると思う。

個人的には上記にリストアップした項目でURLベースナビゲーション機能意外は使うメリットがとても大きいと思う。

デメリットがないかと言えば、いくつかある。

  • Joe Hewittがプロジェクトを離れてしまった。Facebookの別の担当が引き継いだのだけれども、Joe Hewittのスキルは皆が信頼するところ。Facebookアプリ並びにthree20がクオリティを維持できるか不安が残る。またiPhoneOSがバージョンアップし、タブレット等対応デバイスが増えた場合など、きちんと進化して行くのか気になるところ。
  • ドキュメントが少ない。Cocoa Touchと考え方が違う部分もあり、クラス構造も結構複雑なので、フレームワーク全体に慣れるのが時間がかかる。ある程度のプロジェクト規模がないと元がとれないかもしれない。

少し落ち着いたらtipsでも載せようかと思います。

three20プロジェクトテンプレートを使ってみた

November 17, 2009 Leave a comment

three20のプロジェクトテンプレートがGithubにあったので使ってみた。

TTNavigatorベースのアプリを作っちゃうけど、細かい設定を省けるので楽。three20は独自の世界を築いているので慣れるのに時間がかかるけれど、写真をダウンロードして表示するアプリだったらiPhoneのフォロアプリライクなインタフェースも実現できるしディスクキャッシュも使えるので便利だなぁ。

Categories: dev/programming Tags: ,

three20はFacebookが継続して開発

November 15, 2009 Leave a comment

先日のエントリーでも触れたJoe HewittがFacebook iPhoneアプリプロジェクト離脱の件、彼のTwitterでの発言を見ると、彼が作り上げてきたiPhoneオープンソースフレームワークであるthree20はFacebookによって継続されるとのこと。

実プロジェクトで使う予定なので、とりあえず継続が発表されて良かった。

three20はドキュメントがほとんどないので、利用者が増え情報が充実して行くとうれしい。

three20を使いはじめた

November 5, 2009 Leave a comment

iPhoneのオープンソースフレームワークthree20の勉強メモ

Interface Builderが使えるときはなるべく使いたい。IBで配置するViewControllerはUIViewControllerを継承していないとならないが、three20の”ページ”間ナビゲーションを実現するTTNavigatorはNSObjectを継承しており、IBでは直接使えない。

TTNavigatorまで使うといろいろややこしくなりそう。

three20のスタイルとHTTPディスクキャッシュ機能はとても便利。Facebookアプリでも使われており、クオリティは高い。

Categories: dev/programming, technology Tags: