SlideShare une entreprise Scribd logo
1  sur  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は、更新(デバイス追加等)したらメンバー全員に再
度ダウンロードしてもらう
まとめ
• バージョン管理ツールでソースコードを共有しよう
• アプリの作り方の足並みを揃えよう
• 多人数アプリ開発は摩擦が起きやすいので、ルールを守って清く正し
い多人数アプリ開発ライフをお過ごしください
なめこも無事卒業
ありがとう
ございました!

Contenu connexe

Tendances

プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会モノビット エンジン
 
RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装Koji Morikawa
 
[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法LINE Corporation
 
実行時のために最適なデータ構造を作成しよう
実行時のために最適なデータ構造を作成しよう実行時のために最適なデータ構造を作成しよう
実行時のために最適なデータ構造を作成しようHiroki Omae
 
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...Netwalker lab kapper
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解MITSUNARI Shigeo
 
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021Unity Technologies Japan K.K.
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門uchan_nos
 
仕様書作成のポイント_180814
仕様書作成のポイント_180814仕様書作成のポイント_180814
仕様書作成のポイント_180814Sugimoto Chizuru
 
プロジェクト予算と試算表_180815
プロジェクト予算と試算表_180815プロジェクト予算と試算表_180815
プロジェクト予算と試算表_180815Sugimoto Chizuru
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発Hirokuma Ueno
 
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成Sugimoto Chizuru
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説Unity Technologies Japan K.K.
 
120901fp key
120901fp key120901fp key
120901fp keyksknac
 
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)C#で作ったプログラムのインストーラーをInnoSetupで作成(1)
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)Kenichi Yamada
 
Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
 Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み) Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)Sindharta Tanuwijaya
 
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用Sugimoto Chizuru
 

Tendances (20)

プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
新しくなったモノビットエンジンを使って10万人規模のサーバを構築するノウハウを公開!2017年10月27日モノビットエンジン勉強会
 
RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装
 
[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法
 
Haxeについて
HaxeについてHaxeについて
Haxeについて
 
実行時のために最適なデータ構造を作成しよう
実行時のために最適なデータ構造を作成しよう実行時のために最適なデータ構造を作成しよう
実行時のために最適なデータ構造を作成しよう
 
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux  Beginner for Linux long-lifetime in USB...
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021
 
BCCとGCCの比較
BCCとGCCの比較BCCとGCCの比較
BCCとGCCの比較
 
C++でできる!OS自作入門
C++でできる!OS自作入門C++でできる!OS自作入門
C++でできる!OS自作入門
 
仕様書作成のポイント_180814
仕様書作成のポイント_180814仕様書作成のポイント_180814
仕様書作成のポイント_180814
 
プロジェクト予算と試算表_180815
プロジェクト予算と試算表_180815プロジェクト予算と試算表_180815
プロジェクト予算と試算表_180815
 
一人でもNFC開発
一人でもNFC開発一人でもNFC開発
一人でもNFC開発
 
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成
ゲームの仕様書を書こう1 仕様書作成の分業とリストの作成
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
120901fp key
120901fp key120901fp key
120901fp key
 
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)C#で作ったプログラムのインストーラーをInnoSetupで作成(1)
C#で作ったプログラムのインストーラーをInnoSetupで作成(1)
 
Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
 Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み) Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
Behaviour Tree AI in Gentou Senki Griffon (幻塔戦記グリフォンでのBehaviour Treeの試み)
 
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
 

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

1画面1Storyboardのススメ
1画面1Storyboardのススメ1画面1Storyboardのススメ
1画面1StoryboardのススメTomo Ita
 
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教える[Android]趣味プログラマーな非エンジニアにアプリ開発を教える
[Android]趣味プログラマーな非エンジニアにアプリ開発を教えるichigotake .
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介Kohki Miki
 
iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1iPhoneアプリ無料勉強会 vol1
iPhoneアプリ無料勉強会 vol1codeal
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたTomohiro Suzuki
 
アドベント2015ios基礎
アドベント2015ios基礎アドベント2015ios基礎
アドベント2015ios基礎ppengotsu Name
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せがんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せTomohiro Suzuki
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swiftYuki Asai
 
クソゲー供養会発表 THE我慢レース
クソゲー供養会発表 THE我慢レースクソゲー供養会発表 THE我慢レース
クソゲー供養会発表 THE我慢レース高本 徹
 
いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5いまどきのiOSプログラミング with Xcode5
いまどきのiOSプログラミング with Xcode5Shin Ise
 
Couchbase x unity
Couchbase x unityCouchbase x unity
Couchbase x unityMakotoItoh
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016岡山スマホアプリ開発もくもく会 #oso2016
岡山スマホアプリ開発もくもく会 #oso2016Ikki Takahashi
 
プログラミング生放送20160213
プログラミング生放送20160213プログラミング生放送20160213
プログラミング生放送20160213雅希 森
 
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」
札幌ゲーム製作者コミュニティKawaz「いどのなかにいる」Kohki Miki
 
HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折HexRinger と FOSS4G の紆余曲折
HexRinger と FOSS4G の紆余曲折Hironov OKUYAMA
 

Similaire à 多人数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アプリ開発を考える

Notes de l'éditeur

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