More Related Content
PDF
私がMuninに恋する理由 - インフラエンジニアでも監視がしたい! - PDF
PDF
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER PDF
Bloodstainedで世界のバッカーの期待に応えたUE4事例紹介 PDF
CloudStackをMuninで監視・序 ~リソースをAPI経由で監視してみる話~ PDF
PDF
20150715 kintone Café 大阪 Vol.3 カスタマイズハンズオン PDF
appengine ja night #25 Google App Engine for PHP Viewers also liked
PDF
PDF
How to Become a Thought Leader in Your Niche PDF
UX, ethnography and possibilities: for Libraries, Museums and Archives PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017 PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜 PDF
appengine ja night #24 Google Cloud Endpoints and BigQuery PDF
PDF
PDF
YAPC::Tokyo 2013 ritou OpenID Connect PDF
appengine ja night #25 Google App Engine for PHP (English) PDF
Designing Teams for Emerging Challenges PDF
Report of Google I/O 2013 Google Cloud Platform PDF
【18-C-4】Google App Engine - 無限の彼方へ PDF
appengine ja night #24 Google Cloud Endpoints and BigQuery (English) Similar to ぼくのかんがえたふつうのあんどろいどかいはつ
PDF
モテる! Node.js でつくる twitter ボット制作 PDF
Muninは舞い降りた ~リソース監視を通して、運用現場を変える話~ PDF
PDF
ガイドラインからみたアプリUI〜iPhone用とAndroid用〜 PDF
PDF
ODP
PDF
Eucalyptus 3.1 and next in #occpv PDF
Practical Android scripting with Ruby PPTX
PDF
Android Lecture #01 @PRO&BSC Inc. PPTX
Archive: Android アプリ開発入門(2015/6/19 社内勉強会) PDF
PPT
PDF
Realtime event-driven monitoring system with CEP PDF
PDF
TIZEN OS for smartphone Kickstart application development / はじめて学ぶアプリ開発入門 PDF
PDF
モバイルアプリ開発体験ハンズオンAndroid 編 PDF
【子ども向けハンズオン】 ゲームで学ぼう、プログラミング! More from Yukiya Nakagawa
PDF
Atomic Designは「マルチ」で真価を発揮する PDF
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi PPTX
PDF
アグリノートにおけるGIS情報を活かした圃場・作付管理の取り組み @ FOSS4GJ PPTX
Androidで使えるJSON-Javaライブラリ PDF
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup PDF
Android再入門 〜Eclipseのことは忘れろ〜 PDF
PPTX
Coworking Business Forum in NIIGATA 2013 PDF
React Nativeアプリをリリースし続けるために、最初に行う8つの取り組み PDF
Androidの入門書を書いたときに気にしたこと #NDS57 PPTX
PDF
もう一度Kotlinの話をしよう #ndsmeetup4 PDF
PPTX
PDF
React Native Androidはなぜ動くのか PPTX
PechaKucha Niigata #3 2013.7.27 PDF
PDF
CSS in JSの話 #friday13json PDF
ぼくのかんがえたふつうのあんどろいどかいはつ
- 1.
- 2.
自己紹介
• 中川幸哉 • 経歴
– @Nkzn / なかざん – 〜2010年
• 会津大学
– 0x19歳
• 株式会社GClue
– 上越市出身 – 2010年〜
– 新潟市在住 • JCCソフト株式会社 PG
– 日本Androidの会 • コミュニティ活動開始
新潟支部 支部長 – 2011年秋〜
– ウォーターセル株式会社 • ウォーターセル株式会社
取り締まられ役 • アグリノート
– アグリノートforAndroid開
発担当
- 3.
- 4.
- 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とは
• いろんな「ふつう」を見てみよう
– プログラミングの「ふつう」
「凄い人にしかできないこ
– デザインの「ふつう」 と」は話さないよ
– セキュリティの「ふつう」
– 収益化の「ふつう」
• おまけ:アプリをトコトン簡単に作る普通じゃない方法
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
Androidとは
• 米Google社が中心となって作ったOpen
Handset Alliance (OHA)という組織が管理してい
るモバイルデバイス向けプラットフォーム。
• Webフレームワークっぽい開発環境で、Javaで
携帯電話向けアプリが作れる
• OSSな組み込みプラットフォームなのでいろん
なところに入れられる→電子レンジとか
• OS扱いされることが多いけど、厳密にはOS
じゃないよ!
- 16.
自作アプリ
アプリケーションフレームワーク:
アプリケーションへ様々な機能を提供するクラス群
NDK SDK
ランタイム環境:
DalvikVMと
C++ライブラリ群:高速動作や、ハードウェア
各種JavaSE6準拠ライブラリ
操作を求められる機能のライブラリ
Linuxカーネル:↑のスタックとハードウェアの仲立ちをする
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
実際大事。
• 一日中農作業をして疲れて帰ってきた農
家さんの中には、パソコンの電源を入れ
ること自体がストレスになる(≒だんだん
と記録をつけなくなる)人が普通にいる
• なら現場で作業が終わった時に直接入力
してもらえばいいじゃん?という発想
– 自宅で一気に作業すると大変だけれど、圃場
1つ分の作業を付ける分にはそこまで苦では
ない(はず)
- 26.
- 27.
一番大事にしていること
• できるだけ色んな端末で動くこと
–アグリノートそのものは限りなくBtoCなサー
ビス
– 農家さんが使う端末をこちらから制限するこ
とはできるだけ避けたい
– そもそも制限をかけられるほどの検証端末を
用意できる財政ではない
• 検証端末を10機種程度に減らす方法はあるらしい
Androidにおけるテストに関して〜デバイスをどう選択するか〜
- 28.
色んな端末で動かすために
• ドキュメントやリファレンスを読んで、
JavaAPIの正しい使い方を守る
• ドキュメントを読んで、リソースファイルの
正しい用意の仕方、振り分け方を守る
• ドキュメントやサンプルでサポートされてい
るカスタムUI作りの仕組みを使う
• 充分に効用やリスクが検証されていない黒魔
術は避ける
• etc.
- 29.
- 30.
今日は
この1年間の
アプリ開発で培った
「ふつう」の話をします
- 31.
- 32.
- 33.
- 34.
Androidプログラミング
• とりあえず今回はJavaの話で。
–本当はC++でも画面作れる
• イベント駆動モデルのフレームワーク
– 適切なクラスやインターフェースをextendsし
たりimplementsしながら@Overrideメソッド
を実装していけばOK
• レイアウトや各種リソースは原則XMLで
管理(しなくてもいいけどやったほうが
管理しやすくて楽)
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
非同期処理が必要な理由
• AndroidのUIはシングルスレッドモデル
–ボタンの場合、「ボタンが凹むエフェクトを描
画」「onClickを呼び出す」「ボタンが戻るエ
フェクトを描画」がシステム側の一連の動作とし
て呼び出される
– onClick内に重い操作(ネットワーク接続とか)
を書くと、ボタンが数瞬戻ってこないなどの問題
が起こり、ユーザーが気持ちの悪い思いをする
– かといって別のThreadを立ててそこからUIオブ
ジェクトを触るとエラーになる
• UIの操作をロックせず、かつ処理を行う仕組
みが必要
- 43.
非同期処理の仕組み
• 大きく分けて2種類
–UIスレッドの処理キューに処理を依頼だけし
て、UIが暇な時に処理してもらう
• Handlerクラス
• 結局UIスレッドが処理するのであまりオススメし
ない
– タイミングはAndroid側に完全に任せる形で別
スレッドを作成する
• AsyncTaskクラス:途中経過を通知してくれる
• AsyncTaskLoaderクラス:データロード中心
- 44.
- 45.
- 46.
Intentの例
• 明示的インテント
–「Activity1からActivity2へ遷移したい」とい
うメッセージをAndroid側に渡すと画面遷移が
発生する(アプリを跨いでもOK)
– 「写真を撮影してほしい」というメッセージ
をカメラアプリに渡すと、写真を撮影した上
で撮影済みの画像のパスを返してくれる
• 暗黙的インテント
– 「誰か画像を扱えるアプリいませんか」
- 47.
- 48.
Fragment
• Android 3.0から追加された、(主に)画
面の分割と再利用を目的としたコンポー
ネント
• 画面を持ち、Activityに配置されるが、特
定のActivityに依存しない(下手な作り方
をすると密結合する)
• Activityとほぼ同じイベントハンドラを持
つため、各種ボタン類などの初期化など
もFragment内だけで行うことができる
- 49.
スマホ版
MenuFragment BrowserFragment
遷移
MenuActivity BrowserActiviity
2012/11/2
- 50.
タブレット版
MenuFragment BrowserFragment
BrowserActiviity
2012/11/2
- 51.
- 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
– ラーメンバトルアプリに試験採用
- 54.
- 55.
- 56.
- 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の作り方
とか
- 60.
- 61.
- 62.
これ読んでください
• http://amzn.to/QbAhmq
• 数少ないセキュリティ本
• どんなセキュリティホールを
作ってしまいやすいか
• どんなリスクがあって、どん
な回避をすればよいか(もし
くは回避できないことを考慮
しなければならないか)
• みたいなことが書いてありま
す。
- 63.
- 64.
パーミッション:アグリノートアプリの場合
• 完全なインターネッ
トアクセス
– クライアントですし
• ストレージ
– 写真機能
• 現在地
– 現在地機能
_人人人人_
> 健全 <
 ̄^Y^Y^Y^ ̄
- 65.
パーミッション:某音楽アプリの場合
• Gmailの読み取り
• 完全なインターネットアク
セス
• 機密ログデータの読み取り
• 端末のステータスとIDの読
み取り
• USB ストレージのコンテン
ツの変更/削除、SD カード
のコンテンツの変更/削除
• 実行中のアプリの取得
• システム全般設定の変更
• etc.
- 66.
/ //////////////////////////ヽ
//////////////////////////////ヘ
有
///////////////////// ̄ ̄⌒ヽ//ヘ
//,─────---ー''''⌒ /⌒ヽ ゝ//|
/ ─―- 、 / /三三\//| ギ
l /⌒ヽ、'ー 、__/三/⌒ヽノ//| ル
ヽ/ ヘ三ニ`'''--| ヽ三三三i|====ゝミミ
テ
/|
./〈 ̄
ヽ `ー──= /
│
\三三/
o ̄ヽ≡.
/
\{. o __ノ.
ヽ ̄ ̄´
| ⌒. -.、
.| .\
.|
|
|
|
罪 ィ
・
ミヘ / / ヽ、_| ` .|
',ミヘ. / i/ヽ. ,ノ二 |
. ',ミヘ / /
ソ',ミヘ _..^ミ^――ヽ、 ./
・
\.',ミ.| (ニニ ̄ ̄ ̄ ̄ / |
| ´\ /,⌒ヽ / /
.リ \、 ./ ゝ ` / /./
/| `'=、 ──- / /圭
・
iフ./.l、 `''────゛ /圭圭
圭圭ヽ_________/圭圭圭
圭圭圭圭圭/:::::: \圭圭圭圭圭圭ミ/
圭圭圭圭/::::::::::::::::::.\圭圭圭圭ミ/
!
圭圭圭/:::::::::::::::::::::::::::/'ヽ、.圭圭/
圭圭/ニヽ:::::::::::::::::: /圭圭\/
圭/`─/:::::::::::::::::::::|,圭圭圭
/圭圭/::::::::::::::::::::::::|圭圭/
圭圭ミ/:::::::::::::::::::::::::::|圭/ /
圭圭/:::::::::::::::::::::::::::::|/ /
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
ヘ
(^o^)ヘ いいぜ
|∧
/
/
(^o^)/ てめえ
が有料アプリで
/( ) 儲け
られるってなら
(^o^) 三 / />
\ (\\ 三
(/o^) < \三
(/
/ く まずはそのふざけた
- 75.
有料アプリのダウンロード実態
そもそもみんな
有料アプリなんて
ダウンロードすらしない
スマートフォンに関する調査 |ソフトバンク・ヒューマンキャピタル株式会社
(2011年3月)
- 76.
無料アプリのダウンロード実態
無料ならDLしてもらえる
可能性が微粒子レベルで
存在する・・・?
スマートフォンに関する調査 |ソフトバンク・ヒューマンキャピタル株式会社
(2011年3月)
- 77.
- 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サービスのクライアント作る
– アグリノート ← イマココ!
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
Adobe AIR
• HTML,JS, Action Script
• iOS, Android, Blackberry
– PC上でも動作する
• AIRランタイム上で動作
• まだちょっと重いらしい
• CS5でも作れちゃう
- 86.
- 87.
Unity
• JS, C#,Lua, などなど
• iOS, Android, Xbox 360, PS3, PC
– ペケ箱で動く
=Windows Phoneでも動く
• Flashばりの至れり尽くせり環境
- 89.
- 90.
- 91.
- 93.
- 94.
Corona SDK
• Lua
• iOS, Android
• OpenGLベース
• ビルドはサーバーで。
• APIはActionScript2ライク
– 一昔前のFlashからの移植性がすごい
- 95.
- 96.
- 97.
- 98.
昨年 本出しました
• 電子書籍
• Corona SDKの入門本
• 達人出版会のサイト
からPayPalで購入で
きます
• http://bit.ly/CoronaNkz
n01
- 99.
- 100.
- 101.
まとめ
• 公私混同しながらAndroid技術の勉強とアグリ
ノートアプリ製作を進めているのは、このスラ
イドのカオスっぷりを見ての通り(;´Д`)
• だんだんとAndroid界隈が広がりすぎて自分では
追いきれなくなってきてるので、誰か僕らの団
体にJOINして一緒にAndroid関連技術を追いか
けませんか。
– メーリングリストへの加入お待ちしております
– http://bit.ly/jagniigata
- 102.