LoginSignup
1
3

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-21

目的

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を使用するとプッシュ通知や会員管理などできる様なので、試していきたいです。

1
3
0

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
1
3