16bit!

エンジニアじゃなくなっちゃった人が何かを書くブログ

【android】連休で暇だったので初めてのandroidアプリを作ってみた

先月の話ですが、月末に有休やら代休やらを取ったはいいものの、特に旅行とかの予定も無く暇だったので、
「せっかくXPERIAに替えたんだし…」ということでandroidアプリを作っていました。
当方まったくの初心者でしたが、意外と簡単にできた*1のでandroidすごい。

今回作ったもの

最初ということで、作ったのは簡単なTODOメモアプリ。
DBも外部APIも特に使っていない、ただリストをファイルに保存するだけの本当に簡単なアプリです。

特徴としては、メモのカテゴリーが「Life/Year/Month/Today」の4つに分かれていて、
それぞれ、「人生で死ぬまでに成し遂げたいこと」、「今年中にやりたいこと」、「今月中にやること」、「今日中にやること」のリストとしてメモするようになっています。
「夢リスト」と呼ばれているものと、一般的なTODOリストを合わせた感じですね。
前に、

モノへの所有欲から卒業すると、「勝ち方」が見えてくる:プロギャンブラーに聞く仕事術(3) | ライフハッカー[日本版]

この記事を読んだ時のプロギャンブラーさんのメモの取り方を参考にしました。

一応勢いでPlayストアにも上げてあります。
無料だし広告もないので、よかったらとりあえずインストールだけでもしてみてください。

https://play.google.com/store/apps/details?id=jp.sakuramochi702.memoforlife

開発メモ

さて、開発メモですが、色々とググりながらの開発だったんですが、
ググれば一発で出てきて、かつコピペですぐ解決できたようなものについては覚えきれていないので、ちょっと漏れがありますが、ご了承ください。

買った本

とりあえずこの本を買いました。
ビューやイベントハンドラの基本的な概念やインテントの理解、あとは肝心のローカルファイルへの保存・読み出しなんかはこの本を参考にしました。
前半をざっと読めばandroidの開発についての基本的な概念は何となく分かるし、
後半部分は逆引きリファレンスのように使えるので便利でした。
ただ他の方のレビューにもあるのですが、「一冊を通してこういうアプリを作ってみよう」みたいなものはないので、
作ってみたいものが頭に何となくでもないと、あんまり参考にできないかもしれません。

参考にさせていただいたサイト

比率で幅や高さを指定する方法 - レイアウトの weight - ユーザーインターフェイス - Android 開発入門
画面の表示比率について。
androidではlayout_weightの数値が同じものが同じ比率で表示されるらしく、
別に数値の合計が1とか100とかになってなくても良いとのことなのですが、
なんとなく合計が100になるように付ける方が、その項目だけ見た時に割合がパッと分かりやすそうなので、
自分は合計が100になるように付けてます。
が、どっちの方が良いのかは謎。

http://www.adakoda.com/android/000077.html

Android 奔走記: ListView で MultipleChoice モード

Android画面レイアウトのエラーについて| OKWAVE
TextViewを置こうと思ったらなんかエラーが起きて追加できなかった時にググったらでてきました。
どうやら Android4.4 W だと駄目らしいですね。

http://team-hiroq.com/blog/android/android_configtitle.html

http://androidguide.nomaki.jp/html/dlg/alert/alertdlgMain.html

項目を追加/削除する - Androidプログラマへの道 〜 Moonlight 明日香 〜
ListViewに追加,削除するサンプル - 試行錯誤
http://handin.sakura.ne.jp/archives/368
ListViewの追加や削除関連。
長押しでポップアップ表示して削除とかも。

http://onlineconsultant.jp/pukiwiki/?Android%20versionCode%E3%81%A8versionName%E3%81%AE%E9%81%95%E3%81%84
ストアに上げた直後にバグを見つけてしまったのでバージョンアップして上げ直さなくちゃいけなくなり、
その際に参考にさせていただいたサイト。

とりあえず以上です。

おわり。

*1:スマブラの合間にEclipse弄ってたらできました。androidすごい。