SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Web APIで楽々Androidアプリ

AndroidアプリからTwitter APIを利用するには

Web APIで楽々Androidアプリ(10)


  • X ポスト
  • このエントリーをはてなブックマークに追加

プロジェクトの作成

 では、Androidアプリケーションのプロジェクトを新規作成しましょう。Eclipseの[新規]-[Androidアプリケーション・プロジェクト]を選択します。今回は「Trendwatcher」という名前で作成し、アクティビティは[Blank Activity]を選択しました。このスケルトンのアプリケーションに、必要なコードを追加していきます。

新規Androidアプリケーション
新規Androidアプリケーション
Blank Activityの設定
Blank Activityの設定

ライブラリの追加

 Twitter4Jのサイトから、ライブラリ(執筆時点では、twitter4j-4.0.1.zip)をダウンロードします。

 zipファイルを解凍すると、多くのファイルが生成されますが、今回のアプリでは、 libフォルダにできるtwitter4j-core-4.0.1.jarというファイルのみ使用します。これを、プロジェクトのlibsフォルダにコピーしておきます。

 twitter4j-core-4.0.1.jarには、Twitter APIを利用するための、基本的なコードが含まれています。

permissionの追加

 Twitter APIを利用するには、インターネットへのアクセスが必要ですので、アプリケーションのpermissionの設定をしておきます。AndroidManifest.xmlに、次の行を追加します。

AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>

レイアウトの変更

 最新のADTでアプリケーションを新規作成すると、フラグメント(fragment_main.xml)を使用したスケルトンアプリケーションになります。今回のアプリでは、このfragment_main.xmlに、ボタンとリストビューを追加します。

fragment_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.rakuraku.android.Twitter.MainActivity$PlaceholderFragment" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/trend_button" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ListView>

</LinearLayout>

 なお、スケルトンアプリケーションでは、フラグメントはRelativeLayoutとなっていますが、ボタンとListViewを縦に配置するため、LinearLayoutに変更します。

 LinearLayoutは、向き(orientation)を縦(vertical)にし、横幅(layout_width)と高さ(layout_height)をともに、画面いっぱい(match_parent)に設定しています。

 ボタンは横幅を画面いっぱいに指定し、高さを自動調整(wrap_content)にしています。

 リストビューでは、横幅、高さとも、画面いっぱいに指定します。

Twitterオブジェクトの生成

 ここからはコードの追加です。まずは、Twitter4Jライブラリの初期化処理である、Twitterオブジェクトの生成を行います。

 Twitterオブジェクトは、Twitter4Jライブラリのメインのオブジェクトです。このオブジェクトの生成時に、OAuth認証用の4つのキーコード(consumerKey、consumerSecret、accessToken、accessTokenSecret)を設定します。

 キーの設定には、プロパティファイルに記述する方法と、プログラム内で直接指定する方法の2つあります。今回のアプリケーションでは、プログラム内に記述しています。

MainActivity.java
public static class PlaceholderFragment extends Fragment {

    // Twitterオブジェクト
    private Twitter twitter = null;

    public PlaceholderFragment() {

        // OAuth認証用設定(1)
        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

        configurationBuilder.setOAuthConsumerKey("XXXXX");
        configurationBuilder.setOAuthConsumerSecret("XXXXX");
        configurationBuilder.setOAuthAccessToken("XXXXX");
        configurationBuilder.setOAuthAccessTokenSecret("XXXXX");

        // Twitterオブジェクトの初期化(2)
        this.twitter =
            new TwitterFactory(configurationBuilder.build()).getInstance();
    }
}

 ConfigurationBuilderというクラスを利用して、必要な4つのキーコードを設定します(1)。そして、TwitterFactoryクラスのgetInstanceメソッドで、Twitterオブジェクトを生成します(2)

 なお、ここでconfigurationBuilder.build()を指定しない場合、プロパティファイル(twitter4j.properties)から自動的に設定が読み込まれます。

PlaceholderFragmentについて

 前述のサンプルコードは、MainActivity.java内のコードですが、PlaceholderFragmentというフラグメントクラスの定義と、コンストラクタになっています。

 スケルトンアプリでは、フラグメントクラス(PlaceholderFragment)は、アクティビティクラス(MainActivity)の内部で、定義されています。

最後に

 今回は、主にTwitter APIを利用するための準備編でした。次回は、Twitter4Jライブラリを非同期で実行する部分など、残りのコードを解説していきます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Web APIで楽々Androidアプリ連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7801 2014/07/17 20:08

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング