85
Yusuke Yamamoto @yusuke Twitter4Jのプロモーション戦略 たくさん使ってもらうためにしたこと

Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Twitter4Jのプロモーション戦略

たくさん使ってもらうためにしたこと

Page 2: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

#jjug_b11#q

@yusuke

Page 3: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

•2007年5月~•オープンソース•たくさん使って貰いたい•営利目的ではない

Page 4: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Page 5: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーションTwitter4Jの 戦略

たくさん使ってもらうためにしたこと

Page 6: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション

Page 7: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

活動

プロモーション

Page 8: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

活動 手段

プロモーション

Page 9: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

活動 手段目的

プロモーション

Page 10: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

活動 手段目的

プロモーション知名度向上

Page 11: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

活動 手段目的

プロモーション

ブランド向上

知名度向上

Page 12: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

プロモーション

売上最大化

知名度向上

ブランド向上

活動 手段目的

Page 13: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

売上最大化

広告出稿

インセンティブ

営業活動

口コミ

知名度向上 プロモーション

ブランド向上

活動 手段目的

Page 14: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

広告出稿

インセンティブ

営業活動

口コミ

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 15: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 16: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 17: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ユーザー層を広げる

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 18: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

安心して使えるように

ユーザー層を広げる

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 19: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

簡単に使えるように

安心して使えるように

ユーザー層を広げる

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 20: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

簡単に使えるように

安心して使えるように

ユーザー層を広げる

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 21: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

簡単に使えるように

安心して使えるように

ユーザー層を広げる

プロモーション知名度向上

ブランド向上

活動 手段目的

ユーザー増加

Page 22: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Twitter4Jのプロモーション戦略プロモーション

Page 23: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Twitter4Jのプロモーション戦略

簡単に使えるように

安心して使えるように

ユーザー層を広げる

プロモーション

Page 24: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション

Page 25: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•とにかく知って貰う‣ブログ

Page 26: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•とにかく知って貰う‣ブログ

Page 27: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•とにかく知って貰う‣Twitter

Page 28: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•とにかく知って貰う‣Twitter

Page 29: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト

Page 30: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト: javanews.jp

Page 31: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト: TheServerSide

Page 32: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト: digg.com

Page 33: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト: DZone.com

Page 34: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•ニュース系サイト: マイナビ

Page 35: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•見つけて貰う•名前を分かりやすく‣Twitter + Java = Twitter4J

Page 36: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

プロモーション•高いググラビリティ

Page 37: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ユーザー層を広げる

Page 38: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ユーザー層を広げる

•言語

•プラットフォーム

Page 39: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ

Page 40: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ‣手段: 言語を増やす

Page 41: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ‣手段: 言語を増やす

•プログラミング言語

•自然言語

Page 42: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ‣手段: 言語を増やす

•プログラミング言語

•自然言語

{ Java.NetCRubyPython

Page 43: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ‣手段: 言語を増やす

•プログラミング言語

•自然言語

英語中国語ヒンディー語....日本語{ {

Java.NetCRubyPython

Page 44: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象言語を増やす•ユーザー: プログラマ‣手段: 言語を増やす

•プログラミング言語

•自然言語

{ Java.NetCRubyPython

英語中国語ヒンディー語....日本語{

Page 45: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

英語対応•マルチリンガルサイト‣http://twitter4j.org/en/ : 英語

‣http://twitter4j.org/ja/ : 日本語

Page 46: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

実装• jsp + サーブレットフィルタ• jspのファイル内に英語と日本語を混ぜて書ける

$[ja:日本語]$[en:English]

Page 47: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

• 1.4.x

• 5.0

• 6.0

• 7.0

{リリース当時サポート

Page 48: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Java 1.4.xサポートの難しさ•拡張for文なし•Genericsなし•アノテーションなし

•StringBuilderなし•Enumなし

Page 49: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Java 1.4.xサポートの難しさ•拡張for文なし•Genericsなし•アノテーションなし

•StringBuilderなし•Enumなし

-target jsr14 {

Page 50: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Java 1.4.xサポートの難しさ•拡張for文なし•Genericsなし•アノテーションなし

•StringBuilderなし•Enumなし {使わない努力

-target jsr14 {

Page 51: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

参考情報

http://www.slideshare.net/yusukey/java7-8530853Java7シンタックスで レガシーコードを快適メンテナンス

Page 52: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

• 1.4.x

• 5.0

• 6.0

• 7.0

{リリース当時サポート

Page 53: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

• 1.4.x

• 5.0

• 6.0

• 7.0

{リリース当時サポート-target jsr14ではJava 7互換性に問題あり

Page 54: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

• 1.4.x

• 5.0

• 6.0

• 7.0{次期バージョンのサポート対象

-target jsr14ではJava 7互換性に問題あり

Page 55: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

Page 56: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

‣Google App Engine

Page 57: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

‣Google App Engine

‣Android

Page 58: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

対象プラットフォームを増やす•プラットフォーム‣ Java

‣Google App Engine

‣Android

• 「対応しています」• テストはしてない!• 報告があり次第対応

Page 59: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

Android対応•AndroidはJavaジャナイ•両対応ライブラリは注意が必要

http://www.slideshare.net/yusukey/android-6595931

Page 60: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

安心して使える

Page 61: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

使う側から見て安心できるOSS

•一般的なライセンス•開発がアクティブ•コミュニティがアクティブ•ロードマップが明確•プロジェクトに設定しやすい

Page 62: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

一般的なライセンス•OSI公式ライセンス•緩め(感染性がない)

‣リリース当初: BSD

‣現在: Apache License 2.0

Page 63: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

開発がアクティブ•頑張る•Twitter APIの追加変更に即対応

Page 64: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

コミュニティがアクティブ•MLで素早く親切丁寧に対応

Page 65: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

コミュニティがアクティブ•MLで素早く親切丁寧に対応

No GGRKS!

Page 66: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ロードマップが明確• JIRAで課題、ロードマップ公開

Page 67: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

•プロジェクトに設定しやすい•古典的なライブラリの使い方‣zip/tgzをダウンロード・展開

‣ jarをlibsディレクトリに配置

‣クラスパスに通す

Page 68: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

•プロジェクトに設定しやすい•モダンなライブラリの使い方•プロジェクトの依存を明記• 対応ツール• Maven / Ivy / Grape / Gradle / Buildr / SBT

• Maven Central Repoよりダウンロード

• 自動的にクラスパスに追加

Page 69: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

簡単に使える

Page 70: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

簡単に使えるOSS•サンプルコードが充実•ドキュメントが充実•ライブラリ依存関係•シンプルなパッケージ構成•容易なトラブルシューティング

Page 71: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

サンプルコードが充実•全メソッドにサンプルコード• .cmd / .sh で簡単に実行できる

Page 72: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ドキュメント•多くのOSSで問題‣ドキュメンテーションのメンテナンスコスト

Page 73: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ドキュメント•Twitter4Jのフォーカス‣簡単なサンプルコード例‣設定方法‣開発に参加する方法

Page 74: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ライブラリ依存関係•依存関係があると敷居が高い‣クラスパスが分からない開発者• NoClassDefFoundError!

‣他の依存ライブラリと衝突

Page 75: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ライブラリ依存関係•Twitter4Jはライブラリ依存なし‣twitter4j-core.jarをクラスパスに通すだけ

Page 76: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ライブラリ依存関係•がんばって自作した‣OAuth

‣BASE64

‣HttpClient

Page 77: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ライブラリ依存関係•パッケージを変更して内蔵‣org.json.* → twitter4j.interna.org.json.*

Page 78: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

ライブラリ依存関係•あれば自動的に使う‣ロギング• Log4j / Commons Logging

• SLF4J

• LogBack

• JUL(java.util.logging.*)

Page 79: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

シンプルなパッケージ構成• import twitter4j.* で利用可能•内部実装は twitter4j.internal.* に配置

Page 80: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

容易なトラブルシューティング•例外スタックトレースの工夫‣バージョンを織り込む

twitter4j.TwitterRuntimeException: A JSONArray text must start with '[' at 2 [character 3 line 1]Relevant discussions can be on the Internet at: http://www.google.co.jp/search?q=610d24cf or http://www.google.co.jp/search?q=03587c2fTwitterException{exceptionCode=[610d24cf-03587c2f 2efc4644-56189413], statusCode=-1, retryAfter=-1, rateLimitStatus=null, featureSpecificRateLimitStatus=null,

version=2.2.5}

Page 81: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

容易なトラブルシューティング•例外スタックトレースの工夫‣検索用コードを織り込む

twitter4j.TwitterRuntimeException: A JSONArray text must start with '[' at 2 [character 3 line 1]Relevant discussions can be on the Internet at:

http://www.google.co.jp/search?q=29f6cd28 http://www.google.co.jp/search?q=00ded0d8TwitterException{exceptionCode=[610d24cf-03587c2f 2efc4644-56189413], statusCode=-1, retryAfter=-1, rateLimitStatus=null, featureSpecificRateLimitStatus=null, version=2.2.5}

Page 82: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

容易なトラブルシューティング•例外スタックトレースの工夫‣検索用コードを織り込む

Page 83: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

Yusuke Yamamoto @yusuke

#q

Page 84: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

ブログTwitterニュースサイトググラビリティの高い名称

プロモーション言語プラットフォーム

ユーザー層を広げる

一般的なライセンス開発がアクティブコミュニティがアクティブロードマップが明確Maven対応

安心して使えるサンプルコードが充実ドキュメントライブラリ依存関係シンプルなパッケージ構成容易なトラブルシューティング

簡単に使える

Page 85: Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

#ありがとうございました