A list of my favorite developer features in Kinvey. Just practical features that will help you develop better apps more quickly with links to resources.
Look, I'll be honest—Kinvey is a great product, but our homepage is geared towards "decision makers" and not developers. I am sure that "Reduced TCO by over 60%" is really important, but, as a developer myself, I have no clue what it means. Here is Ryan Reynolds reenacting my expression as I read that:
For what it's worth, TCO is apparently means "total cost of ownership"—you learn something new every day!
To remedy this, I've put together a list of my favorite developer features in Kinvey. It has no talk of TCO, "wins" or time-to-market, just practical features that will help you develop better apps more quickly and links to resources about each feature.
Let's get started!
1. Data Connectors via RapidData
Most companies, especially medium-to-large enterprises, have a ton of existing data. Taking that data and making it available to the web, or even more so mobile, can be difficult, to put it mildly.
First, there is the problem of building and maintaining the connection to existing data. I've worked on projects where we had a web frontend connecting to a server-side web backend connecting to a Java service that routed to another Java service that, finally, called some kind of something that was able to pull legacy data from a critical data source. That's not only tough to build and maintain, but often runs up against bottlenecks that won't work for mobile, where immediacy is expected.
Second, there is the issue that the frontend (web or mobile) developers often have to wait for the backend connectors to be built and written before they can reasonably know what they need to display on the frontend. Sure, they may know the fields in the data source to mock the data, but this typically needs to be "massaged" to be usable. The point is, there can often be a disconnect between the UI being built and the data that is eventually received that needs to be resolved.
Kinvey's RapidData feature can help to solve both these problems. First, it includes a bunch of pre-packaged connectors to things like SQL Server, SAP, Sharepoint, Salesforce and REST.
This simplifies the connection to many of your existing systems. So your app connects to the cloud and then directly to your data source. And, if your existing system isn't on the list, FlexServices (which we'll talk about in a moment) can help fix that.
It solves the second problem by making it easy to switch a Kinvey collection from the cloud data store to a RapidData data source and back again. Plus, you can easily map fields from the data source to match your cloud data store. This means that you can develop the UI with mock data and easily swap it to live data without requiring code changes.
In the GIF below, you can see me running through the process of switching from the cloud data store to a SQL Server database running on Azure with just a few clicks.
If you want to explore this feature some more, check out my full tutorial on using Kinvey’s RapidData connectors.
2. Mobile Identity Connect (MIC)
Almost every application includes some form of authentication—whether it is a greenfield project that can include authentication from scratch or one that must authenticate against an existing system. Both of these can be a pain to build, but the latter can lead to levels of anger and frustration that may have unforeseen consequences.
Kinvey does offer a number of built-in features that can help with building out a greenfield authentication for your app. Many of these I discussed in my tutorial on understanding users in Kinvey. These can save you time and effort when developing your app.
More importantly, however, Kinvey's Mobile Identity Connect can simplify the process of connecting to common enterprise authentication systems including Active Directory, OAuth2, SAML, LDAP and OpenID.
And, if you are building a mobile app with NativeScript, we've made adding authentication using Mobile Identity Connect even easier with NativeScript Sidekick. Using Sidekick's new enterprise authentication template, it becomes even easier to build and configure enterprise authentication in your mobile app—Sidekick will even create the necessary Mobile Identity Connect services in Kinvey for you.
If you want a detailed tutorial on using Mobile Identity Connect, check out my post Enterprise Authentication with Kinvey.
3. FlexServices
There is a scene in the cult classic sci-fi movie The Fifth Element where Zorg (i.e. the bad guy) shows off a weapon called the ZF1 that is so overpowered it is rather (intentionally) ridiculous. It has high powered ammo with auto-targeting, missiles, flame throwers, nets and a freeze option (among other things).
I sometimes like to think of FlexServices as the ZF1 of Kinvey. It's our powerful secret weapon that can do just about anything.
FlexServices are JavaScript programs that run on a Node.js-based platform on the Kinvey cloud. They are designed as a way for you to add server-side business logic within Kinvey.
Here are just a few examples:
- You can create a FlexService that functions as a collection hook to modify, filter, clean or otherwise utilize data as it is being retrieved, saved or deleted in a Kinvey collection.
- You can connect to a 3rd-party API, combining that with data from Kinvey, and then make it available as a custom endpoint that you can call from within your mobile app.
- Using FlexData, a FlexService can connect to external data sources that can serve as the system of record for a Kinvey collection.
- Or you can use FlexAuth to authenticate with a third-party system.
That's just a handful of examples. If you'd like a full tutorial on how to build FlexServices, check out my article Getting Started with Kinvey FlexServices that not only walks through the process, but also offers a series of example services that I built to help guide you.
4. The SDKs
You're probably familiar with the phrase "hidden in plain sight." It is something like:
This concept definitely applies to the Kinvey SDKs, which may be simultaneously the most used and also the easiest to overlook feature of Kinvey. The truth is that the SDKs include a ton of features for free, but many of them may not be entirely obvious. In fact, the SDKs play a key, but often behind the scenes, role in each of the features above.
First, there are the sheer number of SDKs—11 in total—that cover everything from native mobile (iOS and Android), to mobile frameworks like NativeScript and Xamarin, to JavaScript frameworks like Angular, among many others. This can make it easy when developing multi-platform applications because, not only do you not have to build out the REST API integration for every platform, but the API methods within the SDK remain basically the same across the various platforms. This means you and your team don't need to rebuild or relearn when working on different platforms.
In addition, here are some things built into the SDKs that you may not even realize:
- The SDKs handle the low-level functionality that all apps need to solve—HTTP / SSL, keychains for secure user storage, encryption of caches and so on.
- The SDKs include extensive support for caching and sync out-of-the-box. This is critical—especially when dealing with mobile connections—but, as a developer, it can be complex to deal with things like databases, object mapping, scale, data consistency, concurrency, offline writes, offline querying and so on.
- The SDKs include the ability to “sync at scale,” meaning they can handle synchronizing very large amounts of data (i.e. hundreds of thousands of records) collected over potentially long periods of offline access. And, because it uses delta sync, it can do this in an extremely performant way, by synchronizing only the differences rather than every record.
- The SDKs abstract common but often complex scenarios like managing push tokens, authentication, user management and file handling into a "single line of code” snippet.
- Any code changes that are required due to operating system, device, programming language or framework upgrades gets handled by our SDK development team—offloading that responsibility from you (and your team).
I'm definitely understating all that the SDKs include here but, as you can see, it is already substantial.
What's Your Favorite Feature?
If you're a developer who hasn't tried Kinvey, hopefully I've convinced you to give it a try (there's a generous free level where you can test out all the features). Plus, you can tell your boss you're learning about things like TCO, "wins" and time to market and you'll be on your way to becoming the next CTO!
If you've already tried Kinvey, which of these features is your favorite? Or do you have a favorite that didn't make my list? I'd love to hear from you.
Brian Rinaldi
Brian has been a developer for over 20 years. Currently he works on developer content at Progress. He is a frequent speaker and author, serving as co-editor of the Mobile Dev Weekly newsletter and book author for O’Reilly. You can follow Brian via @remotesynth on Twitter.