Annotation processing allows for metadata to be added to Java programs without altering the program itself. Annotations can be defined and used to provide information for compilers or allow runtime/compile-time processing. Annotation processors provide a hook into the Java compilation process to generate source code and compile errors/warnings. They work by processing annotated elements in rounds.
KotlinでJSR 269のライブラリを使う場合以下の様にkaptを使って設定するわけですが不安定な動きをする場合があります。 kapt { generateStubs = true } dependencies { compile 'com.github.sys1yagi.fragment-creator:library:0.6.0' kapt 'com.github.sys1yagi.fragment-creator:processor:0.6.0' } 次のようなエラーが出たり、ファイルが生成されたりされなかったり。 :app:compileDebugKotlin UP-TO-DATE :app:compileDebugJavaWithJavac FAILED FAILURE: Build failed with an exception. * What went wrong: E
aptしてますか。 正確にはPluggable Annotation Processing API(JSR 269)なので以降はJSR 269と書きます。 Dagger2やRealmなどJSR 269でコード生成を行っているライブラリ群の理解を深め、あわよくばcontributionするためJSR 269を勉強しつつチョットしたライブラリを作りることにしました。 完成したものが以下。 sys1yagi/fragment-creator - Java - GitHub FragmentのnewInstanceメソッドとArgumentsの取扱いにまつわる部分を生成するライブラリです。 使い方 使い方はREADME.mdを見てもらえばわかるとは思いますが一応簡単に書いておきます。 以下のようにFragmentにアノテーションを付与するとMainFragmentCreatorというクラスが生成さ
最初に 本来は@takahiromさんが書く日だったのですが。もう埋まっちゃったよ!と僻んでいたら枠もらえました。本当にありがとうございました! @takahiromさんとはある勉強会でお会いしたのを機にPreLollipopTransitionなどで絡み出した縁で仲良くさせて頂いています。@takahiromさんの記事を期待していた方はこちらへおまわりください。 そもそも誰? 本題に入る前に、そもそもお前誰だ?なんでAPTを語る?って人が多いと思うので、自己紹介させて下さい。 Annotation Processing Tool(またはAPT)でのコード自動生成が好き過ぎて自作のステートパターン用APTライブラリを公開しただけでは飽きたらず、AndroidライブラリでAnnotationといえば、AndroidAnnotations(AA)でしょってことで、PRを投げ始めました。ついさっ
AndroidでSQLiteDatabaseを使うとき、いろいろと面倒臭いことがあります。 特に標準でO/Rマッパー無いので自分でマッピングしなければなりません。 巷にいろいろなライブラリがありますが、どれも重量級で、 ちょっと機能を使いたいだけでもいろいろやらないと行けないです。 SELECT、INSERT、UPDATE、DELETEのそれぞれの小さいコードを APT(Annotation Processing Tool)で自動生成するツール、CatHandsGendroidを作りました。 公式URL Wiki [サンプルアプリ] https://github.com/cattaka/FastCheckList どう簡単したいか 例えば、次のようなデータクラスがあるとします。 public class UserModel { public enum Role { PROGRAMMER,
kvs-schemaというSharedPreferenceをいい感じにクラス化出来るライブラリがあるんですが、このライブラリはJSR 269(Pluggable Annotation Processing API)を使ってコンパイル時にコード生成をしています。dagger2も同様にJSR269によってコード生成をしています。なんとなく「変な衝突の仕方しないかな?」と思ったので試してみました。案の定問題がありました。本エントリではJSR 269を使ったライブラリの衝突の問題とその回避方法について解説します。 kvs-schemaの使い方については以下のライブラリ作者が書いた解説記事を参照してください。 qiita.com KVS Schemaを定義する まずKVS Schemaを定義します。例として初回起動時にガイドを出すフラグをひとつだけもつSchemaを作ります。 @Table("gui
【第19回】potatotips(iOS/Android開発Tips共有会) 発表資料 http://connpass.com/event/16295/
はじめに Android界隈で最近aptを使ったライブラリが増えてきていると感じています。しかしapt自身、特にAndroidでの書き方を解説している日本語の記事は多くありません。ライブラリを書かないとしても、どのように動くかを知っておくことでエラーに対応しやすくなったり、プルリクを送りやすくなったり良いことがあると思うので、私の経験を踏まえてaptのライブラリを作るときの知見を共有したいと思います。 apt(Annotation Processing Tool)とは Jake WhartonのDroidconのスライド(Annotation Processing Boilerplate Destruction)を見てくれという感じなのですが、枚数が多いので簡単と説明すると、Javaはコンパイル時に処理を割り込む仕組みがあり、そのときに渡されるソースコードのメタデータの塊を操作してコードを
Androidアプリを開発していると、単純な処理を実装するだけでもコードが長くなってしまいます。煩わしいと感じる人も多いでしょう。今回紹介するAndroidAnnotationsは、劇的にコードの記述量を抑えることができる夢のようなライブラリです。 アノテーションを利用 Javaでは、「@Overide」など「@」から始まるアノテーションをソースコードに記述して、警告メッセージを抑制したり、実行時にソースコードを自動生成したりできます。アノテーションの使い方には、大きく2種類あります。実行時にアノテーションを読み取るタイプ、もう一つがコンパイル時に読み取るタイプです。前者が一般的で、後者はほとんど知られていないと思います。AndroidAnnotationsは後者になります。このアノテーションを処理するには、アノテーションプロセッサと呼ばれる専用のクラスを使います。 AndroidAnno
概要 Androidプロジェクトの構成管理にMavenを使い、ADT/EclipseでAnnotation Processingを使って開発するための環境構築手順です。 本エントリではAnnotation ProcessingのライブラリであるAndroidAnnotationsを用います。 以下を前提とします。 Android, Maven and Eclipse - Quick Startなどに従いm2eを導入済みとする Annotation Processingについて細かいことは聞かない AndroidAnnotationsについて細かいことは聞かない エラーが出たら 各手順の反映で以下のようなエラーが出た場合は、プロジェクトのMavenの設定をリロードします。 Project configuration is not up-to-date with pom.xml. Run Ma
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く