Giter Club home page Giter Club logo

blokkok-modules's Introduction

Blokkok Modules

Essential modules used for blokkok to function properly as an Android IDE, this is where you want to edit it's IDE features, like project editing, code editor, layout editor, etc.

Building

Everything

Building every modules here is very simple, what you need is a: *nix machine, sh, java and make sure you can run gradle on your machine. Then you can run the script build-everything.sh to build everything:

$ ./build-everyting.sh

Wait for a few minutes for it to build. Finally, a directory named built-modules will pop up, that's where all the compiled modules are located

Just a module

Building a module is not that hard either, the steps are:

  • Build the module like building an android APK
    ./gradlew assembleDebug # or assembleRelease if you wanted the juicy optimized apks
  • Put the compiled APK into a zip together with the manifest.json file
    $ # move this compiled apk to the current dir as module.jar
    $ cp ????/build/outputs/apk/debug/????-????.apk module.jar
    
    $ # then zip it together with manifest.json
    $ zip compiled-module.zip module.jar manifest.json
  • And you're done!

What are these modules?

Essentials

This essentials module is used to easily do stuff without having to write them yourself, just call a single communication function. Note: Might migrate this into using a stub instead rather than the communication API because it sucks.

Project Manager

The default blokkok project manager that manages projects by saving them in a folder inside the $dataDir/projects directory, each projects / folders are identified by a randomly-generated 16-wide [a-zA-Z1-0] String ID.

But note that this project manager cannot edit the inside of a project, that will be done by a project editor module. To make a project editor module by yourself, you will need to include the flag project-manager-impl in your module's flag list and here you can check its required communications. (Note: might migrate this method into using a stub instead too)

Inside a project's folder, there will be a file called project-metadata.json that contains the information about the project name, project configuration, and the project editor implementer (so that it cannot clash with other editor implementations).

Android App Project Editor (AAPEM)

This module implements Blokkok Project Manager's Project Editor specification. This project editor basically edits an android app project. This module needs 3 modules to function properly: code editor, layout editor, and apk builder modules.

Simple Code Editor

A simple code editor module that implements AAPEM's Code Editor module interface defined in aapem's stub

Simple Layout Editor

A simple layout editor module that implements AAPEM's Layout Editor module interface defined in aapem's stub

Simple Apk Builder

A simple apk builder module that implements AAPEM's Apk Builder module interface defined in aapem's stub

blokkok-modules's People

Contributors

iyxan23 avatar

Stargazers

 avatar  avatar

Forkers

itskruistz

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.