Successfully reported this slideshow.
Your SlideShare is downloading. ×

Android study part2

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Git-dojo In Sendagaya.rb
Git-dojo In Sendagaya.rb
Loading in …3
×

Check these out next

1 of 61 Ad

Android study part2

Download to read offline

Trunkの講義の資料(2/5)です。
https://github.com/sakebook/TrunkStudy

内容
・Gitの使い方(さわりだけ)
・Activityのライフサイクル
・イベントハンドリング
・ライブラリ導入
・ライブラリを用いた通信(Retrofit)

Trunkの講義の資料(2/5)です。
https://github.com/sakebook/TrunkStudy

内容
・Gitの使い方(さわりだけ)
・Activityのライフサイクル
・イベントハンドリング
・ライブラリ導入
・ライブラリを用いた通信(Retrofit)

Advertisement
Advertisement

More Related Content

Advertisement

Recently uploaded (20)

Android study part2

  1. 1. 実践 ANDROIDアプリ開発 @JX通信社 酒本伸也 2015/8/6
  2. 2. GIT
  3. 3. よく使うコマンド • git status • git diff ファイル • git checkout ファイル • git add ファイル • git commit -m “メッセージ” • git pull “リモートリポジトリのURL”“ローカルのブランチ名” • git push “リモートリポジトリのURL”“ローカルのブランチ名”
  4. 4. • git status • 現在のブランチの最新の状態から
 変更があるかどうかを確認 • git diff ファイル • 対象のファイルが最新の状態から
 どこに変更があったのかを確認
  5. 5. • git checkout ファイル • 対象のファイルを現在のブランチの最新 の状態に戻す • git add ファイル • 対象のファイルをcommit対象にする
  6. 6. • git commit -m “メッセージ” • commit対象にしたファイルたちを
 push対象にする • git pull “リモートリポジトリのURL”“ローカルの ブランチ名” • リモートリポジトリの変更をローカルに反 映させる
  7. 7. • git push “リモートリポジトリのURL”“ローカ ルのブランチ名” • push対象にしたファイルたちをリモート リポジトリへpushする
  8. 8. ~/.GITCONFIG [user] name = Shinya Sakemoto email = sakebook@gmail.com [color] ui = auto [alias] st = status br = branch -a ch = checkout cm = commit stt = status -uno difff = diff --word-diff • よく使うものは
 登録しておくと便利
  9. 9. 詳しくは • http://blog.nanapi.co.jp/tech/2014/04/23/git-love/
  10. 10. WIDGET
  11. 11. WIDGET
  12. 12. 作りたいアプリレビュー
  13. 13. タスクに分解 • 画面ごと • 記事一覧、記事詳細 • 機能ごと • 通信周り、シェア、汎用処理
  14. 14. 分けることで • 複数人での作業分担 • 大まかな工数の概算ができる
  15. 15. 工数 • 1日 = 8時間 • 1週間 = 5日 • 1ヶ月 = 4週間
  16. 16. 工数 • 1日 = 8時間 • 1週間 = 5日 • 1ヶ月 = 4週間 今は忘れて
  17. 17. ライフサイクル
  18. 18. ライフサイクル • ActivityはUIを持つ画面には必須 • Activity同士の円滑なやり取りを助長する • ライフサイクル ≒ 状態遷移
  19. 19. • onCreate • Activityが初めて
 作られたとき • onStart • Activityがユーザに
 見えるようになる直前
  20. 20. • onResume • Activityが
 表示されたとき • onPause • 別のActivityが
 表示されるとき
  21. 21. • onStop • Activityが
 見えなくなった時 • onRestart • Activityが停止した後
 再度開始される直前
  22. 22. • onDestroy • Activityが
 破棄される直前 • Activityが受け取る
 最後の呼び出し

  23. 23. 詳細 • http://dev.classmethod.jp/smartphone/android/ android-tips-21-activity-lifecycle/
  24. 24. イベントハンドリング
  25. 25. イベントハンドリング • イベント • ユーザの何かしらの行動や
 内部の処理の特定のタイミング • イベントを適切なタイミングでキャッチし
 適切な処理を行う。
  26. 26. ボタンをクリック • ButtonのWidgetを設置 • Buttonがクリックされた時に行う処理を記述 • Buttonのクリックイベントをハンドリング
  27. 27. BUTTONのWIDGETを設置 • xml
  28. 28. BUTTONがクリックされた時 に行う処理を記述 • Callbackで
 
 OnClickListener#onClick
 
 が呼ばれるので、その実装を書く
  29. 29. 実装 ハンドリング ハンドリング + 実装
  30. 30. 実装? ハンドリング
  31. 31. 別クラスで実装 • MyCustomClick.class
  32. 32. 実装? ハンドリング
  33. 33. 同じクラスで実装 • 実装が記述されているのでthisが使える。
  34. 34. SET_ON_CLICK以外のリスナー • setOn⃝⃝で用意されている。 • 登録/解除が必要なものは
 add/remove
 register/unregister
 など、命名規則で判別できる
  35. 35. WIDGETの状態
  36. 36. BUTTONがクリックされた時 • なんどもクリックできる • クリックできたかどうかわからない • クリック可能な状態か不明
  37. 37. なんどもクリックできる • メールを送るなど、複数回されては困るもの がある • View#setEnabled(boolean) • Viewの状態を、有効/無効にする
  38. 38. クリックできたかどうか わからない クリック可能な状態か不明 • ユーザにフィードバックを与える
  39. 39. 無効な状態 有効で
 押されている状態 有効で
 押されてない状態
  40. 40. ライブラリ
  41. 41. 面倒なものは誰かが楽してる • 公開されているものは積極的に使おう! • ソースコードを読むと勉強になる • かけるはずだった時間を別のところに
 充てられる
  42. 42. GRADLE • リモートリポジトリから
 ライブラリをインポートし、
 かつ依存関係の解決をしてくれる
  43. 43. 探す • https://android-arsenal.com/ • https://github.com/trending?l=java • https://gradleplease.appspot.com/
  44. 44. 使う • app/build.gradleに使いたいライブラリを記載 してGradleを同期するだけ
  45. 45. 使う
  46. 46. 依存関係 • Retrofitしかapp/build.gradle
 に書いていないが
 よしなになってる
  47. 47. 通信
  48. 48. 必須事項 • パーミッションの追加 • UIスレッド以外を用いる
  49. 49. パーミッションの追加 • アプリインストール時に聞かれるアレ • AndroidManifest.xmlに一括して記述 • Android Mからは使う時にユーザが
 任意に許可できるように
  50. 50. • AndroidManifest.xml • <application>の前に記述
  51. 51. UIスレッド • Androidはシングルスレッド • UIスレッド(メインスレッド) • 画面の描画を行う • UIスレッドが詰まると画面が固まる
  52. 52. 通信はレスポンスを待つ • レスポンスが帰ってくるまで描画が
 止まるので別スレッドを立てて実行させる • 通信に限らず、その他の重い処理は
 別スレッドで行う
  53. 53. RETROFIT • Square社製のライブラリ • RESTクライアント • 非同期 • インタフェースを作成するのが特徴
  54. 54. インタフェースを作成
  55. 55. クライアントを作成
  56. 56. モデルを作成 • APIのレスポンスに準ずる • Retrofit内のGsonで
 よしなに変換
  57. 57. モデルを作成 • ネストしたものは別のモデルを
 作成して対応させる • Keyを自分で設定したい場合は
 @SerializedName(“⃝⃝")
 とアノテーションをつける
  58. 58. 実行
  59. 59. 実行 コールバックの 実装
  60. 60. RETROFIT • 取得を非同期で行ってくれるが
 通信周りのライブラリではない • 内部ではデフォルトの通信を利用 • いろいろカスタムできる

×