Your SlideShare is downloading. ×
0
\外国人旅行者向け/
明石高専 和田 佳大(@e10dokup)
ラーメン店検索アプリを作る
ときに便利なライブラリとかの話
勉強会 #1
自 己 紹 介
自 己 紹 介
明石高専 電気情報工学科 5 年
Code for KOSEN Branch:Akashi プログラマ
actif for Android を作ってました
 @e10dokup
自 己 紹 介
Facebook では
こんなカバー画像してます

ア ジ ェ ン ダ
・ライブラリの紹介
・API の紹介
\やっと本題です/
ライブラリ紹介
ライブラリ紹介
キモい
+
キモい
[ 要出典 ]
超
キ
モ
い
!
By「ブラックジャックによろしく」,佐藤秀峰,漫画 on web
ライブラリ紹介
TextView hogeView = (TextView) findViewById(R.id.text_hoge);
例)XML で指定した View を Java ソース上で扱う時
キャストしないとダメ
ライブラリ紹介
goodCountView = (TextView)view.findViewById(R.id.bazar_detail_good_count);
commentsCountView = (TextView)view.find...
ライブラリ紹介
そ・こ・で
ライブラリ紹介
ライブラリを使って
楽をしましょう!
for Android Studio
Eclipse については検索しましょう(下は一例)
Eclipse android ライブラリ
導 入 方 法
導 入 方 法
ライブラリの .jar ファイルを libs ディレクトリに入れる
<注意>
.jar ファイルを入れた後,build.gradle の dependencies の項目に
compile fileTree(dir: 'libs...
導 入 方 法
Gradle を使って導入する
build.gradle の dependencies の項目に
compile '<group>:<name>:<version>'
と記入して,プロジェクトを sync しましょう
導 入 方 法
.jar と合わせると…,
dependencies{
compile filetree(dir: 'libs', include: '*.jar')
compile '<group>:<name>:<version>'
}
導 入 方 法
Maven を使って導入する
pom.xml に
<dependency>
<groupId>group_id</groupId>
<artifactId>library_name</artifactId>
<version>l...
Butter Knife
URL:http://jakewharton.github.io/butterknife/
Butter Knife
Q. どんなライブラリ?
・Activity, View, Fragment の findViewById
・View の OnClickLisnener
を楽に書くためのライブラリ
Butter Knife
まず,View をアノテーション付きで宣言
@InjectView(R.id.view_hoge)
TextView hogeView;
@InjectView(R.id.view_fuga)
TextView fug...
Butter Knife
いつもは findViewById が並ぶところで…
ButterKnife.inject(Activity) //Activity
ButterKnife.inject(Fragment, View) //Fragm...
Butter Knife
View のクリックリスナ
hogeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) ...
Butter Knife
Butter Knife だと…
@OnClick(R.id.hoge_View)
void onClickButton() {
// ボタンが押されたときの処理
}
Butter Knife
他に使えるリスナ
・OnLongCLick
・OnCheckChanged(CompoundButton)
・OnEditorAction(EditText)
・OnFocusChanged(EditText)
・etc
Google Guava
URL:https://code.google.com/p/guava-libraries/
Guava
Q. どんなライブラリ?
Google 謹製の Java の便利ライブラリ.
普段やっていることを短く書く
ことが目的.
(旧名:Google Collection)
別に Android のためのライブラリってわけではない
Guava
//Guava 非使用時
List<HogeFugaPiyoObject> list
= new ArrayList<HogeFugaPiyoObject>();
//Guava 使用時
List<HogeFugaPiyoObjec...
Guava
とても強い Range 回り
Range.closed(”a”,”b”)
//a,b までの間に存在する文字群
Range.lessThan(4) //4 以下の範囲
Range.greaterThan(5) //5 以上の範囲 e...
Guava
データを区切り文字で連結する Joiner
String[] meets = new String[]
{”beef”,”pig”,”chicken”};
Joiner.on(”,”).skipNulls()
“beef,pig,c...
Guava
データを区切り文字で分割する
Splitter,CharMatcher
String tel =“0123 456 789”;
CharMatcher matcher
= CharMatcher.WHITESPACE;
Iterab...
Guava
他には…
・比較(ComparisonChain でメソッドチェイン)
・set の中の単語検索(HashMultiset)
・プリミティブ型に対するユーティリティメソッド
・etc
Volley
URL:https://android.googlesource.com/platform/frameworks/volley/
Volley
Q. どんなライブラリ?
Google 謹製のネットワークプログラミング用
ライブラリ.非同期通信での HTTP リクエスト
とかが簡単に実装できる
※Volley を導入する際,Git からプロジェクトをクローンして
サブモジュ...
Volley
リクエストまで
RequestQueue queue = Volley.newRequestQueue(Context);
queue.add(new JsonObjectRequest(Method.GET, url, null...
Volley
レスポンスを受け取るリスナ
Listener<JSONObject> listener = new Listener<JSONObject>(){
@Override
public void onResponse(JSONObje...
Volley
処理の失敗を受け取るリスナ
ErrorListener errorListener = new ErrorListener(){
@Override
public void onErrorResponse(VolleyError ...
Volley
画像も簡単にリクエスト出来ます
ImageLoader imageLoader = new ImageLoader(queue,
new BitmapCache()); // キャッシュを実装しましょう
ImageLoader.I...
Volley
Volley を使う利点
・比較的簡単に実装できる
・拡張が簡単(XML の処理とかも実装出来ます)
・簡単にリクエストのキャンセルができる
他にこんな
ライブラリも…
Others
・Android Bootstrap
(http://www.androidbootstrap.com/)
Android で Twitter Bootstrap みたいに開発
・Android-Validator
(https:...
Others
・IconicTextView
(https://github.com/atermenji/IconicDroid)
Font Awesome 等のアイコンフォントが
使える TextView
・Twitter4j
(http:/...
API 紹介
API 紹介
飲食店の情報を取得出来ます
・店名
・座標
・営業時間
・席の数 などなど
URL:http://webservice.recruit.co.jp/hotpepper/reference.html
ホットペッパー API
鉄道駅の情報を取得出来ます
・駅名
・沿線名
・座標
・都道府県 などなど
URL:http://www.ekidata.jp/api/api_station.php
API 紹介
駅データ API
地図上二点間のルートを算出します
・Google Maps API との併用でのみ使用可
・クエリ制限 2500 回 /day
・json か XML での出力が可能
URL:http://www.ekidata.jp/api/api_stat...
Ramen Shop
F i n d e r の場合(例えばの使い方)
現在地か駅データ API から座標を取得
↓
ホットペッパー API でラーメン店の情報を取得
↓
Directions API と Maps API でルート表示
API...
というわけで
ライブラリと API
を駆使して…
By「ブラックジャックによろしく」,佐藤秀峰,漫画 on web
少
し
で
も
快
適
な
ア
プ
リ
開
発
を
行
っ
て
く
れ
よ
!
以上です
ありがとうございました
外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1
外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1
Upcoming SlideShare
Loading in...5
×

外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1

1,642

Published on

2014/4/6に明石高専/松江オープンソースラボで開催された「Code for KOSEN勉強会#1」にて発表しました「外国人旅行者向けラーメン店検索アプリを作る話」の発表スライドです.

※諸事情に付き一部ページを削っております.


本スライドで利用しているスライドにある佐藤秀峰作「ブラックジャックによろしく」の改変画像については,すべて漫画 on Web(http://mangaonweb.com)より引用しております.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,642
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "外国人旅行者向けラーメン店検索アプリを作る話@Code for KOSEN勉強会#1"

  1. 1. \外国人旅行者向け/ 明石高専 和田 佳大(@e10dokup) ラーメン店検索アプリを作る ときに便利なライブラリとかの話 勉強会 #1
  2. 2. 自 己 紹 介
  3. 3. 自 己 紹 介 明石高専 電気情報工学科 5 年 Code for KOSEN Branch:Akashi プログラマ actif for Android を作ってました  @e10dokup
  4. 4. 自 己 紹 介 Facebook では こんなカバー画像してます 
  5. 5. ア ジ ェ ン ダ ・ライブラリの紹介 ・API の紹介
  6. 6. \やっと本題です/ ライブラリ紹介
  7. 7. ライブラリ紹介 キモい + キモい [ 要出典 ]
  8. 8. 超 キ モ い ! By「ブラックジャックによろしく」,佐藤秀峰,漫画 on web
  9. 9. ライブラリ紹介 TextView hogeView = (TextView) findViewById(R.id.text_hoge); 例)XML で指定した View を Java ソース上で扱う時 キャストしないとダメ
  10. 10. ライブラリ紹介 goodCountView = (TextView)view.findViewById(R.id.bazar_detail_good_count); commentsCountView = (TextView)view.findViewById(R.id.bazar_detail_comment_count); bodyView = (TextView)view.findViewById(R.id.bazar_detail_body); menuItemListView = (ListView)view.findViewById(R.id.bazar_detail_menu_list); commentButtonView = (ImageButton)view.findViewById(R.id.bazar_detail_comment); goodButtonView = (ImageButton)view.findViewById(R.id.bazar_detail_good); bazarImageView = (ImageView) view.findViewById(R.id.bazar_detail_image); bazarMapView = (ImageView) view.findViewById(R.id.bazar_map); ※つかう View の数だけ行います actif for Android より参照 こんな感じで面倒なことに…
  11. 11. ライブラリ紹介 そ・こ・で
  12. 12. ライブラリ紹介 ライブラリを使って 楽をしましょう!
  13. 13. for Android Studio Eclipse については検索しましょう(下は一例) Eclipse android ライブラリ 導 入 方 法
  14. 14. 導 入 方 法 ライブラリの .jar ファイルを libs ディレクトリに入れる <注意> .jar ファイルを入れた後,build.gradle の dependencies の項目に compile fileTree(dir: 'libs', include: '*.jar') と記入して,プロジェクトを sync しましょう
  15. 15. 導 入 方 法 Gradle を使って導入する build.gradle の dependencies の項目に compile '<group>:<name>:<version>' と記入して,プロジェクトを sync しましょう
  16. 16. 導 入 方 法 .jar と合わせると…, dependencies{ compile filetree(dir: 'libs', include: '*.jar') compile '<group>:<name>:<version>' }
  17. 17. 導 入 方 法 Maven を使って導入する pom.xml に <dependency> <groupId>group_id</groupId> <artifactId>library_name</artifactId> <version>library_version</version> <type>jar</type> <!-- or apklib --> </dependency> と記入して,プロジェクトを sync しましょう
  18. 18. Butter Knife URL:http://jakewharton.github.io/butterknife/
  19. 19. Butter Knife Q. どんなライブラリ? ・Activity, View, Fragment の findViewById ・View の OnClickLisnener を楽に書くためのライブラリ
  20. 20. Butter Knife まず,View をアノテーション付きで宣言 @InjectView(R.id.view_hoge) TextView hogeView; @InjectView(R.id.view_fuga) TextView fugaView;
  21. 21. Butter Knife いつもは findViewById が並ぶところで… ButterKnife.inject(Activity) //Activity ButterKnife.inject(Fragment, View) //Fragment ButterKnife.inject(Adapter, View) //ViewHolder これで OK! (ButterKnife.inject 内で findViewById をやってくれます)
  22. 22. Butter Knife View のクリックリスナ hogeView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // ボタンが押された時の処理 } });
  23. 23. Butter Knife Butter Knife だと… @OnClick(R.id.hoge_View) void onClickButton() { // ボタンが押されたときの処理 }
  24. 24. Butter Knife 他に使えるリスナ ・OnLongCLick ・OnCheckChanged(CompoundButton) ・OnEditorAction(EditText) ・OnFocusChanged(EditText) ・etc
  25. 25. Google Guava URL:https://code.google.com/p/guava-libraries/
  26. 26. Guava Q. どんなライブラリ? Google 謹製の Java の便利ライブラリ. 普段やっていることを短く書く ことが目的. (旧名:Google Collection) 別に Android のためのライブラリってわけではない
  27. 27. Guava //Guava 非使用時 List<HogeFugaPiyoObject> list = new ArrayList<HogeFugaPiyoObject>(); //Guava 使用時 List<HogeFugaPiyoObject> list = Lists.newArrayList(); List の宣言 冗長じゃなくなった!
  28. 28. Guava とても強い Range 回り Range.closed(”a”,”b”) //a,b までの間に存在する文字群 Range.lessThan(4) //4 以下の範囲 Range.greaterThan(5) //5 以上の範囲 etc... contains,containsAll メソッドで Range 内に 存在しているか判定
  29. 29. Guava データを区切り文字で連結する Joiner String[] meets = new String[] {”beef”,”pig”,”chicken”}; Joiner.on(”,”).skipNulls() “beef,pig,chicken”という String に
  30. 30. Guava データを区切り文字で分割する Splitter,CharMatcher String tel =“0123 456 789”; CharMatcher matcher = CharMatcher.WHITESPACE; Iterable<String> splits = Splitter.on(matcher).split(tel); 0123,456,789 という String のリストに
  31. 31. Guava 他には… ・比較(ComparisonChain でメソッドチェイン) ・set の中の単語検索(HashMultiset) ・プリミティブ型に対するユーティリティメソッド ・etc
  32. 32. Volley URL:https://android.googlesource.com/platform/frameworks/volley/
  33. 33. Volley Q. どんなライブラリ? Google 謹製のネットワークプログラミング用 ライブラリ.非同期通信での HTTP リクエスト とかが簡単に実装できる ※Volley を導入する際,Git からプロジェクトをクローンして サブモジュールとしてプロジェクトにインポートします.詳しくは 「android volley 導入」と言ったワードで検索しましょう
  34. 34. Volley リクエストまで RequestQueue queue = Volley.newRequestQueue(Context); queue.add(new JsonObjectRequest(Method.GET, url, null listener, errorListener)) queue.start() // リクエストの開始 レスポンスを 受け取るリスナ 処理の失敗を 受け取るリスナ
  35. 35. Volley レスポンスを受け取るリスナ Listener<JSONObject> listener = new Listener<JSONObject>(){ @Override public void onResponse(JSONObject response){ //JSONObject のパースとか } };
  36. 36. Volley 処理の失敗を受け取るリスナ ErrorListener errorListener = new ErrorListener(){ @Override public void onErrorResponse(VolleyError error){ // エラー処理やエラー表示 } };
  37. 37. Volley 画像も簡単にリクエスト出来ます ImageLoader imageLoader = new ImageLoader(queue, new BitmapCache()); // キャッシュを実装しましょう ImageLoader.ImageListener listener = ImageLoader.getImageListener (ImageView, android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete); imageLoader.get(url, listener);
  38. 38. Volley Volley を使う利点 ・比較的簡単に実装できる ・拡張が簡単(XML の処理とかも実装出来ます) ・簡単にリクエストのキャンセルができる
  39. 39. 他にこんな ライブラリも…
  40. 40. Others ・Android Bootstrap (http://www.androidbootstrap.com/) Android で Twitter Bootstrap みたいに開発 ・Android-Validator (https://github.com/throrin19/Android-Validator) EditText のバリデーションを簡単にする
  41. 41. Others ・IconicTextView (https://github.com/atermenji/IconicDroid) Font Awesome 等のアイコンフォントが 使える TextView ・Twitter4j (http://twitter4j.org/ja/) Twitter との連携をすることができる
  42. 42. API 紹介
  43. 43. API 紹介 飲食店の情報を取得出来ます ・店名 ・座標 ・営業時間 ・席の数 などなど URL:http://webservice.recruit.co.jp/hotpepper/reference.html ホットペッパー API
  44. 44. 鉄道駅の情報を取得出来ます ・駅名 ・沿線名 ・座標 ・都道府県 などなど URL:http://www.ekidata.jp/api/api_station.php API 紹介 駅データ API
  45. 45. 地図上二点間のルートを算出します ・Google Maps API との併用でのみ使用可 ・クエリ制限 2500 回 /day ・json か XML での出力が可能 URL:http://www.ekidata.jp/api/api_station.php API 紹介 Google Directions API
  46. 46. Ramen Shop F i n d e r の場合(例えばの使い方) 現在地か駅データ API から座標を取得 ↓ ホットペッパー API でラーメン店の情報を取得 ↓ Directions API と Maps API でルート表示 API 紹介
  47. 47. というわけで
  48. 48. ライブラリと API を駆使して…
  49. 49. By「ブラックジャックによろしく」,佐藤秀峰,漫画 on web 少 し で も 快 適 な ア プ リ 開 発 を 行 っ て く れ よ !
  50. 50. 以上です ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×