There’s a great term floating around that I think will eventually become how we think about software: the appification of everything. We’re seeing a lot of trends moving towards this type of thinking because it provides more utility to much of the software we’re building. This trend is really composed of 4 foundations with the forcing function being the pressure of the consumer market with their many devices.
1) Seamless Unification of Web, Mobile, and Everything Else
The number of devices per person is averaging around 3 as of 2015. Since web was the first to gain adoption, we typically see the most robust systems here. However, this has dramatically changed with the introduction of apps for mobile devices. This is the “appification” aspect of technology. Up until recent years, if you wanted to have your product cross platform, you were required to develop differently for each. While much of that is still true today, we’ve seen a massive trend into what we call “Cards” – a type of design and functionality pattern that provides a consistent experience across all devices. Cards are like mini-apps that allow developers to retain similar designs across all devices with similar levels of functionality. The key is that they still tie back to the same backend system. This is the first step towards a seamless unification across all platforms. Once this happens, we’ll see an intersection for user profiles and analytics where we’re able to share information across platforms and devices from one central location.
2) Requirement for Different Presentation Layers yet Same Features and Functionality
With multiple platforms comes multiple ways of presenting. This has posed a challenges for businesses since they often lose brand identity as they move across platforms. They often can’t retain things like functionality, style, fonts, and more that make their brand who they are. With the “appification” of everything delivered through mechanisms such as cards, this has become a hurdle that can be conquered. Cards provide a contract to the presentation layer that basically say “We’re a card and our outer system will follow what your platform requires.”. However, the key is the second part of their conversation: “We’ll present in your format but we’re going to loop in our own functionality that will be contained within our Card.” A perfect example of this is how Google Maps works. Maps is cross platform and varies in the level of data being presented however as you interact and expand the app, it retains the same robust functionality of the full scale app. Since we’re able to retain the same functionality across platforms, we can also pass in information across platforms as well – which is great for analytics.
3) Unification of Data and User Profiles across Platforms
Since Cards can be passed through different platforms, we’re able to collect more intimate data that is unified. In the past, it’s been a nightmare to unify user profile data across platforms to build a comprehensive understanding. With Cards, we now have to worry about two things: Collection and Data schema. The collection schema is specific to the environment that the Card is living in, meaning if I’m on the web I collect “A, B, C” data whereas on mobile I collect “G, H, I” data for a user. From there, it’s a matter of the user profile server side to handle the data collection which means that the user profile schema must be able to accept this information. This is incredibly useful because server side allows you to do interesting things with cross-platform data collection – such as recommendations or content personalization based on unified profile data. The nature of Cards allows you to easily add, remove, or swap out different levels of functionality through microservices.
4) Advances in Microservice Capability for Interoperability
One of the beautiful thing about Cards and Microservices is their ability to change constantly. With this structure, you’re able to update APIs and functionality on any platform (including native ones) without having to relaunch SDKs. I’ve seen incredible use cases for this such as delivery of content, updates in core functionality, or swapping out logic/engines behind the scenes. Additionally, you can add multiple microservices to the cards to extend functionality. This plays well with interoperability across platforms since other platforms can subscribe to data updates. One key to note here is that with Cards, you can expand your functionality within the limits of the Card. Since Cards are isolated from the exterior environment, it provides a great way to insert robust apps into hostile environments while still being able to “land and expand” functionality in the future.
In the near future I believe we’ll see a large shift towards everything being app based. We’ve seen this movement with larger corporations such as Google, Pinterest, Facebook, and Apple. I’m betting in the near future that we’ll see more platforms making it easier to develop this type of technology with more advanced developer tools specifically for this, app focused delivery mechanisms, and all-in-one development solutions that allow for app creation in one area but deploy in all. As the expansion of devices increases and we become more connect, I believe we’ll see a collapse in the code bases to something like apps so that we can provide that unification that businesses and users are looking for.