Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mobile @ edX

Mobile @ edX

A technical engineering presentation on mobile development at edX, with challenges, solutions, and open questions in bringing a legacy, open source, monolithic server app into the mobile landscape.

Nimisha Asthagiri

November 20, 2015
Tweet

More Decks by Nimisha Asthagiri

Other Decks in Technology

Transcript

  1. Outline - What is edX - Challenges + Solutions -

    Where we are today - Where we’re going
  2. Outline - What is edX - Challenges + Solutions -

    Where we are today - Where we’re going
  3. What is edX? • A non-profit venture • A web

    site: edx.org • A platform: Open edX
  4. edX goals • Expand access to quality education ◦ Goal:

    1 billion students! • Improve on-campus education ◦ 80 members so far • Advance research in online learning ◦ How can we make MOOCs better and better?
  5. Quick history • November 2011: dev started • March 2012:

    first MOOC • January 2013: 20 MOOCs, 500k students • March 2014: 160 MOOCs, 2.3M students • Sept 2015: 500 MOOCs, 5M students
  6. Open edX an open source platform for teaching and learning

    to foster innovation in education What is edX?
  7. Outline - What is edX - Challenges + Solutions -

    Where we are today - Where we’re going
  8. Fundamental Shift - edX was a desktop website - Content

    from course staff on desktops - For students on desktops - Building things for desktops - Had a major investment in desktops
  9. Where to start? - What features? - Videos, Course Content,

    Social? - For students, researchers, professors? - How to build? - APIs, Infrastructure, Open Source - Who should build? - Resourcing, growing and training a team - How to migrate content?
  10. Baby Steps - Users: Focus on Students - Content: Start

    with Videos - Engineering: Basic APIs, Responsive - Resources: 1 developer & outsource - Migrate: Video Pipeline
  11. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  12. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  13. Sweating the Small Stuff - Social Sharing - Wants different

    credentials - Doesn’t want to use popups windows
  14. Sweating the Small Stuff - Social Sharing - Wants different

    credentials - Doesn’t want to use popups windows
  15. - Course Discussion Posts - HTML content - Weird formatting

    - Large Inline Images - Do we: - Have all content - but have it be awkward - Introduce a new future compatible format - Support reduced experience - just text Sweating the Small Stuff
  16. Mobile is Global - Developing world is more mobile -

    Different user base - Older devices - Unreliable connections - Different educational goals
  17. Localization is hard - Lots of rules - Has to

    be maintained - Developers have to be educated
  18. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  19. Building APIs - API conventions and standards - Generic or

    mobile-specific? - Guidelines/process for extending - Guidelines for deprecation - Dogfooding - Documenting PATCH
  20. Course Blocks - Examples: - Basic assessments: checkbox, multiple choice

    - Drag and Drop - Interactive Circuit Simulators - Submitting Essays - Submitting Code Snippets
  21. Course Blocks Framework - Platform extension point - Runtime abstracts

    storage, i18n - Python backend - HTML + CSS + JS frontend - XML serialization (OLX)
  22. Course Blocks on Mobile - Initial approach - HTML in

    webview - Tag as responsive - Native support - “Learn once, write anywhere” - Model versioning - Export as JSON
  23. Platform Differences - UX - Logout experience - Back button

    - Touch and gestures - Push notifications - Swiping - Software upgrade experience - App submission process
  24. No Infrastructure - Web has an automation team - Web

    has three years of infrastructure - Unfortunately, can’t share much
  25. Incremental everywhere - Some webviews up front - Course discovery

    - Embed course content - HTML blocks - Problem blocks - Native later where appropriate
  26. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  27. Broad Community - No idea who these people are -

    We hear about their problems - GitHub Issues - Mailing list - But if things are working…? - open edX conference (once a year!)
  28. - Always need to consider: - Extensibility - Long Term

    Support - Deprecation - Across unknown configurations Support Broad Community
  29. Community - Lots of work - Amazing Pay Off -

    Best way to reach a billion people
  30. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  31. Course Authoring - Content designed for desktop experience - A

    lot of information → Focused content - All at once → Bite-sized content - Large Images → Responsive views - YouTube videos → Video pipeline - Large screen real estate → Singular small pages - Small drop targets → Touch targets
  32. Challenges + Solutions - Designing Mobile - Engineering Mobile -

    Open Source Apps - Creating Content - Building a Team
  33. Outline - What is edX - Challenges + Solutions -

    Where we are today - Where we’re going
  34. Mobile vs Web Usage - On Mobile - 40-60% of

    new visits to edx.org - 36% of registration - 25% of enrollment - 20% of learner usage - 90-95% of traffic for SaudiX
  35. Outline - What is edX - Challenges + Solutions -

    Where we are today - Where we’re going
  36. Push Notifications - Starting with New Course Announcements - Expecting

    to roll out more over time - Important long term
  37. Native Course Discovery - Sorry, no screenshots - Goes through

    edx.org custom website - Want open source implementation - Foundation for future work
  38. Badging (Achievements) - Awards for things like: - Completing Courses

    - Discussion activity - Extensible (of course!)
  39. Infrastructure - Access - Offline support - Audio only mode

    - Latency & bandwidth optimization - xBlocks - React Native? - A/B Testing
  40. Features - Social - Teams - Geospatial discovery - Classrooms

    - Suite of apps - Analytics - Authoring