24
ANDROID熱いトコ in スマートフォン勉強会@北海道 at 2011/3/12(sat) 大路 裕介(まいむぞう) 2011312日土曜日

Androidの熱いトコ

Embed Size (px)

DESCRIPTION

第8回 Android勉強会 in 札幌での講演内容です

Citation preview

Page 1: Androidの熱いトコ

ANDROIDの熱いトコ

in スマートフォン勉強会@北海道at 2011/3/12(sat)

大路 裕介(まいむぞう)

2011年3月12日土曜日

Page 2: Androidの熱いトコ

あばうと・みー札幌のWeb/スマートフォン系フリーランサーです。

元々Web系プログラマーです。サーバのセットアップからWebシステム開発まで一人で出来ます。

最近はAmazon EC2やGoogle App Engineなどのクラウド系技術やってます。今年はAndroidオンリーで飯食ってます。

日本Androidの会の北海道支部長をしています。でも、Androidオンリーと言うよりは、スマートフォン全体の未来が好きです。いつもはiPhone使ってます。

2011年3月12日土曜日

Page 3: Androidの熱いトコ

おしながき

日本Androidの会について

熱いトコ

2011年3月12日土曜日

Page 4: Androidの熱いトコ

日本Androidの会について

FrontPage - 日本Androidの会(日本アンドロイドの会)

日本Androidの会 | Google グループ

2011年3月12日土曜日

Page 5: Androidの熱いトコ

熱いトコ

熱いところっても、色々あるよね

•流行や技術的に熱い

•おれ様的に熱い

•ビジネス的に熱い

今回は「Androidへの接点の違い」的に熱いトコ

2011年3月12日土曜日

Page 6: Androidの熱いトコ

Androidビジネスの現状Androidの場合、マーケットでアプリを販売して十分な利益を得る事はまだまだ難しいので、受託開発が主な戦場となっている。

ただし、まだまだ過渡期であり、理屈的にはWebシステムで十分なものを、話題性の観点からアプリにするようなケースも目立つ。

良くも悪くもまだ過渡期。

2011年3月12日土曜日

Page 7: Androidの熱いトコ

接点

Androidをとりまく状況の変化や、Android自体の機能拡張により、ひとくくりに「Androidプログラマ」というよりは、Androidへの接点の違いにより以下の3つに分かれたように感じる。

• ネイティブアプリとしてのJavaを使うプログラマ層 → Java層

• ネイティブアプリとしてのC/C++を使うプログラマ層 → C/C++層

• ブラウザベースアプリとしてのJavaScriptを使うプログラマ層 → JavaScript層

2011年3月12日土曜日

Page 8: Androidの熱いトコ

Java層とは何なのか?

主にJavaを使ってAndroid SDKで用意されたAPIやビジュアル部品を使ってアプリを作る層

2011年3月12日土曜日

Page 9: Androidの熱いトコ

Java層の特徴

Android SDKやEclipse+ADTプラグインなど、豊富な開発ツールがあるので、開発やデバックが楽

Javaとしてのバックボーン、かつアプリ開発の本流であるため、将来において互換性が維持されやすい

AndroidのAPIが豊富。特にUI部品が豊富にあるので、見た目が良いものを比較的手間をかけずに作る事ができる。

Javaのオープンソースライブラリも結構使える

2011年3月12日土曜日

Page 10: Androidの熱いトコ

Java層の特徴Javaとしてのマルチスレッドやネットワーク関係の標準ライブラリが豊富

ブラウザベースと比べるとなんでもできるけど、それでも速度的な問題に陥りやすい。器用貧乏。GCとうまく付き合って行く必要がある。

Androidバブルに伴いプログラマの供給が足りない状況だが、そこそこ作れる人は結構居るため、バブルがはじけると受託開発においても価格競争が始まる見込み。

2011年3月12日土曜日

Page 11: Androidの熱いトコ

Java層の周辺事情

向くシステム

•一般的なアプリやツール類学習難易度

•JavaでGUIアプリ作れる人なら、2週間もあればベーシックなアプリ位は作れるはず

プログラマ人口

•市場的には足りないけど、そこそこ居る

2011年3月12日土曜日

Page 12: Androidの熱いトコ

Java層の未来

将来性

•Googleが次々に新しい技術を突っ込んでくれるので、ビジネスに繋がるかはともかく、面白そう

激アツ度

•今が一番アツイ? バブルなので。

いつまで食えますか?

•5年は食えると思うけど、コモディティ化して価格競争には巻き込まれそう

2011年3月12日土曜日

Page 13: Androidの熱いトコ

C/C++層とは何なのか?

主にC/C++とNDKを使ってイベント処理からボタン類まで全部自作してアプリを作る層

NDKとは、C/C++でコンパイルしたライブラリをJavaから使うための規格とツールのセットの事。

PHPからDLL上の関数を呼べるよーに相当。

2011年3月12日土曜日

Page 14: Androidの熱いトコ

C/C++層の特徴2.0以前はビットマップ処理など特殊用途が主だったが、2.0からOpenGLES2.0サポートによりゲーム用途として注目を浴び、2.3から本格的にゲーム向けに使われるようになってきた。

2.3からNativeActivityという機能が加わり、C/C++だけでアプリが作れるようになった。ただし、Javaの全機能が使えるわけではなく、基本機能のみ。

NDKを使う場合Cのソースレベルでの互換性は確保されるはずだが、バイナリはクロスコンパイルして全CPU分別々に持たせる方針であるため、将来に不安は残る(実際には今のところARMしか使われてない)

2011年3月12日土曜日

Page 15: Androidの熱いトコ

C/C++層の特徴実行速度は早いけど、C/C++のライブラリは弱いため、作るのは大変。特にデバック環境はJavaに比べて弱い。

C/C++のオープンソースライブラリは、Android向けにポーティング作業が必要になる事が多いが、有用なライブラリも多いため活発にポーティングされている。

OpenGLES2.0やOpenCLを使うためには必須

いわゆるITではなく、コンピュータでなければ実現できない「何か」を作るには、この層を極める必要がありそう。

2011年3月12日土曜日

Page 16: Androidの熱いトコ

C/C++層の周辺事情

向くシステム

•ゲームや3DCG、サウンドエフェクト、空間認識、解析、センサーを使うものなど、速度と効率が求められるものに向いている

学習難易度

•極めるには修行修行修行の連続(言語というより技術が大変)

プログラマ人口

•ゲーム会社以外にはほとんど居ない

2011年3月12日土曜日

Page 17: Androidの熱いトコ

C/C++層の未来将来性

•近い未来にゲーム屋さんが戦いに参加してくるのは確実。だか開発費と売上額的にウマイかは微妙。

•もしくは新技術を持つベンチャーの実験場激アツ度

•アプリを売って食えるかと言えば、まだ微妙いつまで食えますか?

•ここは豊かな土地ではない。北方の資源国と心得よ2011年3月12日土曜日

Page 18: Androidの熱いトコ

JavaScript層とは何なのか?

スマートフォン上のブラウザ上でHTMLとJavaScriptを使ってアプリを作る層。

Webシステムにおけるリッチクライアントと基本的に同じだが、スマートフォンではHTML5+CSS3が普及してきているので、PC向けAjaxサイトよりは、よりアプリらしいものを作る事ができる

ブラウザ上で動かす前提なら、ネットからコードを都度読み込んでも良いし、アプリとして用意しても良い。またAndroidに限定するものでもない。

2011年3月12日土曜日

Page 19: Androidの熱いトコ

JavaScript層の特徴Androidだけにとどまらず、iOSとの両対応や、PC向けブラウザを含めた対応も可能。(というよりもコレが主目的)

特にChrome Extensionとコア部分の共用ぐらいはできそう。Chromeの場合はChrome Web Storeを使ったマネタイズの道もある。

JavaScriptベースでAndroidとiOS両対応を謳ったミドルウェアというかフレームワーク類が盛んに開発されている。

基本的にHTML+JavaScriptとなるため、本格的な開発環境は存在せず、泥作業となりやすい。

2011年3月12日土曜日

Page 20: Androidの熱いトコ

JavaScript層の特徴

公式で有用な課金システムはまだ整備されておらず、マネタイズしづらい。

ただし、大手SNSなどのプラットフォームに対応する事で、ユーザの流入やマネタイズの道が開けるため、今後需要増が見込める。

SNS系の場合は独自フレームワークありきで作る事が前提となるため、どれが主役になるのかまだ予想がつかず、追うのも大変だし、ベンダロックインとなる可能性も。

2011年3月12日土曜日

Page 21: Androidの熱いトコ

JavaScript層の周辺事情向くシステム

•Webシステムの発展系としての情報提供系システムや、SNS系ゲームなど

学習難易度

•基本的にWeb技術+HTML5関連技術で作れるため、Web屋さんやFlash屋さんにとっては、学習自体は1週間位かも

プログラマ人口

•本格的にJavaScriptで巨大なシステムを書いた経験があるプログラマがごく少数なため、かじった人は多くても優秀な人材はほとんど居ない。

2011年3月12日土曜日

Page 22: Androidの熱いトコ

JavaScript層の未来

将来性

•冷静に考えるとリッチなWebベースの情報提供系アプリか、SNSゲームぐらいにしか使えない。だがSNSゲームの存在は大きい!

激アツ度

•直近では超激アツ! 巨大資本が投下に備えよ!

いつまで食えますか?

•ちょうどこの春から3年くらいは食えるかも

2011年3月12日土曜日

Page 23: Androidの熱いトコ

コンシューマ向けソフトウェアの分類

高い(特定用途向け)表現力

低い(IT向け)

ポータビリティ据え置き(高速ブロードバンド回線) モバイル(3G回線)

PC向けプログラム

サーバ上で稼働するWebベースプログラム

(従来型/Ajax/Flash)

端末上のブラウザで動くJavaScriptベースのプログラム

Android SDK/Android NDK/iOSネイティブ

プログラム

おまけ

2011年3月12日土曜日

Page 24: Androidの熱いトコ

おしまい

ご静聴ありがとうございます。

続きはフリータイムで!

2011年3月12日土曜日