Data Abstract for Cocoa | RemObjects Software

Data Abstract for Cocoa

For almost two decades now, Data Abstract has been the leading framework for secure, scalable multi-tier database access for Apple's platforms.

First released in the fall of 2009 as Data Abstract for OS X, the Cocoa edition has grown alongside Apple's ecosystem from day one, and is being relied on by thousands of Mac and iOS developers every day all across the globe, from single-developer shops all the way to Fortune 500 companies.

Whether you write your client code in Objective-C, Swift, or one of our own Elements languages – Oxygene, Swift (Silver), RemObjects C# (Hydrogene), Mercury or Go – Data Abstract integrates seamlessly into your Xcode workflow, and supports both macOS and iOS.

Less Clutter, with Schemas

Aren't you tired of writing repetitive networking code, hand-crafting JSON parsers, and dealing with brittle endpoint-per-feature APIs that need to be rewritten every time the back-end changes?

Data Abstract does away with this with one powerful concept: The Schema.

Schema Modeler

The Schema lives in a single .daSchema file shared with your server, and contains all information about the data tables and commands your server exposes. It is backed by a powerful editor, the Schema Modeler, that lets you visually create, maintain and test your data access – available as a native Mac app, so you can model your data without ever leaving your Apple workflow.

Schema Modeler shows you both a live view into your database(s) and the tables you have chosen to expose on your server. You can add and update tables in your schema easily via drag-and-drop.

You decide which tables and which fields will be visible to applications, whether they can be modified, and so on. You can even change the names as they will appear to client apps, to truly abstract (see what we did there?) the real database structure – more on that, below.

Strongly-Typed Table Definitions

Beyond loose dictionary-style row access, Data Abstract for Cocoa lets you generate strongly-typed table definitions directly from your schema. Your tables become first-class Objective-C protocols and Swift structs, with proper field names, types and full Xcode autocomplete.

Instead of row[@"customerName"], you simply write row.customerName – making your code refactor-safe and a pleasure to read.

Native Apple Integration

Data Abstract for Cocoa is designed to feel right at home on Apple's platforms. The framework uses idiomatic Cocoa patterns throughout: blocks for asynchronous callbacks, ARC for memory management, GCD for concurrency, and full bridging to Swift's modern async/await.

Behind the scenes, networking is built on Apple's own URLSession, so you get all the benefits of system-level connection management, background transfers, and App Transport Security out of the box.

See it in Action

See how easy it is to create a Data Abstract client for Apple's platforms, with virtually no boilerplate code, in our short introduction video:

{video COCOAVIDEOID 700px}

DA SQL

SQL is the de-facto standard language for data queries, and DA SQL brings it to the client tier, without compromising data security and integrity.

DA SQL allows you to (entirely optionally, of course) write SQL statements client-side, to express simple and complex data queries. Unlike with other systems, this SQL will not be passed through directly to the back-end database, but it gets processed and run against the schema in the middle tier – preserving all the security and data integrity you have in place, and never allowing rogue requests from a client to bypass it to access data or make changes they are not allowed to.

Of course DA SQL can be used internally, but you can also (safely) expose it to your end-user, letting them craft their own dynamic queries on the fly.

Work Online and Offline

With Data Abstract's advanced Briefcase mode, your client applications remain functional, whether they have a connection to the network or not. This is especially valuable for iOS apps, where users routinely move in and out of network coverage – your app stays responsive, lets users keep working, and syncs back to the server when connectivity returns.

Changes made locally can be persisted – even across application restarts – and applied at a later time, when the server becomes reachable again. And this entire process can be transparent to the end-user if so desired.

Sophisticated reconciliation support makes it easy to deal with the rare case where two users might have tried to apply conflicting updates – including a ready-made Reconciliation flow your application can use as is, or build upon.

Abstracting the Database Structure

One of the powerful benefits of Data Abstracts Schema model is that it allows you to fully abstract what your actual database looks like from what the client applications will see and interact with. This can be helpful in many scenarios:

  • Maybe you have a legacy database with ugly names, such as the all too common ALL_CAPS_WITH_UNDERSCORES format many older databases use. You can pick prettier names in your Schema, and your client developers will never have to see the ugly names.

  • Maybe you have an old and a new database that use vastly different naming conventions, but you want to create one set of client apps that can talk to either.

  • Maybe you later want to make changes to names in the database, but not break existing clients. You can keep the old name in the schema mapped to the renamed fields or tables in the back-end.

  • Maybe you have multiple very different (but conceptually similar) databases, possibly provided by different customers, and maybe even using different database types. With Data Abstract, you can write one app, that sees one database structure, that can talk to any of them.

...and many other scenarios.

Compatible With Other Platforms

Data Abstract for Cocoa gives you native client libraries for macOS and iOS – letting you share your client-side code across Apple's main developer platforms.

But Data Abstract is much more than just an Apple framework. Native client libraries are available for all major non-Cocoa development platforms: .NET and .NET Core, Delphi and C++Builder, Java/Android, as well as JavaScript and WebAssembly. The same server can serve all of these clients, equally well.

Data Abstract was also designed from the ground up to be wire-compatible with non-DA clients, and data from a Data Abstract server can be accessed using (sometimes less efficient and capable) open standards such as OData and REST, if needed.

Relativity Server

While you can build your own middle-tier server from scratch (in .NET, Delphi, or one of the Elements languages) and add all the custom functionality you need, in many cases DA and the schema provide everything out of the box, and there is no need for any custom server code at all.

For these cases, there is Relativity Server.

Relativity Server is a pre-built server application that you can deploy royalty-free to host any number of independent Data Abstract middle-tier servers, each with any number of schemas. It provides all the functionality of a custom server, without the need to build and maintain your own server project.

You can think of Relativity Server being to your middle-tier what SQL Server, Oracle, or any other database system is to your database: you just provide the actual data, you're not building your own database engine.

And of course, since Relativity Server is based on DA, you can always migrate from it to a custom server later, if you need to add custom functionality. Or migrate a custom server to Relativity, if you don't.

Try Data Abstract Now

Give Data Abstract for Cocoa a try for 30 days – free and without any commitment.

You can download the trial installer from this site, below.

 

Get Your Copy Now

Take your data access to the next level with Data Abstract for Cocoa, at only $1499 for a yearly license. Data Abstract is also part of the full Suite Subscriptions, or for multiple platforms.

* Purchase now, $1499 per developer, one year ($999 renewal) * See Additional Purchase Options

Site licenses, volume discounts, and packages including all Data Abstract platforms are available, as well.

To stay in the loop, follow @RemObjects on Twitter.

And discuss the product or get support, in our Data Abstract forum on RemObjects Talk.

This includes full technical support during your trial period as well, of course!

Close

How can we help?

Your Name:
Your Email Address:
 
Your Question:
Close

Thank you!

Your message has been sent, and someone will get back to you soon, usually within a business day.

For technical or support questions, please also check out our RemObjects Talk support forum, as well as out other Support Options.