2011年9月26日月曜日

レイアウトXMLを形成するXML群の概要説明

Androidのレイアウトを形成するのは、XMLがほとんどです。しかし、色んな種類があります。ここではレイアウトに関連するファイルに絞って、たくさんあるXMLの種類を説明します。まだ、レイアウト自体はしません。

先に言っておきますが、AndroidのXMLは、Web系のエンジニアを意識しているのかと思いますが、レイアウトとデザインの分離がしやすいようになっています。まさにHTMLとCSSの関係とそっくりです。HTMLとCSSの関係っぽく説明したいと思います。
レイアウトのXML = HTML
レイアウトのXMLは、ウェブサイトでいうHTMLの役割です。極論を言えばですが、CSSがなくてもウェブサイトは作れますね。それと同じくAndroidでもスタイルやテーマを使わなくてもアプリのレイアウトは作れます。しかし、似たようなパーツがたくさんできると修正が大変だったり、ミスも発生しやすくなります。そして、パーツやデザインを使い回したいのが世の常ですね。そこで、スタイルを使います。
スタイルのXML = CSS(細かいパーツ用)
スタイルは、レイアウトXML内の要素で使っている属性をまとめる事ができます。書き方はXMLですが、効果としてはCSSと似たようなものです。同じようなボタンの配置がある場合などは、まとめておくと修正も楽ですし、コード量が減ります。
テーマのXML = CSS(大枠)
ウェブサイトと多少違うところは、テーマという機能があるということですが、これもWordPressなどを使っていたらわかるかと思います。テーマを使う事で、サイトのパーツに統一性を持たせるように、アプリも統一性を持たせることができます。
例えば、ボタンの色をグラデーションかけたい、このアプリ内では全てそうしたいと思った場合に、全部のボタンにスタイルを適用するのは面倒ですし、適用忘れなどのミスも発生しかねません。そういう場合に、テーマを使います。
このアプリ内でこのパーツは全てこのデザインが適用されるという担保になりますので、積極的に使っていきたいところです。
こんなふうに書いてはいますが、私がレイアウトを作成する場合は

  1. とりあえずレイアウトのXMLをガリガリ書きながら見た目を逐一確認
  2. 見た目が完成したら、まとめられそうなものをスタイルにまとめる
  3. テーマにしたほうがよさそうなパーツはテーマへ
という感じでやっています。
まぁそこは人それぞれかと思います。

0 件のコメント:

コメントを投稿