SlideShare a Scribd company logo
1 of 40
Download to read offline
TestFlightみたいなのを
自作する
デジタルサーカス(株)長谷川智希
長谷川智希
とも き
@tomzoh

とむぞう
開発系趣味
その他趣味
Webサイト開発, iOSアプリ開発
レンタルカートレース, 電子工作(mbed), …
TOMZOH
お仕事 スマホアプリ受託開発 Mgr
デジタルサーカス(株) 副団長CTO
Facebook CakePHP iOS
デジタルサーカス(株)
・ Webサイト受託開発
・ スマホアプリ受託開発



・ 自社サービス
(PHP, Drupal, CakePHP)
(iOS, Android)



(http://appbuilder.jp)
Twitter: @tomzoh
Twitter: @tomzoh
今日のテーマ:
TestFlightみたいなのを
自作する
アプリ受託開発
お客さま企業 ご担当者様
PM
デザイナ iOS Android Web
アプリユーザ
体制
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
• アプリの完成に対してコミットする
契約。
• ウォーターフォール気味にプロジェ
クト進行する必要がある。
• とは言いつつ紙で「要件定義」して
も実際に動かしてみたら「ちょっと
違ったね😓」というのはある。
• 開発・テスト後に実際にお客さまに実
際に触って頂いて、手触り感の確認、
修正を繰り返す。(最終化)
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
バイナリ
作成&配布
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
動作確認
バイナリ
作成&配布
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
動作確認
プログラム
修正
バイナリ
作成&配布
弊社のアプリ開発のステップ
要件定義・設計
開発
テスト
アプリ申請
ご確認/最終化
動作確認
プログラム
修正
バイナリ
作成&配布
iOSアプリ配布プラットフォーム
• 2009∼ メール配布
• 「UDIDの調べ方🔎」「iTunesにドラッグ&ドロップします」的
な手順書。
• 個人所有の端末を同期しちゃって端末が真っ白になる事故😱
• 2010∼ TestFlight
• 「更新版アップしました」「確認しました」大分便利😇
• 「TestFlight導入手順書」😕
• 2011∼ InHouse配布
InHouse配布
iOSのアプリ配布
• AppStore経由で配布する配布
• (Appleの)TestFlightもこれ。
• iTunesやiPhone構成ユーティリティを使って、

ケーブル経由でインストールする
• 独自に構築したWebサイトから通信回線経由で

配布する。
iOSのアプリ配布
• AppStore経由で配布する配布
• (Appleの)TestFlightもこれ。
• iTunesやiPhone構成ユーティリティを使って、

ケーブル経由でインストールする
• 独自に構築したWebサイトから通信回線経由で

配布する。
InHouse配布
iOS InHouse配布の仕組み
plistファイル

配布サーバ
バイナリ配布サーバ
iOS端末
iOS InHouse配布の仕組み
plistファイル

配布サーバ
バイナリ配布サーバ
iOS端末
①plistファイルを取得
iOS InHouse配布の仕組み
plistファイル

配布サーバ
バイナリ配布サーバ
iOS端末
①plistファイルを取得
②plistファイルから

ipaのURLを取得
iOS InHouse配布の仕組み
plistファイル

配布サーバ
バイナリ配布サーバ
iOS端末
①plistファイルを取得
②plistファイルから

ipaのURLを取得
③ipaファイルを
取得してインストール
HTMLからplistファイルへのリンク
<a href=‘itms-services://?action=download-
manifest&url=https://path/to/plist/foo.plist'>
  <span class=‘title’>2015/06/30_2版 (2回⽬目)</span>
  <span class=‘comment’>2015/06/30(Pre)</span>
</a>
HTMLからplistファイルへのリンク
<a href=‘itms-services://?action=download-
manifest&url=https://path/to/plist/foo.plist'>
  <span class=‘title’>2015/06/30_2版 (2回⽬目)</span>
  <span class=‘comment’>2015/06/30(Pre)</span>
</a>
固定
HTMLからplistファイルへのリンク
<a href=‘itms-services://?action=download-
manifest&url=https://path/to/plist/foo.plist'>
  <span class=‘title’>2015/06/30_2版 (2回⽬目)</span>
  <span class=‘comment’>2015/06/30(Pre)</span>
</a>
固定 plistファイルのURL
HTMLからplistファイルへのリンク
<a href=‘itms-services://?action=download-
manifest&url=https://path/to/plist/foo.plist'>
  <span class=‘title’>2015/06/30_2版 (2回⽬目)</span>
  <span class=‘comment’>2015/06/30(Pre)</span>
</a>
https://
iOS7以上でhttps必須
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://example.com/path/to/ipa/foo.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.foo</string>
<key>bundle-version</key>
<string>3.1.2</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
</dict>
</dict>
</array>
</dict>
</plist>
plistファイル
<key>title</key>
<string>2015/08/31 (API:xxxx)【ver1.0.1】</string>
InHouse配布システム@デジタルサーカス
• プロジェクトごとに割り当てた特
定のURLをiPhoneで開くとアッ
プされたアプリの一覧を表示。
• タップでインストール👍
InHouse配布システム@デジタルサーカス
• プロジェクトごとに割り当てた特
定のURLをiPhoneで開くとアッ
プされたアプリの一覧を表示。
• タップでインストール👍
InHouse配布システム@デジタルサーカス
• Subversionの特定リポジトリに
ipaをコミットすると一覧として
表示。
• ファイル名からタイトルを生成。
• コミットログをコメントとして表
示。
まとめ
まとめ
• InHouse配布を使うとTestFlightみたいなのを簡単
に作れる。
• HTMLからXML形式のplistファイルに itms-services://
でリンクする。  
• plistにipaのパスが書いてある設計。
• ipaのURLはhttpsの必要あり。
ありがとうございました
@tomzoh
デジタルサーカス(株)
声かけてください
We re hiring!!
Future Works
• ビルド自動化したい😓
• 今は自動化そのものはかんたん。
• ソースを特定のブランチにPUSHしたらビルド。
• アプリの設定を自動表示したい
• 使っている証明書, APIの向き前, Bundle ID, Version, Build
• 新規プロジェクト開始時の設定を簡単にしたい😕
• App ID, 証明書の作成, PUSH通知用証明書の作成。
OSSで良いのがあったら教えてください。
参考: 認証ダイアログ
• EnterpriseのProvisioningProfileで
署名したバイナリをインストールし、
実行すると認証ダイアログが表示され
る。
• iOS9では[信頼]ボタンが表示されず、
設定.app → 一般 → プロファイルか
ら明示的に信頼設定する必要アリ。

More Related Content

Viewers also liked

To learn Interpolator
To learn InterpolatorTo learn Interpolator
To learn InterpolatorMima Yuki
 
Enhancements with 3D Touch
Enhancements with 3D TouchEnhancements with 3D Touch
Enhancements with 3D TouchSatoshi Ohki
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3toyship
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことyoku0825
 

Viewers also liked (6)

To learn Interpolator
To learn InterpolatorTo learn Interpolator
To learn Interpolator
 
Enhancements with 3D Touch
Enhancements with 3D TouchEnhancements with 3D Touch
Enhancements with 3D Touch
 
Enumerate
EnumerateEnumerate
Enumerate
 
UIKit Sound
UIKit SoundUIKit Sound
UIKit Sound
 
What's new Swift3
What's new Swift3What's new Swift3
What's new Swift3
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 

Similar to TestFlightみたいなのを自作する

Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由Masakazu Muraoka
 
PUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作ったPUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作ったTomoki Hasegawa
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向Hidetoshi Mori
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術Tomoki Hasegawa
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すTomoki Hasegawa
 
これからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れこれからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れMitsuru Katoh
 
能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社Brrs Nguyen(2TS)
 
ノンコーディングでビジネスアプリ作成 PowerApps入門
ノンコーディングでビジネスアプリ作成 PowerApps入門ノンコーディングでビジネスアプリ作成 PowerApps入門
ノンコーディングでビジネスアプリ作成 PowerApps入門Trainocate Japan, Ltd.
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
20190517_モバイルアーキテクチャを決定する際の観点
20190517_モバイルアーキテクチャを決定する際の観点20190517_モバイルアーキテクチャを決定する際の観点
20190517_モバイルアーキテクチャを決定する際の観点Takahito Miyamoto
 
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Masakazu Muraoka
 
AppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化するAppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化するTomoki Hasegawa
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発Ryohei Sogo
 
Web技術を幅広く
Web技術を幅広くWeb技術を幅広く
Web技術を幅広くWakasa Masao
 
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダーCakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダーTomoki Hasegawa
 

Similar to TestFlightみたいなのを自作する (20)

Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由みなさんがHtml5をやらなくていい3つの理由
みなさんがHtml5をやらなくていい3つの理由
 
PUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作ったPUSH通知証明書作成ツールを作った
PUSH通知証明書作成ツールを作った
 
モバイルビジネスの動向
モバイルビジネスの動向モバイルビジネスの動向
モバイルビジネスの動向
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
Swiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒すSwiftのプロパティオブザーバを使い倒す
Swiftのプロパティオブザーバを使い倒す
 
これからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れこれからのNotesモバイルアプリはこう作れ
これからのNotesモバイルアプリはこう作れ
 
能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社
 
ノンコーディングでビジネスアプリ作成 PowerApps入門
ノンコーディングでビジネスアプリ作成 PowerApps入門ノンコーディングでビジネスアプリ作成 PowerApps入門
ノンコーディングでビジネスアプリ作成 PowerApps入門
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
20190517_モバイルアーキテクチャを決定する際の観点
20190517_モバイルアーキテクチャを決定する際の観点20190517_モバイルアーキテクチャを決定する際の観点
20190517_モバイルアーキテクチャを決定する際の観点
 
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
 
事業企画
事業企画事業企画
事業企画
 
AppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化するAppStore申請を一式まるっと自動化する
AppStore申請を一式まるっと自動化する
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
 
Web技術を幅広く
Web技術を幅広くWeb技術を幅広く
Web技術を幅広く
 
3 auto layout tips
3 auto layout tips3 auto layout tips
3 auto layout tips
 
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダーCakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
CakePHP事例紹介 オンラインiPhoneアプリ作成ツール アプリビルダー
 

More from Tomoki Hasegawa

Reading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulatorReading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulatorTomoki Hasegawa
 
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMSDrupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMSTomoki Hasegawa
 
とある受託ベンダの開発環境
とある受託ベンダの開発環境とある受託ベンダの開発環境
とある受託ベンダの開発環境Tomoki Hasegawa
 
iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016Tomoki Hasegawa
 
エンジニアのお祭り
エンジニアのお祭りエンジニアのお祭り
エンジニアのお祭りTomoki Hasegawa
 
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側勉強会のこちら側とあちら側
勉強会のこちら側とあちら側Tomoki Hasegawa
 
「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP side「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP sideTomoki Hasegawa
 
「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみた「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみたTomoki Hasegawa
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSTomoki Hasegawa
 
PHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知するPHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知するTomoki Hasegawa
 
PHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきたPHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきたTomoki Hasegawa
 
CakePHP3ウォークスルー
CakePHP3ウォークスルーCakePHP3ウォークスルー
CakePHP3ウォークスルーTomoki Hasegawa
 
PHPerのためのSwift入門
PHPerのためのSwift入門PHPerのためのSwift入門
PHPerのためのSwift入門Tomoki Hasegawa
 
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版Tomoki Hasegawa
 
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅Tomoki Hasegawa
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
CustomOperatorで遊ぼう!
CustomOperatorで遊ぼう!CustomOperatorで遊ぼう!
CustomOperatorで遊ぼう!Tomoki Hasegawa
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後Tomoki Hasegawa
 
SwiftによるiOS開発再入門
SwiftによるiOS開発再入門SwiftによるiOS開発再入門
SwiftによるiOS開発再入門Tomoki Hasegawa
 

More from Tomoki Hasegawa (20)

Reading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulatorReading php terminal-gameboy-emulator
Reading php terminal-gameboy-emulator
 
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMSDrupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
Drupal8 〜 モダンなアーキテクチャのPHPベース OSS CMS
 
とある受託ベンダの開発環境
とある受託ベンダの開発環境とある受託ベンダの開発環境
とある受託ベンダの開発環境
 
iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016iOS Developers Conference Japan 2016
iOS Developers Conference Japan 2016
 
エンジニアのお祭り
エンジニアのお祭りエンジニアのお祭り
エンジニアのお祭り
 
勉強会のこちら側とあちら側
勉強会のこちら側とあちら側勉強会のこちら側とあちら側
勉強会のこちら側とあちら側
 
「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP side「これを買っている人はこれも買っています」実装してみた PHP side
「これを買っている人はこれも買っています」実装してみた PHP side
 
「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみた「これを買っている人はこれも買っています」実装してみた
「これを買っている人はこれも買っています」実装してみた
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
PHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知するPHPでスマホアプリにプッシュ通知する
PHPでスマホアプリにプッシュ通知する
 
PHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきたPHPカンファレンス福岡に 行ってきた
PHPカンファレンス福岡に 行ってきた
 
CakePHP3ウォークスルー
CakePHP3ウォークスルーCakePHP3ウォークスルー
CakePHP3ウォークスルー
 
PHPerのためのSwift入門
PHPerのためのSwift入門PHPerのためのSwift入門
PHPerのためのSwift入門
 
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
 
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅オプショナル型。 〜 なんとなく付ける ! ? 撲滅
オプショナル型。 〜 なんとなく付ける ! ? 撲滅
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
CustomOperatorで遊ぼう!
CustomOperatorで遊ぼう!CustomOperatorで遊ぼう!
CustomOperatorで遊ぼう!
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
 
SwiftによるiOS開発再入門
SwiftによるiOS開発再入門SwiftによるiOS開発再入門
SwiftによるiOS開発再入門
 

TestFlightみたいなのを自作する