AWS + nginx + Node.js + Android ~ Android アプリ開発してみた~ 高知工科大学 情報学群 4 年 松下 和生
自己紹介
自己紹介 (1/3) - 概要 静岡県浜松市 出身 工業高校 情報技術科 卒 高知工科大学 情報学群 趣味 – 麻雀、日本酒、アニメ
自己紹介 (2/3) - 何系の人 ? PC アプリ系 – Web 系 – ソーシャル系 – 雑食プログラマー 好きな言語 – JavaScript (and TypeScript), C# よく使う言語 – C/C++, PHP, Ruby, Python
自己紹介 (3/3) - クラウド系は ? 利用経験 – Google Apps (SaaS) – Google App Engine (PaaS) [Python] – Heroku (PaaS) [JavaScript] – Amazon EC2 (IaaS) [VPN] 利用してみたい – Dropbox Datastore API (SaaS)
つくったもの
技術的な話
目次 Android アプリ開発 概要 Android 側 プログラム サーバー側 プログラム サーバー ベンチマーク – Heroku vs AWS EC2
Android アプリ開発 概要 (1/4) 作らないといけないもの – Android アプリ プログラム – Android アプリ デザイン – サーバーサイド プログラム 場合による
Android アプリ開発 概要 (2/4) 必要な技術 – Android 側 … Java, C++, C#, JavaScript など 今回 : Java ( 最も一般的 ) – サーバー側 … PHP, Perl, Ruby, JavaScript など 今回 : JavaScript (Node.js)
Android アプリ開発 概要 (3/4) 必要な機材 – 開発用マシン (Windows or Mac) iOS アプリの場合 : Mac only – デバッグ用マシン (Android) エミュレーターは遅いため必須 複数あったら嬉しい
Android アプリ開発 概要 (4/4) 必要なソフトウェア – Android Developer Tools (ADT) – Android Studio 必要なお金 – 端末代 ( 持っていれば不要 ) – サーバー代 ( 場合による ) – Google 開発者登録料 ($25) Google Play に公開する際に必要
Android 側 プログラム (1/3) プログラミング言語 : Java を採用 – Android 標準 – (Android 問わず ) 最も使われている – オブジェクト指向 – 静的型付け、硬派
Android 側 プログラム (2/3) Android Developer Tools
Android 側 プログラム (3/3) Android のバージョンに注意 Android 4.x 以前 14.3 %
サーバー側 プログラム (1/4) クライアントとサーバー側の連携図 Android 端末 サーバー Web ページ スクレイピン グ Web ページを解析 データベースに保存
サーバー側 プログラム (2/4) 選択肢は無限大 – Web サービス開発技術 流用可能 – 得意な言語で プログラミング言語 : JavaScript を採用 – Java ≠ JavaScript – オーストラリアとオーストリアぐらい違う – サーバーサイド JavaScript (Node.js)
サーバー側 プログラム (3/4) サーバーサイド JavaScript (Node.js) – Google Chrome の JS エンジンを使用 (V8) – 低負荷, 低遅延, 高速 – ソーシャルゲームのサーバー向け Node.js 単独でサーバーとして動作 – 実環境ではリバースプロキシを利用
サーバー側 プログラム (4/4) Node.js フレームワーク Sails.js – MVC フレームワーク Ruby における Ruby on Rails PHP における CakePHP Python における Django – WebSocket が楽 フレームワークレベルで組み込み – O/RM (Object-relational mapping) 主要なものに対応 : MySQL, PostgreSQL, MongoDB
サーバー - 概要 (1/3) Heroku (PaaS) – 独自の管理コマンド – デプロイが楽 (git push) – 無料~有料 – 自動スケーリング AWS EC2 (IaaS) – nginx リバースプロキシ 構成可能
サーバー - nginx (2/3) 高速・軽量 静的ファイル配信 リバースプロキシ
サーバー - nginx (3/3)
ベンチマーク (1/2) Heroku – 1X Standard Dynos 512 MB $0.05/dyno hour – Add-ons: MongoHQ Sandbox free – 無料枠内 AWS EC2 – t2.micro – 12 ヶ月無料体験枠内
ベンチマーク (2/2) ※ 6 ヶ国のロード時間の平均
まとめ
Android 開発は面倒 – Web の技術を流用する手法もあり Cordva / PhoneGap 古い OS のサポートも面倒 – 旧 Ver は遅い, API ( 機能 ) が少ない, バグが多い – ターゲット層によって対象を絞る
参考文献 InternetSupervision 高速・軽量・高機能 ……Nginx の基礎知識 (1/2) Dashboards | Android Developers
PRESENTATION NAME Company Name
Title Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus et magna. Fusce sed sem sed magna suscipit egestas.
Title Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus et magna. Fusce sed sem sed magna suscipit egestas.
Title Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus et magna. Fusce sed sem sed magna suscipit egestas.