SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
JRebel for Android 1.0
を試食してみた
@kimukou2628
つい最近の

android関係で調べてたこと(1)
android grade plugin のversionが上がった
2.0-prev4 => 2.0-prev6 (2割ぐらい遅くなった)
InstantRun前提のBuildになったから?
どうも以下の挙動が頻繁だからのよう

ライブラリプロジェクトのビルド/リソースチェックが頻繁
(aar運用前提?)

grade Deamonから発行されるjavaタスクがよくロックさ
れて戻ってこない(要Kill)
ロック時にIDE側でdeamon再起動、cleanタスク発行

(gradle Deamonの再起動コストがかなり重い)
つい最近の

android関係で調べてたこと(2)
android grade plugin のversionが上がった
InstantRunはちょっとだけ状況改善
Macでは,ADT形式&Library Project有なプロジェクトでも

なんとかビルドは通るようにはなったよ

(Winでは変わらずNG)
Win上開発前提でInstantRun使えない前提だとすると
コマンドライン(Terminal窓)でビルド
adbでapkインストール

が一番早いみたいな話になってしまう。。。
./gradlew assembleDebug -x :libP:assembleDebug -x test —offline
つい最近の

android関係で調べてたこと(3)
gradle-2.11-rc-1
GradleDeamon がJPSの対象になった
タスクのJavaプロセスはJPS対象になってない
ロックかかったタスクの終了させたい面では微妙
Windows特有の問題なのだろうか?
でもAndroid開発者でWin端末開発が多いよね?
grade-wrapper.properties を下記に変更で試せます
distributionUrl=https://services.gradle.org/distributions/gradle-2.11-rc-1-bin.zip
つい最近の

android関係で調べてたこと(4)
Genymotion 2.6.0 に上がった
QT4=>QT5に変更されてPlayerの起動が速くなった

ライセンス購入促すダイアログ毎回出るようになった
Jenkins関係でフリーでは使わせないよ! な糸

6.0 Previewのimageが追加されたよ

files.genymotion.com からのDLで、Proxy環境によってはソフ
トやova が落とせない(StackOverFlowで対応記事があるくらい)

Gappsは5.1の奴で動かせる。最新化はダメ
MIC等の対応はVBOX側頼み(Win無理、Macは可能?)

指紋認証/権限リクエストの挙動も動かない
ここから

JRebel for Android 1.0 のお話
今年1月に正式版 1.0 が出たらしい

デモビデオ

https://vimeo.com/124512575

だからまだ サムライズム様でも取り扱いしてない?

Beta触った人の記事

http://androhi.hatenablog.com/entry/2015/06/18/083000

JJUG CCCのイケメンさんの話だとWindowsでも問題
なく動く話を聞いていたので興味が湧いた

試食するのは、プラグインレポジトリから

Pluginインストールして、Formにメアド登録のみで手軽
試食設定(1)
プラグインレポジトリで

JRebelで検索

再起動すると、入力フォームが出てくるのでメアド登録

登録が成功すると以下のフォルダにトライアル用のライセ
ンスファイルが作成される









$HOME/.jrebel-android
jrebel-android.lic
rebel-android.prefs
logs(フォルダ)
試食設定(2)
トライアルライセンスはメアドユニークなので

$HOME/.jrebel-android 

を持っていけば他の端末で試食でそう

(端末ロック有だと個人購入だとキツイな∼><)

ライセンスには「開発者/年単位」で1ライセンス

トライアルモードで試せるのは

Business 機能まで使える認識

通常実行

デバックモード実行
デバック
通常実行
反映転送
ライセンス形態
価格

(年/人)
機能
Individual $49
InstantRunみたいな状態

(日本代理店で39800円?
Business $349
デバック実行モード
Multidex サポート
Ultimate

(2016リリース予定)
$599
複数端末同時転送
Instrumentation tests対応
複数端末同時転送は
レイアウトちょこちょこ修正

複数端末表示確認テスト(小さい/普通/タブレット)
とかしてるので企業的には確かに便利かも
試食状況(1)
ツールバーのJRebel用の実行ボタンを押すのみ

通常実行

反映転送ボタンで変更を転送

破壊的変更でない限り、

基本Activity再起動のみで反映

デバックモード実行(Betaの記事にはなかった)

デバック実行を抜けないままActivityリロード

(公式サイトの説明だと、

ステップデバック中に動的変更、転送できる?

ように読めたがそれは出来なかった)
デバック
通常実行
反映転送
試食状況(2)
実行ウインドウは

モード別

初回実行時にbuild.gradleに記述が追加
反映転送
buildscript {

repositories {

jcenter()

maven {

url 'https://repos.zeroturnaround.com/nexus/content/repositories/zt-public-releases'

}

}

dependencies {

	 classpath 'com.android.tools.build:gradle:2.0.+'

classpath 'com.zeroturnaround.jrebel.android:jr-android-gradle:1.0.+'

}

}

apply plugin: 'com.android.application'

apply plugin: 'com.zeroturnaround.jrebel.android'
試食状況(3)
JRebelで通信する専用apkが専用タスクで生成












Android端末に転送される

このapkは端末から直接実行すると

「IDEから実行してください」とスプラッシュがでて停止して
しまう

開発PCの方にJRebel通信用のローカルサーバが立ち上がって

Android端末と通信を始める

jps -v で確認可能
Gradleコンソールで見ると
 :jrebelPrepereDebug 

で専用apk生成な形に見えるが
上記タスクをコマンドラインで実行
生成したapkはadb installできない
InstantRunもそうですが

IDE側で何設定して動かして
るんでしょうね。。(汗
試食状況(4)
JRebel通信用のローカルサーバの話

一定期間周期で接続確認ポーリングしてる

USBを抜き差ししても短時間なら継続可能

ちょっとした画面確認程度なら出歩ける

これが何気に便利だった

4系以上の端末が対象

まあ2系サポートとか今更でしょうけど(汗

レガシープロジェクトは不滅ですorz
体感的な話(1):良かった点
反映転送が速い
専用apkが立ち上がったあと(専用apkの起動自体は勿論重)

変更したら「反映転送」ボタン押下

:jrebelPrepereDebug タスクが速い

cleanとか libraryProjectの再ビルドとか

余計なタスクを勿論遣ってない

Win環境でも1∼5秒程度で転送確認可能

AS通常実行で ビルドのみで 30秒∼1分 かかる環境

変更ファイルのみの差分転送、適応だから?
JDIとかの技術なのだろうか・・・

apkが再起動せず、基本現在表示中のActiviy Reloadな感じ

Stackに積まれているActivty反映とかはやはり無理?
体感的な話(2):微妙な面
端末内のアプリがパツンと終了することがある

多分ローカルJRebel との通信エラーで

特にデバックモードでゆっくりステップ実行

とかすると再現率高 (JRebelのでも同じ)

IDE経由じゃないと起動できないapk

:jrebelPrepareDebug はassembleDebug は呼んでいるので
patchが当たったapkだと想定

(通常のapkファイルしか無い)

gradlew assembleDebugで作りなおした

apkで容易に上書き可能
:generateDebugJrebelLayout
:assembleDebug
:jrebelCompileDebug
:jrebelPrepareDebug
検証な話(1)
Q)リアルにつかうとしたら Individual ライセンスだと思
うので下記が実行可能か試した
JRebel実行

プロセスアタッチ

A)
一応可能。

ただしActivty Reloadタイミングでプロセスが切れる

MultiDexなプロジェクトは試してない

bussinessじゃないと ビルド できない疑惑が。。。

使えるプロジェクトが限定される?
検証な話(2)
Q)どんなプロジェクトだと使ってて嬉しいか?
A)
テストデータをコード/assets内にもってる奴

テストコード使ってる案件のほうが少ない?

ASだとステップ実行で下記が頻繁 (ADTは可)

値書き換えが上手くいかない

ローカル変数参照自体ができない??
書き換えてReload =>目視確認した方がすぐ確認できる

レイアウトを黙視で微調整が必要な奴

HTMLレイアウトに近いので必須

(iOSでもAutoLayoutプロジェクトは阿鼻叫喚気味)
検証な話(3)
Q)どんなプロジェクトだと使ってて嬉しいか?
A)
ちょっとしたクラスやレイアウトの追加/削除が

Reloadですぐ確認できる

開発がサクサクできる

人によってはJRebelデバックモードで内部値確認し
ながら開発する人もいるかも?

https://zeroturnaround.com/software/jrebel-for-android/features/

interface/super classの差替以外はReloadできるらしい
疑問点など
Individual ライセンスなら

個人開発者レベルでもありかもなーと

ライセンス形態で不安なところ

IntelliJ みたいに複数端末インスト可だといいな∼

同時起動は1個で構わないので

ライセンス切れたら起動できなくなる?

だとすると辛い

個人ベースだと IntelliJ みたいに

アカウントログインで認証できると実は嬉しい

日本人が購入する場合、領収書辺りがネック?

JRebelとかって実際日本でどのくらい売れてるんだろう
凄く気になる。。。
参考URL
公式サイト

https://zeroturnaround.com/software/jrebel-for-android/

サムライズムのJRebelの説明ページ

http://samuraism.com/products/zeroturnaround/jrebel

JRebel for Android betaを試してみました

http://androhi.hatenablog.com/entry/2015/06/18/083000

Contenu connexe

Tendances

Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
Oda Shinsuke
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
Junya Suzuki
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
dcubeio
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
Kohsuke Kawaguchi
 

Tendances (20)

Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
 
Jenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's NewJenkins実践入門 第二版 What's New
Jenkins実践入門 第二版 What's New
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリーjenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
 
Startup jenkins!
Startup jenkins!Startup jenkins!
Startup jenkins!
 
Gradle布教活動
Gradle布教活動Gradle布教活動
Gradle布教活動
 
Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例Jenkinsを利用したCI、弊社導入事例
Jenkinsを利用したCI、弊社導入事例
 
Jenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいますJenkins実践入門目次チラ見せしちゃいます
Jenkins実践入門目次チラ見せしちゃいます
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
 
Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
 
Cibc work kokawa
Cibc work kokawaCibc work kokawa
Cibc work kokawa
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
 
Ciじゃない方のJenkins
Ciじゃない方のJenkinsCiじゃない方のJenkins
Ciじゃない方のJenkins
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
 
あるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクルあるゲームアプリケーションの構成とアップデートサイクル
あるゲームアプリケーションの構成とアップデートサイクル
 
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
 
20160421 react勉強会
20160421 react勉強会20160421 react勉強会
20160421 react勉強会
 

Similaire à JRebel for Android 1.0 を試食してみた

Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
 

Similaire à JRebel for Android 1.0 を試食してみた (20)

G's ACADEMY(Androidコース) 第二回 授業スライド「アプリ画面とデータベースDB連携」
G's ACADEMY(Androidコース) 第二回 授業スライド「アプリ画面とデータベースDB連携」G's ACADEMY(Androidコース) 第二回 授業スライド「アプリ画面とデータベースDB連携」
G's ACADEMY(Androidコース) 第二回 授業スライド「アプリ画面とデータベースDB連携」
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
Spring native について
Spring native についてSpring native について
Spring native について
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
Play勉強会 第3回
Play勉強会 第3回Play勉強会 第3回
Play勉強会 第3回
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
 
Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係Linux daemonとsupervisordの美味しい関係
Linux daemonとsupervisordの美味しい関係
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索GroongaでRedmineを高速全文検索
GroongaでRedmineを高速全文検索
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
 
Smalltalkお題「実行中の全オブジェクトを得るには?」
Smalltalkお題「実行中の全オブジェクトを得るには?」Smalltalkお題「実行中の全オブジェクトを得るには?」
Smalltalkお題「実行中の全オブジェクトを得るには?」
 

Plus de kimukou_26 Kimukou (8)

レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
レガシー環境で個人ベースでなんとか頑張るDVCS(Git)運用
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
Griffon10 in groovy_fx
Griffon10 in groovy_fxGriffon10 in groovy_fx
Griffon10 in groovy_fx
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてLayout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
 
Hudson using Groovy #jggug
Hudson using Groovy  #jggugHudson using Groovy  #jggug
Hudson using Groovy #jggug
 

JRebel for Android 1.0 を試食してみた