Mais conteúdo relacionado
Semelhante a ぼくのかんがえたふつうのあんどろいどかいはつ (20)
Mais de Yukiya Nakagawa (20)
ぼくのかんがえたふつうのあんどろいどかいはつ
- 2. 自己紹介
• 中川幸哉 • 経歴
– @Nkzn / なかざん – 〜2010年
• 会津大学
– 0x19歳
• 株式会社GClue
– 上越市出身 – 2010年〜
– 新潟市在住 • JCCソフト株式会社 PG
– 日本Androidの会 • コミュニティ活動開始
新潟支部 支部長 – 2011年秋〜
– ウォーターセル株式会社 • ウォーターセル株式会社
取り締まられ役 • アグリノート
– アグリノートforAndroid開
発担当
- 5. その他
• ここ1年でお邪魔してる界隈
– 長岡IT開発者勉強会(NDS)
• http://nagaoka.techtalk.jp/
• 11/17にMSの中の人がAzureのセミナーしにくるっ
てよ
– Niigata.pm
• http://niigata.pm.org/
– ギークハウス新潟
• http://www.geek-niigata.com/
• 住んでます
- 6. おしながき
• 自己紹介 ←イマココ!
• 前置き
• アグリノートにおけるAndroid
• Androidとは
• いろんな「ふつう」を見てみよう
– プログラミングの「ふつう」
「凄い人にしかできないこ
– デザインの「ふつう」 と」は話さないよ
– セキュリティの「ふつう」
– 収益化の「ふつう」
• おまけ:アプリをトコトン簡単に作る普通じゃない方法
- 15. Androidとは
• 米Google社が中心となって作ったOpen
Handset Alliance (OHA)という組織が管理してい
るモバイルデバイス向けプラットフォーム。
• Webフレームワークっぽい開発環境で、Javaで
携帯電話向けアプリが作れる
• OSSな組み込みプラットフォームなのでいろん
なところに入れられる→電子レンジとか
• OS扱いされることが多いけど、厳密にはOS
じゃないよ!
- 16. 自作アプリ
アプリケーションフレームワーク:
アプリケーションへ様々な機能を提供するクラス群
NDK SDK
ランタイム環境:
DalvikVMと
C++ライブラリ群:高速動作や、ハードウェア
各種JavaSE6準拠ライブラリ
操作を求められる機能のライブラリ
Linuxカーネル:↑のスタックとハードウェアの仲立ちをする
- 25. 実際大事。
• 一日中農作業をして疲れて帰ってきた農
家さんの中には、パソコンの電源を入れ
ること自体がストレスになる(≒だんだん
と記録をつけなくなる)人が普通にいる
• なら現場で作業が終わった時に直接入力
してもらえばいいじゃん?という発想
– 自宅で一気に作業すると大変だけれど、圃場
1つ分の作業を付ける分にはそこまで苦では
ない(はず)
- 27. 一番大事にしていること
• できるだけ色んな端末で動くこと
– アグリノートそのものは限りなくBtoCなサー
ビス
– 農家さんが使う端末をこちらから制限するこ
とはできるだけ避けたい
– そもそも制限をかけられるほどの検証端末を
用意できる財政ではない
• 検証端末を10機種程度に減らす方法はあるらしい
Androidにおけるテストに関して〜デバイスをどう選択するか〜
- 28. 色んな端末で動かすために
• ドキュメントやリファレンスを読んで、
JavaAPIの正しい使い方を守る
• ドキュメントを読んで、リソースファイルの
正しい用意の仕方、振り分け方を守る
• ドキュメントやサンプルでサポートされてい
るカスタムUI作りの仕組みを使う
• 充分に効用やリスクが検証されていない黒魔
術は避ける
• etc.
- 30. 今日は
この1年間の
アプリ開発で培った
「ふつう」の話をします
- 34. Androidプログラミング
• とりあえず今回はJavaの話で。
– 本当はC++でも画面作れる
• イベント駆動モデルのフレームワーク
– 適切なクラスやインターフェースをextendsし
たりimplementsしながら@Overrideメソッド
を実装していけばOK
• レイアウトや各種リソースは原則XMLで
管理(しなくてもいいけどやったほうが
管理しやすくて楽)
- 42. 非同期処理が必要な理由
• AndroidのUIはシングルスレッドモデル
– ボタンの場合、「ボタンが凹むエフェクトを描
画」「onClickを呼び出す」「ボタンが戻るエ
フェクトを描画」がシステム側の一連の動作とし
て呼び出される
– onClick内に重い操作(ネットワーク接続とか)
を書くと、ボタンが数瞬戻ってこないなどの問題
が起こり、ユーザーが気持ちの悪い思いをする
– かといって別のThreadを立ててそこからUIオブ
ジェクトを触るとエラーになる
• UIの操作をロックせず、かつ処理を行う仕組
みが必要
- 43. 非同期処理の仕組み
• 大きく分けて2種類
– UIスレッドの処理キューに処理を依頼だけし
て、UIが暇な時に処理してもらう
• Handlerクラス
• 結局UIスレッドが処理するのであまりオススメし
ない
– タイミングはAndroid側に完全に任せる形で別
スレッドを作成する
• AsyncTaskクラス:途中経過を通知してくれる
• AsyncTaskLoaderクラス:データロード中心
- 46. Intentの例
• 明示的インテント
– 「Activity1からActivity2へ遷移したい」とい
うメッセージをAndroid側に渡すと画面遷移が
発生する(アプリを跨いでもOK)
– 「写真を撮影してほしい」というメッセージ
をカメラアプリに渡すと、写真を撮影した上
で撮影済みの画像のパスを返してくれる
• 暗黙的インテント
– 「誰か画像を扱えるアプリいませんか」
- 48. Fragment
• Android 3.0から追加された、(主に)画
面の分割と再利用を目的としたコンポー
ネント
• 画面を持ち、Activityに配置されるが、特
定のActivityに依存しない(下手な作り方
をすると密結合する)
• Activityとほぼ同じイベントハンドラを持
つため、各種ボタン類などの初期化など
もFragment内だけで行うことができる
- 49. スマホ版
MenuFragment BrowserFragment
遷移
MenuActivity BrowserActiviity
2012/11/2
- 50. タブレット版
MenuFragment BrowserFragment
BrowserActiviity
2012/11/2
- 52. 参考書籍
• http://amzn.to/SlO7Ph
• 「入門」と銘打って
ますが、実際にはAPI
の使い方解説書みた
いな本
• 仕事で使うレベルで
Androidを学ぶなら必
携
• 初心者が一番最初に
買うとちょっとグ
ロッキーになる本
- 53. 番外編
• ActionBarSherlock
– http://actionbarsherlock.com/
– Android 2.xな端末でActionBarが使えるように
なるライブラリ
– Google I/O 2012公式アプリに採用されている
ので、デファクトスタンダード化
– アグリノート、ラーメンバトル両方に採用
• android-menudrawer
– https://github.com/SimonVT/android-menudrawer
– ラーメンバトルアプリに試験採用
- 57. スライドが公開されてます
• XMLがわからなくても聞ける編(入門):全4回
– 第1回:導入と9-patch編
• http://www.slideshare.net/toooommmmmmmmy/1androidtips
– 第2回:より凝ったグラフィック編
• http://www.slideshare.net/toooommmmmmmmy/2androidtips
– 第3回:全力でカスタムUI
• http://www.slideshare.net/toooommmmmmmmy/2androidtips-14596126
– 第4回:レイアウト編
• http://www.slideshare.net/toooommmmmmmmy/4androidtips-14883482
デザインを気にしたいアプリ開発者は必読!
- 58. リソース振り分けは自動に任せる
• drawable:画像など
– ピクセルの大きさ次第
• layout:レイアウト
– サイズ, 縦横
– dp/dip
→Density Independent Pixel
→現実の大きさを優先する単位
– values
• 文字列とか
言語コード入れると
多言語対応が自動
• style(CSS的な)
- 59. 参考書籍
• http://amzn.to/TA6H9x
• これからの時代のUI
の組み合わせ方とか
• カスタムUIの作り方
とか
- 62. これ読んでください
• http://amzn.to/QbAhmq
• 数少ないセキュリティ本
• どんなセキュリティホールを
作ってしまいやすいか
• どんなリスクがあって、どん
な回避をすればよいか(もし
くは回避できないことを考慮
しなければならないか)
• みたいなことが書いてありま
す。
- 64. パーミッション:アグリノートアプリの場合
• 完全なインターネッ
トアクセス
– クライアントですし
• ストレージ
– 写真機能
• 現在地
– 現在地機能
_人人人人_
> 健全 <
 ̄^Y^Y^Y^ ̄
- 65. パーミッション:某音楽アプリの場合
• Gmailの読み取り
• 完全なインターネットアク
セス
• 機密ログデータの読み取り
• 端末のステータスとIDの読
み取り
• USB ストレージのコンテン
ツの変更/削除、SD カード
のコンテンツの変更/削除
• 実行中のアプリの取得
• システム全般設定の変更
• etc.
- 66. / //////////////////////////ヽ
//////////////////////////////ヘ
有
///////////////////// ̄ ̄⌒ヽ//ヘ
//,─────---ー''''⌒ /⌒ヽ ゝ//|
/ ─―- 、 / /三三\//| ギ
l /⌒ヽ、'ー 、__/三/⌒ヽノ//| ル
ヽ/ ヘ三ニ`'''--| ヽ三三三i|====ゝミミ
テ
/|
./〈 ̄
ヽ `ー──= /
│
\三三/
o ̄ヽ≡.
/
\{. o __ノ.
ヽ ̄ ̄´
| ⌒. -.、
.| .\
.|
|
|
|
罪 ィ
・
ミヘ / / ヽ、_| ` .|
',ミヘ. / i/ヽ. ,ノ二 |
. ',ミヘ / /
ソ',ミヘ _..^ミ^――ヽ、 ./
・
\.',ミ.| (ニニ ̄ ̄ ̄ ̄ / |
| ´\ /,⌒ヽ / /
.リ \、 ./ ゝ ` / /./
/| `'=、 ──- / /圭
・
iフ./.l、 `''────゛ /圭圭
圭圭ヽ_________/圭圭圭
圭圭圭圭圭/:::::: \圭圭圭圭圭圭ミ/
圭圭圭圭/::::::::::::::::::.\圭圭圭圭ミ/
!
圭圭圭/:::::::::::::::::::::::::::/'ヽ、.圭圭/
圭圭/ニヽ:::::::::::::::::: /圭圭\/
圭/`─/:::::::::::::::::::::|,圭圭圭
/圭圭/::::::::::::::::::::::::|圭圭/
圭圭ミ/:::::::::::::::::::::::::::|圭/ /
圭圭/:::::::::::::::::::::::::::::|/ /
- 74. ヘ
(^o^)ヘ いいぜ
|∧
/
/
(^o^)/ てめえ
が有料アプリで
/( ) 儲け
られるってなら
(^o^) 三 / />
\ (\\ 三
(/o^) < \三
(/
/ く まずはそのふざけた
- 75. 有料アプリのダウンロード実態
そもそもみんな
有料アプリなんて
ダウンロードすらしない
スマートフォンに関する調査 |ソフトバンク・ヒューマンキャピタル株式会社
(2011年3月)
- 76. 無料アプリのダウンロード実態
無料ならDLしてもらえる
可能性が微粒子レベルで
存在する・・・?
スマートフォンに関する調査 |ソフトバンク・ヒューマンキャピタル株式会社
(2011年3月)
- 78. 競争率とか最大数とか
• Google「Playストアのアプリ数が70万
本に到達しました」
– http://www.businessweek.com/news/2012-10-29/google-says-
700-000-applications-available-for-android-devices
• 2011年5月時点で日本で最も売れたアプリ
の本数
5000〜10000本×600円
– マーケットの現状 - 日本Androidの会 2011年5月定例会
– よくて420万円
– ちなみに5万本以上売れた有料アプリは世界で73本(2011年当時)
- 79. 有料アプリは諦めよう
• 無料アプリで広告収入狙い
– ぐんまのやぼう, なめこみたいな定期的に何
度も見るアプリがオススメ
• 受託
– アプリ自体は売れなくても問題ない
• メーカーやキャリアに近づいてプリイン
– 単価×出荷端末数とかでもらえるらしい
• 儲かるWebサービスのクライアント作る
– アグリノート ← イマココ!
- 85. Adobe AIR
• HTML, JS, Action Script
• iOS, Android, Blackberry
– PC上でも動作する
• AIRランタイム上で動作
• まだちょっと重いらしい
• CS5でも作れちゃう
- 87. Unity
• JS, C#, Lua, などなど
• iOS, Android, Xbox 360, PS3, PC
– ペケ箱で動く
=Windows Phoneでも動く
• Flashばりの至れり尽くせり環境
- 94. Corona SDK
• Lua
• iOS, Android
• OpenGLベース
• ビルドはサーバーで。
• APIはActionScript2ライク
– 一昔前のFlashからの移植性がすごい
- 98. 昨年 本出しました
• 電子書籍
• Corona SDKの入門本
• 達人出版会のサイト
からPayPalで購入で
きます
• http://bit.ly/CoronaNkz
n01
- 101. まとめ
• 公私混同しながらAndroid技術の勉強とアグリ
ノートアプリ製作を進めているのは、このスラ
イドのカオスっぷりを見ての通り(;´Д`)
• だんだんとAndroid界隈が広がりすぎて自分では
追いきれなくなってきてるので、誰か僕らの団
体にJOINして一緒にAndroid関連技術を追いか
けませんか。
– メーリングリストへの加入お待ちしております
– http://bit.ly/jagniigata