IDEA13EAPとeclipseのコンパチでandroid開発してみる
これ見るたびにGoogleさん、Android Studioで何やってるんだろ?って思うわ(ビルドまわりだけ? http://t.co/ZO1s2VUE6X
— いまいまさのぶ (@masanobuimai) 2013年9月19日
とAS連載を執筆している方の言があったので、IDEA13EAPのほうが安定してるのかな?
と思いIDEA13EAPでAndroidを弄ってみる
ASのIDE完成度は確かに微妙な線があるからな。。。
ADTのリリースとかでもそうだけど
新機能以外はfew bug fixじゃわからん><
でもちょっと未だgradle運用だけで行くのは怖いので
- eclipseでプロジェクト作成
- export gradle
- 単体プロジェクトのみexport
- IDEA13EAPとしてimport
2)に関しては ADT 22.2.1 にしたら
gradle pluginの
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } }
の部分出力されてた。単に1プロジェクトの時は出力テンプレ形式が違うのかな?
*1
まあなんでこんなコンパチ環境作ろうとしたかって言うと
eclipse 4.4&ADT で遣るとき、エディタ上のカーソルが見えないから。。。
何処編集してるかわからんからストレスマッハ。。
@btnrouge 先生質問です。eclipse 4.4で現在の位置のカーソル位置 が表示されなくなってしまってストレスなのですけど
— close_yutori (@kimukou2628) 2013年9月21日
これ表示する設定って何処らへんに有るのでしょう?
@kimukou2628 Luna M1ではステータスバー右端の通知領域が大きすぎるようです。 大きな画面、例えば1920x1280フルスクリーンで表示するときちんとカーソル位置の部分が現れます。 通知領域のサイズは現状変更できないので、修正されるのを待つしかありません。
@btnrouge 成る程。ありがとうございます。ソースエディタ内部のカーソル位置も目視できなくなってるのですが(x座標的位置)、これの方は分かりますでしょうか?<eclipse3.7では表示されていました
— close_yutori (@kimukou2628) 2013年9月21日
@kimukou2628 Indigo、Kepler、Lunaのいずれもエディタの作りは同じで、 エディタ内部でカーソル位置を表すものは、現在行のハイライトとカーソルそのものです。 それ以外の情報がエディタ内部にあるとすれば、プラグインによる拡張機能と思われます。
eclipse3.7 では表示されるので、eclipse4.4用のADTのpluginの作りが良くないみたい。
*2
AS作るの楽しいのはわかるけど、正直ADTもちゃんと作って欲しいなと切に願う。
備考)
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月23日
export gradle file しなくても、昔の Android Project 形式(eclipse importで)で読み込めるのか。
なんかIDEAの編集だけの話を享受したいならこっちのほうが良さげな気がしてきた
Android Studio、まだまだ謎い部分あるなぁ。IntelliJのAndroidプロジェクト普通に読み込めたわ(ビルドもしやがったw
— いまいまさのぶ (@masanobuimai) 2013年9月23日
これは知ってた。IDEAファイルがある前提だとProject Structureで修正可能なんですけど、ないとAS Idea Pluginのよく分かんない事前ルールチェックで怒られてIDEA設定ファイルが作れないだけで(苦笑。
だからはやくIDEAのプロジェクト設定ファイルもgradleタスクで作れないかなーとか思ってる*3
eclipse 4.4サイド)
ADT22.2.1
— close_yutori (@kimukou2628) 2013年9月21日
eclipse2個立ち上げると、よく固まるようになった。。。
まえは「其のポート使ってます」OK押すと続行可能だったんだけどな。。
adbこけるとレウアウトプレビューとかもオカシクなるんだけど
adbって転送とかにしか使わないもんとちゃうの?
以前は直ぐOKおすと続行可能だったんだけどな。。*4
まあeclipseが固まるのは、ノーセンキューなのでちょっと調整できるか試してみる。
なダイアログがでて、コレをググるとDDMSの設定を変更しろってのが出てくるんだけど
- port 8600=>9600
- ADBHOSTにチェック
な設定に変えても、
- adbがアクティブか確認するためのポートは 8700ポート固定*5
って事で変更は無理らしい。設定が中途半端感満載。
これIDEA側には設定自体無いので贅沢なのかもしれないのですけど。。。
確かに
の記載通り 画面の項目と下記は一致するみたいなのでADTのソース側確認するしか無いかもな。。な感じ
workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.android.ide.eclipse.ddms.prefs
grep -r 8700 ./
すると emuratorの元image の方で引っかかるのと、
genymotionの方でもimageが引っかかるので、8700ポートの変更は変更不可っぽいな。。
まあ2個立ち上げるお前が悪いって感じなんだけど。
ちなみにIDEA(AS)2個たちあげても同じエラーは出ます。
ただIDEAってエディタライクに複数たちあげてもOKな方針でなかったっけ?
新しい 9patch plugin(eclipse)って
— close_yutori (@kimukou2628) 2013年9月21日
9patchになってない画像を XXXX.9.png とかやるとバグるのな。
pngを開こうとするとき9patch編集モードで開く=>XXX.9.pngで保存しようとする=>OK押してしまうとリソースがダブルと怒られる
でぶつかってるリソース削除するまでエラーでまくる。
— close_yutori (@kimukou2628) 2013年9月21日
でもぶつかってるリソースを1個削除する度に再度ビルドが走る=>エラーでまくる=>しばらく操作できない
イライラッて感じで Finderから消してからF5でリフレッシュしたほうが速いって正直微妙ですね。。
新しい9patchツールに関しては
で解説されていますが、IDEAに載ってる奴より9patchに関してはこっちの方が使いやすい
*6
IconSetの機能ってASにはまだないのか・・: eclipse - Creating a new Icon Set in Android Studio? - Stack Overflow - http://t.co/muitkbvqad
— close_yutori (@kimukou2628) 2013年9月21日
この機能と新しい9patchツール の使い勝手のために
eclipseとIDEA行ったり来たり<苦笑。
IconSetの機能は、大きめの画像指定しても
最適サイズの
- アイコン
- GooglePlayにのせる512*512画像
自動的に作ってくれるので便利
プログラムやってて何時も困るのが
デザインの編集だったりスルんだよな。。実は。。。
パンくずリスト表示のOFF)
これeclipse4.2辺りから標準になってて凄くやりづらい
workspace単位で設定値持ってるみたいなので
のチェックを外すの忘れずに(何時も探してしまうので・・)
あとはimport文を隠す機能のOFF)
androidはimport文エラーを上手く直してくれない時がある*7
=>この機能がONになってると直せない><
で必ずOFFにしておく
英語表記だと
Java -> Editor -> [ ] Only show the selected Java element
参考)
IDEA13EAPサイド)
importに関しては,
eclipseプロジェクトとしてimportが可能なのですごく楽だった。。
ASだと
- gradleプロジェクトとしてimportしないと駄目
- gradleが上手く動かないとプロジェクトが不完全にできる
- 再度試みるとゴミファイルが悪さするので.idea等のファイルを一度消してからやり直す必要がある
でストレス多だった。。。
IDEA13EAPベースだと
gradle-warper添付形式でimportされる形のよう。
こっちのほうが確かに一貫性があって楽だよね。。*8
android
— close_yutori (@kimukou2628) 2013年9月21日
透明レイアウトのstyleを指定して minsdk4とかにするとレイアウトプレビュー失敗するのな。。(汗
IDEA/eclipse どちら共。genymotion転送確認前提の開発になるのか。。。(汗
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月21日
開き直したら プレビューするようにはなったけど
AutomaticPickerの設定が target7からのようで、target4指定するなと怒られる。
まあ仕方ないけど・・
- これに関しては eclipse ADTではプレビューすら出来んかったから凄いと思う
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月21日
9patchEditor って XXX.9.png のもののみ対象になるのか(renameした時点で編集タブが出るようになる)。
rename後に1回開き直さないといけないのはまあ仕方ないかも
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月22日
New => Android resource directory
何気に便利。drawableフォルダとか新規作るとき入力ちょっとたるかった認識があるから
環境的に追加したもの)
- genymotionのpluginの追加
詳細は genymotion 1.2.1メモ - exception think あたりに
メモってるんで詳しく書かないです
使い勝手的には eclipse/IDEA版かわらない
たちあげっぱなしで使えばいいだけ
開発レイヤーの話)
☆) 透明Activityの話
なんか最近調べ物すると @kojiokbさんか @sakura_bird1 さんのブログに
行き着くわけだが。。。大変有難いことです・・・
でもちょっと修正加えなければいけない点は
新規プロジェクトを作成した場合
の AppBaseTheme に記述しろ=>自動適応されるよ ってのが最新のスタイルみたい。
☆)layer-list の話
みてて、へー色んなタグ指定できるんだな−と思い
みながら試行錯誤してた感じ
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月22日
9patch画像は
直接 android:backgroundで指定するか
layer-list経由だと nine-patch タグで指定しないとプレビューが出来ないのか。
あとbitmapタグで指定するとプレビューでは見えない&実機転送時に普通画像扱い
IDEA13EAP
— close_yutori (@kimukou2628) 2013年9月22日
drawable の中に記載した shape.xml とかプレビューできたら凄く最高(作業効率凄く上がる)のになのになーと思ったけど難しいのかな。やっぱ。
現状だとlayuot/Designタブ まで行かないと見れない感じだし。
☆) PreferenceActivityの話
表示スタイル>
まず上記の透明Activityの
android:themeを設定した状態で動かそうとすると落ちる
エラーも「Activityの起動に失敗しました」
しかでないからワケわかんねー と思ってたら
の話を設定してみて
- ListActivityに9patch画像を設定すると落ちる
ということが発覚したと。。。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <solid android:color="#41828d" /> </shape> </item> <item> <bitmap android:gravity="center" android:src="@drawable/angry_hoge" > </bitmap> <!-- <nine-patch android:src="@drawable/angry_hoge" > </nine-patch> --> </item> </layer-list>
android
— close_yutori (@kimukou2628) 2013年10月1日
Error retrieving parent for item: No resource found that matches the given name '@android:style/Widget.TextView.ListSeparator'
って何?
http://t.co/RVuq7GAvco みるとr12以降で @android:styleの一部が禁止になったらしいんだけどいじれないと PreferenceCategoryに 色とか設定できないじゃん
— close_yutori (@kimukou2628) 2013年10月1日
の [Android SDK r12以降で発生?]の話が必要なんだけど
これ毎回style.xmlを弄る度にLintエラーがでてるっぽい。。
@hide 属性になってるみたいだからな。。。(汗
http://t.co/gBSlZHQHmr
— close_yutori (@kimukou2628) 2013年10月1日
みるとやはりココ弄るしか無いみたいなんだよな(android:layout_width/android:layout_height が足りなくて 指定しろなAndroidRuntimeErrorも出るけど)
style.xml弄る度に Lintエラー => clean で消える の繰り返しはウザいな。。
— close_yutori (@kimukou2628) 2013年10月1日
現在は PreferenceActivity 自体がdeplicateなのかもしれないけど。。
でもコレで表示してみると、android:widgetLayout の指定で
画像に差替てみると右寄せにならんな。。。って事で
- 続・Android開発のちょっとしたお話 - mixi engineer blog の
- FrameLayoutで囲む
- 具体的なサイズ指定*9
が必要な感じ
でも上記のブログだとCheckBoxPreferenceに具体的な言及はないので
- Y.A.M の 雑記帳: PreferenceActivity の CheckBox マークを変える
- android - PreferencesActivity - customize style of checbkoxes, radio buttons etc - Stack Overflow
でも元サイズがデカイ件で今はまり中orz
基本的な使い方>
ただし項目値の場合は
ListPreference list_preference = (ListPreference)getPreferenceScreen().findPreference(URL_KEY); list_preference.setSummary(list_preference.getEntry());
失敗した話>
PreferenceActivity がdeprecationらしく
ちゃんと最新の仕様に対応したものらしいんですけど
demoを起動できず。。。うーん。難しい。。。
@sys1yagi さんが呟かれてた UnifiedPreference https://t.co/CiY0IQkNbl demo動かせないな。(汗
— close_yutori (@kimukou2628) 2013年9月23日
xml/pref_headers.xml がatrs.xml を読み込めないみたい・・sys1yagi さんは動かせたのかな?
UnifiedPreference
— close_yutori (@kimukou2628) 2013年9月23日
IDEA13EAPで開くと title/icon に属性がないので PreferenceHeader は不正です =>R.java が正常に生成されない
という形のよう。
UnifiedPreference
— close_yutori (@kimukou2628) 2013年9月23日
<attr name="title" format="string"/>
<attr name="icon" format="reference"/>
の形にすれば通るけど・・。うーん。
UnifiedPreference
— close_yutori (@kimukou2628) 2013年9月23日
xmlns:unified="http://t.co/Ns0YSIM8qs" の指定ってライブラリプロジェクトまたげたっけ?
ADTでは無理だったようなきがするんだけど( values/atrs.xml のコピーとかが必要では?
UnifiedPreference
— close_yutori (@kimukou2628) 2013年9月23日
へたにlibraryProjectで通すより
mavenCentralの http://t.co/zmpYKsgnNk 使ったほうがいい?
AS前提なら apklibが公開されてるからいけるのだろか?
UnifiedPreference http://t.co/AlfZY3vN8d で net.saik0.android.unifiedpreference を検索すると
— close_yutori (@kimukou2628) 2013年9月23日
demoの方しか引っかからないのは何故だろう? うーん。よく分かんない(汗
UnifiedPreference
— close_yutori (@kimukou2628) 2013年9月23日
プロジェクトでエラーは出なくなったけど、結局動かせなかった。。(汗
今後の課題にしておこう
TL上のメモ)
見てる。 IntelliJ IDEA 13 132.637 Release Notes - IntelliJ IDEA - Confluence http://t.co/8JI4f43BQ1
— Koji Okabe (@kojiokb) 2013年10月15日
これ良さそうだなぁ。 IDEA-89857 (Feature) : Automatically add android:layout_width and android:layout_height. Close with correct tag.
— Koji Okabe (@kojiokb) 2013年10月15日
IntelliJ IDEA 13 EAP入れてみた。 pic.twitter.com/dLF2z7HGN7
— Koji Okabe (@kojiokb) 2013年10月15日
ほんとだ。補完でlayout_width/layout_heightまで自動で入力される。 pic.twitter.com/js9vsFZ8nT
— Koji Okabe (@kojiokb) 2013年10月15日

Android SQLite Connectionあった。 pic.twitter.com/kkLw5513JQ
— Koji Okabe (@kojiokb) 2013年10月15日

IntelliJ IDEAからアプリのデータベース見れた。試したのは実機(Xperia Z)。 pic.twitter.com/zbafSpIVbH
— Koji Okabe (@kojiokb) 2013年10月15日

*1:でも以前コード見たときはjava sourceから直接生成だった記憶が。。。
*2:何処に設定有るんだろうと凄く探したけど。せめてカーソル色換えられればわかりやすいかも。eclipseのエディタ部分の色を変えるpluginとか試してみる?
*3:その時よく分かんないチェックも輸入されると困るけど。其の時は自分でタスク作るしか無い?
*4:どうもこれは状況確認したらbackground実行指定してるけどADTでエラーがでた時UIロックしてしまう挙動みたい。ライブラリプロジェクト閉じただけでもUIロックされてしまうことが多。なんだこの挙動??
*5:StackOverFlowの情報によると
*6:線をなぞる感じがGood!。ただ大きすぎる画像を編集しようとするとeclipseごとオチルけど。。
*8:ASのは内部同梱のやつ使ったり使わなかったり、其の度にユーザが振り回される