Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OEP-64 Mobile Application Codebase Modernization #496
OEP-64 Mobile Application Codebase Modernization #496
Changes from all commits
68d00f7
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@marcotuts or @e0d, can you review the formatting of this section? I would suggest a fix ,but I'm not sure if this is meant to be one bullet list or multiple.
Here's how it currently renders: https://open-edx-proposals--496.org.readthedocs.build/en/496/architectural-decisions/oep-0064-arch-mobile-application-codebase-modernization.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for flagging Kyle, I didn't notice this so at some point I must have broken this. I can open a new PR for formatting fixes to this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[inform/question] Related to the mention of design system tools, just wanted to cross-link to this Paragon issue about mobile app branding as it relates to Paragon design tokens.
That is, there may be an opportunity to treat the Paragon design system as the "source of truth" for style properties like colors, typography, etc. across both web and mobile native platforms, as is the longer term vision for the Paragon design system.
The Paragon Working Group is currently working towards migrating the Open edX web-based experiences (MFEs) to use design tokens and CSS variables. I don't think it'd be a unreasonable lift to get Paragon design tokens transformed into iOS/Android compatible output that can be consumed by mobile apps. That way, when a style property in the design system changes, its update can more readily propagate across cross-platform with less maintenance required.
Do you think it's worth expanding on how design system tools (e.g., design tokens) could play a role here, or is that too "in the weeds" for the purpose of this OEP?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question I think adding that detail might be in the weeds for the scope of the OEP but the issue in paragon that Ed created is a space we can continue the conversation toward the goal you described of a single source of truth for that kind of design meta.
Others can chime in if they feel like additional detail should be added. Thanks for reviewing!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, sounds good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@adamstankiewicz @marcotuts @volodymyr.chekyrta Non-blocking, but even as someone who is mostly out of the loop on MFEs and the mobile apps, I have the impression that Open edX's move towards Paragon design tokens is pivotal in terms of re-establishing a consistent branding interface for the project. Confusion around theming & branding is consistently identified as one of operators' major pain points ever since we started phasing out comprehensive theming.
What do you folks think of a high-level statement in the OEP stating the design tokens (or something like it) will be supported? For example:
or, to be more general:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kdmccormick Definitely. I think aligning on how we communicate about Paragon could help begin to mitigate this confusion. For example, perhaps rather than saying "theme-ready" and other "theming" related messaging throughout the documentation, we could adopt "brand-ready" and "branding", as an incremental step:
(from docs site)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kdmccormick @marcotuts @volodymyr-chekyrta I would be in favor of including an explicit albeit brief, high-level mention of the design system (also, not blocking feedback though 😄). Perhaps a blend of your two suggestions, Kyle. E.g. something along the lines of:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
adding in next commit / update - thank you for the thoughtful inclusion and deliberation on this point!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[curious/clarification] What other technologies/architectural patterns were considered beyond Swift and Kotlin?
For example, was React Native explored? While I personally don't have much experience with React Native, I believe one of its primary goals is to enable a "write one, use everywhere" approach where possible, enabling sharing of code across platforms (even between web + mobile). One might hypothesize having shared code across iOS, Android, and web could lead to having the mobile apps be more approachable/maintainable by the community, align closer to other React-based UI development in the Open edX platform (i.e., micro-frontends), etc.
More specifically, I'd be curious whether something like React Native could enable sharing of existing styles/patterns/functionality in the Paragon design system. For example, could common UI patterns across both web and mobile both live under the same Paragon design system, but ship with and get consumed via different implementations (React Native for mobile vs. React for web)? Food for thought; felt appropriate to expand a bit more on the technology choices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi!
We did not do a deep dive into React Native in advance of this effort, but have received similar questions about this and Flutter ( https://flutter.dev/).
Currently, the belief from the team is that the benefits of native Swift + Kotlin development fit to OS purpose is preferred over the benefits of shared code bases. A number of other companies have posted articles on their adoption of React Native and subsequent decisions to switch back to native development.
As with anything there are likely happy companies and teams on boths sides of this, but we've chosen to stay on the native path for now.