体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

ガジェット通信Androidアプリの作り方 第3回:ガジェ通アプリの開発

ガジェット通信Androidアプリの作り方 第3回:ガジェ通アプリの開発

ガジェット通信の最新記事を読めるAndroidアプリ『ガジェット通信 Getnews Reader』を開発いただいた、アンドロイド記者のnayutanoutyuさん連載第3回。「Androidアプリってどうやって作るの?」「これからAndroidアプリを開発してみたい!」という読者に向けて、nayutanoutyuさんにアプリ開発の一連の流れを全4回の記事で解説いただきます。今回は、いよいよガジェ通アプリの具体的な機能の実装について見ていきましょう。

第1回:開発環境のセットアップ
http://getnews.jp/archives/132193[リンク]

第2回:「Hello World」とAndroidアプリ開発の基本
http://getnews.jp/archives/132376[リンク]

第3回:ガジェ通アプリの開発

ガジェ通アプリ『ガジェット通信 Getnews Reader』は、ガジェット通信で配信されている記事をAndroid端末上で閲覧するためのニュースアプリです。アプリ起動時に自動的に記事を取得して、一覧を表示してくれます。もし、ネットワークの問題で記事の取得ができなかった場合は、メニューの「更新」をタッチすることで記事の再取得ができます。記事の詳細画面では、メニューから簡単に記事の共有を行うための機能があります。お気に入りの『Twitter』クライアントや、メールクライアント、『Facebook』アプリを利用して、知人に記事を知らせることが手軽にできます。また、パソコン向けウェブサイトの画面で記事を読みたいなら、お気に入りのウェブブラウザで開くこともできます。

取得された記事は端末内に保持されます。そのため、ネットワークにつながらない場所に端末があっても、記事を読むことができます。ただし、キャッシュに保持されていない画像などは表示されません。地下鉄に乗る前に記事の取得を行い、後で記事を読むこともできます。

前回はAndroidアプリ開発の方法について「Hello World」アプリ作成を交えてご説明させていただきました。今回は、上述の機能がどのように実現されているかについてご説明したいと思います。

Android アプリの構成要素

Androidアプリには、重要な4種類の構成要素(コンポーネント)があります。

・アクティビティ
・サービス
・コンテンツプロバイダー
・ブロードキャストレシーバー

これらは、アプリ一つに対して一つ、または複数含めることができます。つまり、それぞれ排他的なものではなく、各構成要素が連携して、一つのアプリを形作ることができます。

先に、アクティビティ以外の3種類の要素について簡単に説明します。サービスは、アプリがバックグランドで動作することが想定される場合に利用される要素です。コンテンツプロバイダーは、別のアプリケーションに何かデータを渡す場合に利用される要素です。ブロードキャストレシーバーは、システムやアプリが提供する、何かの状態変化を意味するデータ(例えば、電池の残量変化)を受け取るための要素です。

アクティビティは、アプリのインタフェースを表示するための要素です。恐らく、Androidアプリを開発する場合、大抵この要素が利用されると思います。ガジェ通アプリでは、この要素のみ利用して作成されました。最新記事をバックグランドで自動的に取得したりする機能などは必要なかったので、他の要素は必要になりませんでした。

詳細は『Android Developers』をご参照下さい。

Android Developers
http://developer.android.com/sdk/index.html[リンク]

1 2 3次のページ
寄稿の記事一覧をみる

記者:

ガジェット通信はデジタルガジェット情報・ライフスタイル提案等を提供するウェブ媒体です。シリアスさを排除し、ジョークを交えながら肩の力を抜いて楽しんでいただけるやわらかニュースサイトを目指しています。 こちらのアカウントから記事の寄稿依頼をさせていただいております。

TwitterID: getnews_kiko

  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。