【2021年8月 2weeksインターンシップ】インターンシップ体験談~PowerAppsでの既読未読機能の実装~
2021-09-10
azblob://2022/11/11/eyecatch/2021-09-10-school-communication-application-using-powerapps-000.jpg

株式会社FIXER新卒採用担当の諸見里です。この度、8月16日~27日までの2週間で夏季インターンシップを実施いたしました。今回のインターンシップは18名にご参加いただき、最終日に参加者全員にブログを書いていただきましたので、その内容を代筆いたしました。以下内容がインターン生のブログになりますのでご覧ください。

こんにちは。2Weeksインターンシップに参加させていただきました有明高専の大山です。今回はインターンシップの体験談とチーム内で要望の多かった、私が開発担当した既読未読機能の説明についてまとめたので、見ていただければ幸いです。

1. インターンシップの流れ

はじめに今回のインターンシップはオンラインで行われました。オンラインでのインターンは初めてだったのでコミュニケーションがしっかりとれるのかなどの不安もありましたが、クラウドの技術に触れるということでわくわくした気持ちもありました。

ここからはインターンシップのスケジュールを簡単に説明したいと思います。1~2日目は会社紹介や自分のチームの確認、クラウドやPowerAppsの講座など、インターンシップの内容と開発方法について理解し、実際の開発業務に入ったのは3日目からでした。3~4日目に自治体の公募案件から予算が100万円規模のものを探し、5~8日目で開発、9日目に成果発表で10日目に振り返りといったスケジュールでした。インターンの内容としてはクラウド技術を活用したシステム開発ということはあらかじめ把握していたのですが、システムの提案では公募案件からシステムを提案企画をしたので、非常に驚いたとともに実際のシステム開発の提案企画を体験でき、このインターンシップはととても素晴らしい経験になるということを3日目で感じました。

2. 開発したシステム

今回、私達のチームは学校で教員と学生・保護者が連絡を共有できる「学校連絡アプリ」を開発しました。業務連絡や遅刻欠席連絡の送受信、アンケート機能が主な機能であり、それとは別に学生側は教員が許可した連絡しか閲覧できない機能、連絡の既読未読機能、ユーザ情報の編集機能などのオプション機能も実装しました。開発最初はPowerAppsを初めて触れるということ、またオンラインでの開発ということでシステムが完成するのか不安があったのですが、チームのメンバーの皆さん全員優秀で、各自が担当した機能を早く実装したので発表準備に十分な時間をかけることができ、スムーズに開発ができました。初日に決めたチームの目標として「2週間後に最高のチームになる」というものがあったのですが、私達のチームは最高のチームだったのではないかと感じています。

3. 既読未読機能の実装

ではここで、私が担当した既読未読機能をどのようにして実装したのかについて説明したいと思います。これは私のチームで既読未読機能のシステムの流れが知りたいという要望があったためこの場で説明したいと思います。成果発表で使用したスライドなのですが、まず既読未読機能のフローチャートを示します。

まず、既読未読機能をそもそもどのようにして実装するのか考えた結果、既読未読を管理するDB(Dataverse)を作成しました。業務連絡や遅刻欠席連絡用のDBにレコードを追加する際にレコードIDを自動で作成するようにし(DataVerseではデータの型にオートナンバーというものがあり、日付や文字列からレコードIDを自動で作成できる)、PowerApps上のGalleryで連絡をセレクトしたら、その連絡のレコードIDと送信者名、送信者のemailを既読未読管理用DBに追加します。この追加する際に重複が出るのを防ぐためにIf関数を用いて既にそのレコードがあれば追加しないようにしました。以下に画面とソースコードを示します。

既読未読の見分け方は、Galleryの色を未読と既読で分けました。以下に画面とソースコードを示します。

また、選択した連絡の既読者一覧を表示したいと考えました。そこで既読未読管理用DBを参照し、Galleryでセレクトした連絡のレコードIDが一致する既読者でフィルターしました。以下に画面とソースコードを示します。

この機能を実装することで、If関数やPatch関数などの使い方やPowerAppsの各コントロールのプロパティの意味などを理解することができ、この後の他機能の実装はあまり躓くこともなかったため既読未読機能を土台に多くの技術を習得できたのではないかと感じています。

4. まとめ

私のインターンシップの志望動機はクラウドの技術に触れてみたいというシンプルなものでした。しかし実際に2週間のインターンシップに参加させていただいたことで、もちろんクラウドについて理解することができたのですが、それ以上に企業のシステム開発の過程(企画→提案→開発→実装 )を実際に体験したり、初対面の人とチームで開発することでチームワークの重要性を理解したりと、自分が想像していた以上に多くの実践的な経験をさせていただき、本当にこのインターンシップを受けてよかったと心の底から感じています。

FIXERの皆様、そして開発を共にしたチームの皆さん、2週間ありがとうございました!