会議のアプリを紹介ボックス
展開は、カスタマイズ可能な、フルスタックとクロスプラットフォームモバイルアプリケーションを数分で次のイベントを展開します.
🛠 反応ネイティブ、graphql、AWS AmplifyとAWS AppSyncで造られます.
This app is open source. View the repo here.
先週242479152で私は「Graphqlを使ってリアルタイムで会議を開く」という話をしました.
ナダーダビット
いつものように、すでに2020年を楽しみにしていた.会議からの若干の写真は、ここにあります!
午後13時50分- 13月20日
6
54
プレゼンテーションでは、私は2019年1月に開催されたどのように我々は会議アプリからいくつかのアイデアを取って、チェーン反応会議アプリケーションにそれらを適用した反応ネイティブのAmazon会議について話しました.
Chain React
我々が追加したい主な機能は、参加者が各話を議論することができますし、さらにスピーカーによって答えられることができるスピーカーの質問をするように、リアルタイムのチャットだった.
プレゼンテーションの間、私は我々が連鎖反応会議アプリの2018のバージョンをとった方法を示して、各々の話のためにコメントを取り扱うGraphicsバックエンドを使用するようにそれを更新しました.私は、これをするために2、3日のコースの上でから働きました.
私はまた、コメントを報告する能力を加えて、モデレーターが報告されたコメント、ブロック装置をモニターして、報告されたコメントを削除することができるInfinite Redを構築する能力を加える方法によって、アイデンティティと虐待を取り扱う方法を示しました.
アプリを構築している間、私は多くのイベントや会議がポップアップしている知っているので、機能を再利用できるようにするアイデアを持っていた.私はなぜ誰もが使用できる何かを作成しようとしないと思った?
課題:このような問題は、バックエンド(認証、データベース、API)を含むすべてを構築することは通常、簡単に再現できません.
解決策:AWSを増幅すると、基本構成を使用してバックエンド全体を展開できます.たとえば、私は認証、データベース、APIと無制限の機能の組み合わせを持っているアプリを持っている場合、私は複数のアプリケーション間でこのバックエンドを再現したり、他のユーザーと共有するには、私がする必要がある唯一のことは、Amplifyフォルダを共有することであり、誰もが自分の端末上のコマンドのカップルと同じバックエンドで取得することができます.
私は簡単にカスタマイズされた可能な会議&イベントのアプリを構築することを決め、この方法で展開を使用して展開することができます.
admin panel
アプリの配備
The code for the app is located here. Before deploying the app, I'd also take a look at the next section (How it works) so you know how everything works.
アプリケーションを配備するには、次の手順に従います.
# 1. Clone the repo & install the dependencies
~ git clone https://github.com/dabit3/conference-app-in-a-box.git
~ cd conference-app-in-a-box
~ npm install
# 2. Initialize and deploy the Amplify project
~ amplify init
? Enter a name for the environment: dev (or whatever you would like to call this env)
? Choose your default editor: <YOUR_EDITOR_OF_CHOICE>
? Do you want to use an AWS profile? Y
~ amplify push
? Are you sure you want to continue? Y
? Do you want to generate code for your newly created GraphQL API? N
# We already have the GraphQL code generated for this project, so generating it here is not necessary.
# 3. Start the app
~ react-native run-ios
# or
~ react-native run-android
今では、バックエンドは、アプリケーションを開くことができます配置されているアカウントとサインを作成します.データベースの設定
次に、次のコマンドを実行してAPIと対話するようにAppSyncコンソールに入ります.
~ amplify console api
AppSyncコンソールから、クエリをクリックして、GraphSQLエディタを開きます.“ユーザープールでログイン”にプロンプトが表示されると、新しいユーザー名でログインでき、AWSエクスポートにあるaws_user_pools_web_client_id
を使用できます.ClientidのためのJS突然変異の創造
次の突然変異で新しい話を作成します:
mutation createTalk {
createTalk(input: {
name: "Performance In React Native",
summary: "In this talk, we will look at the various tips and tricks for taking full advantage of React Native and using the performance attributes of the new architecture.",
speakerName: "Ram Narasimhan",
speakerBio: "Software Engineer at Facebook",
time: "9:00 AM - 9:30 AM",
timeStamp: "1573491600",
date: "November 10",
location: "Armory",
speakerAvatar: "https://pbs.twimg.com/profile_images/875450414161772544/UjefWmmL_400x400.jpg"
}) {
id name speakerBio speakerName speakerAvatar location date time timeStamp
}
}
データのクエリ
ときにアプリケーションを再ロードすると、起動時にこの話をリストする必要があります.
AppSyncコンソール内のすべての対話を問い合わせるには、次のクエリを実行できます.
query listTalks {
listTalks {
items {
id
name
summary
speakerName
speakerBio
time
timeStamp
date
location
speakerAvatar
}
}
}
動作方法
アプリのコード に位置しています.
プロジェクトでは、amplifyという名前のフォルダに気づくでしょう.このフォルダには、誰のアカウントで再配置することができますアプリケーションのためのバックエンドが含まれます.Amplifyフォルダでバックエンドフォルダが表示されます.このフォルダでは、2つの主な機能の設定が表示されます
バックエンド/APIフォルダでは、GraphSQL APIの設定とベースhereが表示されます.
これはベースのGraphSQLスキーマです.基本スキーマは次のようになります.
type Talk @model {
id: ID!
name: String!
speakerName: String!
speakerBio: String!
time: String
timeStamp: String
date: String
location: String
summary: String!
twitter: String
github: String
speakerAvatar: String
comments: [Comment] @connection(name: "TalkComments")
}
type Comment @model {
id: ID!
talkId: ID
talk: Talk @connection(sortField: "createdAt", name: "TalkComments", keyField: "talkId")
message: String
createdAt: String
createdBy: String
deviceId: ID
}
type Report @model {
id: ID!
commentId: ID!
comment: String!
talkTitle: String!
deviceId: ID
}
type ModelCommentConnection {
items: [Comment]
nextToken: String
}
type Query {
listCommentsByTalkId(talkId: ID!): ModelCommentConnection
}
Not that the Report feature is not implemented in the app, but it is there so if you wanted to add a report feature and the admin dashboard you wouldn't have to configure anything else.
@ modelと@ connectionディレクティブに気づいていないかもしれない前に、あなたがAmplifyで働いたことがないならば.これらはAmplify CLIのGraphQL Schemaライブラリの一部です.
@ model -このディレクティブを持つ任意の基底型を飾り付け、リストクエリと突然変異定義を取得し、GraphSQL操作用に作成されたDynamoDBテーブルとリゾルバを取得します.
@接続-このディレクティブを使用してフィールド間の関係を指定します.
GraphQL Transform
GraphSQLスキーマのカスタマイズ
このスキーマを編集できます.イベントに追加のフィールドが必要な場合は、次のようにしてバックエンドを更新できます.
~ amplify push
あなたやあなたが知っている場合は知っているし、このプロジェクトを使用して、次のイベントのためのアプリで実行して助けを必要とする、私は助けるために満足している!My Name is . I am a Developer Advocate at Amazon Web Services working with projects like AWS AppSync and AWS Amplify. I specialize in cross-platform & cloud-enabled application development.
Reference
この問題について(会議のアプリを紹介ボックス), 我々は、より多くの情報をここで見つけました https://dev.to/dabit3/introducing-conference-app-in-a-box-kgjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol