読者の皆様、あけましておめでとうございます!ユニアースのアプリ開発担当、にっちゃんです!本年もよろしくお願いします!
前回までの記事は仕事効率化系のソフト紹介をさせて頂いておりましたが、今回はアプリ開発者らしく技術ネタを紹介させて頂きたいと思います。
チャットワークAPIって?
まず、チャットワークは、
「ビジネスが加速する クラウド会議室 業務の効率化と会社の成長を目的とした、メール・電話・会議に代わるコミュニケーションツールです。」引用→ChatWork
とあるように、弊社では業務をする上で欠かせないコミュニケーションツールとなっています。
そのチャットワークにおいて、現在プレビュー版ではありますがシステムにアクセスできるAPIが提供されており、申し込むことでAPIが利用できる状態になります。→ChatWork API
今回はそのプレビューの申し込みが承認され、利用できるようになりましたので何かこのAPIを使ったアプリを作ろうという事で開発に着手してみました。
iOS8のAppExtension(ShareExtension)
・・・とは言うものの、さて何を作ろうかという事で悩みましたが1日で答えは出て、AndroidのIntent機能を使ったChatWorkへのシェアアプリを作ろうと思いました。
AndroidのIntent機能について簡単に説明すると、1つのアプリから異なるアプリへ指示を送ってアプリ間の連携を容易にする仕組みです。開発者にとってすごく使いやすく分かりやすく、これがあればなんでもできるじゃんぐらいのすばらしい機能です。
・・・が、これらはAndroid開発者としては当たり前すぎました。そう、当たり前すぎました。
大事な事なので2回言いましたが、当たり前すぎました。
そこで、iOSで同じことができないかと調べてみたところ、ちょうどiOS8から同じような仕組みが提供されている事を知りました。
Androidでは当たり前に出来ていた事が数年遅れてiOSがAndroidに追いついたようです。
その名も「AppExtension」{ワーワーキャーキャードンドンパフパフ
シェア機能を見てみよう
iOS8をご利用の方はSafariを起動して画面下部中央のボタンをタップしてみてください。
するとこんな画面が表示されます。
Androidユーザーは見覚えのあるような画面だと思います。そう、UIこそ違いますがAndroidで言うIntentと同じ機能ですね。
iOS7まではこれらのアプリ連携するシェア機能はiOS公式アプリにしかありませんでした。
しかし、iOS8からサードパーティ製のアプリがアプリ連携を受けれるようになりました。
今回作ったチャットワークシェアアプリ
まずは普通にいつものアプリを作ります。
そしてここではチャットワークAPIのAPIトークンを入力し、アプリに記憶させます。
シェアを受けるアプリで毎回APIトークンを入力する手間を省くためです。
そしてsafariを起動して、例のボタンをタップすると下図のようにMoreボタン(日本語環境だとその他ボタン)があります。
Moreボタンをタップすると、シェアを受けられるアプリ一覧が表示されます。
自作したチャットワークシェアアプリにチェックし、完了します。
すると例の一覧に自作アプリが表示されますのでそれをタップします。
投稿画面が表示されます。この画面の大部分をAppExtensionの機能を使うとiOSがほぼ自動で表示してくれます。
次に送信先グループのセルをタップすると別の自作ViewControllerが表示されるので、そこでチャットワークのチャットルーム一覧を取得して表示しています。
ルームを選択すると前の画面に遷移し、送信先グループに選択したルーム名が表示されます。
後は任意のテキストを入力して、Postをタップすると選択したチャットルームに入力したテキストと表示中のURLを投稿する仕組みとなっています。
Thanks!
いかがでしたでしょうか?スマホでブラウジングしていて内容をシェアしたい時にとても便利ですので本家チャットワークさんのアプリに是非組み込んで欲しい機能ですね!
さて、実装方法が気になりますか?気になりますよね!
残念ながら今回は紹介編のためここまでです!気になる実装はまた次回の実装編で詳しくご説明させて頂きます!
よろしければブックマークして頂き、また実装編もご覧くださいませ!