Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DeveloperIO2015_SessionD2

Developer IO 2015 セッションD-2
iOSと似て非なるAndroid開発

  • Login to see the comments

DeveloperIO2015_SessionD2

  1. 1. iOS開発と似て非なる Android開発 クラスメソッド株式会社 橋本 早樹 classmethod.jp 1 D-2 2015/03/29
  2. 2. 自己紹介 classmethod.jp 2
  3. 3. classmethod.jp 3 橋本 早樹 (はしもと さき) 入社 2014/2 Android開発歴 1~2年
  4. 4. classmethod.jp 4 #cmdevio2015D ハッシュタグ
  5. 5. classmethod.jp 5 突然ですが
  6. 6. classmethod.jp 6 iPhoneを使ってる人
  7. 7. classmethod.jp 7 Androidを使っている人
  8. 8. iPhoneとAndroidは違う classmethod.jp 8
  9. 9. classmethod.jp 9 そんなことわかってる
  10. 10. classmethod.jp 10 それでも言われる
  11. 11. classmethod.jp 11 じゃ、iOSと同じで。
  12. 12. よくあるパターン classmethod.jp 12 iOS版とAndroid版 両方リリース  なるべく安く  iOSとAndroid 両方考えるのメンドイ  俺iPhone持ってるし、iOSベースで行こう
  13. 13. classmethod.jp 13 じゃ、iOSと同じで。
  14. 14. classmethod.jp 14 本当に同じでいいんですか?
  15. 15. classmethod.jp 15 全く同じ実装をしようとすると・・・  iOS標準機能の再開発  ライブラリで対応するも、 潜在的なバグがあったり制限があったり  無理な仕様で開発の負担が増える 飛躍的にコスト増大!
  16. 16. classmethod.jp 16 リリースしたい側としては… 夢は大きく!
  17. 17. classmethod.jp 17 リリースしたい側としては… 費用は小さく。
  18. 18. classmethod.jp 18 どうすりゃいいんだ
  19. 19. classmethod.jp 19 コストを抑えるには  標準コンポーネントを使う  別アプリでできるものは Intentで投げる  Android用のレイアウト構成を 再考する
  20. 20. classmethod.jp 20 コストを抑えるには  標準コンポーネントを使う  別アプリでできるものは Intentで投げる  Android用のレイアウト構成を 再考する
  21. 21. 標準コンポーネントを使う classmethod.jp 21  スイッチ  アクションシート
  22. 22. classmethod.jp 22  リストの挙動 デフォルトの機能で ラベルがつけられる。 スクロールに合わせて ラベルがくっつく 標準コンポーネントを使う デフォルトの機能で スワイプ削除がある。
  23. 23. classmethod.jp 23  リストの挙動 標準コンポーネントを使う デフォルトでは ラベルはない。 削除など、アイテムに対する アクションは、長押しや アイテム内のボタンが多い 新しくCardViewができた
  24. 24. classmethod.jp 24 標準コンポーネントを使う 標準コンポーネントの違いを 説明して、問題なければ標準を使う
  25. 25. classmethod.jp 25 コストを抑えるには  標準コンポーネントを使う  別アプリでできるものは Intentで投げる  Android用のレイアウト構成を 再考する
  26. 26. Intentで投げる classmethod.jp 26 Android特有の アプリ間連携!
  27. 27. Intentで投げる classmethod.jp 27 Intentを使った方が よさげな例
  28. 28. Intentで投げる classmethod.jp 28  利用規約とかのWebView ブラウザにIntent投げる!
  29. 29. Intentで投げる classmethod.jp 29  利用規約とかのWebView URLとか証明書が見れるので、 ユーザー側で正規のものか ある程度確認できる。
  30. 30. Intentで投げる classmethod.jp 30 あ、利用規約のところに お問い合わせのリンクあるから  利用規約とかのWebView
  31. 31. Intentで投げる classmethod.jp 31  利用規約とかのWebView 戻る、進む、更新とかは 当然実装されているので、 後から言われても 何もしなくていい!
  32. 32. Intentで投げる classmethod.jp 32 Intentを使うときに 注意した方がいい例
  33. 33. Intentで投げる classmethod.jp 33 友達に教えるみたいな、 シェアボタン作ろう  Intentで投げる時の注意
  34. 34. Intentで投げる classmethod.jp 34  Intentで投げる時の注意 ← わかる
  35. 35. Intentで投げる classmethod.jp 35  Intentで投げる時の注意 ← まぁ、わかる
  36. 36. Intentで投げる classmethod.jp 36  Intentで投げる時の注意 ← わか・・・ん?
  37. 37. Intentで投げる classmethod.jp 37 明示的IntentでTwitter 公式アプリでいいよ  Intentで投げる時の注意
  38. 38. Intentで投げる classmethod.jp 38  Intentで投げる時の注意 そして、Twitter クライアント ユーザーへの
  39. 39. Intentで投げる classmethod.jp 39  Intentで投げる時の注意 迫害がはじまる
  40. 40. Intentで投げる classmethod.jp 40  Intentで投げる時の注意 アプリにとってシェア機能が 重要であるなら、コスト増でも アプリ内に機能を入れたほうがいい。 そうでないなら、暗黙的Intentで対応する。
  41. 41. classmethod.jp 41 コストを抑えるには  標準コンポーネントを使う  別アプリでできるものは Intentで投げる  Android用のレイアウト構成を 再考する
  42. 42. レイアウト構成を再考する classmethod.jp 42 簡単な入力を求める場合
  43. 43. レイアウト構成を再考する classmethod.jp 43  簡単な入力を求める場合 iOSのWi-Fi接続画面 モーダルやプッシュで 画面が切り替わる
  44. 44. レイアウト構成を再考する classmethod.jp 44  簡単な入力を求める場合 iOSのWi-Fi接続画面 AndroidのWi-Fi接続画面 ダイアログを表示
  45. 45. レイアウト構成を再考する classmethod.jp 45 スプラッシュ画面
  46. 46. レイアウト構成を再考する classmethod.jp 46  スプラッシュ画面  iOSはほぼ必須  Androidは任意 画面表示中の処理が 必要ないなら省く Twitter
  47. 47. レイアウト構成を再考する classmethod.jp 47 画面遷移
  48. 48. レイアウト構成を再考する classmethod.jp 48  画面遷移 iOSになくて、 Androidにある
  49. 49. レイアウト構成を再考する classmethod.jp 49  画面遷移 BACKキーの動作
  50. 50. レイアウト構成を再考する classmethod.jp 50  画面遷移 前に戻るのか、アプリを終了するのかを 事前にはっきりさせておく
  51. 51. レイアウト構成を再考する classmethod.jp 51 アプリの起動処理
  52. 52. レイアウト構成を再考する classmethod.jp 52  アプリの起動処理 アプリの起動毎に 画面を更新しよう。
  53. 53. レイアウト構成を再考する classmethod.jp 53  アプリの起動処理 ファッ!? ってなる
  54. 54. レイアウト構成を再考する classmethod.jp 54  アプリの起動処理  iOS アプリケーションが判定。 (applicationWillEnterForeground とか)  Android 各画面(Activity, Fragment) が判定。 (onStart, onResume とか)
  55. 55. レイアウト構成を再考する classmethod.jp 55  アプリの起動処理  Activityが複数のとき  他画面から戻ってきた時も更新する  ユーザーが手動で更新するようにする  無理矢理なんとかする 低 高
  56. 56. レイアウト構成を再考する classmethod.jp 56 タブボタンの罠
  57. 57. レイアウト構成を再考する classmethod.jp 57  タブボタンの罠  iOSでは標準で用意されている  Androidでも置くだけなら… 選択状態の色は? タップした時の 色は? 文字もつけるの? タブ切り替えた時 画面更新するの? しないの? さっきの起動時の 画面更新は? 表示部分が 小さくなるから、 Action Bar隠そう 画面の切り替え 実装するか…
  58. 58. レイアウト構成を再考する classmethod.jp 58  タブボタンの罠 あああああああああああ ってなる
  59. 59. レイアウト構成を再考する classmethod.jp 59  タブボタンの罠 Twitter [iOS版] Twitter [Android版] それぞれ 別画面に飛ぶ
  60. 60. レイアウト構成を再考する classmethod.jp 60 文字と色の標準化
  61. 61. レイアウト構成を再考する classmethod.jp 61  文字と色の標準化  使用する文字サイズの一覧を決めておく  使用する色コードの一覧を決めておく  各テキストで文字サイズの拡大を 許可するかしないかを決めておく
  62. 62. レイアウト構成を再考する classmethod.jp 62 レイアウトの Style 化で、コード量を 減らし再利用も容易にする
  63. 63. まとめ classmethod.jp 63
  64. 64. まとめ classmethod.jp 64 今回の内容は、 必ずこうした方がいい というものではないです
  65. 65. まとめ classmethod.jp 65 アプリによって こだわりたい部分と そうでない部分は、 まちまちだと思います。
  66. 66. まとめ classmethod.jp 66 ただし、多くの場合 時間と費用は限られている!
  67. 67. まとめ classmethod.jp 67 無駄を省いてスマートに!
  68. 68. まとめ classmethod.jp 68 こだわる部分は徹底的に!
  69. 69. まとめ classmethod.jp 69 夢は大きく!
  70. 70. まとめ classmethod.jp 70 費用は小さく。
  71. 71. #cmdevio2015 ご清聴ありがとうございました。 このスライドは後日公開いたします。 D-2
  72. 72. #cmdevio2015 次のセミナー モバイル向けAWS ネイティブアーキテクチャ クラスメソッド株式会社 大橋力丈 場所:Hakuba

×