Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Twitter クライアント開発のすすめ #twtr_hack

10,000 views

Published on

Published in: Technology
  • Be the first to comment

Twitter クライアント開発のすすめ #twtr_hack

  1. 1. Twitter クライアント 開発のすすめ @Mocel
  2. 2. 自己紹介•@Mocel https://twitter.com/Mocel• 趣味プログラマー• 最近は仕事もソフトウェアエンジニア• 方向性「エンジニアらしくないエンジニア」
  3. 3. Twitter クライアントを作った
  4. 4. なぜ自作したか?
  5. 5. なぜ自作したか?• おもしろいクライアントがあった。
  6. 6. なぜ自作したか?•おもしろいクライアントがあった。• 真似して作られたクローンもけっこうあった。
  7. 7. なぜ自作したか?•おもしろいクライアントがあった。• 真似して作られたクローンもけっこうあった。• クローンの出来が…。
  8. 8. なぜ自作したか?•おもしろいクライアントがあった。• 真似して作られたクローンもけっこうあった。• クローンの出来が…。• じゃあ自分で真似する。
  9. 9. なぜ自作したか?•おもしろいクライアントがあった。• 真似して作られたクローンもけっこうあった。• クローンの出来が…。• じゃあ自分で真似する。• 作ってみたら手放せなくなった
  10. 10. おもしろいクライアント 「ラーメン大陸」
  11. 11. ラーメン大陸
  12. 12. ラーメン大陸 • Windows 専用 Twitter クライアント • Excel の上に溶け込むシンプルな UI • 必要な機能もほぼそろっている • 光学メディアイジェクト機能搭載 (Twitter クライアントでは世界初)
  13. 13. ラーメン大陸クローン「チャーハン諸島」
  14. 14. チャーハン諸島
  15. 15. チャーハン諸島 •Java 製 Twitter クライアント • Windows / Mac OS / Linux 対応 • オリジナルに忠実な TL 画面 • 独自機能・ TL 画面も
  16. 16. ラーメン大陸開発者「パクるなら全力で」
  17. 17. チャーハン諸島 ラーメン大陸
  18. 18. 諸島風 TL 画面
  19. 19. 諸島風 TL 画面 • 独自のタイムライン表示 • コマンドプロンプトやコン ソール画面に似せた外観 • リプライや RT もひととお り可能
  20. 20. 世界初の機能も搭載
  21. 21. 世界初の機能も搭載• Twitter クライアント初 「電力会社の電力使用量モニター」
  22. 22. 世界初の機能も搭載• Twitter クライアント初 「電力会社の電力使用量モニター」• ラーメン大陸の最新バージョンチェック
  23. 23. 世界初の機能も搭載• Twitter クライアント初 「電力会社の電力使用量モニター」• ラーメン大陸の最新バージョンチェック• Tween の最新バージョンチェック
  24. 24. そのほかのオリジナルな機能
  25. 25. User StreamsFilter Streaming API 対応 (たぶん日本初)
  26. 26. ツイートの簡易集計機能
  27. 27. ツイートの簡易集計機能
  28. 28. クライアントを開発することで
  29. 29. クライアントを開発することで• 自分のニーズにジャストフィット
  30. 30. クライアントを開発することで• 自分のニーズにジャストフィット• クライアントアプリに不満を言わなくなった
  31. 31. クライアントを開発することで• 自分のニーズにジャストフィット• クライアントアプリに不満を言わなくなった• GUI アプリの作り方も理解が進んだ
  32. 32. クライアントを開発することで• 自分のニーズにジャストフィット• クライアントアプリに不満を言わなくなった• GUI アプリの作り方も理解が進んだ• Twitter API のテストとかも(User Streams 公開前から使えた)
  33. 33. Twitter クライアント 作りましょう
  34. 34. クライアントの開発•REST API を使ったサーバー・クライアント型アプリ• HTTP 通信・OAuth 認証などの技術• JSON もしくは XML データの利用• 大量のデータ管理
  35. 35. クライアントの開発•REST API を使ったサーバー・クライアント型アプリ• HTTP 通信・OAuth 認証などの技術• JSON もしくは XML データの利用• 大量のデータ管理 通信する系のアプリに応用可能
  36. 36. GUI アプリの開発• マルチスレッド・非同期処理 「アプリをフリーズさせない」• 合理的なユーザーインターフェース設計• テキスト・グラフィックの配置・描画
  37. 37. GUI アプリの開発• マルチスレッド・非同期処理 「アプリをフリーズさせない」• 合理的なユーザーインターフェース設計• テキスト・グラフィックの配置・描画 Web アプリにも応用できる
  38. 38. Twitter クライアントが 作れればたいていのアプリも 作れるようになる
  39. 39. 用意するもの
  40. 40. 用意するもの• Twitter アカウント
  41. 41. 用意するもの•Twitter アカウント• 開発用 PC
  42. 42. 用意するもの•Twitter アカウント• 開発用 PC• 安定したネットワーク回線
  43. 43. 用意するもの•Twitter アカウント• 開発用 PC• 安定したネットワーク回線• 開発用ツール(Javaなら完全無料)
  44. 44. 特別な設備は不要プログラミング技術の向上に 持ってこい かつ実用的な題材
  45. 45. 開発へのアドバイス
  46. 46. API 利用規約の遵守
  47. 47. API 利用規約の遵守• https://dev.twitter.com/terms/api-terms
  48. 48. API 利用規約の遵守•https://dev.twitter.com/terms/api-terms• HTML のスクレイピングは禁止
  49. 49. API 利用規約の遵守•https://dev.twitter.com/terms/api-terms• HTML のスクレイピングは禁止• 自動フォローも禁止
  50. 50. API 利用規約の遵守•https://dev.twitter.com/terms/api-terms• HTML のスクレイピングは禁止• 自動フォローも禁止• 短時間の API 呼び出し連発は Ban されるかも
  51. 51. API 利用規約の遵守•https://dev.twitter.com/terms/api-terms• HTML のスクレイピングは禁止• 自動フォローも禁止• 短時間の API 呼び出し連発は Ban されるかも• ちゃんと理解してないと泣きを見る
  52. 52. 自動アップデート機能
  53. 53. 自動アップデート機能• 起動時にバージョンチェック、問答無用で更新
  54. 54. 自動アップデート機能• 起動時にバージョンチェック、問答無用で更新• バージョン違いのサポートとか必要ない
  55. 55. 自動アップデート機能• 起動時にバージョンチェック、問答無用で更新• バージョン違いのサポートとか必要ない• アップデートで致命的なバグが出ても「アプリを再起動してください」
  56. 56. 自動アップデート機能• 起動時にバージョンチェック、問答無用で更新• バージョン違いのサポートとか必要ない• アップデートで致命的なバグが出ても 「アプリを再起動してください」• アップデート内容はいつでも確認できるように
  57. 57. 通信エラー前提の設計
  58. 58. 通信エラー前提の設計• Twitter API はいつもいいタイミングで失敗する
  59. 59. 通信エラー前提の設計•Twitter API はいつもいいタイミングで失敗する• 「必ずエラーになる」つもりで
  60. 60. 通信エラー前提の設計•Twitter API はいつもいいタイミングで失敗する• 「必ずエラーになる」つもりで• ユーザーへの通知はスーパー致命的なものだけで
  61. 61. 通信エラー前提の設計•Twitter API はいつもいいタイミングで失敗する• 「必ずエラーになる」つもりで• ユーザーへの通知はスーパー致命的なものだけで• 握りつぶしたほうが精神衛生上好ましい場合も
  62. 62. ユーザーアカウント管理
  63. 63. ユーザーアカウント管理•XAuth とか夢見るのはやめよう• Web ブラウザありきでいいのでは• 複数アカウント対応は地味に人気高い
  64. 64. タブ UI とか
  65. 65. タブ UI とか•タブ UI 採用のクライアントはいっぱいある• 同時にひとつの TL しか表示できない• どうせなら「単なるタブ UI」からの脱却を
  66. 66. 非公式 RT 機能
  67. 67. 非公式 RT 機能•賛否両論• やってることは単なるコピペ、単純な機能• 有効な場面もある• protected なアカウントには注意
  68. 68. 素人にはお勧めできない
  69. 69. Twitter クライアント 作りましょう

×