Dreamforce2016 Day3:Building App Cloud Mobile Extensions with Swift

はじめに

みなさん、こんにちは。
走れるmitocoエンジニア、溝口です。

Dreamforce、初サンフランシスコを満喫しています!

ホテルから会場へ向かう道すがら、僕の頭の中ではStingのEnglishman In New Yorkが常に流れています。ここはサンフランシスコで、僕は日本人ですが・・・。



現地でSIMカード(今回はT-Mobile)を買ってUberに乗ってケンタロスを捕まえるという野望も無事達成出来ました。
にしても、Uberは便利ですね〜、日本に居ると気づきませんでしたが、大げさでなく「世界が変わる」サービスだなと思いました。

何よりアプリ・サービスの中に散りばめられた気配りの良さが素晴らしいです。車をアプリで配車する、ということを実現する上で、不安に思うような事項が全て見事に解消されている気がしました。

さてさて、前置きが長くなりましたが、例に漏れず、私はiOSアプリ開発関連のセッションを聞いてきましたので、今回はその様子をお伝えしていこうかと思います!


Building App Cloud Mobile Extensions with Swift

まさかDreamforceでSwiftネタが見られるとは・・・!とウキウキでセッションに参加してきました。


このセッションのアジェンダです。

今回はこの中から、特にToday Extensionというウィジェットの機能、Sharing Extensionというデータ共有の機能についてかなり掘り下げてDemoや実装について語られていました。


iOS Extensionsとは

通常のiOSアプリケーションに文字通り「Extension」として、ウィジェットと呼ばれるダッシューボードに出す簡易画面を表示する機能だったり、Safariからのリンク共有の受け口を作る機能であったり、写真アプリからの写真データの共有の受け口を作るといった機能を提供するものですね。

有名ドコロだとPocketというブックマークアプリケーションやはてなブックマークアプリとかがURL共有先の受け口(としての拡張)をExtensionとして持っていて、Safariであったり、自分で作成したアプリからURLをブックマークとして保存出来るようになっていますね。


Demo - Deep Dive

Extensionの作成画面です。
基本的にテンプレートが全て用意されているので、簡単に自分のアプリに組み込むことが出来ます。


Demo ToDay Extension

Today Extensionの実行コード。
ウィジェットとしてUITableViewを配置し、データソースとして完了していないToDoのレコードを取得しています。

delegate先でTableViewのtextとDetailTextに値をセットして完了というところでしょうか。ウィジェットの作成と聞いてうわっ、なんだか難しそう、という気がしていましたが、何のことはありませんでした。


Salesforce1アプリ連携

おまけ、的な感じで紹介されていましたが、個人的にはこれが一番衝撃だったかもしれません。(この手があったか!的な。)

今まで私の記事でDetail画面をWebViewで表示する、ということを紹介してきましたが、そうではなく、Salesforce1アプリをURIスキーマで呼び出して、そこでDetail画面を開いてしまうという技です。

今回のユースケース的にはウィジェットのToDoレコードをタップすると、Extensionアプリを経由してSalesforce1を呼び出す、という形で実装しています。

これは今後Salesforce1とネイティブiOSアプリの連携として色々な使い方が出来そうです!


Chatter Share Extension Demo


Extensionとして画像データの受け口を作り、写真アプリから写真を受け取って、Chatterに投稿するDemoです。
基本的にExtension側は簡単なコードを書くだけで、リンクや写真の受け口を作ることが出来ます。

こういった共有系のExtensionは、例えば弊社がこの冬リリース予定のmitocoのiOSのチャットアプリに組み込むとすると、Safariで気になったリンクや、iPhoneで撮った写真を特定の人やチャットグループに直接投稿する機能を付加することが出来る訳ですね。是非実装したいですね!


まとめ

今回はiOSのExtensionの機能のごく一部をSalesforceとの連携を絡めての実装を発表されていましたが、一見小さな機能に見えてかなり効果が大きい機能なのではと改めて思いました。

メインのアプリの出来ももちろんですが、こういった付随機能の「気配りの良さ」が良いアプリケーションを作成する上での重要なポイントになるのだと思います。

特にiOS10になってウィジェット機能が更に強化されたり、iPhone6sから3D Touch機能が追加されたりと、どんどん使いやすいExtensionが増えているので、iOSアプリを作る際は是非Extensionの実装にも挑戦してみてはいかがでしょうか!


おまけ

U2のDreamfestライブも良かったですねー!
僕の泊まっているホテルの名前が「Vertigo」だったことにも運命を感じてしまいます。

にしても。

ボノ、老けたなぁ・・・。



mitocoの魅力を余すこと無く存分にお伝えするmitocoブログの方も是非よろしくお願いします!


<Dreamforceフィードバック勉強会>

今年もやります!『TerraSky Power Night Dreamforce Feedback!! 』
Dreamforceに参加したテラスカイのエンジニアが、現場の生の情報をテクノロジーカットでお伝えします。
またとないこの勉強会にぜひご参加ください。Dreamforceについて語り合いましょう!

dreamforce