Locked History Actions

Diff for "Android/Criticism"

Differences between revisions 3 and 4
Deletions are marked like this. Additions are marked like this.
Line 32: Line 32:

しかし、このXMLときたら、XMLの規格を厳格に守ろうとするあまりか、こんな調子になってしまうのである。
{{{
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#00000000"
    android:gravity="center">
    <Button
        android:text="@+id/Button01" android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button><TextView
 android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:textSize="24pt"
  ....
}}}
こんな風に何でもかんでも「android:なんちゃら」と記述しなければならないのである。

Android徹底批判

※この文書はまだ途中です。

まえがき

もちろん、アップルがいくら嫌がらせをしてもAndroidが優位に立つことは間違いないし、Windowsの小さいやつとかその他のモバイルOSを駆逐してしまうことも約束されているのであろう。しかし、これに対してAndroidのAPI及び開発環境はとにかくひどい。なぜこれに皆口をつぐむのか不思議で仕方がない。

この種の問題はこの業界に限らないことなのであるが、それを推進している側としては「賛美」しか許されないのであろう。強くコミットしていればいるほど、批判は酒の席でしか語られず、表に出てこないものである。

しかし、Androidの設計は明らかに「変」なのである。「変」で悪ければ「ちぐはぐ」という印象を拭えない。細かい設計ひとつひとつはさすがと思わせても、全体を通す設計思想ともいうべきものがほとんどデタラメとしか言いようがない。ここではこれらを徹底的に批判していく。

すべてをJavaで記述することができない

これが最大の問題点であり、これほどひどい設計は無いとさえ言える。 APIの多くの機能を使うためには、必ずXMLを記述しなければならないのである。Javaから操作する方法は全く提供されていない。

アップルのAPIように一般の開発者には知らされていない裏口があって、そこからなら操作できるのかといえばさにあらず。 Androidの(おそらく)すべてのソースは公開されているので、そんな不正は全くないのである。完全に術が無いのだ。

つまり、この設計者は「XMLを使うんだからJavaなんか使う必要なんかない」と考えているようなのであるが、これは間違い。 XMLはJavaの代わりにはならない。

XMLは絵に描いた餅

さて、この設計者はXMLを手書きで記述することを想定していたのであろうか?まさかそんなことはないだろう。 何らかのGUIエディタで「簡単に」プログラムを作成することを夢想していたのであろう。 Visual BasicやDelphiのようにドラッグドロップして簡単にイベントハンドラを記述して。。。。 しかし、これは完全に失敗している。Eclipse-ADTに付属のGUIビルダの貧弱さを見れば明らかだ。

というよりもむしろ、全く使い物にはならない。こんなものを使うよりむしろ手でXMLを記述したほ方がはるかに簡単だ。

しかし、このXMLときたら、XMLの規格を厳格に守ろうとするあまりか、こんな調子になってしまうのである。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#00000000"
    android:gravity="center">
    <Button 
        android:text="@+id/Button01" android:id="@+id/Button01" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Button><TextView  
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent"
        android:textSize="24pt" 
  ....

こんな風に何でもかんでも「android:なんちゃら」と記述しなければならないのである。