.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.30 2011

意外と知らないXcode

どうも。
hayateです。

iOSアプリ開発の入門書などでも序盤にちょこっと書いてあったりしますがXcodeには開発効率を上げる便利な機能があります。意外と知らない人も多いんじゃないでしょうか?

中でも私もよく使う機能を紹介します。

■クイックリファレンス

 【option + ダブルクリック】

コード中のクラス名やメソッド名をoptionキーを押しながらダブルクリックすることで、そのクラスやメソッドの簡単な説明ウィンドウが開きます。
さらに、このクイックリファレンスウィンドウの右上のボタンに注目。

 本のボタンでデベロッパドキュメントの該当ページを開く
 Hのボタンでヘッダのソースを表示

これで、わざわざリファレンスを開く手間が省けます。
コードを書きながら、ささっとリファレンスが開けるのでとても重宝します。

■定義へジャンプ

 【command + ダブルクリック】

クイックリファレンスと同様、クラス名やメソッド名をcommandを押しながらダブルクリックで、それが定義されたファイルの該当部分にジャンプします。リファレンスを見るより定義部分を見たほうが早いって場合もありますよね。

■エディタの分割

 【エディタのスクロールバーのすぐ上にあるボタン】

    Xcodeエディタ分割

一画面で二つ以上のファイルを並べて見たいときに使うと便利。いかにもエディタが上下に分割されそうなボタンを押すとエディタビューが上下分割されます。例えば、.hファイルの@propertyを見ながら.mファイルに@synthesizeを書く時とかね。ちなみにもとに戻すときは、いかにもエディタが1つになりそうなボタンの方を押します。

■コード補完リスト

 【コード書き途中でESCキー】

これも使えます。コード補完は自動でやってくれますが、たまに「それじゃないんだけど」ってときありますよね。そういうときはESCを押します。すると候補がズラッとリスト表示されて選べるようになります。候補の左にはそれがクラス名なのか、メソッド名なのか等がわかるようにアイコンが表示されています。さらに右下のボタンで名前順か最適な候補順かでソート順を切り替えることができます。

■ショートカット

 【メニューバー>Xcode>環境設定>キーバインド】

他にもショートカットキーを覚えておけば開発効率を上げることができます。ショートカットは上記で設定が見れます。自分好みにカスタマイズも可能です。


使える機能は上手に使って効率を上げていきたいですね。
ではまた。

スポンサーサイト
.26 2011

iOS4.3ベータが公開中です

Tasakiです。

先々週くらいのネタになりますが、iOS4.3ベータが公開されました。(2011/1/26現在ベータ2)
今回のAPIとしての追加機能は、AirPlayのビデオ再生がメインみたいです。

既に話題になっているマルチタッチジェスチャーもOSとして載るのはおそらく次回のメジャーアップデートになりそうですし、AppleTVもないので私自身にはあまり影響のない変更になりそうです。

とはいえ、外部機器との連携、通信といったところは、これからますます強化されていくでしょう。
一連の動きを見ていると、iPhoneがコントローラであり、他の機器とのインタフェースとなるというのが目標となっているように感じられます。
確かにこれさえあれば、何でもできるといったツールってあれば便利だけど、まだ誰も実現していませんし。

やはり、ロードマップがはっきり見えていることが、Appleの最大の強みなんですかねー。

.23 2011

iPadが欲しい

はい、どうも
Hayateです。

毎週毎週出てきてますね。
時期iPadのリーク情報。

 ・Retinaディスプレイ(解像度向上)
 ・SDカードスロット搭載
 ・デュアルカメラ搭載(FaceTime対応)
 ・新プロセッサ搭載
 ・軽量化、薄型化

いまんとここんな感じですかね。

ギュンギュンきてます。
欲しくてたまらん。
ユーザ目線でも開発者目線でも気になりまくりですね。
中にはホームボタンがなくなるんじゃないかってうわさまでありますしね。

iPadに始まり、OS X Lionのリリースに伴う各種ハードウェアの刷新、iPhone5と
今年もApple製品から目が離せません。
春以降に向けて貯金しないと・・・。

.16 2011

自前で配置したToolbarが反応しない

はい、どうも。
hayateです。

今年もよろしくお願いいたします。

いよいよ2011年ということで、残り2年を切りましたね。
全開で生きていきましょう。

さて最近、画面に配置したToolbarのボタンが反応しないという目にあいました。
原因は、toolbarが親Viewの領域外に配置されていたため。

いや~、気がつかなかったですね。
だって、パッと見表示されちゃってるから、まさか領域外とは・・・。
親ViewのclipsToBoundsプロパティがNO(※デフォルトがNO)だと、
領域外にいても子Viewは表示されちゃうんですね。

気をつけましょう。
.12 2011

UIImageとRetina(応用)

Tasakiです。

昨夜CDMA2000版のiPhoneがついに発表されましたね。
生中継サイトがないか探してる間に速報が出ちゃったので、あまりライブで知り得た感覚がありませんでしたけども。

今回発表された端末がそのまま日本で(auから)出る可能性は、物理的に見てありえないそうですが、わざわざ単一キャリアのために特別仕様の端末(OSまでも)を用意する辺り、AppleとしてもこのままAndroidのシェア上昇を黙って見守るつもりはないのでしょうね。
個人的には、次世代iPhoneが半年以内にリリースされる可能性のある中で、どれくらい需要があるのかというのは興味があります。

さて、今回は前回までの応用編、というか用途についてです。
私の場合は、UIImagePickerControllerから得られた写真を表示するのに使用しました。
このときにパラメータで渡される画像は、高精細ディスプレイであってもscaleが1.0に設定されています。
これをなんとかしたかったというわけですね。

まあ、そんなに大きな画像ファイルをそのまま表示するのは間違ってるよってことかもしれませんが…

.05 2011

UIImageとRetina(2)

Tasakiです。

新年明けましておめでとうございます。
今年も当ブログをよろしくお願いいたします。

さて、年をまたいでしまいましたが、前回の続きと参りましょう。

単精度画像を倍精度画像として使用する。ということでしたが、これは厳密に言うとできない 模様です。

どういうことかと言いますと、前回お話したUIImageのscaleプロパティなんですが、これはreadonlyに設定されており、参照は可能ですが変更することはできません。

じゃあどうするのかと言うと、ここでは少し発想を変えまして、一旦作成した単精度画像オブジェクトから倍精度画像を作成してしまうことにします。

例えば、UIImageに以下のようなメソッドを追加してみましょう。
このメソッドは、引数で渡された画像オブジェクトから、現在の画面解像度に応じたコンテキストを持つ画像オブジェクトを作成するものです。

+ ( id ) scaledImageWithImage:( UIImage* ) image {
 CGFloat scale = [[ UIScreen mainScreen ] scale ];
 CGSize size = image.size;
 if( round( image.scale ) != round( scale )) {
  CGSize newSize = CGSizeMake( size.width / scale, size.height / scale );
  UIGraphicsBeginImageContextWithOptions( newSize, YES, scale );
  [ image drawInRect: CGRectMake( 0.0, 0.0, newSize.width, newSize.height )];
  image = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
 }
 return image;
}

上記コード中で肝になるのがこの関数です。

void UIGraphicsBeginImageContextWithOptions(
  CGSize size,
  BOOL opaque,
  CGFloat scale
);

これは、画像コンテキストを作成する関数の1つで、iOS4.0で追加されたものです。
最後の引数scaleに2.0を渡せばRetina用のコンテキストを作成してくれます。
こうして作成したコンテキストに対して画像を描画し、それを内包した画像オブジェクトを取得する、というわけです。

厳密にはこの書き方だと問題があったりする場合もあるようですが、ひとまずこれで画面解像度に応じた画像オブジェクトを扱うことが可能になります。

当然ですが、こうするとRetinaの場合は画像オブジェクトのsizeは小さくなりますので、ご注意を。

 HOME 

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。