The Key to No-Code App Optimization: Deep Configs
From gate keeping your code and configuring it into lego blocks, to giving you the power to tweak in-app features and re-engineer an entire user flow, Deep Configs represent a game-changer.
Join the DZone community and get the full member experience.Join For Free
What if you had the ability to change the behavior and appearance of your app with zero code? The prospect of adding new layouts, changing color themes, and modifying widgets and icons without engineering intervention or an app updates may seem too good to be true, but it isn’t. This depth of configuration is made possible by “Deep Configs.”
What Are Deep Configs and How Do They Work?
Deep Configs enable you to change the default values in-app that control the behavior and appearance of your application. It abstracts your code and its data into values that can be tweaked in real-time. To get started, you have to identify and define the aspects of your app as parameters that can be altered using Deep Configs. For example, you can define a button that has two parameters: Color, which is red by default, and text as “Coming Soon.” When your app first fetches these parameters, their default data is reflected until new values are activated by the config, which overrides the previous value, thus enabling remote configuration. You can define parts of your code with Deep Configs, or populate the entire product architecture with it.
What Makes Deep Configs Special?
Over the years, developers and businesses have defined their products and built their services around web and app configurations that follow the standard protocol of “push to prod” or app update deployments. Hardcoded with limited options for optimization, these options are a far cry from the flexibility and extensivity of Deep Configs. You can define parts of your code with Deep Configs or populate the entire product architecture with it.
By overriding the default value with one of your choice, you can change something as simple as a line of text or elements that are more complex. Deep Configs make it possible to modify complex user flows and landing pages that derive from contextual data. These tweaks enable you to experiment with new features or schedule promotions easily, and all at once.
In addition, businesses that want to localize their app content can use Deep Configs to run their products in regional languages at runtime, across backend and frontend systems. Deep Configs open up avenues for quick app configuration and optimization of user and product interactions. In the process, they help teams explore and address user drop-offs in key funnels.
Another key benefit of Deep Configs is they eliminate bloaty code. Configs, in today’s use, are defined as key-value pairs that only have text, number and JSON capabilities (as is the case with Google’s Firebase Remote Config). However, by establishing each config as a key-data pair, as we do at Hansel, businesses can configure everything from complex JSON and Lists, to Color and Image. Key-data pair over key-value pair eliminates long lines of code for interpreting the values from key-value stores. This results in less bloaty code, reduces the need for releases, and transforms formerly static code into manipulable, configurable lego blocks.
Deep Configs can serve as a gatekeeper of your code, your product, and its features. Backend integration with Deep Configs unlocks an array of new functionality. It allows you to define and revise the default value across all deployment environments, including that of staging and production. For example, you can distribute granular access to test environments or other sections of your app with just a click of a button.
How to Use Deep Configs
There are a number of ways that businesses can use Deep Configs to streamline their development process and iterate more quickly, such as quickly and efficiently running A/B tests.
When businesses conducted A/B tests before, they had to work with large blobs of code for each experiment variant. This was a labor-intensive intensive process due to excessive file sizes and the eventual cleanup of underperforming variants. Deep Configs, on the other hand, bring together multiple configs as modules. Adding a config to enable experimentations is as easy as adding an analytics event for tracking user actions—it ensures a one-code flow with no clean-up after, irrespective of the number of test variants created.
Another use case are feature flags, or feature toggles. Feature flags are either a string or a number that interacts with the code and allows you to enable/disable any section of your app. Developers use this value to hide features from users, run A/B tests, and target specific cohorts. However, dealing with toggles is a gamble, especially when you have multiple test variants running, with several conditions and user attributes in play. You might have instances where content masking affects all pages, regardless of the audience condition.
Configs represent a better option than toggles because they can serve as a switch to enable or disable the hardcoded test variants or to devise new user-flows. They are extremely usable and lighter on code.
This isn't the case with configs, which offer client and server-side feasibility. Running on a visual interaction builder, Deep Configs can create and curate new product interactions. Now, businesses are able to define, design and push new user paths and product features in real-time, test them in iteration, and roll-out variants for experimentation.
Consider an e-commerce platform that is looking to implement payment gateways based on location. With Deep Configs, the company can enable and disable local netbanking providers, e-wallets, and regional gateways. If any of these fail, the team can scrap them remotely, and roll-out new serviceable variants instantly. Or take a gaming app. With Deep Configs, developerscan unlock a special bonus round for all user profiles who have spent a certain amount of in-game currency by just defining a condition and enabling a boolean config.
The Deep Config Future
From gate keeping your code and configuring it into lego blocks, to giving you the power to tweak in-app features and re-engineer an entire user flow, Deep Configs represent a game-changer. This technology can lay the foundation for the right framework to make apps configurable and optimizable, intuitive and efficient. The elimination of engineering dependency allows businesses to deliver powerful digital experiences to their users in an instant. It allows products to be dynamic and open to change. The flexibility makes it powerful.
In a market where change is inevitable, an inflexible product will slow you down. By embracing Deep Configs, businesses give themselves room to grow and to learn by constant modification and frequent experimentation.
Opinions expressed by DZone contributors are their own.