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端末を購入した人はやってみて損はないと思います。スマートフォンはカスタマイズできるのが特徴です。アプリを自作することで、もっと自分端末に仕上げることができます。

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

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




×

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