-
Notifications
You must be signed in to change notification settings - Fork 34
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
103 additions
and
0 deletions.
There are no files selected for viewing
103 changes: 103 additions & 0 deletions
103
.../architectural-decisions/oep-xxxx-mobile-application-codebase-modernization.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
OEP-64: Mobile App Codebase Modernization | ||
############################################# | ||
|
||
.. list-table:: | ||
:widths: 25 75 | ||
|
||
* - OEP | ||
- :doc:`OEP-64 <oep-64-mobile-application-codebase-modernization>` | ||
* - Title | ||
- Mobile Application Codebase Modernization | ||
* - Last Modified | ||
- 2023-06-09 | ||
* - Authors | ||
- | ||
* Marco Morales <[email protected]> | ||
* Volodymyr Chekyrta <[email protected]> | ||
* - Arbiter | ||
- Ed Zarecor <[email protected]> | ||
* - Status | ||
- Under Review | ||
* - Type | ||
- Architecture Decision | ||
* - Created | ||
- 2023-06-09 | ||
* - Review Period | ||
- 2023-06-15 - 2023-08-01 | ||
* - References | ||
- `Related Funded Contribution <https://openedx.atlassian.net/wiki/spaces/COMM/pages/3663429666/FC-0011+-+Mobile+Product+Strategy+Backlog+Development>`_ | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 1 | ||
|
||
Abstract | ||
******** | ||
|
||
As part of the discovery effort done for a funded contribution (FC-0011) we are recommending that the Open edX platform adopt newly built iOS and Android applications as the new default mobile applications for the platform moving forward, starting with the next named release. These new applications are rebuilt with MVVM architectural patterns and are fully rebuilt in Swift and Kotlin respectively. These new code bases should facilitate faster development cycles, improved pluggability and community contribution rates. Currently not all functionality is 100% identical to the existing mobile applications, but efforts are underway to improve pluggability and close common community requirements for the mobile experience. | ||
|
||
Motivation | ||
********** | ||
|
||
The motivation for this shift comes from an opportunistic review of newly rebuilt mobile applications from Raccoon Gang that seek to remove some of the mobile contribution impediments that the existing applications have. The original mobile application repositories were authored in 2015 and have progressively started including new architectural patterns and the use of Swift / Kotlin, but challenges remain for contribution and coded clarity. Additionally, coding patterns, libraries, and architectural patterns have changed significantly since the original authorship of our mobile applications, and the newly rebuilt Raccoon Gang applications are open sourced and a great starting point for renewed emphasis on mobile learning options for Open edX platform adopters and learners. | ||
|
||
Additionally, Axim Collaborative is looking to expand the way the Open edX mobile applications can serve as a tool for expanded access to learning opportunities. Mobile application learning is a key requirement to modern learning platforms and we believe that with concentrated effort new contributions and improvements in the mobile space will help expand the use of the open edx platform. | ||
|
||
|
||
Specification | ||
************* | ||
|
||
The existing mobile repositories are maintained by edX / 2U and can be accessed here: | ||
|
||
* https://github.com/openedx/edx-app-ios | ||
* https://github.com/openedx/edx-app-android | ||
|
||
* Support for the existing mobile applications will continue through the Redwood release. Starting with the release after Palm, we will designate the new repositories as the default Open edX mobile applications to encourage adoption and use of the new applications for community team members. | ||
* Once available, we will link to documentation within the new repositories to describe transition options for community members migrating from existing builds of the older codebases. | ||
* After the publication of release after Palm we will update the original repositories with the suffix ‘archived’ to help make clear that these are no longer the default mobile application builds moving forward. A corresponding DEPR ticket linked to this OEP once it exists. | ||
|
||
The new mobile repositories are maintained by Raccoon Gang and can be accessed here: | ||
* https://github.com/raccoongang/educationx-app-ios | ||
* https://github.com/raccoongang/educationx-app-android | ||
|
||
* The new repositories will be migrated to the openedx github organization under the name openedx-app-ios and openedx-app-android. | ||
* The new repositories will be maintained by the Racoon Gang team with Marco Morales serving as the product lead for the project. | ||
* Relevant funded contributions and projects relation to the new mobile repositories will be linked from their main project readme as a way to help community members find ongoing and future efforts | ||
|
||
|
||
Rationale | ||
********* | ||
|
||
Expanded access and opportunities for learners around the globe means meeting learners where they are, and for many people that means on their only digital device, their phone. Furthermore, enabling learners to continue to learn on their desktop or laptop computers in addition to a full featured mobile experience allows us to support full day learning workflows for those with multiple devices. | ||
|
||
Similar to the way the edx-platform has undergone a modernization process over the past few years with updated build processes, micro services, micro frontends, design system tools and more, the mobile experiences will benefit from a modern architecture, being written in the latest development language tools, and set up for increased pluggability and contribution as well. | ||
|
||
Backward Compatibility | ||
********************** | ||
The existing mobile applications will continue to be supported by edX / 2U for the foreseeable future. We do not yet have a clear timeline for when edX / 2U might switch over to the new applications, but their focus is on rollout and delivery of their latest improvements to the existing experience including the commerce capabilities that have been added recently. | ||
|
||
Reference Implementation | ||
************************ | ||
|
||
The new mobile repositories are maintained by Raccoon Gang and can be accessed here: | ||
|
||
* https://github.com/raccoongang/educationx-app-ios | ||
* https://github.com/raccoongang/educationx-app-android | ||
|
||
Rejected Alternatives | ||
********************* | ||
|
||
We considered exploring the development costs of incrementally improving the existing mobile applications to fully adopt new MVVM patterns as well as the use of Swift and Kotlin. Efforts to use these new technologies go back many years, but it would take considerable effort for the community to support this migration. Realistically the current team at edX / 2U maintaining the repositories would have had to undertake a major development effort to achieve this transformation. | ||
While Raccoon Gang considered charting a path to modernizing the existing code bases, it took about 3-4 months worth of development from two team members on new architectural patterns and programming languages to develop the new mobile applications, demonstrating major improvements to development speed with the new repository option. | ||
|
||
|
||
|
||
Change History | ||
************** | ||
|
||
2023-06-09 | ||
========== | ||
|
||
* Document created, draft PR opened | ||
* `Pull request #496 <https://github.com/openedx/open-edx-proposals/pull/496>`_ | ||
* Updated PR to reflect the latest OEP number and the named release planned |