About Flip
Flip is a data model library designed as a framework. It is real-time, collaboration-oriented, transactional, portable, and compact.
Key Points
Flip features a number of key points which benefit your application:
- Real-time collaboration-oriented data model framework library
- Single-user applications can be adapted to work with multiple users with no extra work
- Undo/Redo and history are automatically handled (no action classes)
- Copy/Paste can be done automatically, or refined to your needs
- Multi-threaded/multi-process architecture
- Transactional
- Server side is limited to data model code, making it less prone to bugs
- High stability
- Performance oriented, extensible, and future-proof document formats
- At the core of Ohm Studio's unrivaled collaboration solution
Those key points are detailed below.
Prerequisites
- Client Development in C++
- Portable C++ code (standard library, no external dependencies)
- Apple XCode 6, Windows Microsoft Visual Studio C++ 2013 Update 4, or 2015, GCC 4.8 with libstdc++ or Clang 3.6 with libc++ on Ubuntu 14.04
Multi/single user, good practices
The library has been conceived to let developers test their programs in a single-user context, but with the ability to easily adapt it for multiple users. Great effort has been made to minimize impact during the integration process. No server is required during development.
Moreover, our team set some good practices over the last few years to help you implement a solid architecture that will stand the test of time and be able to meet new needs.
In fact, we experienced that industrial implementation of the model yields the best correct-lines-to-total-lines ratio. The unique way that Flip works offers users the ability to do real-time collaboration without feeling any latency caused by the Internet.
Undo, redo, history, copy, paste
Flip's very structure makes it unnecessary to manage undo and redo with specific code, which allows for the fast implementation of new industry-specific functionalities. The library can generate one or many undo/redo histories according to your needs.
Likewise, you can implement copy/paste with the same simplicity, while enjoying the unlimited possibilities of customization offered by this feature.
Document format, document version, validation
Flip supports a text-editable back-end writing format as well as a binary one. This has many advantages, including:
- Parsing the binary format is fast and portable
- The ability to use a text editor in debug mode, which offers outstanding readability with the text-editable back-end
The use of a text editor in debug mode offers outstanding readability, even with documents weighing 100Mb+. It is simple and efficient, no matter how complex the model is.
The document works on its own version. Graphs of multiple versions are available (branches for A/B testing for instance). The document conversion system has been successfully tested in production environments, and even with radical paradigm changes.
Flip also allows you to set up a dynamic model validation system, regardless of the complexity involved. It can even handle structural model validation with no additional code. It doesn't generate orphan objects; in fact, none have been encountered in over 10 years of development.
Thread/Process Flip
Using optimisic replication, Flip documents can be easily shared between threads or even processes without locks.
Interoperability
Flip has been designed to integrate with external engines without imposing its own architecture. IDs, references, and any other system used by external engines can be integrated in Flip's engine, without the need to maintain specific glue code. Each Flip object can store multiple represented objects.
Flip's unique change detection system within a document lets client code parse the change in any direction to meet an external engine's object lifetime constraints.