20190526のSwiftに関する記事は8件です。

Repro(Web/アプリのマーケティングプラットフォーム)を比較して使ってみた

こんにちは!iOSアプリエンジニアをやっております村松龍之介と申します。
最近はアプリ開発に追われてブログも書けず…久しぶりに筆をとります。

以下、本題

Reproを使ってみました!

今回、リリース済みの個人開発アプリにマーケティング支援のためのライブラリを入れてみました。
マーケティング支援ツールにも色々ありますが、今回は界隈でよく使われている(?)Firebaseと比較していきたいと思います。
ハードルの低い無料で使える範囲での機能比較と、「Repro」を実際に導入してみてできたこと、感じたことを書いていきます?

まず、Reproで何ができるの?

いかんせん機能が豊富なので、まず何ができるのか整理してみます

  • 分析
  • プッシュ通知
  • アプリ内メッセージ
  • smart audience (AI オーディエンス)機能
  • 広告機能

などでしょうか。他にもありますが、ざっくりあげてみました。
この中で、僕が試してみたのが「分析」と「プッシュ通知」です。

類似サービスとの違い・比較

Reproの使用感の前に、同じくプッシュ通知や分析ができるサービスを比較しました。

マーケティングツールでググってみると、「プッシュ通知」に重きを置いた比較記事が多く出てきます。
そこで名前の上がってきたサービスはあまり名前の知らないものも多くありました。

個人的にプッシュ通知で、使おうかなと思っていたのはGoogleの「Firebase

Firebaseと比べた時のメリットとしては、

  • 日本語完全対応
  • 分析からマーケティングまで一通りの機能が揃っている
  • Webの操作画面がシンプルなUIで使いやすい
  • 画像等を使ったリッチなプッシュ通知

以上にメリットを感じるのであれば、Reproでのプッシュ通知を選択するのをお勧めします。

ツールの比較表

Repro Firebase
プッシュ通知
アプリ内メッセージ
A/Bテスト
分析 定量分析(ファネル分析など) Googleアナリティクス
料金 一定使用まで無料 一定使用まで無料

Reproのセットアップ

CocoaPodsで導入しました(Carthageは未対応)

AppDelegate.swift
import Repro

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        Repro.setup("ReproのSDKキー")
    }
// 省略
}

分析に使うTrack機能は簡単に実装可能

import Repro

class ViewController: UIViewController {
    func trackScreen() {
        let className = String(describing: type(of: self))
        Repro.track(className, properties: nil)
    }
}

ダッシュボード

Reproの導入の仕方については公式サイトのドキュメントが非常に充実しており、説明するまでもないと思いますので割愛します。

導入後の管理画面はこんな感じです。

スクリーンショット 2019-05-23 22.24.41.png
弱小アプリですみません?良かったらダウンロードしてください
-> 「記念日・ギフトの管理アプリ メモリア

重要なプッシュ通知許諾率も見れる

スクリーンショット 2019-05-23 22.24.59.png
アプリ起動直後などで安易に許諾を求めてしまうと、拒否されてプッシュ通知送れなくなるので注意しましょう…

マーケティング -> プッシュ通知

スクリーンショット 2019-05-26 11.08.48.png
Repro公式サイトより引用

プッシュ通知を使ってみたんですが、新規作成が簡単で驚きました。

タイトルと本文、お好みで画像・動画URL・音声URLも直感的に設定できます。
そして通知を選択された時の飛ばし先には、URLかディープリンク(アプリ内で開きたい場所)を設定できます。
もちろんバッジをつけることも可能

スクリーンショット 2019-05-26 11.33.43.png

あとは、配信時刻や対象ユーザーを絞って配信することもできるので、お好みで設定したら公開するだけでした。

※もちろんアプリ内での簡単な実装は必要です。

まとめ

サポートや日本語ドキュメントの充実さを望むならRepro?

スクリーンショット 2019-05-26 13.16.29.png
これは本格的な導入を行うさいのメリットだと思うのですが、国内企業なので安心感がありますね。
公式ドキュメントもとても読みやすいのでそういった意味でも導入障壁がとても低いと思います。

認証機能やデータベースもあるFirebase

対してFirebaseはマーケティングツールという枠組みではないので当たり前なのですが、機能が豊富です。
Googleアナリティクスとも連携可能なので分析もできます。
パッと見たところ、画像付きプッシュ通知ができなそう?や設定UIはReproに軍配がありますが、管理や導入を一元化できるのっていいですよね。
 
まだプッシュ通知や本格的な分析については行えていないので、今後使っていくうちに感じたことや気づいたことがあれば追記するか別記事で書きたいと思います。

それでは、アプリマーケティングを!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Reproを比較して使ってみた

こんにちは!iOSアプリエンジニアをやっております村松龍之介と申します。
最近はアプリ開発に追われてブログも書けず…久しぶりに筆をとります。

以下、本題

Reproを使ってみました!

今回、リリース済みの個人開発アプリにマーケティング支援のためのライブラリを入れてみました。
マーケティング支援ツールにも色々ありますが、今回は界隈でよく使われている(?)Firebaseと比較していきたいと思います。
ハードルの低い無料で使える範囲での機能比較と、「Repro」を実際に導入してみてできたこと、感じたことを書いていきます?

まず、Reproで何ができるの?

いかんせん機能が豊富なので、まず何ができるのか整理してみます

  • 分析
  • プッシュ通知
  • アプリ内メッセージ
  • smart audience (AI オーディエンス)機能
  • 広告機能

などでしょうか。他にもありますが、ざっくりあげてみました。
この中で、僕が試してみたのが「分析」と「プッシュ通知」です。

類似サービスとの違い・比較

Reproの使用感の前に、同じくプッシュ通知や分析ができるサービスを比較しました。

マーケティングツールでググってみると、「プッシュ通知」に重きを置いた比較記事が多く出てきます。
そこで名前の上がってきたサービスはあまり名前の知らないものも多くありました。

個人的にプッシュ通知で、使おうかなと思っていたのはGoogleの「Firebase

Firebaseと比べた時のメリットとしては、

  • 日本語完全対応
  • 分析からマーケティングまで一通りの機能が揃っている
  • Webの操作画面がシンプルなUIで使いやすい
  • 画像等を使ったリッチなプッシュ通知

以上にメリットを感じるのであれば、Reproでのプッシュ通知を選択するのをお勧めします。

ツールの比較表

Repro Firebase
プッシュ通知
アプリ内メッセージ
A/Bテスト
分析 定量分析(ファネル分析など) Googleアナリティクス
料金 一定使用まで無料 一定使用まで無料

Reproのセットアップ

CocoaPodsで導入しました(Carthageは未対応)

AppDelegate.swift
import Repro

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        Repro.setup("ReproのSDKキー")
    }
// 省略
}

分析に使うTrack機能は簡単に実装可能

import Repro

class ViewController: UIViewController {
    func trackScreen() {
        let className = String(describing: type(of: self))
        Repro.track(className, properties: nil)
    }
}

ダッシュボード

Reproの導入の仕方については公式サイトのドキュメントが非常に充実しており、説明するまでもないと思いますので割愛します。

導入後の管理画面はこんな感じです。

スクリーンショット 2019-05-23 22.24.41.png
弱小アプリですみません?良かったらダウンロードしてください
-> 「記念日・ギフトの管理アプリ メモリア

重要なプッシュ通知許諾率も見れる

スクリーンショット 2019-05-23 22.24.59.png
アプリ起動直後などで安易に許諾を求めてしまうと、拒否されてプッシュ通知送れなくなるので注意しましょう…

マーケティング -> プッシュ通知

スクリーンショット 2019-05-26 11.08.48.png
Repro公式サイトより引用

プッシュ通知を使ってみたんですが、新規作成が簡単で驚きました。

タイトルと本文、お好みで画像・動画URL・音声URLも直感的に設定できます。
そして通知を選択された時の飛ばし先には、URLかディープリンク(アプリ内で開きたい場所)を設定できます。
もちろんバッジをつけることも可能

スクリーンショット 2019-05-26 11.33.43.png

あとは、配信時刻や対象ユーザーを絞って配信することもできるので、お好みで設定したら公開するだけでした。

※もちろんアプリ内での簡単な実装は必要です。

まとめ

サポートや日本語ドキュメントの充実さを望むならRepro?

スクリーンショット 2019-05-26 13.16.29.png
これは本格的な導入を行うさいのメリットだと思うのですが、国内企業なので安心感がありますね。
公式ドキュメントもとても読みやすいのでそういった意味でも導入障壁がとても低いと思います。

認証機能やデータベースもあるFirebase

対してFirebaseはマーケティングツールという枠組みではないので当たり前なのですが、機能が豊富です。
Googleアナリティクスとも連携可能なので分析もできます。
パッと見たところ、画像付きプッシュ通知ができなそう?や設定UIはReproに軍配がありますが、管理や導入を一元化できるのっていいですよね。
 
まだプッシュ通知や本格的な分析については行えていないので、今後使っていくうちに感じたことや気づいたことがあれば追記するか別記事で書きたいと思います。

それでは、アプリマーケティングを!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Swift:MIDIのBluetooth構成ウィンドウを開く

概要

MacとMIDI機器を接続する時に開くウィンドウ↓ をプログラムのコードから呼び出したかった.

ble.png

方法

CoreAudioKitCABTLEMIDIWindowControllerを使えば良いようです.

private var bleConfWC: CABTLEMIDIWindowController? = nil

func open() {
    NSApp.activate(ignoringOtherApps: true)
    if bleConfWC == nil {
        bleConfWC = CABTLEMIDIWindowController(window: nil)
    }
    bleConfWC?.showWindow(self)
}

だいたいこんな感じ.ただ,原因が特定できていないがたまにクラッシュする...

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

記事書き方練習

Main Title Comes Here

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

kiji

Main Title Comes Here

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Swiftにおけるreduceの使い方

Swiftにおけるreduceの使い方

こんな感じで使います。

reduce.swift
let array = [1, 2, 3, 4, 5]
let result = array.reduce(0) { $0 + $1 }
print(result) // 15

reduceでは{ }の中身が要素の数だけ繰り返されて処理されるので順番に見ていきます。

1周目

まず1周目ですが、\$0には第一引数で指定した「0」が代入されます。一方、\$1には配列の要素が順番に代入されていくので、この1周目では「1」が代入されます。したがって、{ }の中では「0 + 1」の結果である「1」が得られます。これが2周目の\$0に代入されます。

2周目

1周目の結果として得られた「1」が、2周目の\$0に代入されます。つまり2周目以降は、前回の周で得られた結果が\$0に代入されることになります。そして、\$1は配列の要素が順番に代入されるので、今回は配列の2つ目の要素である「2」が代入されます。よって、「1 + 2」の計算が行われ、3が得られます。

3周目

あとはこれの繰り返しになります。2周目の結果として得られた「3」が3周目の\$0に、そして配列の要素の3番目である「3」が\$1に代入されます。「3 + 3」で6が結果として得られます。

4周目

「6 + 4」で「10」になります。

5周目

「10 + 5」で「15」になります。そして、これで配列にあるすべての要素の処理が終わったので、resultには「15」が代入されます。

最後に

今回は例として{ }の中で足し算の処理をしましたが、他には掛け算、あるいは文字列の結合などにも使えます。いずれにしても上記の処理の流れがわかっていれば応用が効く思うのでいろいろ試してみてください。

ちなみに

僕は新しく知ったことを実際にコードで確かめたい時にはpaiza.ioをよく使っています。ちょっとしたアウトプットをするときなどに重宝しています。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AnimationでDurationのデフォルト値について(Swift・Obj-C)

はじめに

短い内容ですが、ググってもすぐに出てこなかったので記事にします。

知りたいこと

UIPageViewController.setViewControllers メソッドで duration のデフォルト値が知りたかったのですが、対象メソッドの公式ドキュメントには書かれていませんでした。
https://developer.apple.com/documentation/uikit/uipageviewcontroller/1614087-setviewcontrollers

結論

setAnimationDuration(_:) メソッドの公式ドキュメントに明記されていました。
https://developer.apple.com/documentation/uikit/uiview/1622617-setanimationduration

The default value is 0.2 seconds.

AnimationのDurationは 0.2秒がデフォルト値 です。

おわりに

setAnimationDuration(_:) というメソッドがあるのを知らなかったので勉強になりました。

Twitterで教えていただいたので、感謝です:bow:

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【学習記録35】2019/5/26(日)

学習時間

3.0H

使用教材

本気ではじめるiPhoneアプリ作り Xcode 10.x対応 (Informatics&IDEA)

学習分野

chapter5

コメント

学習開始からの期間:36日目
今日までの合計時間:110.0H

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む