GithubHelp home page GithubHelp logo

engineering-desing-docs's Introduction

Log Consumable

  • A log is instant record of an activity.
  • A log follows structure(UUID,log,time,date,duration,Array of media paths) while creating a log.
  • A log is immutable(cannot make changes after creating).
  • There is a log encoder and decoder which follows the structure.
  • If a log is created then the log encoder encodes and provides to system.
  • When a logs are fetched from the system, using log decoder it is decoded to the log structure. The structure checks the log while decoding. if it doesn't follows the structure then it is destroyed.
  • A log can only be created, viewed and deleted.

Device Token

  • If a user wants to share their logs to other users, then the logs will be shared with the device token.
  • Before the user access the logs the device token is verified, If the token is valid then the logs are provided else it informs the system that the device token is invalid.
  • These device tokens are immutable(if a user reinstall the application it's not changed). The device tokens are unique from other device tokens.
  • The device tokens are encoded, inserted in a deep link and it's shared.

Conversation Threads

  • There is a service called external communication and execution service(shortly called as ECE), which handles the the handshake between our application and other service like siri, shortcuts spotlight search etc.
  • The ECE is a singleton, so it has access all over the application environment.
  • The service like Siri / shortcuts communicates with the ECE.
  • The ECE gets intent ID and it's parameter from the service like siri / shortcut.
  • The ECE checks the intent ID in intent dictionary.
  • If the intent ID is available, then it checks whether the intent provides parameter, whether the intent is dependant to another intent. Next it executes the fuction.
  • else, the ECE informs the issue to the external services.
  • The intent dictionary has information about intent ID with what functionality should be executed, whether the intent has parameters or not and whether the intent is dependent to other intent.
  • The intents can be increased or decreased as per the app requirement using intent dictionary.
  • The ECE has a intent state variable which tracks the intent. The intent state variable is used to check the intent state while switching from one state to another.
  • If an exception or problem occurs in the apps functionality the function informs the ECE and the ECE informs to the external service.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.