LoginSignup
0
0

More than 1 year has passed since last update.

Monaca + NCMBでTwitter風アプリを作る(その1:アプリの仕様とNCMB SDKの初期化)

Last updated at Posted at 2023-03-19

NCMBでは公式SDKとしてSwift/Objective-C/Kotlin/Java/Unity/JavaScript SDKを用意しています。また、それ以外にもコミュニティSDKとして、非公式ながらFlutter/React Native/Google Apps Script/C#/Ruby/Python/PHPなど幅広い言語向けにSDKが開発されています。

今回は公式SDKの一つ、JavaScript SDKとFramework7を使ってTwitter風のアプリを作ってみます。まず画面の仕様とSDKの初期化について解説します。

途中のコード

まだ完成にはほど遠いですが、プロフィールとフォロー/フォロワーの仕組みまで実装した分を NCMBMania/monaca-social-app にアップロードしてあります。

利用技術について

今回は次のような組み合わせになっています。

  • Monaca
  • Framework7
  • NCMB

仕様について

まだ途中ですが、以下のような機能を実装する予定です。

  • 認証
  • フォローする機能
  • ツイート
  • ツイートに良いね
  • フォローしているユーザー一覧
  • フォローしているユーザーのツイート閲覧(タイムライン)
  • プロフィール
  • 情報編集
  • 検索
  • 通知

利用する機能について

Twitter風アプリで利用するNCMBの機能は次の通りです。

  • 会員管理
    • ID/パスワード認証
    • ログアウト
  • データストア
    • データ登録
    • データ更新
    • データ取得
  • ファイルストア
    • ファイルアップロード
    • ファイルダウンロード
  • スクリプト
    • フォロワー数更新

画面について

現時点で、画面は以下の2つがあります。

ログイン画面

0934 localhost - 0318220034.jpg

ログイン画面はFramework7のログインコンポーネントを利用しています。

プロフィール画面

0932 localhost - 0318220022.jpg

ユーザー情報を閲覧できる画面です。ここでフォローしたり、外したりできます。

SDKのインストール

今回はMonacaのJS/CSSコンポーネントの追加と削除より、NCMBを追加します。アプリのテンプレートはFramework7のJavaScript版(VueやReactではなく)を選択しています。

NCMBのAPIキーを取得

mBaaSでサーバー開発不要! | ニフクラ mobile backendにてアプリを作成し、アプリケーションキーとクライアントキーを作成します。

js/config.jsonの作成

js/config.jsonを作成し、その中に先ほど取得したNCMBのAPIキーを設定します。内容は次のようになります。

{
	"applicationKey": "YOUR_APPLICATION_KEY",
	"clientKey": "YOUR_CLIENT_KEY"
}

初期化

初期化は js/app.js にて行います。config.jsonを読み込む関係上、非同期処理内にて行います。cordovaの有無(アプリまたはプレビューの違いを検知)によって初期化時のイベント処理を変えています。

// NCMBの初期化用
const event = window.cordova ? 'deviceready' : 'DOMContentLoaded';
document.addEventListener(event, async (e) => {
	// この中に処理を書きます
});

config.jsonの内容を読み込んで、NCMBとFramework7の初期化を行います。

window.config = await (await fetch('./js/config.json')).json();
window.ncmb = new NCMB(config.applicationKey, config.clientKey);
window.app = new Framework7({
	name: 'My App', // App name
	theme: 'auto', // Automatic theme detection
	el: '#app', // App root element
	// App store
	store: store,
	// App routes
	routes: routes,
});

これでNCMBの初期化が完了します。

ルーティング設定

現時点ではホーム画面とプロフィール画面の2画面になります。これを js/routes.js に定義します。 beforeEnter は認証判定を行う関数で、次の記事にて解説します。

const routes = [
  {
    path: '/',
    url: './index.html',
  },
  {
    path: '/home/',
    componentUrl: './pages/home.html',
    beforeEnter,
  },
  { 
    path: '/users/:userName/',
    componentUrl: './pages/profile.html',
  },
  // Default route (404 page). MUST BE THE LAST
  {
    path: '(.*)',
    url: './pages/404.html',
  },
];

まとめ

今回はTwitter風アプリの仕様と画面、NCMBの初期化までを解説しました。次は認証処理周りを解説します。

0
0
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
0
0