17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xamarin.FormsとCoreTweetでTwitterクライアントアプリを作ってみる

Last updated at Posted at 2016-04-19

Xamarin.FormsとCoreTweetでTwitterクライアントアプリを作ってみる

CoreTweetがすごい

「たったこれだけのコードでAndroidからツイートできるってすばらしいXamarinすき」
なんていうTweetを見て、マジですかい?
と触発されてつい作ってしまいました。

実際、あれだけのコードでTweetできるし、StreamingAPIで待機待ち発生させるのも1ラインでかけてしまうという怖ろしさ。
すごいです。

実際に作ってみた

んで、Xamarin.Formsで実際に作ってみました。
GitHubにソースを置いてあります。

uwpで作り始めて、読み書きと見栄えの調整でのべ5時間ほど…。
簡単にできてしまいました。

んで、同じ時間くらいかけてiOSとAndroidで動作確認をするという。
そっちにかかった時間の方が長いくらい。

またなんで改めてTwitterクライアント?

携帯端末でStreamingAPI対応をがっつり謳っているものがさらっと見た限りではなさそうだったから、というのが理由の一つです。
つまり、自分の端末でStreamingで流れてくるものを見たかったんですね。
でも、そんなネットワークにずっと繋いでいるようなことをすると、通信料とバッテリーをかなり消費しそうですが…。

ソースの解説

解説ってほどでもないですが。
ポイントポイントで。

Twitter用の設定について

まず、上記のGitHubのページにも書きましたが、TwitterのConsumer KeyとConsumer Secretは書いてません。

NicoNocoApp.Common/SystemSettings.cs
namespace NicoNocoApp.Common
{
    class SystemSettings
    {
        public const string ConsumerKey = "xxx";
        public const string ConsumerSecret = "xxx";
    }
}

こんな感じでファイルを作ってください。

プロジェクトについて

各プラットフォームごとにプロジェクトを作っていますが、入口のみで実際のコードは NicoNocoApp.Common にまとまっています。
また、画像は NicoNoko.Resources にまとめました。
NocoNocoApp.Common はPCL、 NicoNoco.Resources は共有プロジェクトです。
他は拡張子でプラットフォームをみてください。

Twitterに繋がっている部分

StreamingAPIで繋がっている部分は以下になっています。

NicoNocoApp.Common/CommonData.cs
if (_StreamingMessage == null)
{
    _StreamingMessage = this.Tokens.Value.Streaming.UserAsObservable().Publish();
    _StreamingMessage.OfType<StatusMessage>().Subscribe(x =>
    {
        Device.BeginInvokeOnMainThread(() =>
        {
            TweetList.Insert(0, x);
        });
    });
}

Publish で接続オブジェクトを作って、 OfType でふるい分けし、 Subscribe で監視する、と。(2016/04/21追記 ←間違えています。コメント欄を確認してください)
簡単!すごい!CoreTweet万歳!

見て分かる通り、エラーチェックなどは一切行っていません(笑)
あと、認証時など状態監視にReactivePropertyを使いまくっています。

画面など

画面やアプリの動作自体はXamarin.Formsにおんぶに抱っこしてもらってます。
Twitterクライアントくらいの画面ならこれでまんま賄えますね。
んで、XAMLを使わずにコードで画面を作っています。

上でも書きましたが、状態監視にReactivePropertyを、また環境設定の保存用にXamarin.Pluginsの中からSettingsを使っています。

簡単にアプリが作れます。

Xamarin.FormsとNuGetで使えるライブラリを使えばとっても楽にアプリが作れます。

あなたも使ってみませんか。

17
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?