I am creating this blog post with full the expectation of disagreement posts. My goal is to create a discussion that explores the best way to design a complex project like Canvas for use on many types of devices, screens, and operating systems.
My History with Mobile Apps
- I initially tried using Speedgrader mobile when we first started using Canvas and did not find it any more convenient than using the web version.
- I have explored Canvas Student and Teacher a few times, including today. I find that the apps are quite convenient for certain tasks and that I miss being able to quickly accomplish others.
- My students use Canvas Student all the time, even in class, so I know they are using it to keep track of assignments. This is actually a problem when students ONLY look at the To-Do list and miss other pages in the modules.
- I teach exclusively using iPad, and very often do grading and even course creation on iPad. The only task I have attempted that did not work was scrolling quizzes when in speedgrader, but using quiz moderating it works fine.
- I have designed web-apps and am a 'hack' coder. Meaning I do a lot of coding, but was not formally trained so I am always researching the best way to accomplish coding problems. However I know just enough to be dangerous.
My Question in a Nutshell
Why do we need to create mobile apps when virtually all devices have web browsers and we can create responsive websites that provide the same functionality via responsive Graphical User Interfaces (GUI's) based on the screen and Operating System (OS).
Responsive web design is considered one of the most important features of a well-designed website. The goal of responsive web design is to provide the same information and functionality, but formatted in the most accessible and navigable and easy-to-read manner specific for the user's device.
We have all seen websites that look one way on a desktop (large) screen, but then reformat with content flowing in a different order when the screen is smaller. You can test this by changing the size of your desktop screen to see how the content layout changes as the screen gets smaller. With the page you are currently viewing, for example, when you make the screen smaller than a certain width the top navigation bar collapses in to a drop-down menu, and the buttons at the bottom which are side-by-side on the larger screen become stacked top-to-bottom.
This is done via Cascading Style Sheets (CSS). The basic idea behind CSS is the importance of separating content from formatting, thus allowing the same content to be presented in a variety of manners. A different style sheet can be applied to the same content making it accessible by smaller screens, visual-assistive devices, hearing-assistive devices, etc.
Because much of what the mobile apps accomplish is this same reformatting of content, I'm not sure why we need separate mobile apps when we could just use CSS and create the various versions of Canvas in the web version.
As for OS, this is where things can get much more complicated because different OS's and different browsers can have completely different application programming interfaces (API's). Even CSS can be interpreted differently. This is why there are different versions of many apps on say, the iOS and Android platforms. HOWEVER, as web designers and programmers, we have many tools available to us to make that process easier.
Many mobile apps we use today are basically web apps wrapped into packages and installed as separate applications.
Since web application design has evolved so far and is so widely used, there are many advancements and tools available that make it efficient to create a web application that can provide all the functionality we have in Canvas across many devices. A web app can be dynamically served depending on the device, OS, and screen, presented in a format most logical for that device. So why not leverage that technology and put the time and resources of Canvas into developing each new advancement directly into the web application for various devices at the same time? This is instead of creating advancements in the web app and then adding those same advancements to each of the mobile apps. Why spread out our development into so many apps instead of focusing our efforts into one cross-browser, cross-platform web app?
I am tempted to continue, pointing out all of the feature requests that want a specific feature in this app or that app, or the PDF's I found of the feature lists of various apps on various devices and how those are prioritized for development. Even polls could be added to Canvas within the current web application. But I think I've written enough to get a conversation started.
I look forward to reading replies!