Android+slim3(appengine)連携の冴えたやり方?




Android+appengine
使()

23

目指すこと

サーバ側とクライアント側での通信内容を解釈するためのコーディングをほぼゼロで済ませたいし、テスト可能な作りにしたい。
手作業で通信内容をパースするような処理を書くと、エンバグする可能性がある。こわい><
そのために、フォーマットを規定するPOJO自体を共有化したい。

前提

通信は基本的にJSONで行う。
JsonPullParserをガンガン使う (次バージョン(0.3?)からDeserializeだけじゃなくSerializeも出来るようになる予定)

結論

クライアント←クライアント用モデルプロジェクト→サーバUnitTest こうする。

方針


(Encoder, Decoder)
  JsonPullParserJSON

困ること


1. Slim3
Slim3@ModelSOURCE@AttributeRUNTIMEAttributeProGuardclass()

2. EntityAndroid
JSONIPJSONEntityEntityEntity

(=JSON)
12Entity

解決方法


orz

UnitTest IF




(一)

(一)POJO

(二)JsonPullParser


(二)antjar (POJO+JsonPullParser)

(三)mvn scope test 

(一)UnitTest









(一)?hoge=fuga&hige=nobiru

(二)JSONPOST


2
12Slim3 1.0.6SimpleControllerInputStream使

 404 shin1  Not Found: #slim3 1.0.6 SimpleController使 #appengine

問題点

クライアント側とモデル編集をする人と、サーバ側の担当者が別だと、モデル編集されてコミットされるとサーバ側のテストが壊れてHudsonさんに超絶怒られる。
→めんどくなって手動でjarを更新したものがHudsonさんにも適用されるように設定を変える→即時チェックの恩恵が薄れる→喧嘩になる
こういう未来が見える('A`)ドウシヨウ

将来的には

モデルの共有化は辛いということがわかったので、O/RマッパーならぬO/Oマッパーが必要なのかなぁ…と思ったり。あるクラスとあるクラスで、名前が同じフィールドがあったら相互変換できればいいよね的な。

Twitterでもうちょっとおはなししました。

APTについて、追加で分かってきたこと

前回記事 [id:vvakame:20101223:1293086110]

ここから、こうした方がいんじゃね?って思ったことにちょっとだけ変化が発生したので、書いておきます。

どうでもいいこと


com.sunAPTJSR269javax.lang.modelAPT()
APT3

改善点

ソース出力処理自体

前回時点

212




今時点の認識

使
212
https://github.com/vvakame/JsonPullParser/blob/master/jsonpullparser-apt/src/main/java/net/vvakame/util/jsonpullparser/factory/GeneratingModel.java
https://github.com/vvakame/JsonPullParser/blob/master/jsonpullparser-apt/src/main/java/net/vvakame/util/jsonpullparser/factory/JsonElement.java
JsonPullParser/JsonModelGen.java.mvel at master · vvakame/JsonPullParser · GitHub

[twitter:@zaki50]"Velocity"使[twitter:@esmasui]MVEL

Javadoc便

import使SimpleName

弱点


POJO
jarclass

[id:vvakame:20110130:1296356939]