SlideShare une entreprise Scribd logo
1  sur  26
Universal Links対応をした話
iOS 10時代のDeep Link技術
2017/5/24
potatotips #40 @ Retty株式会社
iOS/Android開発Tips共有会
行木 千春
自己紹介
行木 千春(なめき ちはる)
昔 macOS向けアプリ・ミドルウェア開発者 → 今 iOSアプリ開発者
株式会社サイバーエージェント
Amebaアプリ担当
アメブロの投稿・閲覧アプリです!
株式会社 nana music
音楽コラボレーションアプリ nana
音声エンジン製作者
音声処理技術が好きです
モチベーション
• Universal LinksはiOS 9以降の機能
• iOS 10が普及した今、サービスに導入しやすくなった
• 実際に対応して得られた知見(発表当時の情報からのアップデー
トなど)をまとめる
おさらい
~ ユーザ視点で見たUniversal Links ~
HTTPまたはHTTPSのリンクをタップした時に
ドメインに対応するアプリが起動する
Universal Links経由でアプリが開いた時のステータスバー
Safariで表示
(今後もSafariで開くようになる)遷移元アプリに戻る
Safariで表示時に下に引っ張ると
アプリで開くためのバーが出現
「開く」を選ぶと再びアプリで開くようになる
この手順により、アプリで開くかSafariで開くかはユーザが選択可能
(正直わかりにくい😓)
アプリが起動する条件
• ユーザがSafariで開くことを選択していない
• iOS 9以降
• アプリがインストールされている
未インストールの場合、操作中のアプリでそのまま遷移
ストアが立ちあがったりはしない
• 同一ドメイン内の遷移ではない
厳密にはスキーマが異なる場合は起動した
e.g.) http://hoge.com/ から https://hoge.com/ への遷移
• Entitlement の Associated Domainsにapplinks:をつけてドメインを記載
e.g. applinks:example.com
• Universal Links経由でアプリが開かれた時に呼ばれるメソッドを実装
• 扱えないURLはopen(_:options:completionHandler:)で開き直す
アプリが立ちあがった後、さらに別アプリが起動するのでUX上いまいち。
なるべく発生しないようにしたい。
おさらい
~ アプリ側の対応 ~
func application(application: UIApplication,
continueUserActivity userActivity: NSUserActivity,
restorationHandler: ([AnyObject]?) -> Void) -> Bool {}
• AASA (apple-app-site-association) ファイルを配置
• ルートまたは .well-known サブディレクトリ配下に置く
• HTTPSで直接アクセスできるようにする
HTTPではダメ, リダイレクトもNG
• アプリのインストール、またはアップデート時にOSに取得される
サーバエラー(500系)の場合、3時間後に再取得
おさらい
~ サーバ側の対応 ~
AASA (apple-app-site-association) ファイル
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXXXXX.jp.co.hoge.AppName",
"paths": [
"NOT /_*",
"*"
]
},
{
"appID": "YYYYYYYYYY.jp.co.choge.AppName-ota",
"paths": [
"NOT /_*",
"*"
]
}
]
}
}
AppIDのPrefixを指定
昔ながらのアプリでは
チームIDと異なるので注意
←
AASAファイルの記述方法
• detailsもpathも先頭から評価される
• マッチしたらそこで評価を終了
• 複数のアプリが記述 & インストールされていたら、先に書かれて
いる方が立ち上がる
• Pathのマッチングルール
• クエリやフラグメントは対象にならない
• ? … 任意の1文字 (/もOK)
• * … 任意の文字列(0文字でも/が混ざっていても良い)
• NOT はiOS 9.2以降
• 最後のスラッシュの有無はマッチングに寄与しなかった
解釈はOSバージョンに依存するので注意してテストする
func open(_ url: URL,
options: [String : Any] = [:],
completionHandler completion: ((Bool) -> Void)? = nil)
アプリ内からURLをUniversal Linksとして開くには
UIApplication の open() メソッドを使う
• 外部アプリで開けたかどうかの結果が取得できる
• 自分自身の対応ドメインのURLを渡すとSafariが起動する
iOS 10以降
iOS 9以前の open(_ : URL) -> Bool と比較すると
• 開けるURLのタイプをUniversal Linksのみに限定可
• 非同期になった
open()メソッドを呼ぶと
外部アプリで開く前に
確認ダイアログを出してくれるようになった
「アプリで開く」バー
• SafariのUI
• 表示はカスタマイズ不可
• 表示される条件
• 対応アプリをインストール済み
• 対応ドメインをSafariで開く設定にしている
• HTMLにはSmart App Bannerなどの記述は必要ない
推測:iOSが実際に何をしているか
• iOS端末上にドメイン - アプリのマッピング情報が存在
• アプリのインストール/アップデート時にマッピング情報を更新
• URLを開く際、URLのドメインに対応アプリが存在したらアプリ
で開く
ほぼ端末上の処理で成り立っている機能
iOS 9とiOS 10での挙動の違い
iOS 9
最初のリクエストがUniversal Linksのときのみアプリが起動する
iOS 10
リダイレクト先がUniversal Linksの場合もアプリが起動する
最初のリクエストとリダイレクト先がどちらもUniversal Linksだった場合、
application(application:continueUserActivity:restorationHandler:) が2回呼び出される
リダイレクト時の挙動が異なっていた
テスト方法(運用前)
• STGで技術検証
• 本番にAASAファイルを配置してテスト
STGのURLはGoogleなどにインデックスされていないため
ユーザ体験がどう変わるかの検証には本番を使う必要がある
• AASAファイルにはドメイン依存の情報がないため、STGと本番で
同じファイルを利用可能
• アプリの Associated Domains を環境によって書き換える
テスト方法(運用後)
ユーザ体験の検証のために本番のAASAファイルを更新?!
… するわけにはいかない
プロキシを利用するなどしてルーティングを工夫
📱host
書き換え
proxy
本番
IP: xxxxxxx
社内からのみ見える
本番環境
運用上の課題
• 機能を切り戻したり、挙動を変更するには
アプリのアップデートが必要
AASAファイルを更新しても、アプリのアップデートのタイミングでしか取得しに来
てくれない
• アプリバージョンとAASAファイルの整合性の保ち方
• リファラなど流入元の情報が取得できないため、SEOの観点で困る
ユーザの反応
• いきなりアプリが開くようになってうざい
• 元に戻したいという問い合わせが来た
→ 操作方法を案内
むやみにアプリが開くのはストレス
サービスの価値を本当に高められ
ユーザにも納得感のある場所で使わないといけない
Appendix: Custom URL Scheme is dead?
• URLが開けるかどうかを確認する canOpenURL() はiOS 9以降
info.plistにスキーマの記載が必要になった
• iOS 8以前は代わりに canOpenURL() の呼び出し回数が50回に制限されていた
• 実際にアプリを開く open() メソッドには制限がない
• open()メソッドが外部アプリで開く前に確認ダイアログを出してく
れるようになった
十分利用可能
カスタムスキーマ最大の問題点
アプリがインストールされていないと
Safariで「ページをひらけません」エラーが表示される
公開されているWeb面に使うのは厳しい
アプリ間遷移で利用する分には
open()メソッドでエラーハンドリングできるので良さそう
所感
便利そうだが制限が多く、使い所が難しい
ご静聴ありがとうございました
🙇
WWDC 2017に参加します
できたてのApple Parkに行ってみたい
告知:CyberAgentで前後にイベントを開催します
WWDC直前
Pre-WWDC Gathering
https://cyberagent.connpass.com/event/55235/
5/30 19:30~
渋谷プライムプラザ4F Creative Lounge
WWDC後
CA.swift #3 WWDC 2017 Reporting
6/19

Contenu connexe

Tendances

ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選Takuya Ueda
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムyuichiro nakazawa
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSyncAmazon Web Services Japan
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたfirewood
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAmazon Web Services Japan
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例briscola-tokyo
 
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワークExastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワークExastro Suite Community
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤Yu Otsubo
 
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~Takunori Minamisawa
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 

Tendances (20)

ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
AbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステムAbemaTVの動画配信を支えるサーバーサイドシステム
AbemaTVの動画配信を支えるサーバーサイドシステム
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例
 
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワークExastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
Exastro 概要ご紹介 クラウドネイティブ時代のプラットフォーム構築・運用自動化のためのOSSのフレームワーク
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
Azure DevOps ハンズオン Vo.2 ~Azure DevOps Wiki を用いたドキュメントの作成~
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 

Similaire à Universal Links対応をした話

C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16Masami Yabushita
 
Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)Wataru Asai
 
スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用大介 秋本
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイトrie05
 
Universal Link
Universal LinkUniversal Link
Universal Linktoyship
 
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)LIFULL Co., Ltd.
 
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application DevelopmentFirefox OS 1.0 Application Development
Firefox OS 1.0 Application Developmentdynamis
 
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for  iPhone 企業利用における問題点のまとめOffice for iPad Office for  iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめadachiyosuke
 
iOSローカライズことはじめ
iOSローカライズことはじめiOSローカライズことはじめ
iOSローカライズことはじめ俊輔 嶺村
 
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違いデベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違いMakoto Kubota
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版Tomoki Hasegawa
 
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料120140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1NIFTY Cloud
 
オープンセミナー2013@広島
オープンセミナー2013@広島オープンセミナー2013@広島
オープンセミナー2013@広島Masahiko Tani
 
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのことエンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのことfeedtailor
 
モバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービスモバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービス株式会社ドーモ
 

Similaire à Universal Links対応をした話 (20)

C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
iOS bust #1
iOS bust #1iOS bust #1
iOS bust #1
 
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
 
Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)Android以外os(OpenWebAppについて)
Android以外os(OpenWebAppについて)
 
スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
 
Universal Link
Universal LinkUniversal Link
Universal Link
 
20121122 paidcontent kato
20121122 paidcontent kato20121122 paidcontent kato
20121122 paidcontent kato
 
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
20170510 タウンwi fixlifull_スマホアプリ開発の実例 (1)
 
Firefox OS 1.0 Application Development
Firefox OS 1.0 Application DevelopmentFirefox OS 1.0 Application Development
Firefox OS 1.0 Application Development
 
Office for iPad Office for iPhone 企業利用における問題点のまとめ
Office for iPad Office for  iPhone 企業利用における問題点のまとめOffice for iPad Office for  iPhone 企業利用における問題点のまとめ
Office for iPad Office for iPhone 企業利用における問題点のまとめ
 
iOSローカライズことはじめ
iOSローカライズことはじめiOSローカライズことはじめ
iOSローカライズことはじめ
 
デベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違いデベロッパー視点での3大スマホの違い
デベロッパー視点での3大スマホの違い
 
はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版はじめてのiOSアプリ開発 Swift対応版
はじめてのiOSアプリ開発 Swift対応版
 
20110824 android apps_tanaka
20110824 android apps_tanaka20110824 android apps_tanaka
20110824 android apps_tanaka
 
20140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料120140320ニフティクラウドmeet-up!セミナー資料1
20140320ニフティクラウドmeet-up!セミナー資料1
 
オープンセミナー2013@広島
オープンセミナー2013@広島オープンセミナー2013@広島
オープンセミナー2013@広島
 
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのことエンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
 
モバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービスモバイル革命到来!世界でもっとも信用されているサービス
モバイル革命到来!世界でもっとも信用されているサービス
 
SpeechPlatform with Kinect
SpeechPlatform with KinectSpeechPlatform with Kinect
SpeechPlatform with Kinect
 

Universal Links対応をした話