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

What's hot (20)

PPTX
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
Study Group by SciencePark Corp.
 
PDF
GoによるiOSアプリの開発
Takuya Ueda
 
ODP
Fuchsia概略その1
l_b__
 
PDF
Git Flowを運用するために
Shun Tsunoda
 
PDF
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
 
PDF
ノンプログラマのGit入門
Muyuu Fujita
 
PDF
Git flowについてまとめてみた
hiroyuki koga
 
PPTX
あなたもなれる!Linaroコミッターへの道
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PDF
Go一緒にいかが?
Ryuji Iwata
 
PDF
Golang入門
Yukihiro Kitazawa
 
PDF
gopher-lua
Takuya Ueda
 
PPTX
Git flow概要紹介
y42sora
 
PDF
Go MobileでAndroidアプリ開発
Takuya Ueda
 
PDF
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
 
PDF
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
 
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
PDF
ちょっとGoogle Analyticsの話しようぜ
Shinobu Okano
 
PDF
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
 
PDF
GAE/GoでLINE Messaging API を使う
Takuya Ueda
 
PDF
2ヶ月前にgitを始めた私からこれから始める皆さんへ
Ayana Yokota
 
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
Study Group by SciencePark Corp.
 
GoによるiOSアプリの開発
Takuya Ueda
 
Fuchsia概略その1
l_b__
 
Git Flowを運用するために
Shun Tsunoda
 
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
 
ノンプログラマのGit入門
Muyuu Fujita
 
Git flowについてまとめてみた
hiroyuki koga
 
あなたもなれる!Linaroコミッターへの道
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
Go一緒にいかが?
Ryuji Iwata
 
Golang入門
Yukihiro Kitazawa
 
gopher-lua
Takuya Ueda
 
Git flow概要紹介
y42sora
 
Go MobileでAndroidアプリ開発
Takuya Ueda
 
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
 
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
ちょっとGoogle Analyticsの話しようぜ
Shinobu Okano
 
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
 
GAE/GoでLINE Messaging API を使う
Takuya Ueda
 
2ヶ月前にgitを始めた私からこれから始める皆さんへ
Ayana Yokota
 

Viewers also liked (12)

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

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

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

More from Masataka Kono (6)

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

Recently uploaded (8)

PDF
【AI論文解説】 RLHF不要なLLMの強化学習手法: Direct Preference Optimization(+α)
Sony - Neural Network Libraries
 
PDF
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
PPTX
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
PDF
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
論文紹介:OVO-Bench: How Far is Your Video-LLMs from Real-World Online Video​ Unde...
Toru Tamaki
 
【AI論文解説】 RLHF不要なLLMの強化学習手法: Direct Preference Optimization(+α)
Sony - Neural Network Libraries
 
20250711JIMUC総会_先進IT運用管理分科会Connpass公開資料.pdf
ChikakoInami1
 
Devcontainerのススメ(1)-Devcontainerとはどういう技術?-
iPride Co., Ltd.
 
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
 
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
 
Google Driveハブ型Obsidian同期環境:PC編集とモバイル閲覧を安全・効率的に実現するクロスデバイス構築ガイド
honeshabri
 
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
論文紹介:OVO-Bench: How Far is Your Video-LLMs from Real-World Online Video​ Unde...
Toru Tamaki
 

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