Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS + nginx + Node.js + Android ~Android アプリ開発...
Search
Pine Mizune
August 23, 2014
Programming
0
520
AWS + nginx + Node.js + Android ~Android アプリ開発してみた~
『 JAWS-UG高知 第4回勉強会 - 微妙にネジが飛んでる活用術編 』 で発表した資料
https://jawsug-tosa.doorkeeper.jp/events/14063
Pine Mizune
August 23, 2014
Tweet
Share
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
850
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
1.9k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
680
Lerna による明示的疎結合アーキテクチャ
pine
1
660
CircleCI 2.0 x JavaScript
pine
3
560
Perl 卒業式
pine
0
360
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
510
Emoji Generator meets Browser Extensions
pine
1
3k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
Architectural Extensions
denyspoltorak
0
300
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
Basic Architectures
denyspoltorak
0
680
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
980
Raku Raku Notion 20260128
hareyakayuruyaka
0
340
Package Management Learnings from Homebrew
mikemcquaid
0
230
CSC307 Lecture 04
javiergs
PRO
0
660
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.5k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
71
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
Side Projects
sachag
455
43k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
56
KATA
mclloyd
PRO
34
15k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
The agentic SEO stack - context over prompts
schlessera
0
640
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
How to train your dragon (web standard)
notwaldorf
97
6.5k
Transcript
AWS + nginx + Node.js + Android ~Android アプリ開発してみた~ 水音
氷音
自己紹介
自己紹介 (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ヶ国のロード時間の平均 http://internetsupervision.com 0.00 0.10 0.20 0.30 0.40
0.50 0.60 0.70 0.80 0.90 Heroku AWS EC2 ベンチマーク結果
まとめ
まとめ • Android 開発は面倒 – Web の技術を流用する手法もあり • Cordva /
PhoneGap • 古い OS のサポートも面倒 – 旧 Ver は遅い, API (機能) が少ない, バグが多い – ターゲット層によって対象を絞る
参考文献 • InternetSupervision http://internetsupervision.com/ • 高速・軽量・高機能……Nginxの基礎知識 (1/2) http://www.atmarkit.co.jp/ait/articles/1406/17/news013.html • Dashboards
| Android Developers http://developer.android.com/about/dashboards/index.html