2014年7月29日火曜日

adb logcat、適度に不要なログをdiscardするフィルタスクリプト

Android開発で、logcatをターミナルで表示している時に、適度に不要なログをdiscardするフィルタスクリプトを作ってみました。

Androidで開発を少し経験してきて、結局logcatのログには不要なログなど無いという結論っぽいものが見えかけてきてはいます。特にバグを追いかけている時には。(ヽ´ω`)
でも、アプリの製作中、軽くログをチェックしたい時には、ある程度情報を絞りたいのも事実です。

僕の場合は、Eclipseのlogcatと、ターミナルでフィルタ表示させるlogcatを併用して、その時々で観る方を変えるようにしています。

2014年7月27日日曜日

僕とCM-100。電卓にまつわる思い出話し

長年愛用してきた電卓の液晶が黒ずんできて、文字が読みづらくなったので、新しくfx-915ESという電卓を購入しました。
安いのに、なんかやたらと高機能ですごい奴なんですが、この電卓のことはまたいずれ。

僕がプログラマーになった頃はアセンブラでプログラムを組んでいたので、2進、16進計算をするために専用に電卓を用意していました。
その時に、僕の回りで評判が良かったのが、CASIOのCM-100。

cm100.jpg

少し触らせてもらってから、なるほど使いやすい!という事で、僕も早速購入しました。

2014年7月24日木曜日

フォルダ階層のローカルファイルをUIWebViewで表示する時のお約束

iOSのプロジェクトで、リソースにHTMLファイルなどのUIWebView用コンテンツを持つ際に、フォルダ階層にして持っておくと便利ですね。

リソースにフォルダを渡す場合、Xcodeの場合は、以下の2つから選ぶことができます。
  • Create groups for any added folders
  • Create folder references for any added folders

一つはグループという、見せかけのフォルダ(!)で、もう一つは、ホントのフォルダです。(笑)

Project Navigatorでは、それぞれ黄色のフォルダと青色のフォルダで表されます。

2014年7月23日水曜日

UIViewControllerをオーバーレイする方法

iPhone、iPod touchの場合、UIViewControllerが2つあって、Aの上にBをオーバーレイしたいんだけど、Bが保持するビューを透明にしても、Bのトランジションが完了すると同時にAは消えてしまうので悩んでました。

結局のところ、こういう使い方はイリーガルなんだと思いますが、いろいろ調べた結果分かった事を覚え書きしておきます。

通常は以下のようなコードを書いて、ビューの管理をcontroller_bへ移行してます。
[controller_a presentViewController:controller_b animated:YES completion:^{}];

2014年7月17日木曜日

Retina非対応のiOSアプリの配信停止のお知らせ

メンテが難しくなったアプリ「Destroy the Pixel Art - 64 BLAST」と「パペットカム」を、App Storeから配信停止しました。
この2つのアプリは Retinaに対応しておらず、iPhone5などの縦長画面にも対応していませんでした。対応しないとAppleの審査が通らないので、長らく放置していましたが、Retina用の素材を新規に作るのが困難なため、配信を停止することに決めました。

既にデバイスにダウンロード済みのものは、そのままご利用できます。
どうぞよろしくお願いします。

2014年7月14日月曜日

build_native.pyのEclipseでのコンソール表示順を正しくする方法

cocos2d-x の build_native.py を Eclipseから実行すると、ビルド経過が Eclipse のコンソールウィンドウに表示されますが、これ表示順番がおかしなことになってるんですよね。(ターミナルで実行する時は、正しい順番で表示されていました)

最初ビルド工程そのものが変になってるんじゃないかと疑いましたが、どうもprint文の出力がバッファに溜まっていて起きる現象のようです。

build_native.py から Eclipse のコンソールへ表示されるパスは、主に print文と、os.system()でコマンドを実行した時があります。
os.system()で実行したコマンド結果は、直ぐにコンソールに反映されますが、print文の出力はバッファに溜まったままになっている事があって、直ぐにコンソールに反映されません。直ぐに反映させるには、明示的にバッファをフラッシュしてやらなければいけないようです

2014年7月9日水曜日

EclipseのConsoleのUTF-8対応

EclipseのConsoleへ、UTF-8の文字列を出力すると、文字化けしてしまいます。
デフォルトの設定ではUTF-8になっていないようでした。

設定を変えるには、eclipse.iniを書き換えれば良いということです。

2014年7月8日火曜日

cocos2d-x v3.2 rc0のAndroidプロジェクトをEclipseで正しく(たぶん…)ビルドする

cocos2d-x v3.2 rc0がリリースされたので、v3.1.1から移行するために試しています。

v3.2系は先にalpha版が出ていましたが、僕はその辺すっとばしてきたので、その辺りはご留意してお読み下さい。

環境
  • Mac OS X 10.8.5
  • cocos2d-x v3.2 rc0
  • Android NDK r9d

まず、大きく変わったというか、人によっては色々影響ありそうなのが、コンパイラとスタンダードライブラリがgnu gccから、clang llvmに移行した点でしょうか。

これで知ってる人は知っている、知らない人は知らない、NDK r9dのgnustl系スタンダードライブラリのstd::regex(c++11)問題が解決すればいいのですが、まだ、試していません。
まずは、ビルドを通すところから。

2014年7月7日月曜日

cocos2d-xでユーザーの設定したNDK_MODULE_PATHを有効にする

cocos2d-x v3.1.1で作成したプロジェクトに、ユーザーの作成したスタティックライブラリをビルド&リンクする方法を調べました。

環境
  • cocos2d-x v3.1.1
  • Mac OS X 10.8.5
  • Android NDK r9d

おさらい:一般的なNDKプロジェクトの場合

通常のAndroid NDKプロジェクトのImport Module方式ですと、環境変数 NDK_MODULE_PATHに、モジュール群が格納されているパスを設定して、Android.mkの中で、以下のような感じでモジュールのビルドを行うことができました。
# Android.mkの一部

LOCAL_STATIC_LIBRARIES := oreore_mod

include $(BUILD_SHARED_LIBRARY)

$(call import-module,oreore_mod)

2014年7月2日水曜日

adb logcatコマンドで指定タグのみ表示して、それ以外は表示しないオプション

Android開発で、EclipseのLogCatは、なんだか不安定な感じがします。
フィルタを設定してても、表示されなくなったりすることがあるし、Applicationの項にパッケージ名が表示される時と、されない時があって、なんだかよくわかりません。

デバッグに大切なログ出力がこんな感じでは、精神的にもよくありません。(ヽ´ω`)

2014年7月1日火曜日

Macでjava系コマンドの日本語メッセージをUTF-8で表示させる

JNIのヘッダファイルを作成しようと、ターミナルからjavahと打ったら、文字が化けまくるじゃないですか!
デフォルトがShift-JISなようです。また、君か!

なので、.bash_profileに以下の設定をしたらうまく行きました。
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

参考サイト

関連記事

Related Posts Plugin for WordPress, Blogger...