2013年7月5日金曜日

プログラミングTips

このblogで色々書いてきましたが、詰め込みすぎたと感じたので、
技術的な事は別のブログにしました。

こちらへどぞ。
http://yumesakurasiroco4tips.blogspot.jp/

なるべく更新していくつもり。
たぶん。
がんばる。

2013年6月7日金曜日

Google Play:アプリレビューへの返信

Google Play の自アプリへのレビューに対して返信ができるようになりました。
(結構前からですが。。。)

やり方はデベロッパーコンソールの「評価とレビュー」から出来ます。
(下のイメージの枠内)



改善のコメントに対する対応報告や、酷評に対する弁解(笑)など。
どんどん便利になる反面、最低限のマナーは守るようにしないといけませんねー

2013年6月6日木曜日

【こんなときに画面消灯しないでよ】ver1.4.2 リリース



こんなときに画面消灯しないでよ
⇒マーケットはこちら



対応内容
レビュー欄で頂いたご意見を色々と反映させました。
お試し下さいませー


最近は更新頻度が下がってますが、
少しずつ頑張りますー
多分。。。

2013年5月20日月曜日

PCのお引っ越し

最近PCを自作しました。
いま引っ越し中です。

アプリのデータとか、環境とか、色々と時間が掛かります。
更新しない"いいわけ"ではないです。

・・・がんばります。

2013年4月2日火曜日

【こんにちは赤ちゃん】について


そろそろアプリ開発再開させます。

sirocoは現在まで3つのアプリをGooglePlayに公開していますが、初めて公開したアプリ「こんにちは赤ちゃん」は総インストールが10,000を超えました。
嬉しい半面、色々なご意見を頂いています。

中には厳しいお言葉を頂くこともあり、
そろそろ大幅な改訂を加えることにしました。

現行アプリに手を入れるのも考えましたが、
思い切って作り直しをしようと思います。

題して「こんにちは赤ちゃん2」(爆)
サブタイトルとかも付けたいな。
~悪霊の神々~的なやつwww

冗談はさておき、スケジュールについて、
6月くらいには公開したいですが、
予定は未定です。


P.S.
そろそろPCを組んで、開発環境も引っ越ししたいな。。。

2013年3月23日土曜日

引っ越し

久々に書きます。
最近はずっとアプリの開発、blogの更新、共に止まってました。

実は引っ越しをしていまして、ネット止まってたり、バタバタしてたりで、siroco出来てなかったです。
家も片付いて、少しずつ活動していきますので、またよろしくお願いします<(_ _)>

今後の活動予定としてはDartの学習の続きと、新しいアプリ作りをしていこうと思います。
(4月にまた試験あるし、blogの更新はまばらになりそうな予感。。。)


2013年2月7日木曜日

crcdisk.sys

PC復旧しました!
約1週間ほど試行錯誤の末、なんとかです。

vista機で起こるこの事象(7でもあるらしいが)、実は結構有名みたいで、決定的な解決法もないみたいです。
なので、同じトラブルで困っている方の為にもメモっておきますね!

事象:crcdisk.sysで止まってしまう

簡単に言うとPCが起動起動しないという事です。
起動する際に表示されるプログレスバー(ロード中みたいな奴)から永遠に進まなくなってしまいます。
セーフモードで起動しても、crcdisk.sysのところで停止して動かなくなります。
「crcdisk.sys」でググるとかなりの件数が出てきますので、siroco以外にも困っている人が大勢いるんだと思います。

原因:IRQのバッティング

このハングの原因はcrcdisk.sysが原因ではなく、その次に読まれるドライバのIRQのバッティングという説が有力みたいです。
(IEEE1394関係のドライバと明示しているひともいますね)
とはいえ、実際のところ正確な原因はわかってないみたいです。
(Microsoftさんも)

事例:復旧することはあるみたい

ググったら次のような解決策が出てきました。

①とりあえず再起動。何度か再起動
②S-ATAケーブルの差し替え
③CMOSのクリア
④BIOSのS-ATA設定をAHCIからIDEに変えて、再度AHCIに戻す
⑤IEEE1394関係のファイルのrename

上記のうち、⑤については少し補足します。
まずリネームをした方が良いといわれているのは次のファイルです。
\windows\system32\drivers\pcmcia.sys
\windows\system32\drivers\1394bus.sys
\windows\system32\drivers\ohci1394.sys
\windows\system32\driverstore\filerepository\pcmcia.inf_*
\windows\system32\driverstore\filerepository\1394.inf_*
\windows\system32\driverstore\filerepository\sdbus.inf_*
\windows\inf\sdbus.inf
\windows\inf\sdbus.PNF
リネームしたくても起動しないから出来無いじゃん??って思われるかもしれませんが、その通りです。
リネームする際はWindowsPE(いわゆる回復モード)で起動させて、コマンドプロンプト上で行います。
なお、一部サイトではファイル名に"1394"と付くもののみをリネームしたら起動したという事例もあるみたいです。

復旧:sirocoの場合

上記解決策の方法をすべて試しましましたが、sirocoのPCは起動しませんでした。
(因みに市販のノートPCなので②とかそもそも出来ませんでしたが)
あきらめてOS入れなおそうかと思っていたら、LGのDVDドライブを切り離したら起動したという記事を発見し、BIOSの設定をとりあえず色々触ってみることに。

再起動すること数十回。。。
S-ATAの設定切り替えとレガシーUSBの設定をOFFにしたら、、、起動!!
半ばあきらめかけてただけに嬉しかったです!



sirocoのvista機はよく起動しなくなることがあって、慣れてはいましたが、今回のは本当に焦りました。
特に公開しているアプリの開発資産のバックアップを取ってなかったので、カイジばりに冷や汗かきました(ざわ。。。ざわ。。。)
ともあれ、なんとか復旧したので今後もアプリ作りとブログの更新を行っていきたいと思います!

2013年2月4日月曜日

PCがクラッシュ

自宅の端末が起動しなくなりました。
vista機だったのですが、結構有名な不具合みたいです。
(検:crcdisk.sys)

vistaの修正ディスクがあればできるかもしれませんが、持ってないので周りにあたっているところです。

当分の間、アプリ開発、ブログ更新出来ないかも。
開発環境バックアップとってないので、それだけは抽出したいな〜(^_^;)

復旧が終わったら、事象について書こうと思います。

2013年1月31日木曜日

【Java】コメント

前回はJavaの命名規則について書きましたが、今回はコメントについて。
Javaには主に3種類のコメントがあります。
それぞれ次のような役割です。

ドキュメンテーションコメント
(Javadocコメント)
/** ~ */ で囲み、クラス,インタフェース,コンストラクタ,メソッド,フィールドについて記述するコメント。
Javadocにより処理された外部ドキュメントを生成可能。
ブロックコメント /* ~ */ で囲み、ファイル,メソッド,データ構造,およびアルゴリズムについて記述するコメント。
Javadocコメントと誤認しやすいため、余り使用をお勧めしない。
単一行コメント コードの概要などを記述するコメント。
// で始まる1行をコメントアウトする。

それぞれのコメントの例も書いてみます。
まずはJavadocコメント。
/**
 * 設定されている画面消灯までの時間をミリ秒で返却する。
 * 取得できない場合は30000ミリ秒を返却する。
 *
 * @return 画面消灯までの時間
 */
public String getOffScreenSetting() {
 return Settings.System.getString(mContext.getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
}

/** 30000ミリ秒(デフォルトの時間として使用) */
private static final String DEFAULT_MS = "30000";

主にメソッドや定数名に使用します。
Javadocコメントの大きな特徴として、Javadocを生成できます。
上記のコメントだと次のように表示されます。
また、外部出力も可能ですのでプロジェクトでの管理等にも利用できます。
(詳細は本家Javadocを参照して下さいね)

ブロックコメントはsirocoは余り推奨しないので割愛。

単一行コメントは実際の開発で一番良く使う事になると思います。
次のような感じで使います。
if (android.os.Build.VERSION.SDK_INT == 17) {
 // Android4.2(API level17)の場合は"-1"が非表示の値でない??
    // "-1"の代わりにintの最大値を設定
 NOT_OFF_SCREEN = Integer.MAX_VALUE;
 NOT_OFF_SCREEN_STR = String.valueOf(Integer.MAX_VALUE);
} else {
 NOT_OFF_SCREEN = -1;
 NOT_OFF_SCREEN_STR = "-1";
}

上記の例は余り良い例ではないですが、コードを見ただけでは分かりづらい所に補足としてコメントを入れるのが良いでしょう。

本来であればコードだけで処理の内容が誰でも理解できるのが理想です。
ですが、実際はそうはいきません。
わかりづらいところには適当にコメントをいれて可読性を高めましょう。

コメントについては以上です。

2013年1月10日木曜日

【Java】命名規則

久々に技術的なことも書いてみます。
今回はJavaの命名規則について。

Androidアプリのように個人で開発をする場合では意識しなくても良いこともありますが(本当はよくないが)、規模が大きなWebアプリの開発などでは複数人のプログラマが1つの資産に対して手をつけることが多々あります。

皆が思いおもいにコーディングしていたら、可読性が低く、わかりずらいソース群が出来上がります。
そんなことがないようコーディング規約を設けて、一定のルールでコーディングが行われるよう制御したりします。
(実際の業務でお目にかかったことはないですが。。。)

さらに細かく言うと、クラス名・変数名・メソッド名を決定する際には、命名規則に沿った名前を付けることで、ソースの可読性を高め、より理解しやすいものとなります。


前置きが長くなりましたが、ルール通りに命名することで、自分にも他人にもやさしい、美しいソースが出来上がるって事です!

それでは行ってみましょう!

一般的なこと
フルスペルの英語記述を使用する(省略表記を避ける)
// 「高さ」だとすぐにわかる
int height; 

// わかりづらい
int hgt; int ht; int h; 

// ある意味わかりやすい。。。が論外
int 高さ; 
複数の単語で構成する場合は、2語目以降は先頭を大文字にする
String firstName;
長い名前を避ける(15文字以内)
// 長すぎる
String baseballOrSoccerOrRugbyOrTennis; 

// スッキリ
String ballSport; 
クラス
単語の先頭を大文字にする
class Hoge { ...
class HogeSample { ...
パッケージ
すべての単語を小文字にする
jp.gr.java_conf.siroco
変数
先頭の文字を小文字とし、2単語目以降の先頭を大文字にする
String name;
Stirng firstName;
メソッド
可能な限り先頭を能動態の動詞で始め、先頭の文字を小文字にする
private void addAccount() {};
private String changePassword() {};
定数
すべて大文字で表記し、単語間をアンダースコア"_"でつなぐ
static final String DEFAULT_PASSWORD = "hogehoge"

こんなところでしょうか。
その他にも細々したものもありますので、色々調べてみると面白いと思います。

2013年1月7日月曜日

【Android】Serviceの自動起動が上手くいかない件

「こんなときに画面消灯しないでよ」に対して、
自動起動をONにしているのにもかかわらず、
端末再起動時に自動起動しない、というお問い合わせを
数件頂いていました。

sirocoの端末でも確認しましたが、
OS4.2のNexus7では再現できず、
OS4.1のGalaxyNexusでは同様の現象が発生しました。

パーミッションを付与しないと、
ブロードキャストレシーバがACTION_BOOT_COMPLETEDを
受け取れない端末が存在するようで、
Manifestに


<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

を追加することで解消しました。

Serviceの自動起動の実相を考えている方は参考にしてみて下さい。



【こんなときに画面消灯しないでよ】ver1.4.0 リリース



こんなときに画面消灯しないでよ
⇒マーケットはこちら



対応内容
一部端末で端末再起動時に自動起動しない不具合を改修しました。


メール、コメント等でご連絡頂いた皆さん、ありがとうございました。
対応が遅くなりすみません。
今後ともよろしくお願いします。

2013年1月3日木曜日

sirocoUI(仮)


sirocoUI(笑)というコメントを頂いたので、
少し詳細を書きたいと思います。

まず名称の「sirocoUI」というのは本当に仮です。
やりたいことの意味からすると「~(なんちゃら)HelperUI」って感じになる気がします。

さて本題。
皆さんはアプリをインストールして初めて使う際、
使い方がわからないって事ありますか?(突然ですが)

sirocoは良くあります。
さらに使い方の説明がなかったりすると
そのままアンインストールなんてことも。。。(汗)

アプリを作る側としては、アプリを長く使ってもらうために、
提供するアプリケーションに対する説明が必要だと考えています。
つまりヘルプ(画面・トースト・etc...)ってことですね。

更に言うと、ユーザが必要な時に、その場で、ヘルプが確認できるという事が重要です。
ヘルプページに遷移して、確認、戻って試す、
では余り親切ではありません。(あるだけましですが)

現在のsirocoのアプリはアプリの説明ページ(つまりこのblog)に遷移させています。
上記に書いた通り、この方法は余り親切ではありません。

これを解消するために、標準のUIにHelp機能をを付与させる形のUIを
作りたいと思っています。
フレームワークといった大掛りなものでなく、簡単なライブラリな感じで。

「あ~使い方わかんねぇな」⇒
右フリック(仮)⇒
「おぉ、そういうことねw」

みたいな感じ。
良いでしょう?

長くなりましたが、
今年はよりユーザにやさしいUIを実装したアプリを作りたいな~と、
ぼんやり考えています。

2012年12月31日月曜日

2012年もおわり

あと2時間弱で2012年が終わり、2013年になります。

sirocoの初めてのアプリを公開したのが、2012年1月10日ですので、
もうすぐ1年たつことになります。
(短かったような長かったような)

年末は忙しくて(特にみんごるw)、なかなkアプリの開発はできませんでしたが、
2013年は既存アプリのレベルアップ、新しいアプリの公開、sirocoUI(仮)の開発、
等々、精力的に活動していこうと思いますので、引き続き宜しくお願いします。

それでは良いお年を~

2012年11月26日月曜日

【こんなときに画面消灯しないでよ】ver1.3.0 リリース



こんなときに画面消灯しないでよ
⇒マーケットはこちら



対応内容
Android4.2で上手く動作しない不具合を解消しました。
ただし、暫定的な対応となります。
引き続き原因調査を行い、正式な改修を行う予定です。



みんなのゴルフ6

久々にプライベートなことも。

職場で「みんゴル6」が流行っています。
sirocoは初代からやっていたので、かなり気になりますw

難易度が高めでリアルのゴルフに近いというところも惹かれます。
今日あたりポチりそうですwww

2012年11月22日木曜日

Settings.System 画面消灯させない設定

先日から「こんなときに画面消灯しないでよ」の不具合対応をしていますが、
今のところ修復の目途が立ちません。

画面消灯をさせないようにするには、Setting.SystemのputInt()メソッドで
"SCREEN_OF_TIMEOUT"に対して"-1"を設定することで実現しています。

これがAndroid4.2(API level17)で上手く動作しないのが現状です。

色々と試してみると、、、
 - "-1"は設定されているが10秒後に画面消灯してしまう
 - その他の値を設定すると、正しく動作する("30000"を渡すと30秒後に画面消灯する)
 - その他のAPI levelだと正しく動作する

最初はマルチユーザに対応した為に、実際の設定値の保存先である
settings.dbの参照が上手くいっていないのだと考えていました。
ですが"-1"以外の値では上手く動いているところをみると、そうではないようです。

その他で考えられるのはAPI level17から、画面消灯しない値が"-1"でなくなったこと。。。
この線で調査を進めています。
ただこの値は非公開なので苦戦しています(汗

SDKのソース追って行ったら見つかるのだろうか??

来週くらいで暫定的に対応したアプリも出そうかと考えていますが、
なんとかせねば~

2012年11月18日日曜日

【こんなときに画面消灯しないでよ】不具合報告

先日公開されたAndroid4.2に対して、本アプリ「こんなときに画面消灯しないでよ」の
不具合が発見されました。

内容としては、4.2の端末を使用した場合、画面消灯する/しないの
切り替えができない、というものです。

現在、上記症状が確認できているのはNexus7ですが、
マルチアカウント機能の追加が原因と考えています。
(たぶんNexus4などでは正常に動作していると考えています、再現出来てないですが。。。)

ご迷惑をおかけしますが、
不具合の改修は対応中ですので、今しばらくお待ち下さい。

2012年11月4日日曜日

Google ドライブ Client ID の取得

Google ドライブを使用するためには、
Client ID と、Client secret が必要になります。

今回はその取得方法について書いていきます。

まずはGoogle APIs Console にアクセスします。

次に、アクセスした画面の「Create Project...」をクリックします。
※開発用のGoogleアカウントでログインして下さいね。


次に、左のメニューが「Services」になっていると思いますので、
API一覧の中にある「Drive API」を"ON"にします。
※「Services」になっていなかったら選択して下さいね。



次に、左のメニューから「API Access」を選択します。
表示されるボタン「Create an OAuth client ID.」をクリックします。


別ウインドウで次のような画面が表示されますので、
「Product name」、「Product logo」を入力して「Next」ボタンをクリックします。
※「Product logo」は任意で良いようです。


続けて、「Application type」で"Installed application"を選択(sirocoの場合)、
「Installed application type」で"Other"を選択して、「Create client ID」ボタンをクリックします。
※"Android"を選択したいとろこですが、Client secret が取得できなかったので、"Other"を選択しています。
 (実装して違ったら直しますw)



以上までを行うと、Client ID と、Client secret を取得できます。
次回は実際にAPIを使用してみたいと思います!

2012年11月3日土曜日

Amazon kindle化リクエスト始まる

Amazonからkindleが発売されることは以前も書きましたが、
それに関連してか、Amazon.co.jpで「kindle化リクエスト」が始まりました。


上記イメージの赤枠のところに表示されているリンクをクリックすると
リクエストができるようです。

日本での発売で話題が高まっていますが、
電子書籍の販売数やジャンルの豊富さなど懸念されてもいますので、
こういったサービスはありがたいですね!

sirocoもいくつかリクエストしましたw

※結構前から始まっているサービスですが、意外と気づきにくい気がしたので書いてみました。