Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    About the New Architecture

    campusM + cmLibrary Logo wh bkg sm1.png

    It’s been 15 years since we first started delivering innovative mobile apps for higher education.

    The new app architecture is built on two modern, best-in-class technologies that will allow us, and our community, to adapt and evolve at pace.

    When we started work on this project, we had a number of prerequisites for what we were trying to build:

    1. A technology stack that would allow us to evolve the product to be smarter, more dynamic and more user-centered going forward
    2. A stack that was both highly secure and resilient, allowing us to scale the platform for millions of users across the globe, on a platform they could trust
    3. A stack that would allow us to develop more agilely and consistently - unifying the experience across different devices 
    4. To do the above in a way that would allow customers to migrate to the new platform as simply as possible

    Given the complexities of the existing platform and the principles above, we decided on two key new technologies to refresh our platform architecture: GraphQL and React Native.

    React.

    What is GraphQL, and why did we choose it?
    In its simplest description, GraphQL sits on our cloud, and negotiates data requests between the client and our database.
    GraphQL allows for much more flexibility in how we manipulate data requests for the client. It will do the heavy lifting in gathering and formatting the data for the client, reducing the work the client is doing and allowing for elasticity in the queries that the client can request from the server.
    Ultimately, GraphQL will give our platform serious flexibility in how we can use data from our product integrations and features. This will allow us to create user-centric, system-agnostic experiences that double down on our mission to make students’ lives easier.
    An additional benefit of GraphQL is that it allowed us to build our new technology stack on the existing data architecture, meaning that customers could seamlessly move from the current app to the next generation app without any technical effort.
    What is React Native, and why did we select it?
    With GraphQL we have a technology that gives us great flexibility over how we can request, manipulate and combine data. React Native gives us the ability to present that data in the form of user-friendly experiences across mobile devices.
    We wanted buttery soft animations; we wanted a truly native experience. We wanted consistency across devices and operating systems. And we wanted it to be simpler for us to develop so we could deliver a quality experience more quickly to our customers. Importantly, we wanted a modern framework that would aid us in enhancing the accessibility of the experience for all.
    React Native gave us just that. 
    This hybrid technology allows us to develop once and build to both iOS and Android. This allows us to do so much more natively than we have done before.
    The React Native framework comes with a thriving community, supported by Meta, that continues to evolve and brings more enhancements that we can utilize. 
    React Native is empowering us to crystalize our development efforts around reactJS, to unify our development resources, and accelerate our delivery of next-gen features.
    When we developed our first prototype using these two technologies, magic started to happen.

    The combination of a flexible data language and infrastructure, combined with a hybrid development technology that allows for JavaScript development and native rendering, has allowed us to deliver against our principles and exceed our initial ambitions.

    We took the opportunity to completely redesign two of our most used native features: The Calendar and Maps. With a complete UX overhaul, we have brought these features up to date, while at the same time ensuring they are ready for our future ambitions around personalization.
     

    • Was this article helpful?