Mobile App Design Guidelines

 

Core roles

Experience

Product & Engineering

Experience

Product & Engineering

Hilary Gordon

  • Product design lead

Poornima Hanumara

  • Mobile squad PM

  • Comms & socialization

  • Plans & Timelines

Bronwyn Hawkins

  • Product design support

Colin Brash

  • Eng manager for mobile (both apps)

  • iOS expertise

 

Mian Khalid (Khalid)

  • Team lead

  • Android expertise

 

Communication

Slack Channels:

  • #mobile-design-sync for design related conversations

  • #mobile-engage-sync for Engage squad and Mobile squad crossover collaboration

  • #mobile-team for product delivery team happenings, internal chatter only

  • #mobile for broader communications

 

Aliases

  • @ edx-mobile for the whole mobile squad

  • @ mobile-ios for the iOS team

  • @ mobile-android for Android team

 

Key Mobile App Design Decisions

 

  1. We will add mobile components and styles to the Low Fi figma library as we go.
  2. Whoever is working in hifi will identify component to add to the common library and publish them.
  3. We are not careful about what is published in this common library since only one team depends on it. There is no requirement to review patterns at the Paragon Working Group meeting.
  4. The mobile library will have its own type styles, but will inherit colors from the web Paragon library
  5. We’ll maintain a Figma library “Supplemental Mobile Components”, named specifically to indicate our preference for native controls.

Mobile App Accessibility

Relevant High-Level Guidelines

  • Support platform accessibility tools

    • Screen readers (VoiceOver on iOS and iPadOS, TalkBack on Android)

    • OS Magnifier

    • External keyboards

    • Voice Input

  • Touchzones - anything clickable should be a minimum of 24px wide and 24px tall (white space counts, and can overlap for different targets)

  • Minimum font sizes - Don’t go smaller than 10pt, we have x-small at 11pt right now

  • Interactive items: text should be able to grow by 50% (via text size settings in the OS) without colliding with container borders. Non-interactive items: heading and paragraph text should be able to grow by 200% with orderly reflow.

  • Don’t make the user rotate the screen.

  • Headings should be marked as such, and the apps should maintain a consistent visual hierarchy

  • Don’t use hover behaviors on mobile since they don’t exist! Use tap instead.

More Details

WebViews

Android

iOS

Process

  • When the design is almost final/final, check with @Jeff Witt (Deactivated) either via a quick meeting or asynchronously via Slack/email

    • This should generally line up with when the design is getting reviewed with the PM partner

  • Continue to reinforce accessibility check during development process as well before launch

Mobile Design Guiding Principles

How do we determine what parts of the app should be native components or custom, designed components?

  • Consider native:

    • “When it makes no, difference use the native control in design”, in other words, bias towards native unless there’s a good reason not to

    • If the interaction is the same and color is the only difference, and the difference is small we should use native. For example: we will not implement a custom design for the switch control on android.

  • Consider custom if:

    • Interactions are heavily branded and specific to edX

    • We want a consistent experienced for our learners across both platforms

How do we determine what parts of the app should be native or web views?

  • On a case by case basis, we’ll evaluate the needs of the experience and determine how to move forward

  • The key benefit of a web view is that we inherit the enhancements that is implemented on the web

  • The key benefit of a native experience is that we can leverage native functionality for the device, which enables deeper and more bespoke interactions

 

Resources

Native iOS and Android resources and pattern libraries

edX specific

Best practices and good reading