2010年11月23日

何から伝えればいいのか、Androidアプリ開発でひっかかるところ

前回のポスト「素人がAndroidアプリ作成に挑戦してみた−ブログ復活!」で書いた通りなのですが、興味本位でAndroidアプリの作成をしてみました。題材はTwitterクライアント。つぶやきを表示したり、つぶやきを投稿したり、基本的な機能を実装しました。Androidアプリの開発を勉強するのにはとてもいい題材だと思います。それなりに実用的なものに仕上げることもできるし、画面デザインなどはすでにあるTwitterクライアントにどうしても似てきてしまうので、逆に既存のTwitterアプリを参考にできます。私はAndroidのアプリで著名なTwitterクライアントであるtwiccaをさまざまな部分で参考にさせていただきました。

数か月の間、アプリ開発をしたことで、これは入門者がつまずくだろうなと思ったことを、覚えている範囲で書いていこうと思います。いくつもあるので、何回かに分けて紹介しようと思います。

今回は、Activityとmanifest.xmlについてです。いきなり細かい話になりますが、Androidアプリを開発したことがある人は、少し共感してもらえるかなと思います。とういうか、私は何度もこのトラップ(と自分ではそう感じている)にはまってしまったので。

さて、Activityとは何でしょうか。一言で説明すると、Android端末に表示される画面のことです。Javaのプログラム的に表現すると、画面に表示する機能などを持ったクラスということになるのでしょうか。あっ、このあたりは自信がないので、知ったかぶりで人に話さないことをお勧めします。恥をかいても私は責任を持ちません。

脱線する前に本題に戻ります。

Activity(画面)から別のActivity(画面)に切り替わることで画面遷移をします。入力画面があって検索ボタンを押したら該当するものが検索でヒットするような画面遷移を想定します。この場合だと、検索画面を表示するActivityと検索結果を表示するActivityを用意するわけです。ActivityからActivityに遷移するときに、インテント(intent)というAndroid特有の機能を使って、柔軟な画面遷移を実装できます。インテント(intent)については別途解説したいのですが、奥が深くて自分ではなかなか体系的な説明ができません。これは私のスキルが上がるまで待っていてください。うまく説明できるようにがんばります。

インテントについては横に置いて、Activityの注意点だけ説明します。実はActivityもかなり奥が深く、とても1回のブログでは説明できません。Activity間の値の受け渡しについては、いろんな工夫なども必要で簡単にはいきません。さらに、書物を読んでみると、Activityのライフサイクルについて本の最初の方で説明しているものが多いこともあり、「ライフサイクル?何それ?」と入門者には壁が立ちはだかります。

はい。ここまでいろいろキーワードをちりばめながら説明してきました。一番いいのは書籍を読みながら理解することです。今回の記事は、本を読み始める前になんとなく何に注目して本を読めばいいのかの指針になればいいかなと思っています。

さて、ブログの冒頭でmanifest.xmlというものが出てきました。このmanifest.xmlにはさまざまな情報が格納されています。Activityに関係する部分としては、すべてのActivityをmanifest.xmlに登録しておかないと実行時にエラーになることくらいです。実は、Activityをmanifest.xmlに登録するのをよく忘れるのです。

プログラムコードの入力ミスであれば、開発環境のeclipseが警告を出してくれます。でも、Activityのmanifest.xmlへの追加忘れはプログラムを実行するまで何も注意されないのです。普通の人であればデバッガを起動するなどして原因解明にあたるのですが、私のような素人はデバッガを見るよりもエラーが起きたであろう箇所を推定してデバッグする方法をとります。もちろん非効率なのですが、スキルがないので仕方がありません。

では、アプリを動かしたときにどのようなエラーになるかというと、画面遷移時にエラーが発生します。ですので、遷移先のActivityがおかしい時はmanifest.xmlにActivityを追加したかどうかを思い出してください。きっと一度は役に立つ情報になると思います。

私は画面遷移をするとエラーになるのがよく分かりませんでした。プログラムコードを穴があくほど見ても悪いところはなさそうだしなあと思っていて、結局manmifest.xmlを正しく作成していなかったことが分かったというのはよくあったことです。

manifest.xmにはActivityだけではなく、インターネット通信をするのか、アプリから電話をかけるのか、などさまざまなアクセス許可を管理する役目もあります。Activityを追加したものの、通信を許可するのを忘れていたということもあります。個人的にはeclipseがエラーを出してくるとうれしいなとは思いますけれど。

ということで、最初は個人的には何度もひっかかった部分を紹介してみました。慣れてくるとひっかからなくなるのですが、最初のうちは悩んでしまうポイントになります。

では、今回はこれぐらいで失礼します。

2010年11月20日

素人がAndroidアプリ作成に挑戦してみた−ブログ復活!

かなり久しぶりのブログ更新です。先ほど自分のブログにアクセスしたら、60日以上更新していないブログに表示される広告がありました。ということは、60日以上も書いてないってことですね。

なぜ更新してなかったかというと、実はAndroidアプリの開発を勉強していました。今年(2010年)の4月にソニー・エリクソンのXperiaを購入し、そしたら理系魂に火がついて、過去記事「AndroidとJavaに挑戦中」の通り、アプリ開発に手を出してしまった次第です。気がついたら夢中になっていて60日以上もブログを放置してしまったわけです。

そして今日、Androidアプリの開発が一息ついたので、これまでの活動やアプリ開発で感じたことなどをぽつぽつと書いていこうと思います。そこで経験したことで分かったインターネットの未来みたいなものも紹介できればと思います。このブログはもともとインターネットの未来を考えるブログなので、アプリ開発のノウハウはあまり紹介できないと思いますが、そのようなネタでブログを書いている人はいらっしゃいますし、そちらの方が役に立つと思いますので、そちらをご覧ください。私が役に立ったWebサイトの紹介もできればいいなと思います。

なんか、いつもの私のブログのように前置きが長くなってきました。まあ、ここまで書いてしまったので白状すると、今回は前置きだけにして、次回から踏み込んだことを書いていこうと思います。なんといってもブログの復活に近い事態なので、始めにご挨拶をと思っていたら、ごあいさつで終わってしまったパターンですね。って、こんなことを書いているから無駄に長くなるんだよなと、反省するつもりでまったく反省しません。

すいません。お酒を飲みながら書いているので、つい酔っぱらい口調(文調?)になってしまいます。ここまで読んでいただいたみなさま、ありがとうございます。おっと、また脱線ですね。なんか、ほぼ日のうっかりメールのようになってしまった。

ということで、唐突に本題に戻します。

このブログを放置していた期間は、Twitterクライアントを題材にしてアプリを作成していました。AndroidのTwitterクライアントというとtwiccaが有名です。私も愛用しています。私はあくまでもAndroidの勉強という意味が強いので、twiccaほど便利なアプリを作成するつもりは元々ありません。そもそもスキルレベルが違います。

素人には素人なりに目標を定めているわけで、私はJava言語の習得と自分が欲しい機能を実現するのを目標としました。今でもまだ目標に到達しているわけではありませんが、なんとかがんばっています。

■Androidアプリ開発はとっつきやすいか

ここまで読んだ人は、Androidアプリの開発に興味を持った入門者の方かもしれません。では、入門者に向けて私からの言葉を贈ります。

Androidアプリの開発は始めやすいです。なんといっても、開発環境を無料でそろえることができます。開発環境にはAndroid端末のエミュレータも含んでいるので、実機さえ必要ありません。もちろん実機があると便利なのは想像できるとは思います。

開発環境はJavaプログラム開発では定番の「eclipse」を使い、Androidアプリ開発のSDK(Software Development Kit)はAndroidのWebサイトから入手します。これらのソフトの導入方法は書籍などを参考にしてください。ちなみに、これから始める人は書籍を1冊くらいは購入して読んだ方がいいです。私はJavaもAndroidも初めての経験だったので、何冊か本を読みました。体系的に知識を得るのは最初のとっかかりとしては大切だと思います。過去記事「AndroidとJavaに挑戦中」でも私が読んだ本を紹介しています。

でも、矛盾したことを書くかもしれませんが、書籍に載っている情報は古いこともあるし、Androidの作法とは違うのではないかなと感じるものもあります。新しい情報はWebサイトにあると思って、グーグルなどで根気よく検索してください。

ちょっと不安にさせるようなことを書いてしまいましたが、新しいことを始めるのに苦労はつきものです。この苦労もアプリケーションが動いたときにはすべて忘れることができます。この快感はアプリケーションを開発した人にしか分からない境地だと思います。

趣味の範囲でAndroidアプリの開発を始めてみてはいかがでしょうか。特に、Android端末を購入した人はやってみて損はないと思います。スマートフォンはカスタマイズできるのが特徴です。アプリを自作することで、もっと自分端末に仕上げることができます。

ということで、言いたいことはたくさんあるのですが、おいおい書いていこうと思います。ここまで読んでいただき、ありがとうございました。

では、今回はここで失礼します。

2010年08月03日

多重人格のすすめ

タイトルからは想像できないが、前回の「ジョハリの窓をネットコミュニケーションが変える(ポジティブ版)」の続きである。まず前回の話を振りかえろう。

自分を開示することで自分を知り、他人にも自分を知ってもらえる。ネットでのコミュニケーションは地理的障壁を越えられる。だから、ソーシャルメディアは全世界の人と分かりあえるというのが前回の話。こんな感じでまとめると、ありえない話であることがよく分かる。正確にはありえないのではなく、ソーシャルメディアがそんな力を持っていることを容認できない感じかな。

では、なぜ前回は夢物語を語ることができたのだろうか。

ジョハリの窓を二次元で考えたのが原因だと思う。窓なのだから二次元のようなものだから仕方がない。また、ジョハリの窓に出てくる他人とネットでつながっている人を同じ「他人」と表現したのが誤りだったかもしれない。ジョハリの窓でいう他人とは実際に顔をあわせたことがある人を示している可能性が高い。しかし、私が他人と表現した人はネットだけの関係も含む。顔馴染みの関係とネットでの人間関係は異なると思う。

まず、ネット上での自分と他人が知っている自己は、基本的にはSNSなどのプロフィール情報がメインになる。プロフィール情報は自分が記入するものだ。ここに出す情報は自分がコントロールできる。例えば、自分が自覚している自分のマイナス面は書かなくてもよい。それが顔馴染みだったら知っていて当然のことでも開示する必要はない。

つまり、ネットでは公開したくないことは隠しておける。自分と他人が同時に認識する自己は、自分が開示した範囲を越えることがない。

一方、公開しなかった自己、つまり、自分は知っているが他人は知らない自分だが、顔馴染みが知らない自己より範囲が広くなる。他人に知られていない自己が大きくなるわけだ。ネットの匿名性が高くなるのも納得である。

自分は知らないが他人が知っている自己はどうだろうか。これも自分から情報公開しない限り狭いままである。しかし、これはプロフィール情報の書き込み以外の活動によって広くなる可能性がある。例えば、Twitterでのつぶやき。何気ない書き込みにその人の性格が出てしまう場合がある。自分が気がつかないうちに、ネットだけの関係の人々の間で、自分の人格が形成されてしまうこともありえる。まるで別人のような自分をイメージを作られる場合もある。良いか悪いかは別にして、他人が知っている自分を知る機会にもなるだろう。これはネットの活動を通じて、新たな自分を発見することにつながる。

最後に、自分も他人も知らない自己はネットではどうなるだろうか。これは顔なじみ同士を前提としたジョハリの窓と大差ないと思う。ただし、自分が公開する情報が限定的である以上、この窓も比較的広めになるだろう。まあこの部分は分からない方がいいのかもしれないけれど。

■ネットの人格、リアルの人格

リアル人脈におけるジョハリの窓とネットコミュニケーションでのそれとは形状が異なることはお分かりになったと思う。同じジョハリの窓で自分を表現できないということは、飛んだ話をすれば、リアル人脈内での自分とネット人脈内での自分は異なる人格を持つとも言える。

私はそれでいいと思う。もっと言えば、ネットとリアルの2つに分けるのではなく、ネットのサービスごとに人格があってもいいと思う。

例えば、mixiとTwitterでの人格は同じである必要はない。それはサービスごとに人と人のつながり方に特徴があるからである。mixiのように強いつながりを求めるサービスは比較的リアルな人格に近い。どちらかというと家の外にいるオフィシャルな自分に近い人格で日記を書いたりするだろう。 Twitterのようにゆるいつながりを持つサービスは、リアル人脈に関係なく本能的なコミュニケーションをすることが多い。もちろん、人それぞれなのがソーシャルメディアのいいところであるので、Twitterが自分のオフィシャルサイトになっている人もいるし、mixiを自分の隠したい人格での活動に使っている人だっているだろう。隠したいことでもmixiなら同じようなことを考えている人がきっといるだろうから、隠したい人格でコミュニティを形成できるのである。

ソーシャルメディアが当たり前のように使われるようになって、リアルな人間関係だけでなく、ネットでの人間関係も生まれてきている。もちろん、ネットとリアルを共有している関係だってある。そこまで含めるとかなり複雑な人間関係が存在することになる。これからのネット社会を考えると、人格をどう見せるのかコントロールするスキルが要求されるのかもしれない。

さて、我ながらぶっ飛んだことを書いたような気がする。賛否両論があるだろうし、私が間違った解釈をしているところもあるだろう。これも一つの意見として寛大な心で読んでいただけると幸いである。

では、今回はここまで。

posted by やすお at 02:49 | Comment(0) | TrackBack(0) | ソーシャルメディア | このブログの読者になる | 更新情報をチェックする



×

この広告は1年以上新しい記事の投稿がないブログに表示されております。