SHOEISHA iD

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

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

BizReach Tech Blog

Android 8.0とAndroid Studio 3.0で始めるReactive Extensionsを用いたアプリ開発

BizReach Tech Blog 第2回


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

 本連載では、株式会社ビズリーチのエンジニアが、急成長を続ける事業の中で得られた実践的なノウハウをつづります。第2回のテーマは「Java 8で開発するReactive Extensionsを用いたAndroidアプリ開発」です。

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

はじめに

 昨今、リアクティブプログラミングが注目されています。GUIにおけるインタラクションや、時間経過と共に変化するアニメーションなどに適したパラダイムであると言われており、もちろんAndroidアプリケーション開発にも取り入れていくことが可能です。

 本記事では、2018年1月時点における最新のAndroid開発環境であるAndroid Studio 3.0.1とAndroid SDK Build Tool 26.0.2(Android 8.0)と、Reactive Extensions(RxJava2)を使ったアプリ開発方法について、チャットアプリケーションを題材として紹介します。

対象読者

  • Androidアプリケーション開発に携わるエンジニア
  • Androidでリアクティブプログラミング未経験者
  • Android 8.0、Android Studio 3.0未経験者

 チャットの相手は、インターメディアプランニング株式会社が提供する「Repl-AI」に担当してもらいました。Repl-AIは、Web上のツールでシナリオを作成し、REST APIでメッセージを送信するとシナリオに従って自動応答をしてくれるBOT作成サービスです。下図は、今回のアプリケーション用に作成したシナリオの画面です。

Android Studio 3.0.1

 ベースとなるIntelliJのバージョンが2016.2から2017.1.2に更新されました。 また、本稿ではJava言語を利用しますが、デフォルトでKotlinプラグインがインストール済みなので、すぐにKotlin言語を利用したAndroid開発を始めることもできます。

 Android Studio 3.0ではJava 7およびJava 8の一部仕様をサポートしています。今まではRetroLambdaやJackの設定が必要でしたが、それらを行わずともJava 8の仕様でAndroid開発を行うことができるようになりました。このJava 8サポートは、desugarと呼ばれるバイトコード変換プロセスによって実現しているそうです。

 desugarな環境であれば、Java 8で書かれたサードパーティ製ライブラリが利用できるといったメリットもあります(RetroLambdaではサポートしていませんでしたし、Jackは2017年3月14日に廃止がアナウンスされてしまいました)。

プロジェクトの作成とサポートするAndroidのバージョン

 それではチャットアプリケーションの開発を始めましょう。プロジェクトを新規に作成するには[File]メニューから[New]-[New Project]と選択して、必要事項を入力します。プロジェクトを作成したら、生成されたプロジェクトのbuild.gradleを確認しましょう。

 Android Pluginのバージョンが3.0.1(執筆時点)となっていることが確認できます。既存プロジェクトを利用する場合には、手動でバージョンをアップデートしてください。

buildscript {
    ...略...
    
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

 また、リポジトリ定義にGoogle Mavenリポジトリを追加しておきましょう。今後、support libraryなどはGoogle Mavenリポジトリで配布されます(※Android Studio 3.0.0以降で作成したプロジェクトならデフォルトで設定されています)。

allprojects {
    repositories {
        jcenter()
          
        google()
          
        // Gradle 4.0未満を利用する場合には、このように書けばOKです。 
        // maven { url 'https://maven.google.com' }
    } 
} 

 appモジュールのbuild.gradleも確認しておきましょう。今回は、サポートするAndroidのバージョンを5.0以上(API Level 21)としました。

 2014年にAndroid 5.0がリリースされて3年以上が経過し、シェアが拡大しています。もしマテリアルデザインを取り入れるのであれば、UI/UXのメンテナンスが楽になるといった点からも、古いOSバージョンを切り捨てる選択も良いのではないでしょうか。

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
      
    defaultConfig {
        ...略...
          
        minSdkVersion 21
        targetSdkVersion 26
    }
      
    compileOptions { 
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

 仮にAndroid7.0(API Level 24)以上をサポート対象としたい場合は、以下の点に留意する必要があります。

  • 残りのJava 8仕様(Optional、Stream API、java.util.functionパッケージなど)が利用可能
  • ただし、上記はサードパーティー製のライブラリで代用可能
  • 2017年10月時点で、Android 7.0以上のシェアは18%程度

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
開発を便利にするライブラリ

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

  • このエントリーをはてなブックマークに追加
BizReach Tech Blog連載記事一覧

もっと読む

この記事の著者

岩井 友希(株式会社ビズリーチ)(イワイ トモキ)

SIer、フリーランスを経て、2015年にビズリーチへ入社。 Java、Python、Android、iOS、Linuxたまにセキュリティとかのキーワードに反応するエンジニアです。 github:https://github.com/TomokiIwai 株式会社ビズリーチについて:https://www.bizreach.co.jp/recruit/

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10676 2018/10/17 15:47

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング