Mahiru Kamimori のすべての投稿

お話を書いたり、絵を描いたりしています。ノベルアプリ『KIRIKA~同じ人間がいる、もう一つの世界~』をAndroidとiPhoneで配信中です!

【新着アプリ】Touch the Elementsを本日リリースしました!

20110801_touch1

Touch the ElementsはAndroid Marketより無料でダウンロードできます!
https://market.android.com/details?id=net.darkdrive.android.elements

スマートフォン(Android)をお使いの方は下記のQRコードよりダウンロードできます。

20110801_touch2

darkdrive.netから4つ目のアプリを公開しました。
今回は「Touch the Elements」という元素記号データ参照アプリです。

元素記号データ参照、周期表の参照、さらに覚えるための機能としてTouch the Elementsというタッチしながら
ゲーム感覚で元素を覚えるゲームも収録しています。

デザインもおしゃれで、データ参照も比較的スムーズなアプリとなっています。
ぜひ、雑学や最近のニュースで目にする原子炉関係の元素の調べものなどにお役立てください。

アプリ情報
—————————————————————————

元素データ参照、周期表確認、元素暗記に最適なアプリです!元素記号及び周期表データを参照できる他、
元素記号を覚えるためのTouch the Numberのようなゲームを収録しています。
カラフルなデザインでまとめていますので、
これから元素記号を覚えたい方にも、参照して楽しみたい方にもオススメです。
(Support for English and Japanese)
★アプリ仕様
・Touch the Elements
元素記号を使ったTouch the Numberのようなゲームです。
楽しみながら記号を覚えられます。
・元素記号データ参照
元素記号の基本情報を収録しており、どんな元素の簡単な説明をつけています。
詳細な情報を閲覧したい場合のためにWikipediaへのリンクも貼っています。
(日本語と英語に対応しています。)
・元素周期表参照
周期表タッチして元素記号データを参照できます。
カラフルなので分類も見やすくなっています。
実機動作確認機種:GALAXY S
不具合、データ不備等ございましたら、ご報告ください。
できるだけ早く対応させていただきます。
検索用:化学、元素記号、暗記、雑学、勉強、文献、資料、教育

2011.8.1

神森 真昼
NECO

【Androidアプリ作成】@stringをHTMLタグを使ってデコレーションする

@stringのデータに一部のHTMLタグが使えます。
ただフォントサイズによっては効いているのかわかりづらいです。
(私の環境では<b>の効果が全く分かりませんでした。。)

【android developers:String-resource】
http://developer.android.com/intl/ja/guide/topics/resources/string-resource.html

サンプルソース)
<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="welcome">Welcome to <b>神森真昼の小説と波の世界</b>!</string>
</resources>

その他にも<U>(アンダーライン)と<I>(イタリック)が使えます。
ぜひ試してみてください^^>

2011.7.24
神森 真昼

【Androidアプリ作成】単純なコードでエラーが出るときに確認したいポイント

開発をはじめてからもうすぐ3ヶ月。私が最初の方でつまづいたちょっとしたエラーたちをご紹介します。
(初心者向けなのでプログラムに詳しい方は読み飛ばしてください^^)

【 なぜこんな単純なソースでエラーが?? 】

最初の頃は(今でもそうですが)、XMLレイアウトを簡単に組んで実行して意図したとおりに
動いているか確認したいものです。それで簡単にえい、や!で作成したサンプルコードが
下記のものです。

エラーが出るサンプルコード)
<LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_gravity="center"

android:layout_marginBottom="10sp">

<TextView

android:text="あああ"

android:textStyle="bold"

android:layout_gravity="center">

</TextView>

<TextView

android:text="いいい"

android:textStyle="bold"

android:layout_gravity="center"

android:layout_marginLeft="5sp">

</TextView>
</LinearLayout>

書いてみても特に構文エラー(書いて保存すると赤線引かれしまうアレです)
も出ないし起動してみると、エラーが出ます><
なんで、XMLでエラーでるんだよぉ!と嘆いたことありませんか。

このエラーはTextViewなどのタグの必須要素が指定されてないので
エラーが出たわけです。

必須要素はlayout_widthとlayout_heightです。
指定するときはいつでもこのお二方を入れてあげてください。

エラーを修正したサンプルコード)

<LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:layout_gravity="center"

android:layout_marginBottom="10sp">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="あああ"

android:textStyle="bold"

android:layout_gravity="center">

</TextView>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="いいい"

android:textStyle="bold"

android:layout_gravity="center"

android:layout_marginLeft="5sp">

</TextView>
</LinearLayout>

【 文字列を差し替えただけなのに動かない 】

とりあえずレイアウトがうまくいったので、
@stringを使って日本語と英語によって振り分けしようと文章を入れ替えたら
動かないということは今までにありませんでしたか。

こんな指定をすると構文エラーがでますので、注意しましょう。
<string name="param1">1. Let's Try Again</string>
<string name="param2">2. ' please touch me '</string>

何がいけないのかというと ' (アポストロフィー)が使われていることです。
アポストロフィーはプログラムで使用しますので、使うとプログラムだと解釈されて
「こんなところに書いてくれるなー!」と怒られてしまうわけですね。
(他の言語だと文字列に書くスペースなので、そんな解釈されることもない場合もあるのですが
Androidはエラーを出すプログラムのようです。)

じゃあ、アポストロフィーを使った表現は避けて記述しなきゃだめなのでしょうか。
いいえ、そんなことはありません。
Let's TryやI'mという表現もよく使う英文だし、使えないとうっとおしくて仕方ありません。

そんなときのためにあるのがエスケープシーケンス。
さきほどのエラーが出る文字列にエスケープシーケンスを入れてみましょう。

<string name="param1">1. Let\'s Try Again</string>

こんな感じに入れて実行すると、Let's Try Again と表示されます。
\を入れることで「この文字はプログラムに出てくるかもしれないけど、文字列ですから!!」と主張できるんです。

ちなみに\マークを表示させたい場合は、\をもう一つ記述します。
「\\」で「\」と表示されます。

2011.7.22
神森 真昼

【Androidアプリ作成】TableLayoutでborder(罫線)をつける方法

昨日はTableLayoutの使い方という基本的なところを書きましたが、
今回は罫線について書きます。

Tableといえば、やはりborderがつけて表みたいに見せるのが本来の使い方なので
borderをつけいたいという需要は多いのではないでしょうか。

私も調べてみましたが、
なんとTableLayoutでは罫線をつけるためのborder関係のプロパティがありません!

でも、borderをなんとかしてつけたいと思い、下記のようなサンプルコードを用意しました。
昨日のフルーツテーブルに罫線がつけてみました。

概念としては、罫線をつけたい<TableRow>にbackground要素につけたい罫線の色を設定します。
その中身の要素(この場合<TextView>)にmarginを指定します。
指定したmarginの値が大きければ大きいほど、罫線が太くなるという寸法です。

フルーツテーブル改)
<TableLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TableRow

android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="1"

android:textColor="#FFFFFF"

android:background="#003366"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="2"

android:textColor="#FFFFFF"

android:background="#003366"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="3"

android:textColor="#FFFFFF"

android:background="#003366"

android:layout_weight="1"

android:gravity="center">

</TextView>

</TableRow>

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#000000"

android:stretchColumns="*">

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="みかん"

android:textColor="#000000"

android:background="#FFFFFF"

android:layout_weight="1"

android:gravity="center"

android:layout_marginLeft="1dip"

android:layout_marginBottom="1dip">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="りんご"

android:textColor="#000000"

android:background="#FFFFFF"

android:layout_weight="1"

android:gravity="center"

android:layout_marginLeft="1dip"

android:layout_marginRight="1dip"

android:layout_marginBottom="1dip">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="メロン"

android:textColor="#000000"

android:background="#FFFFFF"

android:layout_weight="1"

android:gravity="center"

android:layout_marginRight="1dip"

android:layout_marginBottom="1dip">

</TextView>

</TableRow>
</TableLayout>

2011.7.20
神森 真昼

【Androidアプリ作成】TableLayoutの使い方

HTMLの<table>タグのようにAndroidでも組むことができます。
下記は私が作成したサンプルコードです。

うまく表示することができれば、
上段に1、2,3という数字が入り
下段にみかん、りんご、メロンが入ります。

<TableLayout>は<LinearLayout>を継承したクラスなので、
基本のプロパティは一緒です。

★タグの説明
<TableLayout>・・・HTMLでいう<table>のことです。
<TableRow>・・・HTMLでいう<tr>のことです。

え、<td>なるものはないんですか?
結論から申し上げますとありません。

その代わりに
<View>、<textView>、<Button>の要素を置くことで<td>を表現します。

サンプルコード:フルーツテーブル)

<TableLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="1"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="2"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="3"

android:layout_weight="1"

android:gravity="center">

</TextView>

</TableRow>

<TableRow

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="みかん"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="りんご"

android:layout_weight="1"

android:gravity="center">

</TextView>

<TextView

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="メロン"

android:layout_weight="1"

android:gravity="center">

</TextView>

</TableRow>

</TableLayout>

2011.7.19
神森 真昼

追伸:
全く関係のない話ですが、本日は一緒にアプリ開発を行なっている
ゲームプログラマーNECOの誕生日です。おめでとう!
・・・といっても特に何もプレゼントがないですが^^;

【Androidアプリ作成】HorizontalScrollViewの使い方

HorizontalScrollViewを使うと、横方向のスクロールが作れちゃいます。
例えばひたすら横に長い表や縦画面で見せたい横長画像などに最適です。

例)
<HorizontalScrollView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:fadingEdgeLength="25dip"
//横方向にまだコンテンツがあることを促すぼやかしの幅

android:layout_weight="1"
>

注意する点は横に長い場合はひたすらスクロールすればよいのですが、
横長でさらに縦にも長いコンテンツを扱う場合はこの方法だと縦にスクロールが適応されないことです。

さらに<HorizontalScrollView>の中に<Linearlayout>は1つしか使用できません。
正確には、

・な例)
<HorizontalScrollView>

<LinearLayout>

・・・

</LinearLayout>

<LinearLayout>

・・・

</LinearLayout>
</HorizontalScrollView>

<HorizontalScrollView>の直下に複数の<LinearLayout>が存在するため
表示がうまくいきません。

○な例)
<HorizontalScrollView>

<LinearLayout>

<LinearLayout>

・・・

</LinearLayout>

<LinearLayout>

・・・

</LinearLayout>

</LinearLayout>
</HorizontalScrollView>

複数の<LinearLayout>を使用する場合は1つの<LinearLayout>に入れて
入れ子構造にするとよいです。

2011.7.18
神森 真昼

【新着アプリ】ねこニャンの計算ドリルをリリースしました!

20110712_kdrill1

【ねこニャンの計算ドリルのダウンロードはこちら】
https://market.android.com/details?id=net.darkdrive.android.kdrill

【スマートフォンの方はこちら】

20110712_kdrill2

3つ目のアプリ、ねこニャンの計算ドリルをアップしました♪
1つ目のアプリ、百マス計算がご好評につき、脳トレ系アプリをさらに追加しました!

昔、小学生の頃よくやった計算ドリルは苦痛でしかなかったですが、今は計算することもかなり少なくなりました。計算ってしないとどんどん衰えていきます。社会人になってからというもの暗算がかなりあやしくなってきました:;やっぱり、毎日簡単な計算を5分ぐらいでもかまわないので解く習慣をつけると脳に効果的なようです。
(最近、アプリを開発しながら問題解いていたら前より暗算ができるように回復しました・・・(笑)

【アプリの説明】
近年、簡単な計算を毎日継続的にすることで脳が活性化することが実証されています。
本アプリでは、初級、中級、上級の3つのドリルを用意していますので、ユーザーの皆様の能力に合わせて続けていくことができます。
( Support for both Japanese and English. )
四則演算を習い始めたばかりのお子様にも、
日頃計算をしなくなり計算脳を眠らせてしまっている社会人の皆様にも最適な計算ドリルです。

★ゲーム仕様
初級・・・16ドリル(1ドリルあたり20問)
中級・・・16ドリル(1ドリルあたり20問)
上級・・・16ドリル(1ドリルあたり20問)
– すべてのドリルで解答時間とプレイ回数を保存していますので、ご活用ください。
– ドリルは桁数と演算方法で決まりますので、同じドリル番号を選んでも問題は毎回変わりますので、毎日新鮮な気持ちでドリルを楽しむことができます。
– 割り算は商を解答するだけで余りを自動入力します。

実機動作確認機種: GALAXY S

不具合等ございましたら、ご報告ください。
できるだけ早く対応させていただきます。

検索用:脳トレ 計算ドリル 算数 数学 勉強 宿題 トレーニング 百ます計算

2011.7.12
神森 真昼
NECO

追記(2011.7.13)
おかげ様で100ダウンロード突破いたしました、(^▽^)ノ
ダウンロードしてくださった皆様に心より御礼申し上げます。
次回作、作成中ですので今後もよろしくお願い致します。

【Androidアプリ作成】解像度の低い端末をサポート対象外にする方法

複数の端末に反映させたいのは作り手なら当然の思いですが、
あまりにも小さくてそもそも操作事態難しいアプリもあります。

そんなときはAndroidManifest.xmlに下記を記述します。

<supports-screens

android:smallScreens="false"

android:normalScreens="true"

android:largeScreens="true"

android:anyDensity="true" />

smallScreensにfalseと入れることで
「この端末では解像度が小さいディスプレイは対応してません」という意味になります。
AndroidMarketなどのマーケットでは、
ユーザー側でsmallScreensの対象となる端末が使用されている場合、このアプリは検索から除外されます。

では、どの解像度がどのscreens要素にあてはまるかはこちらのリンクを参照ください。

【 Android Developers 】
http://developer.android.com/intl/ja/guide/practices/screens_support.html
(このページの下の方に一覧表があります)

2011.7.9
神森 真昼

【Androidアプリ作成】解像度の違う端末に対応させるためには?

解像度の違う端末に対応させるためには、
res/layoutを解像度別に切って対応させるのが一番確実な方法です。

854*480の解像度に対応させたい場合
resの直下にlayout-800×480という名前のフォルダを作成し、それ用のXMLを入れます。

20110705_multidef1

複数の端末の解像度でシミュレーションするためには
エミュレータの設定をいじりましょう。

20110705_multidef2のようなアイコンを押すとエミュレータの設定画面が出ますので、
そこでNewを押して新規作成します。

20110705_multidef3

解像度やAndroidのバージョンなどが設定できます!

完了してすぐ実行してみたい人は設定したものを選んでStartを押して実行しましょう。

追記(2011.7.9)
フォルダを作って、指定したフォルダに調整したXMLを入れてみたけど動かない方は
AndroidManifest.xmlに下記のコードが記述されていないケースがあります。
動作しない場合はご確認ください。

<uses-sdk android:minSdkVersion=”3″ android:targetSdkVersion=”7″ />
<supports-screens

android:smallScreens=”true”

android:normalScreens=”true”

android:largeScreens=”true”

android:anyDensity=”true” />

miniSdkVesion : 対応させたい最小のAPI Level
targetSdkversion : 対応させたい最大のAPI Level

2011.7.5
神森 真昼

【Androidアプリ作成】Android解像別機種一覧表

続々とAndroidを搭載したスマートフォンが発表されるが、
解像度の違いに四苦八苦しそうです。
取り急ぎ解像度一覧表を作ってみました。
だいたいはこんな感じで他に見つけたらまたつけたしていきます。

【 480・800 】( 3 : 5 )
DELL Streak
GALAXY S
GALAXY S Ⅱ
GALAPAGOS
G'zONE
HTC EVO
HTC Desire HD
Libero
Optimus bright L07C
SIRIUS α (IS06)

【 240・320 】( 3 : 4)
GALAXY Mini
HTC Wildfire

【 320・480 】( 2 : 3 )
GALAXY Ace
Optimus chat
HTC Wildfire S

【 480・854 】(
9 :16 )
AQUOS PHONE THE HYBRID
IS05
MEDIAS
MEDIAS WP N06C
Motorola Droid X
REGZA Phone
Sweety
Xperia acro
Xperia arc
Xperia X10

【 540・960 】( 16 :9 )
AQUOS PHONE
INFOBAR A01

【 640・960 】( 2 : 3 )
IS03

【 768・1280 】( 3 : 5 )
Optimus Pad

【 600・1024 】
GALAXY Tab

2011.7.4
神森 真昼