質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

Q&A

解決済

2回答

939閲覧

windowsAPIやC#のUIとandroidのUIについて

mercurian-teto

総合スコア75

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

0グッド

0クリップ

投稿2019/01/21 10:16

windowsAPIでUIのあるアプリケーションを作成する場合、rcファイルやC/C++のソースコードにwindowsAPI系の言語を使って直接記述したりします。

C#はwinformをつかってクラスを宣言してUIのアプリケーションを作成します。

Androidは実行ファイルとは別にxmlにUI関連のことを記述していきます。

一応、3つとも自作したことあります。

Androidはスマートにしていくのがモットーなので、xmlを使っているのかなと思うのですが,
androidアプリのUIだけxmlを好んで利用されるのはほかのUIアプリケーションとはちがい、何か利点でもあるのでしょうか。
androidアプリはjava言語で作られるのが主流で、javaはxmlを取り扱うAPIをたくさん持っている程度のことは知っています。

上の疑問が払拭できないのですが、いろんなアプリやソフトウェアを作成している、
知見の深い方、回答お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

登場年代や時代のPCの性能がそれぞれ違いますし、各年代で合理的な選択の結果、ではないでしょうか?
WinAPIはWindows黎明期からずっと拡張が重ねられてきていて、CreateWindowなどができたときはXMLなんて物は存在しません。多少rcが融通利かせてくれましたが、PCも貧弱でかなりの部分を一から全部書かないといけなかった時代です。

WinFormsが登場したのはXMLよりも少し後ですが、まだXMLはデータを保存する一形式というレベルでそこまで一般的なフォーマットとして広がってはいなかったように思います。アプリすべてを.NETの仮想マシン上で動かすのは、動くには動くけどやや厳しい、という感じで、Visual Studioがフォームの作成コードを直接生成するのは起動速度の面でもXMLなどの解析が必要なく有利だったのでは、と思います。
WinFormsとして一度作ったものですから完全に置き換えるわけにはいかず、今もそれは続いていますね。

Androidよりも前でも、WinFormsの置き換えとして登場したWPFのようにXML(を拡張したXAML)でUIを記述するものはありますし、AndroidだけがXMLを使っているというわけではないです。(WPF自体は描画速度が遅すぎて流行りませんでしたが、、、)
このころにはインターネットが一般的になって、XMLの処理もそれなりに行え、データ形式はもう全部XMLでいいじゃん、って感じだったように思います。

XMLは木構造の静的なデータを表すのに向いていて、UIもビューの木構造で表せますから相性がいいです。
XMLにするのは作る側、使う側それぞれにメリットがいろいろあります。
・ファイル構造を考えなくてよい(データの形式に集中できる)
・テキストデータなのでgitなどでのマージがしやすい
・手で書くことも専用ツールを被せることもできる
・困ったときに手で編集も可能
・開発ツールを開発する側にとっても、とりあえず手書きでデータを作れてテストも容易
・各種ツールも先駆者が揃えてくれてる

最近は可読なデータ形式ならわざわざ作るよりもXMLかJSONか、という感じですが、JSONだと型が表しにくいのでUIの構造をきっちり表すにはちょっと向いていません。
ですので、WinAPIやWinFormsと比べて最近登場したAndroidのUIの記述がXMLになったのはごく自然の流れだと思います。
XMLに代わるものってあんまり聞きませんからしばらくは続くんじゃないでしょうか?

投稿2019/01/21 10:59

編集2019/01/21 14:00
toki_td

総合スコア2850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mercurian-teto

2019/02/10 06:20

回答ありがとうございました。
guest

0

WindowsのWPFもXAMLというXMLの拡張を使っているという話はすでにtoki_tdさんから出ていますが、
Adobe AIRのUIもMXMLというXMLの拡張言語で記述します。
また、HTMLも構造はXMLと似ていると言えます。

他にも、iOSのアプリケーションはUI周りの設計の大半を専用のエディタを使って行いますが(Storybordというもの)、
保存すると中身はただのXMLファイルだったりします。

なので、「androidアプリのUIだけxmlを好んで利用される」という事はありません。

投稿2019/01/22 08:23

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mercurian-teto

2019/02/10 06:20

回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問