Web & Native App Communication Program

1. Project Duration

2015.07.18 - 2015.12.15

2. Purpose and Motivation

This project started from the question, “If you need to record something immediately, which app would you run among the existing note and memo apps?” With this motivation, the project was planned to create a new real-time text writing program and document composition.

3. Development Environment

4. Development Schedule

The project developed a cross-platform real-time asynchronous editing program with permissions and automatic documentation features named Tile Platform and Mosaic System. It was made open-source to build a developer ecosystem and was evaluated for its excellence in creating a new business model and supporting multiple competitions through the produced open-source.

5. Background

img1

6. Development Purpose

Overview

Each text block is called a Tile, and a document composed of Tiles is called a Mosaic. The Auto-Documentation System algorithm will automatically snap Tiles into place to form documents, providing a unique text editing experience different from existing programs. This approach is considered for a patentable project. A Quick Start Module will also be implemented using hardware. By fundamentally resolving text recording methods and developing new ideas, the project aims to enhance convenience for users, enabling quick note-taking, real-time editing, and automatic documentation.

7. Development Goals

1) System Architecture

img2

2) Software Architecture

img3

3) Tile Architecture

img4

8. Quantitative Goals

Goal Description Weight
Cross-platform implementation of Tile Running equally on various platforms (Desktop, Mobile) 20
Mosaic System error-free algorithm Ensuring the Mosaic System’s algorithm works flawlessly 20
Real-time asynchronous communication Evaluating data integrity and operational transformation algorithm used in simultaneous editing 20
Platform expansion via open-source Building a developer ecosystem by open-sourcing Tile System and Mosaic System on GitHub 30
New UX/UI development Evaluating new user experiences and accessibility through innovative UX and UI 5
Providing practical service Confirming the program’s applicability as a practical service 5

1) Operational Transformation Algorithm

Operational transformation (OT) supports advanced composite software system functionalities, ensuring consistent and synchronized collaborative editing of text documents. The Node.js module ShareJS implements OT, enabling real-time simultaneous editing by multiple users. The key to OT is maintaining a structure that prevents conflicts during simultaneous edits.

2) Cross Platform

Cross-platform software can run on multiple operating systems or platforms. Examples include Java, which can run on various OSes. Native cross-platform systems act as middleware directly above the OS kernel, supporting stable middleware functionality. The future integration of kernels could lead to independent mobile platforms. For instance, Blackberry plans to support Android apps by integrating Android middleware.

3) MVC Model

img5 The MVC (Model-View-Controller) model is an object-oriented design method dividing components independently for flexibility and maintainability. Model handles application logic and data processing, View manages data input/output, and Controller directs data flow.

4) WPF

img6 Windows Presentation Foundation (WPF) uses XAML and integrates with .NET Framework for a consistent programming model, separating UI and business logic. WPF applications can be hosted on desktops and browsers, supporting rich controls and advanced graphics.

10. Development Content

1) Mac OSX

img13

2) Windows WPF

img15

3) Android and iOS (Mobile)

4) Beacon Implementation

11. Development Environment

12. Glossary

Term Description
WPF Windows Presentation Foundation for UI with DirectX graphics and XAML for interface design
Cross Platform Software or applications running on multiple operating systems or platforms
Operational Transformation Technology for integrating complex functionalities in collaborative editing systems
Cordova Device API set for accessing native devices using JavaScript, enabling HTML/CSS/JS app development

13. References

  1. pyrasis.com - Using Node.js
  2. “Apache Core Guide” by Ben Laurie, Peter Laurie