Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS + nginx + Node.js + Android ~Android アプリ開発...

AWS + nginx + Node.js + Android ~Android アプリ開発してみた~

『 JAWS-UG高知 第4回勉強会 - 微妙にネジが飛んでる活用術編 』 で発表した資料
https://jawsug-tosa.doorkeeper.jp/events/14063

Pine Mizune

August 23, 2014
Tweet

More Decks by Pine Mizune

Other Decks in Programming

Transcript

  1. 自己紹介 (1/3) - 概要 • 静岡県浜松市 出身 • 工業高校 情報技術科

    卒 • 高知工科大学 情報学群 • 趣味 – 麻雀、日本酒、アニメ
  2. 自己紹介 (2/3) - 何系の人 ? • PC アプリ系 – Web

    系 – ソーシャル系 – 雑食プログラマー • 好きな言語 – JavaScript (and TypeScript), C# • よく使う言語 – C/C++, PHP, Ruby, Python
  3. 自己紹介 (3/3) - クラウド系は ? • 利用経験 – Google Apps

    (SaaS) – Google App Engine (PaaS) [Python] – Heroku (PaaS) [JavaScript] – Amazon EC2 (IaaS) [VPN] • 利用してみたい – Dropbox Datastore API (SaaS)
  4. 目次 • Android アプリ開発 概要 • Android 側 プログラム •

    サーバー側 プログラム • サーバー • ベンチマーク – Heroku vs AWS EC2
  5. Android アプリ開発 概要 (1/4) • 作らないといけないもの – Android アプリ プログラム

    – Android アプリ デザイン – サーバーサイド プログラム • 場合による
  6. Android アプリ開発 概要 (2/4) • 必要な技術 – Android 側 …

    Java, C++, C#, JavaScript など • 今回: Java (最も一般的) – サーバー側 … PHP, Perl, Ruby, JavaScript など • 今回: JavaScript (Node.js)
  7. Android アプリ開発 概要 (3/4) • 必要な機材 – 開発用マシン (Windows or

    Mac) • iOS アプリの場合: Mac only – デバッグ用マシン (Android) • エミュレーターは遅いため必須 • 複数あったら嬉しい
  8. Android アプリ開発 概要 (4/4) • 必要なソフトウェア – Android Developer Tools

    (ADT) – Android Studio • 必要なお金 – 端末代 (持っていれば不要) – サーバー代 (場合による) – Google 開発者登録料 ($25) • Google Play に公開する際に必要
  9. Android 側 プログラム (1/3) • プログラミング言語: Java を採用 – Android

    標準 – (Android 問わず) 最も使われている – オブジェクト指向 – 静的型付け、硬派
  10. サーバー側 プログラム (2/4) • 選択肢は無限大 – Web サービス開発技術 流用可能 –

    得意な言語で • プログラミング言語: JavaScript を採用 – Java ≠ JavaScript – オーストラリアとオーストリアぐらい違う – サーバーサイド JavaScript (Node.js)
  11. サーバー側 プログラム (3/4) • サーバーサイド JavaScript (Node.js) – Google Chrome

    の JS エンジンを使用 (V8) – 低負荷, 低遅延, 高速 – ソーシャルゲームのサーバー向け • Node.js 単独でサーバーとして動作 – 実環境ではリバースプロキシを利用
  12. サーバー側 プログラム (4/4) • Node.js フレームワーク Sails.js – MVC フレームワーク

    • Ruby における Ruby on Rails • PHP における CakePHP • Python における Django – WebSocket が楽 • フレームワークレベルで組み込み – O/RM (Object-relational mapping) • 主要なものに対応: MySQL, PostgreSQL, MongoDB
  13. サーバー - 概要 (1/3) • Heroku (PaaS) – 独自の管理コマンド –

    デプロイが楽 (git push) – 無料~有料 – 自動スケーリング • AWS EC2 (IaaS) – nginx リバースプロキシ 構成可能
  14. ベンチマーク (1/2) • Heroku – 1X Standard Dynos • 512

    MB $0.05/dyno hour – Add-ons: MongoHQ Sandbox free – 無料枠内 • AWS EC2 – t2.micro – 12ヶ月無料体験枠内
  15. まとめ • Android 開発は面倒 – Web の技術を流用する手法もあり • Cordva /

    PhoneGap • 古い OS のサポートも面倒 – 旧 Ver は遅い, API (機能) が少ない, バグが多い – ターゲット層によって対象を絞る