SlideShare a Scribd company logo
Android Studio
Gradle
横幕 圭真(@KeithYokoma)
Android Studio
Android Studio
• 新しい Android 用開発環境
• IntelliJ IDEA ベースの Android 用 IDE
• オープンソース
• Apache ant から Gradle へ
• しかも IDE にガッツリ統合されている!
Android Studio
• ここがすごいよ Android Studio
• レイアウトエディタ
• Gradle ベースのビルド
プロジェクトの作成
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Android Studio
• Eclipse と異なるプロジェクト構成
Android Studio
• テストを含める
Android Studio
• Command + R で実行
レイアウトの編集
Android Studio
Android Studio
• 表示を切り替えるコントロール
Android Studio
• 表示を切り替えるコントロール
自動でリソースを生成してくれる
プレビュー表示をカスタマイズする
Android Studio
Android Studio
Android Studio
Android Studio
• 表示を切り替えるコントロール
Android Studio
• 表示を切り替えるコントロール
Android Studio
• テーマ設定
Android Studio
• ロケール設定
Android Studio
• Fragment のレイアウトもプレビュー
Android Studio
• マウスオーバーでリソース名を表示
• リソース ID のサジェストもパワフルに
• フレームワークにアノテーションが付いている
• int がどのリソース ID かが指定されるようになった
Gradle
Gradle
• 新しいビルドシステム
• Groovy で記述
• ant にはない依存関係管理
• プログラムも仕込める
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
Gradle
• 新しいビルドシステム
• android 向けプラグイン完備
• AndroidManifest が書き換え可
• 有料版/無料版といった
バージョンの振り分けもできる
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
Gradle
• 新しいビルドシステム
• sourceSets の設定で
古いプロジェクトにも適用可
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
instrument.setRoot(‘tests’)
}
}
Gradle
• コマンド同封
• ./gradlew build
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
$	
  ./gradlew	
  build
The	
  TaskContainer.add()	
  method	
  has	
  been	
  deprecated	
  and	
  is	
  scheduled	
  to	
  be	
  removed	
  in	
  Gradle	
  2.0.	
  Please	
  use	
  the	
  create()	
  method	
  
instead.
:HogeApp:prepareDebugDependencies
:HogeApp:compileDebugAidl	
  UP-­‐TO-­‐DATE
:HogeApp:generateDebugBuildConfig	
  UP-­‐TO-­‐DATE
:HogeApp:mergeDebugAssets	
  UP-­‐TO-­‐DATE
:HogeApp:compileDebugRenderscript	
  UP-­‐TO-­‐DATE
:HogeApp:mergeDebugResources	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugManifest	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugResources	
  UP-­‐TO-­‐DATE
:HogeApp:compileDebug	
  UP-­‐TO-­‐DATE
:HogeApp:dexDebug	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugJavaRes	
  UP-­‐TO-­‐DATE
:HogeApp:validateDebugSigning
:HogeApp:packageDebug	
  UP-­‐TO-­‐DATE
:HogeApp:assembleDebug	
  UP-­‐TO-­‐DATE
:HogeApp:prepareReleaseDependencies
:HogeApp:compileReleaseAidl
:HogeApp:generateReleaseBuildConfig
:HogeApp:mergeReleaseAssets
:HogeApp:compileReleaseRenderscript
:HogeApp:mergeReleaseResources
:HogeApp:processReleaseManifest
:HogeApp:processReleaseResources
:HogeApp:compileRelease
:HogeApp:dexRelease
:HogeApp:processReleaseJavaRes	
  UP-­‐TO-­‐DATE
:HogeApp:packageRelease
:HogeApp:assembleRelease
:HogeApp:assemble
:HogeApp:check	
  UP-­‐TO-­‐DATE
:HogeApp:build
BUILD	
  SUCCESSFUL
Total	
  time:	
  9.003	
  secs
$	
  ls	
  HogeApp/build/apk/
HogeApp-­‐debug-­‐unaligned.apk
HogeApp-­‐release-­‐unsigned.apk
Gradle for Android
Gradle for Android
• Android 用のタスクが一杯
$	
  ./gradlew	
  tasks
Gradle for Android
• AndroidManifest をいじる
• defaultConfig ブロック
• ターゲットSDKのバージョン
• バージョンコード
• バージョン名
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
versionCode 1
versionName “1.0.0”
}
}
AndroidManifestの修正
コミットが不要に
Gradle for Android
• AndroidManifest をいじる
• デバッグ用途の
• デバッグ用のパッケージ名
• デバッグ用のバージョン名
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
versionCode 1
versionName “1.0.0”
}
sourceSets {
buildType {
debug {
packageNameSuffix “.debug”
}
}
}
}
リリースビルドとの
共存が可能に
Android Studio
Gradle
Google I/O 2013 報告会 Android Studio と Gradle
Ad

More Related Content

What's hot (20)

Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみた
shinya sakemoto
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
Tomoaki Imai
 
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
AT GS
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
 
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
schoowebcampus
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
Kazuaki Ueda
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
Yutaka Kato
 
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
shouta yoshikai
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Takahiro Yoshimura
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu
 
Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~
slide_nal
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
 
DevFest Japan 2014 Spring
DevFest Japan 2014 SpringDevFest Japan 2014 Spring
DevFest Japan 2014 Spring
Takashi EGAWA
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
 
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
 
Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみた
shinya sakemoto
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
Tomoaki Imai
 
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
AT GS
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
 
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
schoowebcampus
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
Kazuaki Ueda
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
Yutaka Kato
 
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
shouta yoshikai
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Takahiro Yoshimura
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu
 
Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~
slide_nal
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
 
DevFest Japan 2014 Spring
DevFest Japan 2014 SpringDevFest Japan 2014 Spring
DevFest Japan 2014 Spring
Takashi EGAWA
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
 
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
 

Viewers also liked (20)

New android location ap is
New android location ap isNew android location ap is
New android location ap is
Vishal Nayak
 
Google Play Game Servicesについて
Google Play Game ServicesについてGoogle Play Game Servicesについて
Google Play Game Servicesについて
Kenzo Ishii
 
Whats new in_play
Whats new in_playWhats new in_play
Whats new in_play
punchdrunker Nanao
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
Marcelo Quinta
 
Modul oop with java application mauludin
Modul oop with java application   mauludinModul oop with java application   mauludin
Modul oop with java application mauludin
Mauludin Ahmad
 
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating  the EcosystemThe Game Of Life - Java‘s Siblings and Heirs are populating  the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
jexp
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)
osake
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in Android
Rich Helton
 
Gu iintro(java)
Gu iintro(java)Gu iintro(java)
Gu iintro(java)
Satish Verma
 
GUI Programming with Java
GUI Programming with JavaGUI Programming with Java
GUI Programming with Java
Jussi Pohjolainen
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Prof. Erwin Globio
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structure
Vyara Georgieva
 
Android Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development toolsAndroid Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development tools
Taeho Kim
 
Firebase with Android
Firebase with AndroidFirebase with Android
Firebase with Android
Fumihiko Shiroyama
 
OOP in Java
OOP in JavaOOP in Java
OOP in Java
wiradikusuma
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
Atul Panjwani
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
wiradikusuma
 
New android location ap is
New android location ap isNew android location ap is
New android location ap is
Vishal Nayak
 
Google Play Game Servicesについて
Google Play Game ServicesについてGoogle Play Game Servicesについて
Google Play Game Servicesについて
Kenzo Ishii
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
Marcelo Quinta
 
Modul oop with java application mauludin
Modul oop with java application   mauludinModul oop with java application   mauludin
Modul oop with java application mauludin
Mauludin Ahmad
 
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating  the EcosystemThe Game Of Life - Java‘s Siblings and Heirs are populating  the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
jexp
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)
osake
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in Android
Rich Helton
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Prof. Erwin Globio
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structure
Vyara Georgieva
 
Android Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development toolsAndroid Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development tools
Taeho Kim
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
Atul Panjwani
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
wiradikusuma
 
Ad

Similar to Google I/O 2013 報告会 Android Studio と Gradle (20)

Gradle布教活動
Gradle布教活動Gradle布教活動
Gradle布教活動
Nemoto Yusuke
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
Keiji Ariyama
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
 
Androidアプリ販売への道
Androidアプリ販売への道Androidアプリ販売への道
Androidアプリ販売への道
Yoshinori Kamaishi
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQuery
Ryo Yamasaki
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
shozon
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
Nemoto Yusuke
 
G * magazine 0
G * magazine 0G * magazine 0
G * magazine 0
Tsuyoshi Yamamoto
 
WebIDLを見てみる
WebIDLを見てみるWebIDLを見てみる
WebIDLを見てみる
takenspc
 
Introduce React Native
Introduce React NativeIntroduce React Native
Introduce React Native
GMO-Z.com Vietnam Lab Center
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
 
テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化
Yukei Wachi
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
Keiji Ariyama
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
Osamu Monoe
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
 
Androidアプリ販売への道
Androidアプリ販売への道Androidアプリ販売への道
Androidアプリ販売への道
Yoshinori Kamaishi
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
Masayuki Abe
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQuery
Ryo Yamasaki
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
shozon
 
WebIDLを見てみる
WebIDLを見てみるWebIDLを見てみる
WebIDLを見てみる
takenspc
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
 
テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化
Yukei Wachi
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
Ad

More from Keishin Yokomaku (14)

UI optimization for night
UI optimization for nightUI optimization for night
UI optimization for night
Keishin Yokomaku
 
Popup view on Mortar
Popup view on MortarPopup view on Mortar
Popup view on Mortar
Keishin Yokomaku
 
Regexp in Android and Java
Regexp in Android and JavaRegexp in Android and Java
Regexp in Android and Java
Keishin Yokomaku
 
Deep Inside Android Hacks
Deep Inside Android HacksDeep Inside Android Hacks
Deep Inside Android Hacks
Keishin Yokomaku
 
Make it compatible
Make it compatibleMake it compatible
Make it compatible
Keishin Yokomaku
 
Signature
SignatureSignature
Signature
Keishin Yokomaku
 
Android Media Hacks
Android Media HacksAndroid Media Hacks
Android Media Hacks
Keishin Yokomaku
 
Null, the Abyss
Null, the AbyssNull, the Abyss
Null, the Abyss
Keishin Yokomaku
 
?
??
?
Keishin Yokomaku
 
Building stable and flexible libraries
Building stable and flexible librariesBuilding stable and flexible libraries
Building stable and flexible libraries
Keishin Yokomaku
 
Typeface
TypefaceTypeface
Typeface
Keishin Yokomaku
 
Version Management
Version ManagementVersion Management
Version Management
Keishin Yokomaku
 
イカしたライブラリを作った話
イカしたライブラリを作った話イカしたライブラリを作った話
イカしたライブラリを作った話
Keishin Yokomaku
 
自己組織化
自己組織化自己組織化
自己組織化
Keishin Yokomaku
 

Google I/O 2013 報告会 Android Studio と Gradle

  • 3. Android Studio • 新しい Android 用開発環境 • IntelliJ IDEA ベースの Android 用 IDE • オープンソース • Apache ant から Gradle へ • しかも IDE にガッツリ統合されている!
  • 4. Android Studio • ここがすごいよ Android Studio • レイアウトエディタ • Gradle ベースのビルド
  • 10. Android Studio • Eclipse と異なるプロジェクト構成
  • 12. Android Studio • Command + R で実行
  • 24. Android Studio • Fragment のレイアウトもプレビュー
  • 25. Android Studio • マウスオーバーでリソース名を表示 • リソース ID のサジェストもパワフルに • フレームワークにアノテーションが付いている • int がどのリソース ID かが指定されるようになった
  • 27. Gradle • 新しいビルドシステム • Groovy で記述 • ant にはない依存関係管理 • プログラムも仕込める buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 28. Gradle • 新しいビルドシステム • android 向けプラグイン完備 • AndroidManifest が書き換え可 • 有料版/無料版といった バージョンの振り分けもできる buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 29. Gradle • 新しいビルドシステム • sourceSets の設定で 古いプロジェクトにも適用可 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } instrument.setRoot(‘tests’) } }
  • 30. Gradle • コマンド同封 • ./gradlew build buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 31. $  ./gradlew  build The  TaskContainer.add()  method  has  been  deprecated  and  is  scheduled  to  be  removed  in  Gradle  2.0.  Please  use  the  create()  method   instead. :HogeApp:prepareDebugDependencies :HogeApp:compileDebugAidl  UP-­‐TO-­‐DATE :HogeApp:generateDebugBuildConfig  UP-­‐TO-­‐DATE :HogeApp:mergeDebugAssets  UP-­‐TO-­‐DATE :HogeApp:compileDebugRenderscript  UP-­‐TO-­‐DATE :HogeApp:mergeDebugResources  UP-­‐TO-­‐DATE :HogeApp:processDebugManifest  UP-­‐TO-­‐DATE :HogeApp:processDebugResources  UP-­‐TO-­‐DATE :HogeApp:compileDebug  UP-­‐TO-­‐DATE :HogeApp:dexDebug  UP-­‐TO-­‐DATE :HogeApp:processDebugJavaRes  UP-­‐TO-­‐DATE :HogeApp:validateDebugSigning :HogeApp:packageDebug  UP-­‐TO-­‐DATE :HogeApp:assembleDebug  UP-­‐TO-­‐DATE :HogeApp:prepareReleaseDependencies :HogeApp:compileReleaseAidl :HogeApp:generateReleaseBuildConfig :HogeApp:mergeReleaseAssets :HogeApp:compileReleaseRenderscript :HogeApp:mergeReleaseResources :HogeApp:processReleaseManifest :HogeApp:processReleaseResources :HogeApp:compileRelease :HogeApp:dexRelease :HogeApp:processReleaseJavaRes  UP-­‐TO-­‐DATE :HogeApp:packageRelease :HogeApp:assembleRelease :HogeApp:assemble :HogeApp:check  UP-­‐TO-­‐DATE :HogeApp:build BUILD  SUCCESSFUL Total  time:  9.003  secs $  ls  HogeApp/build/apk/ HogeApp-­‐debug-­‐unaligned.apk HogeApp-­‐release-­‐unsigned.apk
  • 33. Gradle for Android • Android 用のタスクが一杯 $  ./gradlew  tasks
  • 34. Gradle for Android • AndroidManifest をいじる • defaultConfig ブロック • ターゲットSDKのバージョン • バージョンコード • バージョン名 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 versionCode 1 versionName “1.0.0” } } AndroidManifestの修正 コミットが不要に
  • 35. Gradle for Android • AndroidManifest をいじる • デバッグ用途の • デバッグ用のパッケージ名 • デバッグ用のバージョン名 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 versionCode 1 versionName “1.0.0” } sourceSets { buildType { debug { packageNameSuffix “.debug” } } } } リリースビルドとの 共存が可能に