Skip to content

Instantly share code, notes, and snippets.

@niwatako
Created June 21, 2018 11:26
Show Gist options
  • Save niwatako/f526e5e0dc93cbef56cb48519772081c to your computer and use it in GitHub Desktop.
Save niwatako/f526e5e0dc93cbef56cb48519772081c to your computer and use it in GitHub Desktop.
XML Object Mapping #CodePiece #potatotips
potatotips #52 (iOS/Android開発Tips共有会) - connpass
https://potatotips.connpass.com/event/88164/
## hmori 森 XML Object Mapping Android
## Codable
Swift4で生まれました。JSONとコードが変換できる。
Javaではこういうの得意、Gson, Jackson, Moshiとかね。
こういうやつの基本ロジックは空のインスタンスを作ってあとから値を入れる。
Kotlinは非Nullであとから値が書き換えられないというのがある
無理に作るなら、ミュータブルにしてしまう。糞コラボ。
そういうときはMoshiを使いましょう;
自分で作るには
### Reflection
型パラメータを受け取って型に変換して返す。
型パラメータを受け取ったらオブジェクトグラフを作って、最後、まったんからインスタンスを作っていく。
### APT
javacつくるときに新しいクラスを追加するチャンスが有る。
型引数を渡すと対応するアダプタを返すようにする。データクラスにアノテーションを付けるとアダプタを生成するようになる。
名前を下にアダプタを探してきてインスタンス作って返すというようにする。ユーザーはアダプタを受け取ってそれを使う。
拡張性高めだが、作るのがめんどくさい。名前を使うので難読化したら面倒。
### Transform API
記事書いたから詳しくは読んでください
難読回sても影響ない
バイトコードだから超めんどくさい
### まとめ
作りましょう、作ったけど仕事で作ったので公開できないです。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment