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
810
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
1.8k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
670
Lerna による明示的疎結合アーキテクチャ
pine
1
640
CircleCI 2.0 x JavaScript
pine
3
550
Perl 卒業式
pine
0
340
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
500
Emoji Generator meets Browser Extensions
pine
1
3k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
contribution to astral-sh/uv
shunsock
0
530
AkarengaLT vol.38
hashimoto_kei
1
120
Six and a half ridiculous things to do with Quarkus
hollycummins
0
210
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
420
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
250
モテるデスク環境
mozumasu
3
1.2k
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
190
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
630
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.4k
Catch Up: Go Style Guide Update
andpad
0
250
One Enishi After Another
snoozer05
PRO
0
150
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
110
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
It's Worth the Effort
3n
187
28k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
Rails Girls Zürich Keynote
gr2m
95
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Building Applications with DynamoDB
mza
96
6.7k
The Invisible Side of Design
smashingmag
302
51k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
For a Future-Friendly Web
brad_frost
180
10k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Fireside Chat
paigeccino
41
3.7k
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