夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

Androidアプリ開発[基礎編]#1

というわけでさっそくAndroidアプリ開発の連載を。


本連載では日経BP社さんの本を参考文献として使用します。

とはいえ、このご時世。O'Reillyなどからさらに包括的かつ詳しい本はいくらでも出ているので、(僕は資金工面の都合で購入にいたっていないですが)この連載の副読本としてはもっと詳しい本をおすすめします。





第一回:Activityを理解しよう

Androidってどんなもんや?

とりあえず基礎の基礎です。Androidはおそらく日本だとauというイメージがあると思いますが、本当はGoogleの開発したスマートフォンのOS…つまりスマートフォンにとっての“家”です。ユーザーはこの“家”をアプリを家具のように飾り付け(インストール)することで、自分にあったスマートな携帯生活をおくることができます。
そしてこのAndroidオープンソース…つまり設計図を公開しているので各携帯会社はこれを元にその会社の製品にあった独自の機能などをつけることが出来ます。それは赤外線であったりカメラであったり。

この設計図をつかわないのはもったいない。あなたはAndroidアプリを開発することで自分、そしてみんなに新しい携帯生活を用意することができるのです。というわけでこの連載を通し、Androidアプリ開発の基礎を学んでいきましょう。

①アプリを構成する三つのもの

Androidのアプリは小見出しで提示しているように三つの要素で成り立っています。それは…
では、一つ一つ解説していきましょう。
まずはソースコードです。コレはJavaというプログラミング言語で記述され、アプリの処理を記述します。基本は開発環境として提供されるクラスを拡張し、またそれによって呼び出される関数の処理を記述することになります。余談ですが、NDKというものをつかうとC++でも記述が可能になります。
次はリソースです。コレは「見た目」を決めていくところで、ユーザーに見られる画面(ユーザーインターフェース{UI})のレイアウトをXMLというプログラミング言語で決めたり、それの素材となる画像やサウンドなどで構成されます。つまり飾り付けです。これによってユーザーがそのアプリを簡単に使えるようになります。
そして最後はマニフェストです。これもXMLという言語で書かれますが、これはアイコン・バージョン番号・起動時に使用するクラスなどの情報を管理します。マニフェストの意味、「宣言・宣言書」と同じですね。
以上は簡単に説明しましたが、具体的にどのようなものが含まれるかなどはここでは取り上げません。もしかしたら連載の途上で解説するかもしれませんが。これでまずAndroidアプリの構成の大体を理解したことと思います。

アプリ開発四大構成要素

言うのが遅れましたが、これは連載としながらも大体の目的は僕自信の理解を深めるためなので悪しからず。
さてさて、前項ではアプリ本体の構成要素を解説しましたが、今度はアプリの処理の構成要素のあらかたを書いていこうと思います。本連載はこの四大構成要素の使用方法などについて実際のコードで理解していくのがメインになると思います。ではその四つはなんでしょう?それは…
  • Activity
  • Service
  • ContentProvider
  • Intent
ここでは全ての概要を話し、次項でまず今回の連載タイトルともなっているActivityについて詳しく開設しようと思います。 まず、Activityというのはアプリケーションの画面を構築するクラスです。ここに初期化の処理なども書くので、とりあえずはこれを理解すれば簡単なアプリができます。 つぎのServiceというのは画面を持たない…ようするにバックグラウンドで実行され続ける処理を書きます。 そしてContentProvider。これはアプリ同士でデータを共有する仕組みで、アプリにこれを実装することで他のアプリにこの情報を使わせることができます。 最後のIntentは以上の三要素をつなげる仕組みです。これを活用することで、たとえばカメラ撮影をデフォルトのカメラアプリに依頼して、そのデータを利用するといったようなことができます。

③とりあえずActivity

まずはActivityのライフサイクルというのを理解しましょう。これはActivity上の特殊なメソッドがどういう働きをしているか理解するのに必須な知識となります。とりあえずネットからあさってきた図を見てください。
とりあえず、説明下手になりそうですが説明すると、onCreateで画面を構築する各種初期化処理を記述、onStartはActivityがユーザーに見えるようになったときにする処理で、それが起動済みであればonRestartを経て実行されます。またonResumeはActivityがユーザーとやり取りできるようになったら呼び出されて、onPauseという別のActivityが現在の画面にとって代わる際に呼び出される関数(データの永続化などをおこなう)からも状態遷移する。そしてonStopでActivityが完全にユーザーの目に見えなくなったときの処理を記述し、onDestoryでActivityが完全消失する際の処理を記述します。 めっちゃ読みにくいでしょうが、図を見て察してください。 最後に、Activityというのはそれだけでは画面に何も表示されません。これはUI部品としてさまざまなWidgetを画面に配置するとできます。 このウィジェットにはボタンやチェックボックス、テキストエリアなどが含まれます。 そして、この配置にはレイアウトクラスを使います。これにはLinearLayoutやTableLayoutなどあり、これによって柔軟な画面設計がおこなえます。
以上最後はぐだりましたが、なんとなくでも理解してくれたかな?????
次回は実際のソースコードを交えて、ひとつのアプリをつくってみましょう。