カテゴリー: 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

最近の投稿

go 1.24の tool directive でツールを管理する

はじめに プロダクト開発を行う…

2か月 前

uvの本番環境用dockerのマルチステージビルド

はじめに uvで本番環境のdo…

2か月 前

Go 1.24で追加されたweak pointer

はじめに 前回の記事では、Go…

3か月 前

Next.jsでサイトマップの実装

はじめに Next.jsでサイ…

4か月 前