SlideShare a Scribd company logo
PHP開発からAndroid開発をす
るようになって学んだWebとモバ
イルの違い
GMO Pepabo, Inc.
Masataka Kono
2016-7-3
YAPC::ASIA
HACHIOJI
Kono Masataka
Twitter @mapyo
GitHub @mapyo
GMO Pepabo, Inc.
みんなからは「ぼいらー」と呼ばれています
自己紹介
PHP開発とAndroid開発の経験
カラーミーショップ
PHP開発
3年くらい
minne
Android開発
10ヶ月くらい
どちらのサービスも
人材募集中です!!1
今日お話する事
今日お話する事
● 自分自身の変化
● Webとモバイルの違い
自分自身の変化
● エディタからIDEへ
● アプリの事を中心に考えるようになった
● 開発言語の違い
● ビルドが長い。。。
Web開発とモバイル開発の違い
● リリース方法
● リリースサイクル
● 開発フロー
● 過去のバージョンを気にする必要がある
自分自身の変化
エディタからIDEへ
VimからAndroid Studioへ
VimからAndroid Studioへ
● Android開発ではAndroid Studioを使う
● ショートカットを覚えるまで慣れが必要だった
● IdeaVim最高
● IntelliJ IDEAから作られている
● ちょっとした修正はVimでやってる
アプリの事を中心に考
えるようになった
一般的なWebサービスの構成
DBサーバ APサーバ PCやモバイル
一般的なWebサービスの構成
この時考えていた事は?
● DBサーバ
● APサーバ
● MySQL
● Aapache, Nginx
● PHP
● JavaScript
● ブラウザ
● 開発環境(Vagrant、Puppet)
Web開発していた時に考えていた事
一般的なWebサービスの構成
DBサーバ APサーバ PCやモバイル
一般的なWebサービスの構成
いろいろ考えてた
モバイルの場合
モバイルの場合
一般的なアプリを提供する時の形態
DBサーバ APIサーバ アプリ
一般的なアプリを提供する時の形態
DBサーバ APIサーバ アプリ
一般的なアプリを提供する時の形態
アプリの事を中心に考える
ようになった
● Android SDK
● Java
● Android Studio
● エミュレータ
● APIとのやりとり
考えてる事
※役割分担はチームによっ
て違うと思います。
開発言語の違い
開発言語の違い
PHPからJavaへ
PHP
● Lightweight Language
● 型なし
● 実行して始めてエラーかどうかわかる
Java
● 型あり
● ビルドがある
● シンタックスエラーなどはビルドの段階でわかる
開発言語の違い
リリースサイクルがWebより
長いモバイルには型付き言
語の方が向いてそうな印象
ビルドが長い
Webの場合
1. ソースを変更
2. ブラウザでリロード
数秒で結果がわかる
モバイル(Android)の場合
1. ソースを変更
2. ビルド
3. apkファイルが実機にインストール
4. アプリが起動する
だいたい1分くらいはかかる
(Instant Runという仕組もあるにはある)
Webとモバイルの違い
リリース方法
Webの場合
APPサーバ開発マシン
● APPサーバにDeployしたら反映
● サービス提供者のコントロール下にある
PC
モバイル
モバイルの場合
アプリストア
開発者
● 申請や審査(iOS)がある
● サービス提供者/アプリストア/ユーザ
モバイル
モバイル
モバイルの場合
リリースしたらそのまま最新
のバージョンになるわけで
はない
リリース方法
障害が発生した時
障害が発生した時
● Web
修正して直ぐにDeploy
● モバイル
修正してアプリストアに申請して、ユーザにアプ
リが配布されるのを待つ
リリースサイクル
リリースサイクル
※弊社での事例です
Webの場合
● 機能が出来たらリリース
モバイルの場合
● リリースする日を決めてリリース
(2週間に1回など)
モバイルの場合
なぜか?
リリース日を決める理由
● ユーザは頻繁にアプリが更新されるのを嫌う
● アプリを更新する時に数十M程度の通信量が
発生するため
開発フロー
開発フロー
※弊社での事例です
Webの場合
GitHub Flow
Webの開発フロー
1. masterからブランチを切る
2. そのブランチで開発する
3. レビュー
4. masterにMerge
5. Deploy
機能追加や不具合修正が出来た時点でDeploy
モバイルの場合
Git Flow
モバイルの開発フロー
1. developからブランチを切る
2. そのブランチで開発する
3. レビュー
4. developにMerge
5. ↑をリリース日が近づくまで繰り返す
モバイルの開発フロー
リリース日が近づくと。。。
1. developからrelease用のブランチを切る
2. 検証する
3. Google Playに申請
4. release用のブランチをmasterとdevelopに
Merge
開発フロー
リリースサイクルに合わせた
開発フローを採用
過去のバージョンを気
にする必要がある
Webの場合
特に気にした事はなかった。。。(´・ω・`)
モバイルの場合
DBサーバ APIサーバ アプリ
● APIサーバはDeployしたら反映される
● アプリは直ぐに最新バージョンにはならない
過去のバージョン
API、モバイルでリリースサ
イクルが違う
気にする必要がある事(例)
● APIのレスポンスを変える時
○ 過去のバージョンでは落ちてしまうかも?
○ 逆に落ちないから大丈夫かも?
● 新たなPUSH通知を実装する時
○ PUSH通知を受け取ってこの画面を開きたい
○ 過去のバージョンでは動かないかも?
いかがでしたでしょう
か?
今日お話した事
● 自分自身の変化
● Webとモバイルの違い
自分自身の変化
● エディタからIDEへ
● アプリの事を中心に考えるようになった
● 開発言語の違い
● ビルドが長い。。。
Web開発とモバイル開発の違い
● リリース方法
● リリースサイクル
● 開発フロー
● 過去のバージョンを気にする必要がある
まとめ
モバイル開発おもしろ
いのでやっていきま
しょう!!!!1
付録
お問い合わせに対応
するとき
Webの場合
● ブラウザを調べる
● バージョンを調べる
● DBの内容を見る
● masterブランチのソースを調べる
● サーバのログを見る
モバイルの場合
● アプリのバージョンを調べる
● OSのバージョンを調べる
● 機種を調べる
● 不具合が特定の機種でしか再現出来ない場合
はつらい。。。
Google Playには段
階的公開がある!
アプリのアップデートを段階的に。
弊社の場合
● 20%
● 50%
● 100%
少しずつ公開している。
アプリのアップデートを段階的に。
不具合が見つかると気はだいたい20%の段階で
見つかる。

More Related Content

PDF
ライブコーディング・Androidのライブラリを作ってみよう
PDF
Goだけでモバイルアプリを作る
ODP
Yapf2013
PDF
go.mobile で Android 開発
PDF
Go mobileでモバイルアプリを作ろう
PPTX
ネットワークの切り替えを感知する方法
PDF
goパッケージで型情報を用いたソースコード検索を実現する
PDF
Goだけでモバイルアプリを作ろう
ライブコーディング・Androidのライブラリを作ってみよう
Goだけでモバイルアプリを作る
Yapf2013
go.mobile で Android 開発
Go mobileでモバイルアプリを作ろう
ネットワークの切り替えを感知する方法
goパッケージで型情報を用いたソースコード検索を実現する
Goだけでモバイルアプリを作ろう

What's hot (20)

PPTX
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
PDF
GoによるiOSアプリの開発
ODP
Fuchsia概略その1
PDF
Git Flowを運用するために
PDF
ノンプログラマでも今日から使える「Git」でバージョン管理
PDF
ノンプログラマのGit入門
PDF
Git flowについてまとめてみた
PPTX
あなたもなれる!Linaroコミッターへの道
PDF
Go一緒にいかが?
PDF
Golang入門
PDF
gopher-lua
PPTX
Git flow概要紹介
PDF
Go MobileでAndroidアプリ開発
PDF
粗探しをしてGoのコントリビューターになる方法
PDF
エディタの壁を越えるGoの開発ツールの文化と作成法
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
PDF
ちょっとGoogle Analyticsの話しようぜ
PDF
Rubyでアプリ開発(2013 0430)
PDF
GAE/GoでLINE Messaging API を使う
PDF
2ヶ月前にgitを始めた私からこれから始める皆さんへ
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
GoによるiOSアプリの開発
Fuchsia概略その1
Git Flowを運用するために
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマのGit入門
Git flowについてまとめてみた
あなたもなれる!Linaroコミッターへの道
Go一緒にいかが?
Golang入門
gopher-lua
Git flow概要紹介
Go MobileでAndroidアプリ開発
粗探しをしてGoのコントリビューターになる方法
エディタの壁を越えるGoの開発ツールの文化と作成法
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
ちょっとGoogle Analyticsの話しようぜ
Rubyでアプリ開発(2013 0430)
GAE/GoでLINE Messaging API を使う
2ヶ月前にgitを始めた私からこれから始める皆さんへ
Ad

Viewers also liked (12)

PDF
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
PDF
Android lint-srp-practice
PDF
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
PDF
What is tested by pre-launch (security) reports?
PDF
全てSになる -RxJavaとLWSを持ち込む楽しさ-
PPTX
Leaflet初級編 - Web地図サイトを構築してみよう-
PDF
20150319 testotipsio
PDF
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
PDF
Loose and fluffy_ddd_intro
PDF
AndroidLint #DroidKaigi
PDF
『メルカリ』のアップデート監視 を支える(かもしれない)技術
PDF
少し幸せになる技術
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
Android lint-srp-practice
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
What is tested by pre-launch (security) reports?
全てSになる -RxJavaとLWSを持ち込む楽しさ-
Leaflet初級編 - Web地図サイトを構築してみよう-
20150319 testotipsio
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
Loose and fluffy_ddd_intro
AndroidLint #DroidKaigi
『メルカリ』のアップデート監視 を支える(かもしれない)技術
少し幸せになる技術
Ad

Similar to PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い (20)

PPTX
Androidが変えたもの
PDF
Firefox OS - Blaze Your Own Path
PDF
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PPTX
Word pressで作るandroidアプリ
PPT
Android Push
PDF
早稲田大学授業 - モバイルプログラミング
PPTX
1月からAndroidアプリ開発をやってみての近況
KEY
Web制作者がandriodのcddを読んでみた
PPT
モダンなモバイル開発のススメ
PPTX
いまさら聞けない!HTML5超入門
PDF
PHPにおけるRIA事情と開発
PDF
Web os最新動向20130209
KEY
Web App Framework at SwapSkills vol28
PDF
Android Lecture #01 @PRO&BSC Inc.
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
PPTX
事例で学ぶHTML5スマフォアプリ開発セミナー
KEY
Android webブラウザのhtml5対応状況
PPT
アンドロイド勉強会第二回 080525 3
PDF
Web is the OS (KDDI mugen Labo)
KEY
Web制作者がandriodのcddを読んでみた version1.1
Androidが変えたもの
Firefox OS - Blaze Your Own Path
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Word pressで作るandroidアプリ
Android Push
早稲田大学授業 - モバイルプログラミング
1月からAndroidアプリ開発をやってみての近況
Web制作者がandriodのcddを読んでみた
モダンなモバイル開発のススメ
いまさら聞けない!HTML5超入門
PHPにおけるRIA事情と開発
Web os最新動向20130209
Web App Framework at SwapSkills vol28
Android Lecture #01 @PRO&BSC Inc.
Phone gap+javascriptスマホアプリ開発(入門編)
事例で学ぶHTML5スマフォアプリ開発セミナー
Android webブラウザのhtml5対応状況
アンドロイド勉強会第二回 080525 3
Web is the OS (KDDI mugen Labo)
Web制作者がandriodのcddを読んでみた version1.1

More from Masataka Kono (6)

PDF
Usb接続するアプリを開発した時に試行錯誤した事
PDF
僕がAndroid開発する時にちょっと便利だと思うtips
PDF
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
PDF
歴史あるWebサービスに携わって2年半の間に起きた事やった事
PDF
Laravelのeloquent だけ入れた話
PDF
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Usb接続するアプリを開発した時に試行錯誤した事
僕がAndroid開発する時にちょっと便利だと思うtips
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
歴史あるWebサービスに携わって2年半の間に起きた事やった事
Laravelのeloquent だけ入れた話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話

PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い