Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yukiya Nakagawa
PPTX, PDF
16,433 views
Androidで使えるJSON-Javaライブラリ
JSON日の金曜日#1での発表です http://atnd.org/events/29927
Technology
◦
Read more
23
Save
Share
Embed
Embed presentation
Download
Downloaded 44 times
1
/ 49
2
/ 49
3
/ 49
4
/ 49
5
/ 49
6
/ 49
7
/ 49
8
/ 49
9
/ 49
10
/ 49
11
/ 49
12
/ 49
13
/ 49
14
/ 49
15
/ 49
16
/ 49
17
/ 49
18
/ 49
19
/ 49
20
/ 49
21
/ 49
22
/ 49
23
/ 49
24
/ 49
25
/ 49
26
/ 49
27
/ 49
28
/ 49
29
/ 49
30
/ 49
31
/ 49
32
/ 49
33
/ 49
34
/ 49
35
/ 49
36
/ 49
37
/ 49
38
/ 49
39
/ 49
40
/ 49
41
/ 49
42
/ 49
43
/ 49
44
/ 49
45
/ 49
46
/ 49
47
/ 49
48
/ 49
49
/ 49
More Related Content
PDF
イマドキの現場で使えるJavaライブラリ事情
by
takezoe
PDF
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
PDF
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
by
y_taka_23
PDF
Elasticsearch入門 pyfes 201207
by
Jun Ohtani
PDF
Sbtのマルチプロジェクトはいいぞ
by
Yoshitaka Fujii
PDF
AWS SDK for Haskell開発
by
Nomura Yusuke
PDF
はじめよう Backbone.js
by
Hiroki Toyokawa
KEY
Kawaz的jQuery入門
by
Kohki Miki
イマドキの現場で使えるJavaライブラリ事情
by
takezoe
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
by
y_taka_23
Elasticsearch入門 pyfes 201207
by
Jun Ohtani
Sbtのマルチプロジェクトはいいぞ
by
Yoshitaka Fujii
AWS SDK for Haskell開発
by
Nomura Yusuke
はじめよう Backbone.js
by
Hiroki Toyokawa
Kawaz的jQuery入門
by
Kohki Miki
What's hot
PDF
Zabbix API
by
Shuhei Hayashibara
PDF
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
by
Mikiya Okuno
PDF
Webサーバのチューニング
by
Yu Komiya
PDF
⑲jQueryをおぼえよう!その5
by
Nishida Kansuke
PDF
めんどくさくない Scala #kwkni_scala
by
Kazuhiro Sera
KEY
activerecord-oracle_enhanced-adapterのご紹介
by
Kevin Toyoda
PPTX
20140518 JJUG MySQL Clsuter as NoSQL
by
Ryusuke Kajiyama
PDF
elasticsearchソースコードを読みはじめてみた
by
furandon_pig
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
PDF
1周遅れのScala入学 #nds41
by
Kazumune Katagiri
PPTX
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
PDF
Elasticsearch Authプラグインでアクセスコントロール
by
Shinsuke Sugaya
PPT
Using Windows Azure
by
Shinji Tanaka
PDF
Webサーバ勉強会03
by
oranie Narut
PDF
Elasticsearchプラグインの作り方
by
Shinsuke Sugaya
KEY
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
PDF
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
by
yoku0825
PDF
Elasticsearch at CrowdWorks
by
佑介 九岡
PDF
MySQL Casual Talks in Fukuoka vol.2
by
学 松崎
Zabbix API
by
Shuhei Hayashibara
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
by
Mikiya Okuno
Webサーバのチューニング
by
Yu Komiya
⑲jQueryをおぼえよう!その5
by
Nishida Kansuke
めんどくさくない Scala #kwkni_scala
by
Kazuhiro Sera
activerecord-oracle_enhanced-adapterのご紹介
by
Kevin Toyoda
20140518 JJUG MySQL Clsuter as NoSQL
by
Ryusuke Kajiyama
elasticsearchソースコードを読みはじめてみた
by
furandon_pig
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
1周遅れのScala入学 #nds41
by
Kazumune Katagiri
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
Elasticsearch Authプラグインでアクセスコントロール
by
Shinsuke Sugaya
Using Windows Azure
by
Shinji Tanaka
Webサーバ勉強会03
by
oranie Narut
Elasticsearchプラグインの作り方
by
Shinsuke Sugaya
My sql casual_in_fukuoka_vol1
by
Makoto Haruyama
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
by
yoku0825
Elasticsearch at CrowdWorks
by
佑介 九岡
MySQL Casual Talks in Fukuoka vol.2
by
学 松崎
Viewers also liked
PDF
Androidで部 第7回 APTすごい
by
Masahiro Wakame
PDF
僕の考えるAPT開発の常識 ぐだ生 2011/04/09版
by
Masahiro Wakame
PDF
僕の考えるAPT開発の常識
by
Masahiro Wakame
PDF
プログラミング言語Egison - 表現の新たな抽象化の発見
by
Rakuten Group, Inc.
PPTX
Android 開発を加速するオープンソースライブラリ
by
Kenichi Tatsuhama
PDF
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
by
Tomohiro Kumagai
PDF
(旧版) オープンソースライセンスの基礎と実務
by
Yutaka Kachi
PDF
Coding in the context era
by
lestrrat
Androidで部 第7回 APTすごい
by
Masahiro Wakame
僕の考えるAPT開発の常識 ぐだ生 2011/04/09版
by
Masahiro Wakame
僕の考えるAPT開発の常識
by
Masahiro Wakame
プログラミング言語Egison - 表現の新たな抽象化の発見
by
Rakuten Group, Inc.
Android 開発を加速するオープンソースライブラリ
by
Kenichi Tatsuhama
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
by
Tomohiro Kumagai
(旧版) オープンソースライセンスの基礎と実務
by
Yutaka Kachi
Coding in the context era
by
lestrrat
Similar to Androidで使えるJSON-Javaライブラリ
PDF
Android T2 on cloud
by
Masaaki Yonebayashi
PDF
探検!SwiftyJSON
by
Yuka Ezura
KEY
JSON Based Web Services
by
Toru Yamaguchi
PDF
Jggug20120901pojojson
by
Yasuharu Hayami
PDF
Javaにおけるデータシリアライズと圧縮
by
moai kids
PDF
ScalaでAndroidアプリ開発
by
papamitra
PDF
Androidの通信周りのコーディングについて
by
Shoichi Takagi
PDF
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
PDF
Groovyでjson
by
Yasuharu Hayami
PPTX
Deep dive into oss written in swift
by
Yuki Asai
PPTX
Deep dive into oss written in swift
by
Yuki Asai
PPT
JSlintの不思議(含RFC4627)
by
hoshikuzu-star_dust
PPT
2008.10.18 L4u Tech Talk
by
mitamex4u
PDF
Parse触ってみた
by
Naoya Harasawa
PPTX
Java EE8 Report
by
Norito Agetsuma
PDF
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
by
uedayou
PDF
システム高速化に使えるJSON関連ライブラリ
by
iRidge, Inc.
PPTX
つぶLT20121215
by
遼一 杉浦
PPTX
Designing data intensive applications-ch4
by
Motohiro Kanda
PDF
夏だからJava再入門
by
Katsumi Honda
Android T2 on cloud
by
Masaaki Yonebayashi
探検!SwiftyJSON
by
Yuka Ezura
JSON Based Web Services
by
Toru Yamaguchi
Jggug20120901pojojson
by
Yasuharu Hayami
Javaにおけるデータシリアライズと圧縮
by
moai kids
ScalaでAndroidアプリ開発
by
papamitra
Androidの通信周りのコーディングについて
by
Shoichi Takagi
Jpug study-jsonb-datatype-20141011
by
Toshi Harada
Groovyでjson
by
Yasuharu Hayami
Deep dive into oss written in swift
by
Yuki Asai
Deep dive into oss written in swift
by
Yuki Asai
JSlintの不思議(含RFC4627)
by
hoshikuzu-star_dust
2008.10.18 L4u Tech Talk
by
mitamex4u
Parse触ってみた
by
Naoya Harasawa
Java EE8 Report
by
Norito Agetsuma
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
by
uedayou
システム高速化に使えるJSON関連ライブラリ
by
iRidge, Inc.
つぶLT20121215
by
遼一 杉浦
Designing data intensive applications-ch4
by
Motohiro Kanda
夏だからJava再入門
by
Katsumi Honda
More from Yukiya Nakagawa
PDF
Atomic Designは「マルチ」で真価を発揮する
by
Yukiya Nakagawa
PDF
Androidの入門書を書いたときに気にしたこと #NDS57
by
Yukiya Nakagawa
PDF
React Nativeの光と闇
by
Yukiya Nakagawa
PDF
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ
by
Yukiya Nakagawa
PDF
React Native Androidはなぜ動くのか
by
Yukiya Nakagawa
PDF
CSS in JSの話 #friday13json
by
Yukiya Nakagawa
PDF
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
by
Yukiya Nakagawa
PDF
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
PDF
AndroidLint #DroidKaigi
by
Yukiya Nakagawa
PDF
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
by
Yukiya Nakagawa
PDF
僕らのデータ同期プラクティス
by
Yukiya Nakagawa
PDF
Android再入門 〜Eclipseのことは忘れろ〜
by
Yukiya Nakagawa
PDF
もう一度Kotlinの話をしよう #ndsmeetup4
by
Yukiya Nakagawa
PPTX
アグリノートを支える技術
by
Yukiya Nakagawa
PDF
NDS36 Kotlin Cute
by
Yukiya Nakagawa
PDF
NDS36 Java7&Java8
by
Yukiya Nakagawa
PPTX
Coworking Business Forum in NIIGATA 2013
by
Yukiya Nakagawa
PPTX
Niigata.rb#03
by
Yukiya Nakagawa
PPTX
PechaKucha Niigata #3 2013.7.27
by
Yukiya Nakagawa
PPTX
ぼくのかんがえたふつうのあんどろいどかいはつ
by
Yukiya Nakagawa
Atomic Designは「マルチ」で真価を発揮する
by
Yukiya Nakagawa
Androidの入門書を書いたときに気にしたこと #NDS57
by
Yukiya Nakagawa
React Nativeの光と闇
by
Yukiya Nakagawa
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ
by
Yukiya Nakagawa
React Native Androidはなぜ動くのか
by
Yukiya Nakagawa
CSS in JSの話 #friday13json
by
Yukiya Nakagawa
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み
by
Yukiya Nakagawa
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
AndroidLint #DroidKaigi
by
Yukiya Nakagawa
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
by
Yukiya Nakagawa
僕らのデータ同期プラクティス
by
Yukiya Nakagawa
Android再入門 〜Eclipseのことは忘れろ〜
by
Yukiya Nakagawa
もう一度Kotlinの話をしよう #ndsmeetup4
by
Yukiya Nakagawa
アグリノートを支える技術
by
Yukiya Nakagawa
NDS36 Kotlin Cute
by
Yukiya Nakagawa
NDS36 Java7&Java8
by
Yukiya Nakagawa
Coworking Business Forum in NIIGATA 2013
by
Yukiya Nakagawa
Niigata.rb#03
by
Yukiya Nakagawa
PechaKucha Niigata #3 2013.7.27
by
Yukiya Nakagawa
ぼくのかんがえたふつうのあんどろいどかいはつ
by
Yukiya Nakagawa
Androidで使えるJSON-Javaライブラリ
1.
Androidで使える JSON-Javaライブラリ JSON日の金曜日 1週目
2012/7/13(金)
2.
aboutme.json {
"name":"Yukiya Nakagawa", "nick_name":"なかざん", "screen_name":"Nkzn", "org":[ { "name":"ウォーターセル株式会社", "activity":"農業支援システム「アグリノート」" }, { "name":"日本Androidの会 新潟支部", "activity":"さいきんなにもやってない(´・ω・`)" } ] }
3.
スマホと鯖とJavaScriptの美味しい関係 なぜJSON×Androidなのか?
4.
鯖と端末の関係
5.
鯖と端末の関係 鯖だと思いねえ
データのやり取り
6.
「データ」 • HTTP通信でやり取りできるものの例 –
XML • Java系フレームワークの伝統と信頼 • Android向けの標準ライブラリでも豊富にサポート • Content-Type: application/xml – 平文 • 構造化とかどうでもいいとき • Content-Type: text/plain – JSON • マルチプラットフォーム展開の強い味方 • Content-Type: application/json
7.
マルチプラットフォーム展開
鯖だと思いねえ Webアプリ スマートフォン タブレット
8.
Webアプリといえば JavaScript
9.
マルチプラットフォーム展開
鯖だと思いねえ XML JSON クライアントでの 受け取りが楽! Webアプリ スマートフォン タブレット
10.
マルチプラットフォーム展開
鯖だと思いねえ XML JSON 2種類用意するの、 無駄じゃね? Webアプリ スマートフォン タブレット
11.
マルチプラットフォーム展開
鯖だと思いねえ JSON ゚i ・。i*i゜・。oi ・。i 。*。|o___・|゚o| JSON XML ・+o。゚/_ノヽ_\゚*・ JSON ゚i・。/(≡) (≡)\゚+ 。|゚//// (_人_) //∧゚ *| |┬| | ・i。\_ `ーU _/。 ゚*/ \| ノ \・o ゚i||  ̄ ̄ ⌒ヽ o|| / | ・i ソヽ_人 /人 | ゚。/ /  ̄ ̄ / | | Webアプリ / / || |\∧MMM∧/| <J S O N 状 態!> |/VWWWV\| スマートフォン タブレット
12.
Parse & Serialize JSON-Javaライブラリの役割
13.
JSON-Javaライブラリの役割 • 最低限:JSONデータが読めること • JSON文字列とJavaオブジェクト(POJO)
の相互変換 – Java → JSON:シリアライズ – JSON → Java:パース(デシリアライズ)
14.
POJOとの相互変換 AboutMe.java
aboutme.json { public class AboutMe { "name":"Yukiya Nakagawa”, String name; "nick_name":"なかざん", String nickName; "screen_name":"Nkzn", String screenName; パース "orgs":[ List<Org> orgs; { // getter-setter "name":"ウォーターセル株式会社", "activity":"農業支援システム「アグリノート」” class Org { }, String name; シリアライズ { String activity; "name":"日本Androidの会 新潟支部", // getter-setter "activity":"さいきんなにもやってない(´・ω・`)” } } } ] }
15.
POJO • Plain Old
Java Object – 「昔ながらの素朴なJavaオブジェクト」 – POJO自体には命名規則はない – POJOの一種であるJavaBeansの規約/命名規 則が流用される • publicな引数なしコンストラクタ • いくつかのインスタンス変数 • 上記に対応するgetter/setter – JavaBeansよりはゆるふわ
16.
できるだけ頑張らない方向の Androidで使えるJSONライブラリ
17.
Androidで使えるJSONライブラリ • 選定基準 –
依存ライブラリがほぼないこと • 外部jarが増えるとMaven使いたくなる • MavenとAndroidは相性悪め – 使い方が分かりやすいこと • 独断と偏見 – Androidに存在しないJavaAPIを使っていない こと • JavaVMじゃなくてDalvikVMだからね! • 基本的に気にしなくても問題ない
18.
Androidで使えるJSONライブラリ • org.json
– Android SDK標準搭載のJSONパーサー • JSONIC (ver 1.2.11) – http://jsonic.sourceforge.jp/ – JSP連携とか強いらしい • google-gson (ver 2.2.2) – http://code.google.com/p/google-gson/ – グーメン • JsonPullParser (ver 1.4.11) – https://github.com/vvakame/JsonPullParser – APTを利用する移植作 – 軽量
19.
AndroidSDKにも付いてる org.json
20.
パース
21.
パース
22.
パース
23.
シリアライズ
24.
感想 1.
めんどい 2. めんどい 3. POJO関係ねえ 4. めんどい
25.
いたれりつくせり JSONIC
26.
JSONIC • 特徴 –
POJO⇔JSON変換 – 対応している型の数がなんかすごい – JavaScriptに親和的な出力 • JSP内でJS用にJSONを出力する場合とか • エスケープかけてくれたり – XML→JSON変換 • (org.w3c.dom.Document/Elementを経由)
27.
パース
28.
シリアライズ
29.
感想 1. jar1個にパス通したら使えた便利 2. 基本的に1行でなんとかなる便 3.
JSONObjectとは一体なんだったのか
30.
信仰が貴方の力となる ―― グーメン google-gson
31.
google-gson • 特徴 –
POJO⇔JSON変換 – 字句解析機能も備えているため org.json.JSONObjectのような真似も可能 – 速さにムラがあるらしい(後述)
32.
パース
33.
シリアライズ
34.
感想 1. JSONIC触った後だと「シリアライズ時
の型くらい自分で分かれよ」と思わなく もない 2. jar1個にパス通すだけでいいのはやはり 楽
35.
すごいぞぼくらのJPP! JsonPullParser
作者@vvakame(ジェイソン仕様)
36.
特徴 • APT(Annotation Processing
Tool)を利用して いる – アノテーションに応じてクラスの自動生成とか出 来る – 詳しくはこのへん • http://www.slideshare.net/vvakame/apt-7568357 • 各POJOに応じたJSONパーサーを自動生成 • 軽量 – JSONIC 208KB – gson: 184KB – JPP: 45KB
37.
パース
38.
シリアライズ
39.
感想 1. いつもアグリノート内でお世話になってい
ます 2. 正直アノテーション付けるの面倒臭いとき ある – でもお陰で型安全になってる部分ある 3. 割と作るのが簡単なTokenConverterを実装 すればJavaの型に1対1対応できない値が 来ても大丈夫! – 文字列値が来るか配列が来るか分からないキー のための「String2ListConverter」作りました。
40.
ぶっちゃけた話 総括
41.
ぶっちゃけorg.jsonのやつ以外は
好みじゃね?
42.
使い分け • 1 Entry
per Day: Androidアプリで使える JSONライブラリ比較 – http://mstssk.blogspot.jp/2011/12/androidjson. html – ぶっちゃけ今回の発表はここの記事参考にし ただけです。 – 色んなパフォーマンス計測結果が出てます。 – 次ページで特徴に合わせた使い分けをば。
43.
それぞれの特徴 • JSONIC
– ゆるふわな使い勝手と引換にファイルも動作 も重い • google-gson – パースは超速いけどシリアライズは遅い • JsonPullParser – 専用クラスを生成した恩恵で安定のスピード
44.
それぞれの特徴からみた使い道 • JSONIC
– とにかくすぐ使いたい&そこまで速度は求め てないとき • google-gson – パースしかする予定がないとき • JsonPullParser – 本体を重くしたくない時
45.
Proguard Android特有の悩み
46.
セキュリティ問題 • Androidのリバースエンジニアリング手法
は既に確立している • そのままリリースするとJavaファイルま で丸見え • ソースコード難読化という足止めが必要 • 標準難読化ツール「Proguard」との相性 は重要となる
47.
Proguardとの相性 • JPP以外は基本的にアウト –
変数名とJSON内のキーの対応が重要 – 難読化すると変数名が変わってしまう • 逆にPOJOを難読化しなければ行ける – JPPはPOJO専用クラスを生成して、難読化 前に内部でキー名と変数の対応が出来上がっ ているため、難読化の影響を受けない 難読化に強いのはJPP!
48.
Stealth Marketing 結論
49.
みんなJPPつかおうぜ
って言えって言われました
Download