Allowing a teacher to set options

I've now got one app starting an activity by request from the SchoolWork app thanks to some help here.


At the moment, an app can publish a list of fixed activities that a teacher can select to be used by one or more students.


What if, in addition to the activity, the teacher wants to tune that activity for a student.


For example. Say we have a basic math app. The teacher has a class of students with varying abilities, but she wants them to practice their mutiplication skills.


So she chooses the multiplication activity for the class, but she knows that one student in particular is a bit behind, and needs the activity to be turned down a bit. She wants this student to be a part of the activity; to feel like he is working with the class, but she also wants it to be realistic and tuned to that student. The app in question allows the user to specify a number that is used to restrict the complexity of the math problems presented, so she wants to set that number differently for this one student.


Another simpler example that appeared in my email from a reply to this question (which seems to have been deleted) is that of a spelling app where the teacher wants to add an activity containing a spelling list for the day or week. Being able to provide the spelling list like this would add a lot of power and flexibilty to SchoolWork. I've updated my suggestion below to support this.


I can't see any way for an activity, or CLSContext to define parameters that can be modified by the teacher. I think it's unrealistic to expect an app to list potentially thousands of combinations of activities to get around this. There should be a way for the app to present to SchoolWork a set of parameters for a n activity/CLSContext that give the teacher the power to use SchoolWork to take advantage of the apps versatility.


It doesn't need to be overly complex. We probably need something like:


parameterType enum (switch, range, enum, timer, array) // see below for more detail

parameterName String // the name of the parameter to be presented to the teacher

parameterRequirement Bool // if true, then the parameter must have a value for the activity to be postable.

parameterValue String // the value of the parameter sent to the app when launched from SchoolWork

parameterMin Number // for range parameters, this would be the minimum value

parameterMax Number // for range parameters, this would be the maximum value

parameterEnums Array<String> // for enum parameters this is the array of discrete values the teacher would choose from.

parameterDuration TimeInterval // for timer parameters, this is the nummber of seconds the activity can take.

where:

parameterType: switch is a simple on/off toggle - values would be "true" or "false"

parameterType: range is a way to define a min and max value (probably need to support float and integer)

parameterType: enum is a way to define parameter with a discrete set of values

parameterType: timer allows the teacher to define a duration for the activity

parameterType: array allows the teacher to define a list of string values


I know this will complicate the interface, but I really don't see a lof of apps being able to be good ClassKit citizens and truly useful without such abilities.


Have I missed something?


UPDATED: with suggestion for a dictionary of spelling words. I changed this to an array, as a dictionary sounds like too much work for the teacher to define the key and value.

Accepted Reply

Would you mind making the requirement aspect of this post offcial via https://bugreport.apple.com?

Replies

Would you mind making the requirement aspect of this post offcial via https://bugreport.apple.com?

Sure. I was planning to if you didn't come back with a link to some more doc that I'd missed. I'll try to improve it a bit too.


Thanks

Done, bug number : 39671930

Excellent, thanks!

This would sure make a lot of sense for our app as well. Would love for our app to give the teacher some options that the teacher can then choose from before assigning to the class