カテゴリー: iOS

Swiftでシェア機能や外部アプリ起動の導線を簡単に実装できるライブラリ「SwiftShareBubbles」

はじめに

こんにちは、nukkyです。
今回はSNSでのシェア機能や外部アプリ起動の導線を追加したいときに
簡単に実装できて面白いアニメーションをする「SwiftShareBubbles」を紹介したいと思います。

 

準備

今回もおなじみCarthageを使用します。
Cartfileにこちらを記述してください。

github "takecian/SwiftShareBubbles"

そうしたら、以下のコマンドでビルドしてください。

carthage update --platform iOS

 

実装

表示

まずは「SwiftShareBubbles」をインポートします

import SwiftShareBubbles

ViewControllerに「SwiftShareBubblesDelegate」を継承します

class ViewController: UIViewController, SwiftShareBubblesDelegate {

「SwiftShareBubbles」をグローバル変数で宣言します

var bubbles: SwiftShareBubbles?

viewDidLoadで今回表示する
「SwiftShareBubbles」の初期化を行います

override func viewDidLoad() {
    super.viewDidLoad()
    // 表示をviewの中心から半径100で表示
    bubbles = SwiftShareBubbles(point: CGPoint(x: view.frame.width / 2, y: view.frame.height / 2), radius: 100, in: view)
    // 表示するBubbleTypeを指定
    bubbles?.showBubbleTypes = [Bubble.twitter, Bubble.line, Bubble.safari]
    bubbles?.delegate = self
}

StoryboardにUIButtonを用意し、
タップ時に「SwiftShareBubbles」表示用のメソッドを呼ぶようにします

@IBAction func buttonTapped(_ sender: Any) {
    bubbles?.show()
}

表示された「SwiftShareBubbles」をタップした時の
Delegateを用意します

// SwiftShareBubblesDelegate
func bubblesTapped(bubbles: SwiftShareBubbles, bubbleId: Int) {
    if let bubble = Bubble(rawValue: bubbleId) {
        switch bubble {
        case .twitter:
            print("twitter")
        case .line:
            print("line")
        case .safari:
            print("safari")
        default:
            print("default")
        }
    }
}

用意したボタンをタップするとアニメーション付きで以下のように表示されます

用意されているパターン

今回は「Twitter」「LINE」「Safari」を表示しましたが、
「SwiftShareBubbles」では以下のcaseが標準で用意されています
・facebook
・Twitter
・LINE
・google plus
・Youtube
・Instagram
・Pintereset
・Whatsapp
・Linkedin
・Weibo
・Safari

 

さいごに

SNSへのシェア機能や公式アプリの起動はほぼ標準になっているので
こうゆう表示に一工夫できるものがあると
とてもありがたいですね。

私としても今後も活用していきたいと思います。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

3週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

1か月 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前