準備しておいて下さい [1] https://goo.gl/1789zH へアクセス [2] project.zipをダウンロード

Slides:



Advertisements
Similar presentations
Silverlight Producer コンテンツ作成 第一回 GKB48 セミナー 「学習型クラウド共有スペース GKB コモンズは何を目指すか」 2013.oct.30.
Advertisements

InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
BBT 大学 Ruby on Rails 開発環境セットアップマニュアル Mac 版 1.1 最終更新日: 2013/1/5.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
目次(電子納品 操作手順) ※ページはスライド番号
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
BBT大学 Ruby on Rails開発環境セットアップマニュアル
農業者年金記録管理システム 研修資料の入手等について
WinDBG6によるRTX5.5デバッグ RTX開発環境 WinDBG6.0 debugモードで起動 232Cクロスケーブル
ブラウザの基本操作 前のページに戻る ブラウザの左上にある 「戻る」ボタンで、自分がたどってきた一つ前のページに戻ることができます。
JPAを利用した RESTful Webサービスの開発
Visual Studio 2005による XML Web サービス入門
QRコード作って使ってみる 作成者: 川瀬 智美 川瀬智美ですよろしくお願いします ここにあるマークご覧になったことありますでしょうか?
Androidアプリを公開する方法.
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
デジタルポートフォリオ作成支援ツール PictFolio 使用マニュアル
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
PCの情報を得る - 「システム情報」 ①「スタート」→「すべてのプログラム」→「アクセサリ」→「システム ツール」→「システム情報」とクリックする。 ②左欄の項目を選択すると、右欄に情報が表示される。
REST型Webサービスによる 楽曲検索システムの開発
IBM SmarterCloud Control Desk 7.5 新機能ガイド - セルフサービス・センター
コンピュータ演習Ⅰ 8月7日(日) 1限目 ファイルの種類.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
ImpressのプレゼンをPPで表示 学校や会社にパワーポイントはあるが自宅には ない人のために・・・・・。
JavaServlet&JSP入門 01K0018 中村太一.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
RAD Studio 14/09/27 TEffectを使った綺麗なForm
WebサービスII (第8回) 2007年11月14日 植田龍男.
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
HTTPプロトコル J2EE I 第7回 /
Microsoft Office 2010 クイックガイド ~応用編~
Kintone 新デザインコンセプト サイボウズ株式会社 2016/10/28 更新.
情報学部 プログラミング体験教室 (初級編)
パソコン同好会のホームページは今回WordPressに変わったのですが 使いづらいとの声が多いので投稿者用の手順書を作ってみました。
Microsoft Office 2010 クイックガイド ~応用編~
Flyingware : バイトコード変換による 安全なエージェントの実行
プログラミング演習3 第2回 GUIの復習.
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
Titanium Studioを使った アプリ開発 Vol.1
2003年度 データベース論 安藤 友晴.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
EclipseでWekaのAPIを呼び出す
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
大衆を対象とした、GISの画期的な利用方法の創生とソフトウェアの開発
プログラミング演習3 第2回 GUIの復習.
平成19年10月19日 図書系のための アプリケーション開発講習会
第6回 Androidアプリの作成 07A1069 松永大樹.
Microsoft Office クイックガイド ~応用編~
Processing使用の準備.
・タイプ別のフレームワーク ・デジタルTips(小技テクニック情報)
ファイルやフォルダを検索する ①「スタート」→「検索」とクリックする。 ②「表示項目」から適当なものを選択する。
アルゴリズムとプログラミング (Algorithms and Programming)
表計算 Excel 演習 1.Excel を使ってみる.
手書き文字の自動認識アプリケーション 15K1013 坂本 倖輝
Microsoft Office クイックガイド ~応用編~
サブゼミ第7回 実装編① オブジェクト型とキャスト.
本当は消去できていない!? ~データを完全消去する方法~
本当は消去できていない!? ~データを完全消去する方法~
Microsoft Office 2010 クイックガイド ~応用編~
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
ネットワークプロトコル.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
FPS(続き).
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
Presentation transcript:

準備しておいて下さい [1] https://goo.gl/1789zH へアクセス [2] project.zipをダウンロード [3] ダウンロードしたzipを解凍

YouTube APIを使って Androidアプリを作る 実務で使えるライブラリ

Open an existing Android Studio project もしくは File -> Open 次に、解凍して作成されたディレクトリを選択 Click!

今日作るアプリの土台 Activity Androidアプリの画面は 要素がツリー構造を形成 Activity └Fragment    ├View    └View Fragment View View Click! 厳密にはFragmentは画面を構成する要素ではないですが、概念としてこのように考えると理解しやすいと思います。

Android Studio基本情報 Android Studioは頻繁にバージョンアップされます。基本的には新しいもの使うほうが望ましいです。

Android Studio基本情報 画面構成は一般的なIDEと同様に、ナビゲーター・エディタ・コンソールを備えていますね。 ナビゲーター

Android Studio基本情報 ナビゲーターは左端のボタンで表示/非表示を切り替えることができます。

Android Studio基本情報 接続しているAndroid端末/エミュレーター (複数つないでいる場合はここで切り替え) 表示/非表示の切り替え

まず、ボタンクリックで何かしてみましょう MainActivityFragmentを開いて、onClickButton()を探す。Toast.makeText(…のコメントアウト解除 ファイルを開くとき、実務では Navigate -> Class でクラス名を指定して開きます。(設定に依りますが、Command + Shift + Tのショートカットを利用します) また、ファイルの中から特定のメソッドを探すとき、Navigate -> File Structure(Command + O(オー))を利用します コメントアウトの解除や実施は、Code -> Comment with Line Comment(Command + /)

Androidアプリの基本構成

アプリの基本構成要素は3つ マニフェスト Javaクラス レイアウトXML パッケージはxxxxxです クラスはxxxxxxです 画面はこんな感じです レイアウトXML

マニフェスト = AndroidManifest.xml

AndroidManifest.xml アプリのパッケージ名(Google Playで識別されるアプリ固有の識別子)や画面を構成するクラス(=Activity)を記載

Javaクラス(Activity、Fragment) 利用するレイアウトファイルを設定します。また画面に表示するデータの操作やボタン押下時の動作を規定します。

レイアウトXML 画面の構成を定義するファイルです。

おさらい マニフェスト Javaクラス ImageView img; Img = findViewById(R.id.imgview) 動きや描画内容の設定はこっち Javaクラス ImageView img; Img = findViewById(R.id.imgview) 基本パターン ①部品の参照を得る ②何かする 画面の構成はこっち レイアウトXML <ImageView …./>

続き

ライブラリ - ButterKnife @BindViewを付けて、部品のIDを指定すると、部品の参照を簡単に得られます。 複数のボタンに同じ挙動を定義したい場合は、IDを羅列するだけでOK 他に、このアプリでも使っている@OnItemClickがあります。確認してみましょう。

ライブラリ - ButterKnife また、@OnClickを付けて、ボタンのIDを指定すると、ボタンクリックの挙動を定義するメソッドになります 複数のボタンに同じ挙動を定義したい場合は、IDを羅列するだけでOK 他に、このアプリでも使っている@OnItemClickがあります。確認してみましょう。

ライブラリ - ButterKnife ButterKnifeは、onCreateView()とonDestroyView()でおまじないをすることによって、@OnClickアノテーションなどが動作するようになっています。

ボタンクリックで何かする 次に、YouTube検索APIを呼び出すように修正してみましょう。 このコメントを解除して、実行 複数のボタンに同じ挙動を定義したい場合は、IDを羅列するだけでOK このコメントを解除して、実行

YouTube検索結果を表示 Activity Androidアプリの画面は 要素がツリー構造を形成 Activity └Fragment    ├View    │View    └RecyclerView Fragment View View RecyclerView YouTube 検索結果 ここまでできたら起動してみましょう。検索ボタンを押すと、YouTubeの検索結果がずらっと表示されるはずです。 簡単にできちゃった人は、「ボタンを押したら検索ワードをクリア」とか「タイトルの代わりに動画説明を表示してみる」に挑戦してみましょう。 実はRecyclerViewという部品が配置してありました。 YouTubeの検索結果のような、配列(リスト)データを表示するのに適したViewです。

画像を表示してみる Viewの参照を追加 画像表示Viewを追加 画像表示処理を追加 MainActivityFragmentのVideoViewHolderのsetValueメソッド Viewの参照を追加 cell.xml 画像表示Viewを追加 画像表示処理を追加 「画像を表示する(=画像を表示する場所を用意する、画像を表示する処理を書く)」となりますので、前者をcell.xmlに、後者をMainActivityFragmentに実装します。

ライブラリ - Picasso インターネット [1]ダウンロード 画像 [2]加工、表示 こんな感じになりましたか? 画像表示は、Picassoライブラリを利用することで簡単に実装できています。 Picassoが本領を発揮するのは、ネットワーク上の画像ファイルを表示する時です。 画像表示処理を細かく分けると、ダウンロードと加工・表示といった工程がありますが、これらを簡単に実装することができます。 (自分で実装すると、画像をどこに保存するか、どんな名前で保存するか、すでにダウンロード済みだったらどうするか、キャッシュをどうするか、スクロールしながらダウンロードしながらの非同期処理制御・・・と悩ましいです) 類似:Glide、Universal Image Loader、Volley(NetworkImageView)

Androidアプリのスレッド UIスレッドは特別なスレッドで、画面の更新処理を担当できる。逆に通信処理や時間のかかる処理はNG (メインスレッド) 文言変更 画像表示 時間のかかる処理 HTTP通信処理 その他のスレッド その他のスレッド その他のスレッド Androidアプリケーションのプロセスは、UIスレッドという特別なスレッドを必ず一つ内包しています。 このスレッドでは、長時間のブロックは許されず、またHTTP通信処理を実行することも許されません。 先の画像表示処理については、Picassoライブラリがこのあたりを上手いこと実装してくれていることも、Picassoの大きな利点の一つです。

リスト表示を格好良くする コメント解除 削除 ListViewをStaggeredGridViewに変更します。できたら実行してみましょう。 ここでのポイントは、XMLを修正しただけで、Javaファイルは一切修正を加えていないことです。

ライブラリ – Android Support v7 GridLayout RecyclerView アダプター A B C D E YouTubeデータ (配列データ) BBB CCC AAA RecyclerViewは、データと画面とを アダプターで接続する データは、アダプタだけと接触するし 画面もアダプタだけと接触する。 =>データから見れば、RecyclerViewが どんな見た目でも関係ない。 StaggeredGridLayoutManager AAA BBB StaggeredGridLayoutManagerは、Pinterest風にリストデータを表示するRecyclerViewのレイアウトマネージャーです。 このライブラリを利用することで、簡単にPinterest風のリスト表示を実現することができます。 自分でカスタマイズしたRecyclerViewを使うことも可能です。使えそうなRecyclerViewライブラリを見つけたら試してみましょう。 CCC DDD EEE FFF

今日、使ったライブラリ ButterKnife @BindView、@OnClick、@OnItemClickなど Picasso 画像のダウンロードと表示 Android Support Library(RecyclerView、GridLayout) Pinterest風のRecyclerView Retrofit RESTクライアント実装サポート EventBus スレッド間、オブジェクト間通信をスマートに実装 OkHttp モダンなプロトコル(HTTP/2、SPDY)やTLS(SNI、ALPN)を サポートする通信ライブラリ 解説した3つのライブラリと、コード内で利用している3つのライブラリを記載してあります。

参考 Retrofit

参考:YouTube APIを使う YouTube API クライアント JSONデータ { title : "裏表ラバーズ", thumbnail : { high : "https://i.ytmg.com/…/hoge.jpg"} }

参考:YouTube APIの呼び出し(通常) クライアント JSONデータ { title : "裏表ラバーズ", thumbnail : { high : "https://i.ytmg.com/…/hoge.jpg"} } 画面更新 Buttonを押す HTTP通信 ライブラリ JSON解析 URLを構築 Network

参考:YouTube APIの呼び出し(Retrofit) クライアント JSONデータ { title : "裏表ラバーズ", thumbnail : { high : "https://i.ytmg.com/…/hoge.jpg"} } 画面更新 Buttonを押す 出口 Retrofitがやってくれる HTTP通信 ライブラリ JSON解析 URLを構築 入り口 Network

参考:YouTube APIの呼び出し(Retrofit) Retrofitの入り口は、APIの呼び出し方をインタフェースとして定義する URL(パス)と固定のパラメータ 可変のパラメータ

参考:YouTube APIの呼び出し(Retrofit) Retrofitの出口は、Callbackインタフェースの実装を用意する RetrofitがJSONデータを Javaオブジェクトに変換