簡単にランキング機能を実装(Android)

この記事は最終更新日から1年以上が経過しています。

目的

Androidアプリ開発における無料、かつ、簡単にランキング機能実装ができたのでメモします。
自前でのサーバ構築も不要です。

背景

以前はLobiのRanking SDKを使用してランキング機能を実現できた様ですが、2018年2月28日でサービスが終了していました。

そこで代替手段として、ニフクラ mobile backendを使用したところ簡単にランキング機能が実装できたので本記事を投稿するに至りました。

実装手順

導入

下記マニュアルが非常に分かりやすいので、ご参照下さい。
http://mb.cloud.nifty.com/doc/current/introduction/quickstart_android.html

実装

後述「サンプルソース」の使用部分(一部修正)を記載します。

ランキング登録
EditFragment.java
                // 初期処理
                NCMB.initialize(getContext(), /**ニフクラで発行したアプリケーションキー*/,  /**ニフクラで発行したクライアントキー*/);
                // クラスのNCMBObjectを作成
                NCMBObject obj = new NCMBObject(/**ニフクラで登録したアプリ名*/)
                // オブジェクトの値を設定
                obj.put(/**クラス(テーブル)の項目名*/, /**パラメータ名*/);
                // データストアへの登録
                obj.saveInBackground(new DoneCallback() {
                    @Override
                    public void done(NCMBException e) {
                        if (e != null) {
                            // 保存に失敗した場合の処理
                        } else {
                            // 保存に成功した場合の処理
                       }
                    }
                });
ランキング取得
RankingFragment.java
        // ランキングを取得
        List<Map<String, String>> rankingList = new ArrayList<>();
        // 初期処理
        NCMB.initialize(getActivity().getApplicationContext(), /**ニフクラで発行したアプリケーションキー*/,  /**ニフクラで発行したクライアントキー*/);
        // クエリを作成
        NCMBQuery<NCMBObject> query = new NCMBQuery<>(/**ニフクラで登録したアプリ名*/);
        // 昇順指定
        query.addOrderByAscending(/**クラス(テーブル)の項目名*/);
        // 降順指定        
        query.addOrderByDescending(/**クラス(テーブル)の項目名*/);
        //検索件数を100件に設定
        query.setLimit(100);
        try {
            // データストアでの検索を行う
            List<NCMBObject> objects = query.find();
            // バックグランドにて行う場合は下記
            //List<NCMBObject> objects = query.findInBackground();
            for (NCMBObject obj :objects) {
                Map<String,String> map = new HashMap<>();
                map.put(/**マップのキー*/,obj.getString(/**クラス(テーブル)の項目名*/));
                rankingList.add(map);
            }
        } catch (NCMBException e) {
         // Exception発生時の処理
        }

リンク

■ニフクラ mobile backend
http://mb.cloud.nifty.com/

■サンプルで開発したアプリ:
https://play.google.com/store/apps/details?id=esetomin.com.samplenc&hl=ja
※ランキング投稿と閲覧しかできない、しょっぱいアプリです。

■サンプルで開発したアプリのソース(一部差異があります):
https://github.com/nemuiKani/SampleNC-repository

最後に

ニフクラ mobile backendを使用するとプッシュ通知や会員管理などできる様なので、試していきたいです。

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした