SlideShare uma empresa Scribd logo
1 de 33
iPhoneしかしらない残念な君に
Androidというものを教えてやろ
う
小林 拓
目次
• Androidのお話
• マーケットのお話
• UIのお話
• 技術的なお話(ちょっとだけ)
小林 拓
• 1987年2月13日生まれ(26歳)
• 株式会社ゲームポット
• エンジニア(SE)
• 普段はRuby on Railsでソシャゲ作ってます
• 最近はjavascriptメイン
• 主にRails↑ , javascript , java(Android) , PHP(他)
• サーバーもフロントもネイティブも何でもで
きます
• Twitter : http://twitter.com/taptappun
• Facebook :
http://www.facebook.com/taku.kobayashi.560
宣伝
• ガーディアンスピリッツ(Mobage)
• http://g12014123.sp.pf.mbga.jp/
プライベート
• PNGCamera(Androidアプリ)
• https://play.google.com/store/apps/details?d=co
m.taku.kobayashi.pngcamera
• Github :
https://github.com/TakuKobayashi/PNGCamera
Androidとは
• Android(アンドロイド)とは、Googleに
よってスマートフォンやタブレットなど
の携帯情報端末を主なターゲットとして
開発されたプラットフォームである。
(Wikipediaより)
Androidの評判
• iPhoneだと綺麗になるのにAndroidだとUI
が崩れる
• iPhoneだと動くのにAndroidだと動かない
• Javaできるの?じゃあ、Androidもできるよ
ね? 何だダメじゃないか…
• Androidクソだな…
それはお前らが
Androidというものを
知らないからだ!!!!
比較
Android iPhone
マーケット Google Play APP Store
登録料 $25.00 (初回のみ) 8,400 円(年間)
審査 なし あり
開発環境 Mac,Windows 他(Eclipse推奨) Macのみ(Xcodeが必須)
開発言語
(Native)
Java , (C , C++ -> NDK) Objective-C
比較
Android iPhone
端末製造
メーカー
サムスン、ソニー、カシオ、東
芝富士通、パナソニック、
シャープetc
Appleのみ
解像度 端末によってバラバラ iPhone4Sまで 縦横比=3:2
iPhone5以降縦横比=16:9
SDK ほぼオープン ほぼクローズド
制約 特になし ブラウザ:Safari固定
カメラ:カメラ固定 他
開発制約 対応端末のバージョンによって
変更可能
Xcodeは常に最新バージョン
でないとダメ
端末バージョ
ンアップデー
ト
リファレンス機のみ可能 どの端末でも可能(ただし半
ば強制)
リファレンス機
Galaxy Nexus
・Nexusという名のつくものはAndroidのリファレンス機
双方の思想のまとめ
• iPhone
• Android
・やりたいことはすべて用意してやる。その代わ
り他のは使うな
・一つで十分、他はいらない
・いろんな端末、いろんなアプリでも使えるよ
・やりたいことあるの、じゃあ好きにやって
マーケットのお話
端末シェア
http://getnews.jp/archives/340136
世界中の端末シェア
AndroidのOSのバージョン別シェ
ア
Wikipediaより
アプリのマーケットシェア
http://itpro.nikkeibp.co.jp/article/NEWS/20130530/480729/
世界のApp StoreとGoogle Playの売り上げの割合
アプリのマーケットシェア
http://www.lasic
al.com/2013/04/
17/33839/
アプリのダウンロード数の割合
http://www.lasic
al.com/2013/04/
17/33839/
国別アプリ売り上げシェア
http://gori.me/mobil
e/23698
日本のマーケット売り上げ比は約
App Store : Google Play = 57% : 43%
ゲームの売り上げ割合
http://sg.fin
ance.yahoo.
com/news/
us-japan-
korea-drive-
80-
103840812.
html
※アメリ
カのiOS
の売り上
げを100%
と置いて
いる
UIのお話
端末比較
電源ボタン
音量ボタン
ホームボタン
バックボタ
ン
AndroidのUIについて
iPhoneの場合Androidの場合
いらない
Pixel指定し
ても崩れな
い
Pixel指定すると端
末によっては崩れ
る
• アニメーション
Androidの依頼時に気をつけるこ
と
実演
絶対にアニメーションを
iPhoneに合わせてはダメ
Androidの依頼時に気をつけるこ
と
これだけを実装するの1
カ月かかります!!
不明なバグを生む可能性
も極めて高いです。それ
でもやりますか?
技術的なお話(ちょっとだけ)
Activity
• Androidの基本Activity
• Activityのライフサイ
クルを表しているの
が右図
• アプリを起動させる
と真っ先に呼ばれる
もの
知らない内に勝手に起動
している、怪しいアプリ
を作りたい時は別だけど
ね
Activity
• onCreate
• onStart
• onResume
• onPause
• onStop
• onDestroy
イメージ
Activity
Activity Activity
スタッ
ク
finish();アプリを起動!!
または
startActivity();
メモリが足りなく
なるとDalvikとい
うVMが殺します
挙動
バックボタン押し
た時
onCreate
↓
onStart
↓
onResume
↓
実行
Activity起動
onPause
↓
onStop
↓
onDestroy
ホームボタン押し
て再度アプリ起動
onPause
↓
onStop
再起動
↓
onRestart
↓
onStart
↓
onResume
↓
実行
電源ボタン押してス
リープ⇒スリープ解
除
onPause スリープ解
除
↓
onResume
↓
実行
別のActivity起動
⇒戻ってくる
onPause 戻る
↓
onResume
↓
実行
よくある質問
Javaだからメモリ管理しなくてもいいんだよ
ね?
(VMが勝手にメモリ開放してくれるんだよ
ね?)
いいえちゃんとメモリ管理しないとダメで
す。(OutOfMemoryErrorなるエラーが発生し
ます)
⇒ Dalvikは気紛れなんで、いつ動いてくれる
かわからない。なので、こちらでちゃんと
メモリを消す必要あり。
メモリ開放の仕方
webview.stopLoading();
webview.setWebChromeClient(null);
webview.setWebViewClient(null);
webview.destroy();
webview = null;
BitmapDrawable bitmapDrawable = (BitmapDrawable)(imageView.getDrawable());
if (bitmapDrawable != null) {
bitmapDrawable.setCallback(null);
}
imageView.setImageBitmap(null);
bitmap.recycle();
bitmap = null;
・ WebViewの場合
・ ImageViewの場合
・ Bitmapの場合
大体はActivityのonDestroyの
中で実行
ちょっとした自慢
実演
Androidアプリ開発しようぜ!

Mais conteúdo relacionado

Mais procurados

Tukkomimura #twtr_hack
Tukkomimura #twtr_hackTukkomimura #twtr_hack
Tukkomimura #twtr_hack
Eiji Yokota
 
Flask入門
Flask入門Flask入門
Flask入門
aoshiman
 

Mais procurados (20)

Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
 
多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える
 
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
 
30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム30億のデバイスで走るjavaを支えるjavaエコシステム
30億のデバイスで走るjavaを支えるjavaエコシステム
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
モックアップ共有のススメ
モックアップ共有のススメモックアップ共有のススメ
モックアップ共有のススメ
 
Mijikana RPA
Mijikana RPAMijikana RPA
Mijikana RPA
 
みんな!わちゃわちゃしようぜ!UiPathわちゃわちゃ会inOsaka活動報告
みんな!わちゃわちゃしようぜ!UiPathわちゃわちゃ会inOsaka活動報告みんな!わちゃわちゃしようぜ!UiPathわちゃわちゃ会inOsaka活動報告
みんな!わちゃわちゃしようぜ!UiPathわちゃわちゃ会inOsaka活動報告
 
Router module in VIPER Architecture
Router module in VIPER ArchitectureRouter module in VIPER Architecture
Router module in VIPER Architecture
 
Gitとローカル環境
Gitとローカル環境Gitとローカル環境
Gitとローカル環境
 
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtipsLaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
 
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
 
サイタマッパー活動報告2015
サイタマッパー活動報告2015サイタマッパー活動報告2015
サイタマッパー活動報告2015
 
Tukkomimura #twtr_hack
Tukkomimura #twtr_hackTukkomimura #twtr_hack
Tukkomimura #twtr_hack
 
はじめてのブログ論 Ver臼杵
はじめてのブログ論 Ver臼杵はじめてのブログ論 Ver臼杵
はじめてのブログ論 Ver臼杵
 
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
 
Little tips ios
Little tips iosLittle tips ios
Little tips ios
 
YouTube APIの紹介
YouTube APIの紹介YouTube APIの紹介
YouTube APIの紹介
 
Flask入門
Flask入門Flask入門
Flask入門
 

Destaque

My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2
拓 小林
 
Ue4でandroidビルド ...できなかった...
Ue4でandroidビルド ...できなかった...Ue4でandroidビルド ...できなかった...
Ue4でandroidビルド ...できなかった...
拓 小林
 

Destaque (9)

声貯
声貯声貯
声貯
 
諸注意とご連絡
諸注意とご連絡諸注意とご連絡
諸注意とご連絡
 
バーチャルジャイアンツプレゼン
バーチャルジャイアンツプレゼンバーチャルジャイアンツプレゼン
バーチャルジャイアンツプレゼン
 
Care farm
Care farmCare farm
Care farm
 
UE4よちよち勉強会オリエンテーション資料
UE4よちよち勉強会オリエンテーション資料UE4よちよち勉強会オリエンテーション資料
UE4よちよち勉強会オリエンテーション資料
 
My sqlで遭遇したトランザクションとロックのお話
My sqlで遭遇したトランザクションとロックのお話My sqlで遭遇したトランザクションとロックのお話
My sqlで遭遇したトランザクションとロックのお話
 
My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2My sqlで遭遇したトランザクションとロックのお話take2 2
My sqlで遭遇したトランザクションとロックのお話take2 2
 
3d入門
3d入門3d入門
3d入門
 
Ue4でandroidビルド ...できなかった...
Ue4でandroidビルド ...できなかった...Ue4でandroidビルド ...できなかった...
Ue4でandroidビルド ...できなかった...
 

Semelhante a ゆとりエンジニア交流会_20130706

20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
ytanno
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
 

Semelhante a ゆとりエンジニア交流会_20130706 (20)

20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
サイバーエージェントのゲーム事業のインフラからみたゲーム開発スタイルの変遷
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
 
Inside Android N
Inside Android NInside Android N
Inside Android N
 
Autowareの紹介と物体検出
Autowareの紹介と物体検出Autowareの紹介と物体検出
Autowareの紹介と物体検出
 
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
 
ラジコンがネットと出会ったら
ラジコンがネットと出会ったらラジコンがネットと出会ったら
ラジコンがネットと出会ったら
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
Rails環境に最適なVue.js構成を探る
 Rails環境に最適なVue.js構成を探る Rails環境に最適なVue.js構成を探る
Rails環境に最適なVue.js構成を探る
 
WebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカードWebARで作るDukeが飛び出すカード
WebARで作るDukeが飛び出すカード
 
Inside CyberAgent's Game Development
Inside CyberAgent's Game DevelopmentInside CyberAgent's Game Development
Inside CyberAgent's Game Development
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 
ソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツールソーシャルゲーム開発における運用とそのツール
ソーシャルゲーム開発における運用とそのツール
 
セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介セガサターンマシン語プログラミングの紹介
セガサターンマシン語プログラミングの紹介
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
Storyboard
StoryboardStoryboard
Storyboard
 

Último

Último (6)

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 

ゆとりエンジニア交流会_20130706