【Adalo】チャットの未読/既読機能の実装方法

【Adalo】チャットの未読既読機能の実装方法

こんにちは!EPICs合同会社です。

今回はノーコードツール「Adalo」を使用して開発したチャットで既読機能を実装する方法について解説していきます!
※チャット自体はできている体で進めていきますので、まだチャットの作り方を知らない方はこちらをご覧ください!

動画解説バージョンはこちら!

著者:大熊滉希
ノーコード特化のアプリ/システム開発事業を展開するEPICsの代表。
前職にて新規事業コンサルティングを行う企業で役員を歴任した後、
最小の経営資源で開発を行えるノーコードに可能性を感じEPICsを創業。

運営会社:EPICs合同会社
日本最大級の開発実績を誇るノーコード特化のアプリ/システム開発会社。
最安30万円・最短2週間から、BubbleやAdaloなど多様なツールの中からニーズに合わせた最適な開発を提案・実施している。Adalo公認エキスパートも在籍。

目次

日本最大級のノーコード開発実績!
 \ 最安30万円・最短2週間でアプリ・システム開発 /

もっと知る →

実装イメージ

実装手順

以下の手順で実装します。

  1. データベースの用意
  2. Chatを開いた際とメッセージを送信時にReadのデータ設定
  3. メッセージ送信時のCurrent Date&Timeの取得
  4. 未読時に表示する要素の設定

データベースの用意

今回のチャットの作成あたりCOLLECTIONは以下の4つを使用しています!

COLLECTION名使用用途
Userチャットを行うユーザー
Chat作成されたチャット
Message チャット内に送受信されるメッセージ
Read既読管理をするもの

それぞれのCOLLECTION内のPROPERTYはこのようになります!

既読機能に関しては特にCOLLECTIONの「Read」とReadとRelationを組んでいるデータをよく使用します!

Userデータ

PROPERTY名データ型
User nameText
EmailText
ChatsRelation(N:N)
MessageRelation(1:N※Userが1)
ReadsRelation(1:N※Userが1)

Chatデータ

PROPERTY名データ型
Chat nameText
Last MessageText
Last Message dateDate&Time
MemberRelation(N:N)-UserとのRelation
MessageRelation(1:N※Chatが1)
ReadsRelation(1:N※Chatが1)

Messageデータ

PROPERTY名データ型
MessageText
ChatRelation(1:N※Chatが1)
SenderRelation(1:N※Chatが1)-UserとのRelation

Readデータ

PROPERTY名データ型
NameText
UserRelation(N:1※Chatが1)
ChatRelation(N:1※Chatが1)

Chatを開いた際とメッセージを送信時にReadのデータ設定

Chatを開いた際の設定

Chatを開いた際に、「Read」のデータが作成されるようにします!

「User」→「Logged in User」
「Chat」→「Current Chat」

を指定します。

メッセージを送信時の設定

同様にメッセージ送信時も「Read」が作成されるようにします。

こちらも同じく下記の設定で大丈夫です!

「User」→「Logged in User」
「Chat」→「Current Chat」

メッセージ送信時のCurrent Date&Timeの取得

続けてメッセージの送信時に「Chat」データの「Last Message date」「Update」します。

内容としては「Last Message date」で「Current Time」を取得しましょう。

未読時に表示する要素の設定

最後に未読時に表示させる要素の設定をしていきます。

今回は未読時にはチャットリストに緑色のマークを表示させることにします。

緑色のShapeとカウント表示用のテキストをGroup化して、ここにVisible設定をしていきます。

続いて、Visibleの設定を追加していきましょう!

「will be visible if」は下記のように設定しましょう!

「Current chat」→「Read」→「Count」

次に「ADD Custom Filter」で2つ設定を追加します!
※画像右側の文字が隠れている部分は「Current Chat」>「Last Message date」を指定しています。

最後に「Is equal to」→「0」を指定して以上です。

全体としてはこのようになります!

これで設定は以上です!

いかがでしたでしょうか?

きっと実装イメージのように既読/未読の識別がされているかと思います。

本記事が開発力の向上や開発を検討している方のお役に立てておりましたら幸いです。

日本最大級のノーコード開発実績!ノーコードなら迷わずEPICs

EPICsはノーコードでの開発に特化をしたプロの開発組織です。

従来のスクラッチでの開発でよく発生する「費用が高い」 「開発期間が長い」 「知識がなく開発に踏み切れない」という課題に対し、ノーコードでの開発という選択肢で皆様の開発を支援します!

そんな弊社に開発相談をいただくメリットは大きく4つあります!

①豊富な開発実績
創業よりノーコード開発を軸に多様な開発を行ってまいりました。SNSやマッチングアプリ、ECアプリなど多様な開発実績がございます。
豊富な経験をもとに、ただ開発を行うにとどまらず、より良い開発を行うためのアドレスや公開後のご不安やご相談にも対応させていただきます!

②最安30万円!通常の1/10~1/5ほどの低コストで開発
コーディングの工程を削減できるノーコードは、最適かつ最小限の人員で対応が可能です。また弊社では豊富な開発実績があるため、経験を活かした開発を行うことで開発費用を大幅に削減することができます。

③最短2週間!圧倒的な短期間で納品
ノーコード開発では複雑なコードを1から書く必要がないため開発工程を省略することができ、開発期間の大幅な短縮が可能です。

④公開後の保守や運用の徹底サポート
アプリは開発後の運用もとても重要です。EPICsでは開発のみならずその後のサポートも対応可能です!
またノーコードで開発したアプリは、スクラッチで開発したアプリに比べて保守や運用にかかる費用を削減することも可能です!

「勉強になった!」「役に立った!」と思っていただけたら、是非シェアもお願いします!
目次