2012年11月11日日曜日

[android] スクラップリーダーVer1.2.4更新

いろいろなバグを認識をしてはいましたが、なかなか対応するタイミングが無くて

前回リリースから4ヶ月も経過してしまいましたorz

Evernoteの認証がoAuthのみになっていたり、久しぶりに修正を行うと

他の箇所まで気になったりで、見た目はあまり変わらないのですが、内部処理を大きく変更しました。

・データ同期Serviceが切れる現象に対応

・SQLite接続をシングルトンモデルに変更

・データエクスポート時のファイルパスを外部SDに設定

・ウィジェットと同期サービスの分割

DL数が少ないにもかかわらず、コメントを書いてくださっている方もいらっしゃるので

なるべく早期に対応していきたいと思っています。

次回VerUPのTODOとして

・未読、全部切り替えボタンの配置

・保存フィードの一括GoogleReader連携登録UIの追加

DLはこちらから

スクラップリーダー(google play)



この件とはまったく関係ありませんが、今日はポッキー&プリッツの日らしいです。

江崎グリコは11月11日を「ポッキー&プリッツの日」と定め、日本記念日協会(加瀬清志代表)の認定を受けました。
ポッキーとプリッツは、スティック状菓子の代表的な存在。その形が数字の“1”に似ていることから平成11年11月11日の“1”が6個並ぶおめでたい日にスタートしました。
秋の行楽シーズンに合わせて、お客さまへの感謝の気持ちを込めて、毎年キャンペーンを実施しています。

11月11日はポッキー&プリッツの日から引用

日本記念日協会なるものに認定を受けているそうです。ゆくゆくは国民の休日に・・・・なるのかも?w

我が家でもプリッツ(シーザーサラダ味)を食して祝い?ました。

2012年11月1日木曜日

[音楽] Calling you / takui



この10年位、飽きる事無くずっと聞き続けている名曲。PVも良い
いい曲は時間が立っても、詩の別の捉え方、メロディの聞き方が出来て飽きないんだよなぁ
カラオケでも歌うけど、最後のサビの連続が歳を取るに連れて厳しくなってくる(笑)

2012年9月13日木曜日

[iPhone] iPhone5発表


ついに正式発表されましたな。

個人的にはNFCにも対応してないし、目立った新機能が無いので肩すかし食らった気分だったのですが

ついにテザリング解禁か?という記事もあったり、よく見たら4Sより30gも軽くなってたり、ついでにiPod Touchの新型に思ったより食指が動いたり

さすがAppleだなぁという感想です。

4Sからの変更点は以下

ディスプレイ:4インチ、画面比率16:9、1136 x 640px(326ppi)
CPU:Apple A6
Wifi:Wi-Fi (IEEE 802.11a/n: 5GHz対応)
付属品:nanoSIM、Lightningコネクタ、Earpods(新型イヤホン)
カメラ: 背面:8メガピクセルiSightカメラ、ビデオ撮影中の写真撮影、パノラマ
リアカメラ:正面:1.2メガピクセルFaceTime HDカメラ、720pHD動画撮影対応(30fpsまで)
サイズ:123.8×58.6×7.6mm(4.87×2.31×0.30in)
重量:112g




au iPhone5に関するお知らせ

http://www.kddi.com/corporate/news_release/2012/0913a/index.html

SoftBank 「iPhone 5」について

http://www.softbankmobile.co.jp/ja/news/press/2012/20120913_01/

2012年9月7日金曜日

[android] SQLiteOpenHelperをシングルトンにする

ActivityとWidgetを併用するようなアプリ

もしくはActivityの裏でDBのデータを頻繁に更新するような、Serviceを動かすアプリ



このようなアプリを作る場合、SQLiteへのアクセスが頻発し、トランザクションをかますような

処理をした時に、参照系のSQLがエラーでアプリが落ちる。という事があります。


このような場合、SQLiteOpenHelperを継承したクラスをシングルトンにすることで対応できます。


class DatabaseHelper extends SQLiteOpenHelper {
    // 唯一のクラスインスタンス
    private static DatabaseHelper instance = null;
    
    /**
     * コンストラクタをprivateにすることで、外部からはインスタンス化できないようにする
     */
    @Override
    private DatabaseHelper(Context context) {
        super(context, "DBNAME", null, 1);
    }

    /**
     * このstaticメソッドからインスタンスを得る
     * 多数のクラスから参照されても、常にインスタンスは1つになる
     */
    public static synchronized DatabaseHelper getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseHelper(context);
        }
        return instance;
    }

    @Override
  public void onCreate(SQLiteDatabase db) {
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  }
}

このクラスは他の常用クラスとまとめてjarにしてもいいかも。

2012年9月3日月曜日

2012年8月19日日曜日

[android] スクラップリーダーVer1.2.3更新

SC-02CをICSにアップデートした事によって判明した

このバグを修正した版を更新しました。


ダウンロードはこちらから

スクラップリーダー(google play)


twitterのコールバックスキーマの件は、スキーマに英字の大文字があったため

対象のactivityを呼べずにエラー画面となっていた様です。



android:ellipsize="end"

の件はICSでそもそも未対応?になっていた様で、android:lines="1"を

追加する事によって対応。(機種依存な気もする)


検証端末が少ないので、利用者のフィードバックが大切だよなぁと感じた今日この頃。

※勿論利用者がフィードバックしやすい様な仕組みを考える必要があるのは当然

[Linux] Debianのランレベル

久々にLinuxネタを

RedHat系は仕事で、Debian系は私用でよく使っていたのだけど

今更ながらランレベルに関して両ディストリで違う仕様になっているのに気づいた。

Debian系
0 = 停止
1 = シングルユーザーモード
2 = マルチユーザーモード(X起動)
3 = 2に同じ
4 = 2に同じ
5 = 2に同じ
6 = 再起動



RedHat系
0 - 停止
1 - シングルユーザー
2 - 未使用/ユーザー定義可能
3 - マルチユーザー、コンソールログインのみ
4 - 未使用/ユーザー定義可能
5 - ランレベル 3 + Xディスプレイマネージャ起動
6 - リブート

なのでDebianの場合、RedHatと同じようにCUIのみでマルチログインさせるべく
ランレベルを3にしただけではXが起動してしまうので、あれ?という事態になる。

Debianの場合はランレベルに応じたディレクトリ(rc1.d~rc6.d)内の
起動スクリプトを削除するなりして、Xの起動を止めないといけないのである。


ついでに他のディストリ&OSのランレベルの定義をのせておく

Slackware
0 - 停止
1 - シングル
2 - マルチユーザー(Xディスプレイマネージャ無)
3 - マルチユーザー(Xディスプレイマネージャ無)
4 - マルチユーザー(Xディスプレイマネージャ有)
5 - 未使用/ユーザー定義可能
6 - リブート

Gentoo Linux
0 - 停止
1 - シングル
2 - マルチユーザー、ネットワーク無し
3 - マルチユーザー、ネットワーク+Xディスプレイマネージャ
4 - ランレベル 3 と同じ
5 - ランレベル 3 と同じ
6 - リブート

Solaris
0 - オペレーティングシステムを停止。SPARCの場合、OpenBootのプロンプトに移行
S - シングルユーザー、root ファイルシステムのみマウント(リードオンリー)
1 - シングルユーザー、全ローカルファイルシステムをマウント(リード/ライト)
2 - マルチユーザー、ほとんどのデーモンを起動
3 - マルチユーザー、ランレベル 2 の動作に加えて、ファイルシステムのエクスポート、その他のネットワークサービスを起動
4 - 予備のマルチユーザーモード。ユーザー定義
5 - シャットダウンし、ハードウェアがサポートしていれば電源を切る。
6 - リブート

HP-UX
0 - システム停止
S - シングルユーザー、コンソールのみ起動、root ファイルシステムのみをマウント(リードオンリー)
s - シングルユーザー、S とほぼ同じだが、現在の端末がコンソールとなる。
1 - シングルユーザー、全ローカルファイルシステムをマウント(リード/ライト)
2 - マルチユーザー、ほとんどのデーモンと Common Desktop Environment を起動
3 - マルチユーザー、2 に加えて、NFS のエクスポートを行う。
4 - マルチユーザー、CDE ではなく VUE を起動
5 - ユーザー定義
6 - ユーザー定義

2012年7月31日火曜日

[android] スクラップリーダー ICS対応のTODO

SC-02CをICSにアップデートしたら、Twitter認証のコールバックスキーマが呼べないというバグを発見
(WebView上でページが見つからない旨が表示される)

原因は不明なので、要調査

追記

TextViewに長い文字を省略させる
android:ellipsize="end"
が聞いていない。

2012年7月19日木曜日

[android] エミュレーターの内蔵メモリの容量を増やす

エミュレーターで開発していると、起動の遅さや動作の遅さもさることながら

一番困るのが内蔵メモリにインストール出来ない事が多い


デフォルトで50MB(だったと思う)しかないので、ちょっと重いライブラリを入れたり

drawableに色々置いてしまうとあっと言う間にインストール出来なくなる


外部SDにインストール可能(Manifest.xmlのinstallLocationにpreferExternalを指定)

してやれば良いが、それだとウィジェットが表示出来ない。


そこでGoogle先生に聞いてみたところ

コマンドラインからパラメータを渡して起動することによって

内蔵メモリを増やす事が出来る事が判明



emulator -avd EmulaterName -partition-size 300


EmulaterNameにはエミュレーターの名前、-partition-sizeの引数は内蔵メモリのサイズ(MB)を指定

これで大きめのアプリも内蔵して開発する事が出来る。

2012年7月18日水曜日

[デジモノ] Acer A700

iPad3rdの発売、Nexus7が発表された今、どのスペックも中途半端な印象を受ける。
TF700はこれにキーボードドックがついただけになるのかな

ディスプレイ:10.1インチ液晶(1920×1200)、10点までのマルチタッチ認識
SoC:NVIDIA Tegra3@1.3GHz
カメラ:5Mピクセル(LEDフラッシュ有)
入出力端子/ボタン:MicroSDカードスロット、MicroHDMI、MicroUSB、SIMカードスロット、3.5mmオーディオジャック、回転ロック
ネットワーク:WiFi(a/b/g/n)、Bluetooth3.0、3G
バッテリー容量:9800mAh
重さ:約650g

2012年7月17日火曜日

[音楽] X Japan -WEEKEND-



曲名通り、金曜の仕事終わりに聞くと
いつもより酒が進みます(笑)

手首を流れる血を~の16分刻みはついつい空ドラムしたくなる

2012年7月3日火曜日

[WiMAX] 半年ほど利用してみての感想など

自宅の回線環境を見直して、光回線からWiMAXに乗り換えて約半年を迎えた。

そこで自分が光からWiMAXに乗り換えた理由と乗り換えてのメリット・デメリットを書いてみることにする。



・乗り換えの理由

現在の住まいは集合住宅にも関わらず、大家さんが光回線を引いていないため

個別でNTTと契約する必要があった。しかもプランがマンションタイプではなく、一戸建てのプランでしか契約が出来なかった。

それでも仕事上回線を引かない訳にはいかず、渋々継続していた。

その時の支払っていた月額料金は以下

NTT光回線利用料 :¥5,418(光もっと割適応後期間)
プロバイダー料金  :¥1,260
計                       :¥6,678

その後、サポートをほとんど利用していない事に気づき、業界最安値のBB-Exciteへプロバイダー変更

NTT光回線利用料  :¥5,418(光もっと割適応後期間)
プロバイダー料金   :¥525
計                        :¥5,943(-735)



その頃に今年発売されたiPad(Wifi)を購入したため外で使える通信環境が欲しくなる。



スマートフォンはXiでは無いため、テザリングするのは大蔵省的にNGだったので



職場の先輩から自宅の回線をWiMAXにした話を聞きたのを思い出し、自宅回線兼モバイル回線として使えないか調べてみた。



ルーター型だと無線経由で複数の端末を接続できるのはわかったのだが、自宅で有線LANしかIFの無いNASを運用していたので、有線接続できるクレードルが付いている



WM-3600C

というルーターを購入決定。(ホームルーターでも良かったが持ち歩けるアドバンテージは捨てがたかった)

同時に光回線をスッパリ解約し、1年だけ縛られるが月額料金が安くなる「UQ Flat年間パス」契約。

WiMAX利用料     :¥3,880(-2,798)
※端末料金無料+初月無料
※クレードルのみ¥2,500の出費

これで光回線を引いていた時の約半額に収まり、自宅内の環境もそれほど変更せずに済んだ。

・光から乗り換えのメリット

何と言っても環境を持ち出せるのが良い。自分も奥さんもiPodTouchを使っているのでルーターを持ち出せば、電話機能だけが無いiPhoneを持っている感覚になる。

・デメリット

エリアがかなりシビア。都心に近い所に行く分には影響は無いが、地方に行くと途端に外部ネットワークに繋がらないルーターになってしまう。

ローカルネットワークでも速度が遅い。NASへのアクセス速度は光を利用していた時より、目に見えて遅くなった。



・総括

エリアは住む場所によっても一部の部屋で繋がらなかったりする場合があるので、本家UQからtry WiMAXという15日間WiMAX機種をお試しできるので、自分の行動エリアが圏内である事を確認してから契約に至った方が吉です。

try WiMAX(UQ本家)

量販店でも貸し出しをやっているところがありますが、オススメしません。

何故かと言うと、お試しにもかかわらず、契約前提じゃないと貸し出してくれなかったり、店側に旨味が無いのか積極的に試してもらおうという雰囲気ではありません。(実体験)

UQ本家からtry WiMAXを申し込む際にはクレジットカードの入力が必要になるので、それだけは注意です。

後は時期によって各MVNOが様々なキャンペーンを実施していますので、各種サイトを利用して、キャンペーンの詳細を調べて契約に至った方が良いと思います。

2012年4月21日土曜日

[android] ものばぁVer1.1.1公開

ものばぁをVerUPしました。

機能追加として

・オリジナル画像、音声追加機能

※キャプチャーはカメラの映像は撮れないので表示されていませんが、カメラが表示されます。


・削除機能(画像ロングタップで削除確認)





















・チャイルドロック機能
端末の「戻る」ボタンをロングタップ(押下したまま保持する)すると
端末メニューボタンと削除機能を停止することができます。
(解除する場合も「戻る」ボタンロングタップ)


















アプリダウンロードはこちらから
ものばぁ

2012年4月6日金曜日

[デジモノ] Asus PadFone 発売は4/20(台湾)

アプリオより


MWC2012のプレスイベントで発表され、発売前から話題のASUS「Padfone」が、台湾で発売される。「engadget」によると、4月7日より予約を開始し、4月20日に発売を予定しているとのこと。
android-asus-padfone
「Padfone」は、スマートフォン型の端末で、Padfone Stationと呼ばれるタブレット型端末にPadfoneを格納することで、画面表示を「Padfone」と「Padfone Station」でシームレスに移行することが可能になる。
つまり、「Padfone」の画面をより大画面の「Padfone Station」に表示することができる。
「Padfone Station」は、同じASUSのEee Pad Transformerシリーズ(TF101やTF201)でお馴染みのキーボードドック(別売)と接続して利用することも可能だという。
android-asus-padfone
Padfoneは4.3インチディスプレイ、Android4.0(Ice Cream Sandwich)、デュアルコア1.5GHzプロセッサを搭載し、Padfone Stationは10.1インチサイズディスプレイとなっている。
日本での発売は未定だが、斬新な発想とデザインにより、注目を集めている端末である。

Padfone スペック

  • OS:Android 4.0
  • ディスプレイ:4.3インチ、解像度960x540 Super AMOLED
  • サイズ:128×65.4 X 9.2 mm
  • 重さ:129g
  • CPU:Qualcomm Snapdragon S4 8260A Dual-Core 1.5 GHz
  • メモリ:16/32/64GB eMMC
  • アウトカメラ:約800万画素、AF、LEDフラッシュ
  • バッテリー:1520mAh



[android] drawable/***.xmlにて画像の縦横幅を指定する方法

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
     android:state_pressed="true"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_on"
    />
    <item
     android:state_pressed="false"
        android:width="100dp"
        android:height="50dp"
     android:drawable="@drawable/button_off"
    />
</selector>

item要素にandroid;width android:heightが使えます

2012年3月31日土曜日

[android] ものばぁVer1.0公開

アプリ第2弾。幼児をあやすためのアプリ「ものばぁ」をリリースしました。





















画像をタップすると、その『もの』が発する音が出ます。(音楽再生時の音量を使います。音量注意)






画像は「写真素材 足成」様から
音声は「効果音源」様から拝借しております。

アプリダウンロードはこちらから
ものばぁ

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アプリの開発が

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


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