Apple Engine

Apple, iPhone, iOS, その周辺のことについて

iOS 11.4 で追加される ClassKit とは何か

ClassKit フレームワークは、
先の教育向けイベントで発表された Schoolwork というアプリと連携するためのフレームワークで、既存のアプリへ何らかの機能を付け加えるものではない模様。
Classroom は生徒や生徒の端末、生徒のコンテンツの管理、教師と生徒のやりとりを行なっていたが、Schoolwork は生徒へアプリを操作してを行う課題の作成、提供、進捗管理となっている。

ちなみに、翻訳的に面倒なので以降アクティビティと書いているものは、生徒が取り組む課題と同じ意味合いとしている。

 

ClassKit 開発者ドキュメンの最初にはこう書かれている。
「教師はあなたのアプリで割り当てられたアクティビティを元に生徒の進捗状況を表示できるようにする」

と書かれてもよくわからなので、
Apple のページ、下の方にある Schoolwork の「教育アプリケーションの力を取り入れよう。」見てみると振る舞いはわかると思う。

www.apple.com

 

  • 教師側が課題を設定
  • 課題が使用できるアプリリストからアプリを選択
  • アプリで生徒に作業してほしいアクティビティをリストから選択
  • 完了の日付などと共に設定が完了したら配布資料を送る

という流れで課題を設定し、Schoolwork アプリでは各生徒の進捗状況を確認できるようになっている。

 

以下、ドキュメンを意訳

ClassKit フレームワークの概要

https://developer.apple.com/documentation/classkit

 

教育用のアプリは、本やビデオなどのリソースにアクセスし、インタラクティブな視覚化、ゲーム、評価を通じて学習を促し、
ClassKit は教材を整理する方法を提供し、教師が生徒へ課題を割り当てたり進捗状況を確認することができる。

ClassKit 環境は、教師のデバイスと、iCloud を介して接続する多くの生徒のデバイスで構成されており、各デバイスは、Apple の Schoolwork アプリを通してアプリ開発者作成したアプリを実行する。
そのため ClassKit は、デバイス間のハブとして機能している。

Schoolwork アプリを使用して、教師は開発者のアプリで ClassKit から公開する割り当て可能なコンテンツを見ることができ、その内容に基づいて課題を作成し、すべての生徒の進捗状況を確認することができる。
一方、学生は、Schoolwork を使用して、アプリ内のコンテンツに直接リンクされた課題に取り組むことができる。

f:id:x67x6fx74x6f:20180412182439p:plain

ClassKit は、アプリの既存のロジックやメカニズムを置き換えるものではなく、新しいユーザーインターフェイスを生成するためにも使用しない。
代わりに、ClassKit を使用して既存の構造を公開して、教師が Apple の Schoolwork アプリを使用してアプリのコンテンツに基づいて課題を作成し、
その課題応じた学生の進歩を確認できるようになっている。

ClassKit は、「Apple School Manager and Managed Apple IDs」を使用している教育機関で使用するように設計されており、 教育市場が目的のアプリである場合は、ClassKit を採用することを検討すべし。
とのこと。

 

ClassKit と ユーザロール について

https://developer.apple.com/documentation/classkit/about_classkit_and_user_roles

ClassKit がさまざまな種類のユーザーとどのようにやり取りするかを理解する。

 

概要

ClassKit を使用すると、開発者のアプリが教育エコシステムに参加できるようになり、教師が課題を作成し、生徒が進捗状況を報告することができる。

ユーザーは、Managed Apple IDs(MAID)でアプリを実行している端末にログインすることで、このエコシステムに参加することができる。
これは、Apple School Manager に登録されている学校によってユーザーに提供される特別な Apple ID で、その所有者を教師または生徒として識別され、 standard Apple ID(通常の Apple ID)を使用しているユーザーは、このエコシステムに参加することができない。

これによって開発者のアプリは、学生、教師、および管理されていないユーザーの3つの異なるクラスのユーザーが作成され、
ClassKit は、現在のユーザロールに応じて動作を変更する。

 

ClassKit は開発者のアプリとユーザロールを共有しない

ClassKit はアプリでユーザロールを共有せず、提供するデータの一部は、ユーザーロールごとの固有のものとなる。
たとえば、教師だけがすべての可能な割り当ての完全な状態を格納する必要があり、生徒は割り当てを移動して進行状況を記録する必要があり、MAID ではないのユーザーは、すべてのデータを記録する必要はない。

プライバシーを確保するために、ClassKit は現在のユーザロールを共有していない。
現在のユーザーが MAID を持っている場合でも、デリゲートのコールバックやエラーメッセージを含むすべての ClassKit インタラクションはユーザロールに関係なく同じように見える。

また、任意のユーザーに対して機能する1つの実装を構築こともでき、
ClassKit は、必要のないデータを効率的に無視をする。

 

ClassKitは、進歩状況を他者に観測されていることを警告する

生徒がアプリを実行すると、ClassKit は生徒に代わって、 生徒にコンテンツにメッセージを簡単に表示して教師と進行状況を共有すると通知をする。

以下、GreatPlays というアプリを使って Dev クラスというクラスの生徒の場合:

f:id:x67x6fx74x6f:20180412180240p:plain "Great Playsでの割り当てられたアクティビティの進捗状況は、次のクラスの教師と共有されます:Devクラス"

ClassKit を採用しているアプリの進捗を記録するときに表示される Student Progress オーバーレイのスクリーンショット。

このようなメッセージが表示されるがアプリでは特別な操作を行う必要はなく、 メッセージに示されているように、ClassKit は教師によって明示的に割り当てられたタスクについてのみ進捗を保持する。 学生の場合でも、ClassKit は明示的に要求されていない使用データは破棄される。

ClassKit は、記録しようとしたすべての進捗データを破棄するため、他のユーザー(教師と管理アカウントのないユーザー)はこの警告を受け取ることはない。

 

ひとまずまとめ

実装の方はあまり需要はなさそうなので割愛。
雑に説明すると、進捗が進んだらその情報を iCloud にデータを送る機能をアプリに実装するだけ。
なので、ClassKit はそんなに機能があるわけではないので、あまり難しくなく実装はできると思われる。

海外向けの教育アプリでは ClassKit の実装を行なっても良いのではというところ。