狠狠撸

狠狠撸Share a Scribd company logo
Androidアプリ開発
2015/02/12(Thu)
しくみ製作所 VP kamoc
Android開発経験
2011 2013 2014 2014 2015 鋭意制作中!
即興でマスクを作
成できるカメラアプ
リ
あの花っぽいライ
ブ壁紙アプリ
歌うルンバ
アプリ
移動距離でポイン
トが貯まって懸賞
に応募できるアプ
リ
動画リアルタイム
配信プラットフォー
ム
Contents
各開発フェーズを簡単に紹介
1. 要件定義
2. 設計
3. 開発
4. テスト
5. リリース
1. 要件定義
Android開発でよくある要望と対策
よくある要望
1. スマホ/タブレット両対応させてほしい
2. 古い端末でも動くようにしてほしい
3. iOSでも同じサービスを提供したい
できるだけたくさんの人が使えるように!
カバー率とコストはトレードオフ
● 実装コスト
○ カバー率を上げるための実装が増える
● 試験コスト
○ 試験実施にかかるコスト
○ 試験端末の用意にかかるコスト
● サポートコスト
○ 「中華パッドで動かない!ふざけるな!」 ...orz
必要なのは「切り捨てる勇気」
● 絞り込む要素
○ Platform Version
○ 画面解像度
○ 端末機能の有無
● アプリケーション側で定義
○ 対象外端末ではPlayStoreからインストールできない
Platform Version
● Android APIのVersion
● Versionが上がると...
○ 新機能の追加
○ 非推奨機能の削除
● 変更があったAPIを利用する場
合、各Versionに合わせた分岐が
必要
Platform Version の選定
● 公式で各Versionのシェアを公開
● シェアと実装コストを考慮して対象を限定
2015/02/08時点での Platform Version のシェア
引用元: https://developer.android.com/about/dashboards/index.html
Androidアプリの実装方式
● ネイティブアプリ
○ Android API を利用してJavaで実装
○ 端末の性能をフルに活用することができる
○ iOSとは完全に別実装
● WebViewを用いたアプリ
○ アプリにブラウザを埋め込んだような感じ
○ HTML/CSS/JavaScript で実装
○ iOSと共通化しやすい
2. 設計
マテリアルデザインに苦しむ開発者達
骋辞辞驳濒别谨製のアプリに変化が...
マテリアルデザイン
● Googleが提唱したデザインのガイドライン
○ ガイドラインに従ったアプリケーションを開発することが
Google様より推奨されている
● Platform Version 5(lolipop)からAPI利用可
○ lolipopの普及率 1.6 %
○ lolipop未満でもマテリアルデザインに準拠しなければな
らない(これが鬼畜)
マテリアルデザインガイドライン
http://www.google.com/design/spec/material-design/introduction.html
作者を苦しめるマテリアルデザイン
● lolipop用実装とそれ未満の実装の両方が必要
● lolipop未満でマテリアルデザインを実現するた
めのライブラリ/サンプルが多数存在
○ ライブラリの比較検討は慎重に
■ ライセンスは?
■ やりたいことは実現できるのか?
■ 手を加えやすいのか?(まともな作りなのか)
○ 自前実装は最終手段
3. 開発
Androidアプリを構成するファイル達
Androidアプリの構成
1. Manifest
a. アプリが何者なのかを定義するファイル
2. Source
a. Javaプログラム
3. Resource
a. レイアウト定義ファイル
b. 画像ファイル
c. 定数ファイル
Manifest
● AndroidManifest.xml
○ アプリ自身を定義するXMLファイル
■ 動作条件の定義
● Platform Version
● 利用するハードウェア
● 利用する機能(例: ネットワーク通信を行う)
■ バージョン情報
■ Activity情報(後述)
Activityとは
● アプリの1画面を表すもの
画面
Activityの存在を定義 Activityの挙動を定義
Activityのレイアウトを
定義
AndroidManifest.xml AirtimeActivity.java
Manifest Source Resource
airtime_activity.xml
良いActivityとは
● SourceとResouceを適切に切り分けている
○ Sourceでのレイアウト調整は保守性を下げる
■ JSでレイアウトをいじるのと一緒
● レイアウトの値をハードコードしない
○ 要素のpadding値などはアプリ内で共通
■ 定数ファイルに定義して利用する
開発環境(Android Studio vs Eclipse)
● Android Studio
○ Google が提供するAndroid開発用IDE
● Eclipse + Android Plugin
○ Java開発の王道
Android Studioが断然オススメ
● Source, Resource, Manifest 間の依存関係の
理解が優秀
○ Eclipseだとリネーム時に依存関係が壊れる
● Maven Repositoryの使い勝手が良い
○ gradleファイルに1行追加するだけ
動作確認
● エミュレータ(仮想デバイス)を利用
○ SDKデフォルトのエミュレータは重すぎる
○ Genymotionを使いましょう
■ https://www.genymotion.com/
4. テスト
テストに使うツールの紹介
テスティングツール
● JUnit
○ Javaの単体試験フレームワーク
● Espresso
○ UI試験ツール
○ Google MapsやDriveの試験にも使われたらしい
テストコード書かないと...orz
5. リリース
Google Play Developer Console 紹介

More Related Content

础苍诲谤辞颈诲アフ?リ开発