はじめる前に知っておきたいAndroidアプリ開発のポイント

58

Transcript of はじめる前に知っておきたいAndroidアプリ開発のポイント

Page 1: はじめる前に知っておきたいAndroidアプリ開発のポイント
Page 2: はじめる前に知っておきたいAndroidアプリ開発のポイント

2

本資料で紹介しているもののリンクなどは

以下のURLにまとまっております。

https://github.com/operando/Notes/blob/master/schoo_2015_10_29/README.md

※このスライド追加したから、1ページ番号ずれてます。すいません・・・。

Page 3: はじめる前に知っておきたいAndroidアプリ開発のポイント

自己紹介

• 岡野 忍 (@operandoOS)

• 株式会社メルカリ

• Androidのコードを読む勉強会を運営

• まったりAndroid Framework Code Reading

Page 4: はじめる前に知っておきたいAndroidアプリ開発のポイント

この授業について - 対象

• これからAndroidアプリを作ってみたい、興味がある人

• Androidアプリ開発を仕事にしたい人

4

Page 5: はじめる前に知っておきたいAndroidアプリ開発のポイント

この授業について - 目的

• Androidアプリ開発はどんなことをするのか、

始めに何から取りかかればよいか、といったさまざまな疑問点、不安点をクリアにする

5

Page 6: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発を始めるための最初の一歩

Page 7: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidについて

• Googleが提供しているモバイル向けOS

• 最新バージョンは6.0

• アプリ開発するために使用する言語はJava

• 様々なデバイスで動く Mobile,TV,Auto,Watch…

7

Page 8: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidのバージョンの特徴

• 各バージョンごとにコードネームが付いてる

• コードネームは、菓子の名前が付いてる

• コードネームやバージョンで呼ぶかは人それぞれ

• 最新バージョン6.0はAndroid M(Marshmallow)と呼ばれる

8

Page 9: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidのバージョン別シェア率

• シェア率が一番高いバージョンは4.4(KitKat)

• 今後シェア率が増えるのは6.0(Marshmallow)

• Dashboards

• シェア率等が月一で更新される

• https://developer.android.com/about/dashboards/index.html

9

Page 10: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android Studio

• Androidアプリ開発をする上での統合開発環境

• 最新の安定バージョンは1.4

• EclipseよりAndroid Studioを使うべき

• Eclipse向けのサポートは今年中で終了予定

10

Page 11: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android Studio

http://gihyo.jp/dev/serial/01/android_studio

11

Android Studio最速入門~効率的にコーディングするための使い方

Page 12: はじめる前に知っておきたいAndroidアプリ開発のポイント

アプリをどこで動かすか

• エミュレータ

• 試しに開発を始める場合オススメ

• 実機 (Android 端末)

• 色んな人に使って欲しいアプリを開発したい場合オススメ

12

Page 13: はじめる前に知っておきたいAndroidアプリ開発のポイント

アプリをどこで動かすか

• エミュレータ

• 自由な解像度で動かせる

• Google APIs Emulator

• Google Map等の機能が試せるエミュレータ

• Genymotion

• 操作速度が早い13

Page 14: はじめる前に知っておきたいAndroidアプリ開発のポイント

Google APIs Emulator

14

Page 15: はじめる前に知っておきたいAndroidアプリ開発のポイント

Genymotion

15

Page 16: はじめる前に知っておきたいAndroidアプリ開発のポイント

アプリをどこで動かすか

• 実機(Android 端末)

• 実際にアプリを使う人と同じ感覚でアプリを試せる

• エミュレータではわかりづらい機種依存や操作感の違いがわかる

• 実機で動くとテンション上がる! 16

Page 17: はじめる前に知っておきたいAndroidアプリ開発のポイント

実機(Android 端末)

17

机の上にあった実機(検証機) うち3つは私物

Page 18: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の初歩を学ぶ

• 入門書で学ぶ

• サンプルコード等で学ぶ

18

Page 19: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の初歩を学ぶ

• 入門書で学ぶ

• サンプルコード等で学ぶ

19

Page 20: はじめる前に知っておきたいAndroidアプリ開発のポイント

入門書で学ぶ

• 正直、入門書で学ぶのは難しくなっている

• Androidの変化のスピードが早い

• Android Studio, Support Library…

• 入門書多くてどれ読んでいいかわからない

20

Page 21: はじめる前に知っておきたいAndroidアプリ開発のポイント

入門書で学ぶ

21

Android学ぶ上での書籍についてhttp://hack-it-iron.hatenablog.com/entry/2015/03/22/195939

Page 22: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の初歩を学ぶ

• 入門書で学ぶ

• サンプルコード等で学ぶ

22

Page 23: はじめる前に知っておきたいAndroidアプリ開発のポイント

サンプルコード等で学ぶ

• 公式に用意されているサンプルから学ぶ

• 網羅的 + 細かい仕様部分まで書かれている

• 必要な部分だけ読むと良い

• ドキュメントの更新が早い

• 私が読んでも勉強になること書いてある23

Page 24: はじめる前に知っておきたいAndroidアプリ開発のポイント

サンプルコード等で学ぶ

• Android Training

• http://developer.android.com/training/index.html

• API Guides

• http://developer.android.com/guide/index.html

• Samples

• https://developer.android.com/samples/index.html

• Github - Google Samples

• https://github.com/googlesamples?utf8=%E2%9C%93&query=android24

Page 25: はじめる前に知っておきたいAndroidアプリ開発のポイント

サンプルコード等で学ぶ

25

• Android Studioのサンプルコード

• 一つずつ動かしてみる

Page 26: はじめる前に知っておきたいAndroidアプリ開発のポイント

サンプルコード等で学ぶ

• mixi-inc/AndroidTraining

• Javaの基礎からアプリ開発を学ぶ場合オススメ

• https://github.com/mixi-inc/AndroidTraining

26

Page 27: はじめる前に知っておきたいAndroidアプリ開発のポイント

日々どこから情報を仕入れているか• Qiita tags Android

• Androidに関するテックネタが日々投稿されている

• Android Developers Blog

• Androidの最新情報など、開発に重要な記事が投稿されている

• Android Weekly

• Androidの情報を週一でまとめてくれているサイト

• Android Developers Backstage , Fragmented

• 海外のAndroid開発者が行っているPodcast 27

Page 28: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidをより深く学ぶために

• Android セキュアコーディングガイド

• The Android Arsenal

• OS標準の開発者オプション

• Github上で公開されているアプリのソースコード

28

Page 29: はじめる前に知っておきたいAndroidアプリ開発のポイント

質問

Androidのアプリと聞いて どんなアプリを思い浮かべますか?

29

Page 30: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の 種類・特徴と大まかな開発の流れ

Page 31: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の種類

• アプリケーション開発

• 自社アプリ、受託アプリ、個人アプリ

• アプリケーション開発以外もある

• Android OSそのものの開発

31

Page 32: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の特徴

• 少人数での開発が多い(経験則)

• 幅広い端末に対応したアプリ開発が求められる

• OSバージョン、解像度、ハードウェア

• リリースサイクルが早い

• アプリの審査期間が短いため32

Page 33: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidアプリ開発の大まかな開発の流れ

例) メルカリの開発フロー

33

2 ~ 3週間の間隔でこのフローを継続的に行う

Page 34: はじめる前に知っておきたいAndroidアプリ開発のポイント

企画・デザイン

• 新機能や機能改善を企画する

• デザインも並行して進める

• 受託開発の場合、この部分の作業は別の会社が行う場合もある

34

Page 35: はじめる前に知っておきたいAndroidアプリ開発のポイント

開発

• アプリの機能を実装する

• 複数解像度の端末で確認する(スマホ、タブレット)

• デバッグメニューを使って開発を効率化

• Github上でコードレビューする

• 開発したものを社内に配信する

• DeployGate35

Page 36: はじめる前に知っておきたいAndroidアプリ開発のポイント

デバッグメニューを使って開発を効率化

36

• デバッグメニュー

• Activityの情報を見る

• APIのURLを変更

• 入力を楽にする

etc.

Page 37: はじめる前に知っておきたいAndroidアプリ開発のポイント

テスト

• 開発したアプリのテストを行う

• 基本的にはテスト専門のエンジニアがテストを行う

• 専門の会社にテスト作業をお願いするケースもある

• Androidは端末が多く、自社にテストしたい端末がない場合等...

37

Page 38: はじめる前に知っておきたいAndroidアプリ開発のポイント

リリース

• 開発したアプリをGoogle Playにリリースする

• 段階的公開を利用するケースもある

• 大きな変更を行った場合に致命的な問題が全ユーザに影響しないため

• 段階的に新しい機能の利用率を見る

• Google Playにアプリのアップデートが反映されたか監視する

• tonkotus38

Page 39: はじめる前に知っておきたいAndroidアプリ開発のポイント

tonkotus

39

アプリがアップデートをされたことをSlackに通知

Page 40: はじめる前に知っておきたいAndroidアプリ開発のポイント

分析

• リリース後に致命的な問題が発生していないか

• Crashlytics

• 次の企画に活かすため様々なログを分析する

• アクセス解析のサービス

• Google Analytics, Mixpanel40

Page 41: はじめる前に知っておきたいAndroidアプリ開発のポイント

Androidのアプリを作るとしたらどんなアプリを作りたいですか?

41

質問

Page 42: はじめる前に知っておきたいAndroidアプリ開発のポイント

時代に合ったAndroidアプリを開発する方法

Page 43: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design

• Googleが発表したデザインガイドライン

• あらゆるスクリーンサイズ・プラットフォームで統一したデザイン

• ビジュアル、モーション、インタラクション

43

Page 44: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design

44

Page 45: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design

45

Material Design 時代の最新アプリ UI/UX デザイン ~ マルチデバイス対応とウェアラブル体験のために

https://www.youtube.com/watch?v=xKrtTlCvB-Q&feature=youtu.be&t=3h59m34s

Page 46: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design - いいところ

• 複数のプラットフォームで同じユーザー体験を提供できる

• ガイドラインがしっかり書かれている

• Material Designに適したiconが提供されている

• Material Designを採用するアプリが増えている46

Page 47: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material icons

47

https://www.google.com/design/icons/

Page 48: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design - Sample

48

Topeka for Androidhttps://github.com/googlesamples/android-topeka

Page 49: はじめる前に知っておきたいAndroidアプリ開発のポイント

Material Design - 悩むところ

• 必ずアプリのデザインをMaterial Designにしないといけないと思わせてしまう

• 作るアプリにあったデザインを重視するべき

• 古いOS バージョンでMaterial Designを再現するのは難しい

• 無理せずできるところから適用していく49

Page 50: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android開発者のカンファレンスに参加する

• 開発の様々な事例・ナレッジを知ることができる

• 日々開発で疑問に思っていることなど、色んなエンジニアと情報交換ができる

• 定期的に開催している勉強会にも参加してみる

• shibuya.apk, Roppongi.aar, potatotips…

50

Page 51: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android開発者のカンファレンス - 日本

• ABC (Android Bazaar and Conference)

• DroidKaigi 2015 , 2016

51

Page 52: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android開発者のカンファレンス - Global

• Droidcon

• Google IO

• 近年Androidの関することが多い

52

Page 53: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android 6.0 / M(Marshmallow)

• 大きな変更が加わっているAndroidの最新バージョン

• よりユーザ目線でアプリを作る必要がある

• セキュリティ、省電力、Backup & Sync

• 特に新しく導入されたRuntime Permissionsはとても大きな変更

53

Page 54: はじめる前に知っておきたいAndroidアプリ開発のポイント

Runtime Permissions

• 今まではインストール時にPermission(権限)の許可を得ていた

• MからはユーザがPermissionを必要とする操作をした際に許可を求める

• 開発の初期からこの仕様があることを意識した方がよい

54

Page 55: はじめる前に知っておきたいAndroidアプリ開発のポイント

Android 6.0 / M(Marshmallow)

55

M以下(インストール時) M以上(ユーザ操作時)

Page 56: はじめる前に知っておきたいAndroidアプリ開発のポイント

まとめ

Page 57: はじめる前に知っておきたいAndroidアプリ開発のポイント

まとめ

• Androidの基礎を学ぶ方法・情報収集の方法を 知り、継続的に知識を身に付ける

• Android開発の種類・特徴を理解し、自分に あった開発をする

• 時代に合ったAndroidアプリを開発ために 新しい情報を積極的学ぶ

57

Page 58: はじめる前に知っておきたいAndroidアプリ開発のポイント

メルカリはAndroidエンジニア積極採用中です!

https://www.wantedly.com/projects/1196958