2012年2月25日土曜日

[objective-c] iPadでのUIImagePickerControllerの使い方

カメラを使う時のクラスとしてUIImagePickerControllerがありますが
iPadでこれを使う場合、iPhoneアプリと同様にコードを書くと動かない場合があります。


UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
 imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
 imagePicker.mediaTypes = [NSArray arrayWithObject:@"public.image"];
 imagePicker.delegate = self;
 [self presentModalViewController:imagePicker animated:YES];
 [imagePicker release];

iPhoneアプリ同様でOK


UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
 [self presentModalViewController:imagePicker animated:YES];
 [imagePicker release];

としたいところですがこれでは駄目

UIImagePickerController imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
UIPopoverController uiPopoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[uiPopoverController presentPopoverFromBarButtonItem:targetElm // 基点となるUI
                                       permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                       animated:YES];

UIPopoverControllerでラップすることによって表示することが可能です。

2012年2月23日木曜日

[ツール] syntaxhighliter 3.xをobjective-cに対応させる

ブログにソースを乗っける時の定番のsyntaxhighlighterですが
標準ではobjective-cに対応していません。

調べたところ有志の方がobjective-c用のプラグインを作成していますので
http://blog-imgs-47.fc2.com/d/e/v/dev2next/shBrushObjectiveC.js
↑からjsファイルをダウンロードし、headタグ内にincludeします。
(参照:アプリ開発の記録)

利用する箇所で
<pre class="brush: objc";></pre>とソースコードを囲めば、Xcodeでコードしたような表示が可能です。


・おまけ
syntaxhighlighterが未導入の方は以下のサイトからincludeタグを生成すると楽です。

HOW TO ADD SYNTAX HIGHLIGHTER(V3) TO BLOGGER BLOGS

リンク切れが心配な方は全部のjsファイルを引っ張っておきませう

2012年2月22日水曜日

[objective-c] objective-cでAsyncTaskみたいな非同期処理

testOperation.h
@interface testOperation : NSOperation {
    BOOL isExecuting, isFinished;
}
@end

testOperation.m
#import "testOperation.h"

@implementation testOperation

-(void) dealloc {
    [super dealloc];
}
- (BOOL)isExecuting {
    return isExecuting;
}
- (BOOL)isFinished {
    return isFinished;
}

/**
 * 処理メイン
 */
-(void) main {
    LOG_METHOD;
    for (;;) {
        // 〜適当なループ処理など
        if ([self isCancelled])
                break; // キャンセルの場合にループを抜けるなりreturnするなり
    }
}

@end


呼び出し元
- (void) hogehoge {
    NSOperationQueue * _queue;
    _queue = [[NSOperationQueue alloc] init];
    // 1つ目のリクエスト
    testOperation *ope1 = [[[testOperation alloc] init]retain];;
    [ope1 autorelease];
    // 終了監視
    [ope1 addObserver:self forKeyPath:@"isFinished" 
                   options:NSKeyValueObservingOptionNew context:nil];
    // キュー実行
    [_queue addOperation:ope1];
}

- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object 
                        change:(NSDictionary*)change context:(void*)context
{
    LOG_METHOD;
    // タスク終了時の処理
    // 〜〜〜〜

    // キー値監視を解除する
    [object removeObserver:self forKeyPath:keyPath];
}

[音楽] 心を開いて / ZARD



今聞いてもいい曲。

2012年1月21日土曜日

[android] スクラップリーダーVer1.1.1リリース

本日Ver1.1.1を公開しました。

変更箇所としては

  1. GoogleReader連携機能を強化しました。
  2. 記事一覧画面にサムネイル表示を追加しました。
  3. ウィジェットのテーマを追加しました。
  4. SDカードにアプリを移動可能にしました。

1.GoogleReader連携機能
アプリからフィードの登録、解除が可能になりました。
また、既読未読の同期も可能です。
記事を保護すると、GoogleReader上でスター付きのアイテムとなります。
アプリから登録したフィードを連携する場合は、フィード一覧画面にて該当アイテムを
長押しするとメニューが出てきますので「GoogleReader連携」を選択してください。




2.記事一覧
デフォルトではリスト表示になっていますが、リストを表示時にオプションキーを押し
「表示切替」をタップすると、サムネイル一覧に切り替わります。




3.ウィジェット
テーマを数個追加しました。

4.SDカードインストール
デフォルトでは内蔵メモリにインストールされますが、アプリケーション管理から
「SDカードに移す」等のボタンよりSDカードに移すことが可能です。
ウィジェットを利用する場合はSDに移すとウィジェットを表示できなくなりますので
注意してください。

2012年1月14日土曜日

[android]スクラップリーダーVer1.0.1リリース

本日Ver1.0.1をリリースしました。

変更箇所としては
1.有料版から無料版に(広告を表示)


2.縦1x横4のウィジェットを追加

3.バグFix

となります。

2012年1月10日火曜日

[android] 初androidアプリ公開

年が明けて1発目、去年から少しづつ進めていたandroidアプリの開発が

やっとものになったので、本日から公開しています。


今は有料版のみ登録していますが、後日広告ありの無料版を公開する予定です。(機能的には変わらない)