SlideShare a Scribd company logo
1 of 26
多人数iOSアプリ
開発を考える
Swiftビギナーズ勉強会 第15回 #swiftbg
@sasaron397
アンケート
複数人で1つの
アプリを開発した
経験のある方?
• 名前: ささろん( @sasaron397 )
• あだ名: ボンクラ、ササテン
• 職業: なめこ栽培家 (んふんふ ! )
• フード: ゲーム(STG, RPG)、ボードゲーム、麻雀
自己紹介
本日のアジェンダ
1. んふんふ
2. んふんふ
3. んふんふ
4. んふんふ
5. んふんふ
真面目に
やります。
多人数アプリ開発
多人数アプリ開発で必要なこと
1. ソースコード(Xcodeプロジェクト)をみんなで共有する
• ローカルにコード置いてるだけだと、自分しか作れない
2. アプリの作り方にルールを設けて、方向性を合わせる
• みんなが好き勝手にアプリを作ってしまったら、カオスな未来が・
・・
GITでソースコードを共有する
出展: サルでも分かる Git 入門
要はプライベートなGITHUB
プロジェクトファイル衝突の壁
1. Aなめこが Test1.swift を追加しサーバに反映
2. Bなめこが Test0.swift を削除、Test2.swiftを追加
3. サーバに反映する前に、Bなめこは Aなめこの修正を取り込む
衝突!!
プロジェクトファイル衝突の壁
• 原因は巨大なプロジェクトファイル
• 手動マージ(整合性を取る)に失敗すると、最悪プロジェクトが壊れる
プロジェクトファイル衝突の壁
• プロジェクトファイルの衝突を自動で解消するMERGEPBX
• http://www.tokoro.me/2014/02/06/pbxproj-merge/
• http://qiita.com/kaneshin/items/1deebde685c973fda6b8
• MERGEPBXなしでの多人数アプリ開発は考えられないレベルです
VIEW作成の足並みを合わせる
どの方法でViewを作っていくのか? 重要なのは足並みを揃えること
1. Storyboard
• メリット: 初心者がプロジェクトに参入しやすい
• デメリット: 修正した時に差分が分かりづらい
2. Xib(Interface Builder)
• Storyboard とコードの中間的な位置付け
3. 全てコードで書く
• メリット・デメリットは StoryBoardの反対
アンケート
STORYBOARD
以外で
開発している方?
HTTP://QIITA.COM/YUCH_I/ITEMS/B4612FAE110254C816F4
VIEW作成には個が反映されやすい
STORYBOARDの運用方針
Storyboardの運用方針は、最初に決定すること
1. 1アプリ(プロジェクト) 1Storyboard法 (ベリーハード)
• 絶対に衝突するので、多人数開発では極力避けたほうが良い
2. 1機能 1Storyboard法 (ノーマルモード)
• 機能単位で担当分けして開発するなら問題ない
3. 1画面 1Storyboard法(イージーモード、個人的にオススメ)
• 衝突は最低限に抑えられるが管理するファイルは増える
多人数で開発する方なら必読です!
IOSアプリ開発の現場で訊いてみた
レイアウト作成の足並みを揃える
View同様、足並みを揃えることが重要
1. AutoLayoutで対応する
• メリット: 柔軟にレイアウトに対応できる
• デメリット: 学習コストが高い
2. AutoResizingで対応する
• メリットデメリットはAutoLayoutの反対
3. コードで座標を計算する
• 差分がわかりやすい反面、Xcodeのエコシステムを活用できない
規約で書き方を統一する
• Swiftは書き方の自由度が高く、また省略がしやすい言語である
(例: selfの省略、void の省略・・)
• 書き方には個性が反映されやすく、足並みを揃えないと色々な方式が
入り混じる
規約で書き方を統一する
• Swiftコーディング規約@Wantedly
• http://qiita.com/susieyy/items/f71435cc962e70d81b37
• リクルートライフスタイル
• https://github.com/recruit-lifestyle/swift-style-guide
• Swiftコーディング規約まとめ
• http://qiita.com/KentaKudo/items/b48762a0d6adfbf62579
SWIFTLINTで書き方を強制する
• GitHub's Swift Style Guide. な書き方をしないとエラーになる
ツールのバージョンを合わせる
• Xcode, Cocoapodsのバージョンはプロジェクトで統一する
• Swiftのバージョンが異なってしまうかもしれない
• Pod file.lock が Cocoapodsのバージョンを持つから
• Storyboard がツールバージョンを持つから
証明書をちゃんと作る
• 証明書の作成は、Xcodeの自動作成に任せない。
• 過去に何回も、今までは平気だったのに突然アプリが作れなくなっ
たトラブルに遭遇しましたよ! (ストア提出時によく起こる)
• リリース用 Certificates は、作成完了後にでリリース権限を持つメン
バー間で共有する(キーチェーンのエクスポート機能)
• Provisioning Profileは、更新(デバイス追加等)したらメンバー全員に再
度ダウンロードしてもらう
まとめ
• バージョン管理ツールでソースコードを共有しよう
• アプリの作り方の足並みを揃えよう
• 多人数アプリ開発は摩擦が起きやすいので、ルールを守って清く正し
い多人数アプリ開発ライフをお過ごしください
なめこも無事卒業
ありがとう
ございました!

More Related Content

What's hot

vImageのススメ(改訂版)
vImageのススメ(改訂版)vImageのススメ(改訂版)
vImageのススメ(改訂版)
Shuichi Tsutsumi
 
Fpsにおけるレベルデザイン web u_pver
Fpsにおけるレベルデザイン web u_pverFpsにおけるレベルデザイン web u_pver
Fpsにおけるレベルデザイン web u_pver
Yoshihiko Nozawa
 
企画が考えるスマホUIデザイン
企画が考えるスマホUIデザイン企画が考えるスマホUIデザイン
企画が考えるスマホUIデザイン
Katsumi Mizushima
 

What's hot (20)

vImageのススメ(改訂版)
vImageのススメ(改訂版)vImageのススメ(改訂版)
vImageのススメ(改訂版)
 
Unity対応してるmbass全部紹介する
Unity対応してるmbass全部紹介するUnity対応してるmbass全部紹介する
Unity対応してるmbass全部紹介する
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
Way-Findingをやってやった ~ Azure Spatial Anchorsでね~
Way-Findingをやってやった ~ Azure Spatial Anchorsでね~Way-Findingをやってやった ~ Azure Spatial Anchorsでね~
Way-Findingをやってやった ~ Azure Spatial Anchorsでね~
 
ROSでつながるVRChat
ROSでつながるVRChatROSでつながるVRChat
ROSでつながるVRChat
 
ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」
ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」
ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」
 
Fpsにおけるレベルデザイン web u_pver
Fpsにおけるレベルデザイン web u_pverFpsにおけるレベルデザイン web u_pver
Fpsにおけるレベルデザイン web u_pver
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
 
Mathematicaが敬遠される理由とは
Mathematicaが敬遠される理由とはMathematicaが敬遠される理由とは
Mathematicaが敬遠される理由とは
 
ゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめ
 
ゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのことゲーム制作初心者が知るべき8つのこと
ゲーム制作初心者が知るべき8つのこと
 
ARグラスの自作と6DoF化
ARグラスの自作と6DoF化ARグラスの自作と6DoF化
ARグラスの自作と6DoF化
 
NET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ APINET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ API
 
ARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせARマーカーを利用したHoloLens同士の位置合わせ
ARマーカーを利用したHoloLens同士の位置合わせ
 
Machinationの紹介
Machinationの紹介Machinationの紹介
Machinationの紹介
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―
ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―
ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―
 
企画が考えるスマホUIデザイン
企画が考えるスマホUIデザイン企画が考えるスマホUIデザイン
企画が考えるスマホUIデザイン
 
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
 

Similar to 多人数iOSアプリ開発を考える

[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
ichigotake .
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
Yoichiro Sakurai
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
Shin Ise
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折
Hironov OKUYAMA
 

Similar to 多人数iOSアプリ開発を考える (20)

1画面1Storyboardのススメ
1画面1Storyboardのススメ1画面1Storyboardのススメ
1画面1Storyboardのススメ
 
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介
 
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
 
アドベント2015ios基礎
アドベント2015ios基礎アドベント2015ios基礎
アドベント2015ios基礎
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
20150514 android
20150514 android20150514 android
20150514 android
 
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せがんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せ
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swift
 
クソゲー供養会発表 THE我慢レース
クソゲー供養会発表 THE我慢レースクソゲー供養会発表 THE我慢レース
クソゲー供養会発表 THE我慢レース
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5
 
Couchbase x unity
Couchbase x unityCouchbase x unity
Couchbase x unity
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016
 
プログラミング生放送20160213
プログラミング生放送20160213プログラミング生放送20160213
プログラミング生放送20160213
 
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
 
Herlockサービス紹介
Herlockサービス紹介Herlockサービス紹介
Herlockサービス紹介
 
Handoff from Safari
Handoff from SafariHandoff from Safari
Handoff from Safari
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折
 

多人数iOSアプリ開発を考える

Editor's Notes

  1. はじまして、佐々木勝広と申します。