Android Library to make it easy to create CodeEditor or IDE that support any languages and themes

Overview

CodeView

Codacy Badge CodeFactor Build Min API Level Maven Central Jitpack Version

Android Library to make it easy to create your CodeEditor or IDE for any programming language even for your programming language, just config the view with your language keywords and other attributes and you can change the CodeView theme in the runtime so it's made it easy to support any number of themes, and CodeView has AutoComplete and you can customize it with different keywords and tokenizers.

Demo

animated animated animated

  • Main Features
    • Can support any programming language you want
    • Can support AutoComplete and customize it with different tokenizers and design
    • Can support any theme you want and change it in the runtime
    • Syntax Highlighter depend on your patterns so you can support any features like TODO comment
    • Can support errors and warns with different colors and remove them in the runtime
    • Can change highlighter update delay time
    • Support Code snippets and change it in the runtime
    • Support optional Line Number with customization
    • Support Auto indentation with customization
    • Support highlighting matching tokens
    • Support replace first and replace all matching tokens
If you use CodeView in an interesting project, I would like to know

Add CodeView to your project

Add CodeView from Maven Central

dependencies { 
    implementation 'io.github.amrdeveloper:codeview:1.2.1'
}
Or Add CodeView from Jitpack.IO
Add it to your root build.gradle
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
Add the dependency
dependencies { 
    implementation 'com.github.AmrDeveloper:CodeView:1.2.1'
}

Documentation

CodeView is based on AppCompatMultiAutoCompleteTextView

Add CodeView on your xml

<com.amrdeveloper.codeview.CodeView
    android:id="@+id/codeView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/darkGrey"
    android:dropDownWidth="@dimen/dimen150dp"
    android:dropDownHorizontalOffset="0dp"
    android:dropDownSelector="@color/darkGrey"
    android:gravity="top|start" />

Initialize CodeView

CodeView codeView = findViewById(R.id.codeview);

Clear all patterns from CodeView

codeView.resetSyntaxPatternList();

Add Patterns for your language, you can add any number of patterns

codeView.addSyntaxPattern(pattern, Color);

Or add all patterns as an Map Object

codeView.setSyntaxPatternsMap(syntaxPatterns);

Highlight the text depend on the new patterns

codeView.reHighlightSyntax();

Add error line with dynamic color to support error, hint, warn...etc

codeView.addErrorLine(lineNumber, color);

Clear all error lines

codeView.removeAllErrorLines();

Highlight the errors depend on the error lines

codeView.reHighlightErrors();

Add Custom AutoComplete Adapter

//Your language keywords
String[] languageKeywords = .....
//List item custom layout 
int layoutId = .....
//TextView id on your custom layout to put suggestion on it
int viewId = .....
//Create ArrayAdapter object that contain all information
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, layoutId, viewId, languageKeywords);
//Set the adapter on CodeView object
codeView.setAdapter(adapter);

Add Custom AutoComplete Adapter that support keywords and Snippets

List<Code> codes = new ArrayList<>();
codes.add(new Snippet(..., ..., ...));
codes.add(new Keyword(..., ..., ...));

//Your language keywords
String[] languageKeywords = .....
//List item custom layout
int layoutId = .....
//TextView id on your custom layout to put suggestion on it
int viewId = .....

CodeViewAdapter codeAdapter = new CodeViewAdapter(context, layoutId, viewId, codes);
codeView.setAdapter(codeAdapter);

Add Custom AutoComplete Tokenizer

 codeView.setAutoCompleteTokenizer(tokenizer);

Set highlighter update delay

codeView.setUpdateDelayTime();

Enable/Disable highlight the code while the text is changing

codeView.setHighlightWhileTextChanging(enableHighlighter);

Enable/Disable line number

codeView.setEnableLineNumber(enableLineNumber);

Set line number text color

codeView.setLineNumberTextColor(Color.GREY);

Set line number text size

codeView.setLineNumberTextSize(size);

Set Tab length

codeView.setTabLength(4);

Enable/Disable Auto Indentation

codeView.setEnableAutoIndentation(enableIndentation);

Set Indentations Starts

codeView.setIndentationStarts(indentationStart);

Set Indentations Ends

codeView.setIndentationEnds(indentationEnds);

Change the matching highlighter color

codeView.setMatchingHighlightColor(color);

Get and save all the tokens that matching regex

List<Token> tokens = codeView.findMatches(regex);

Find and highlight the next matching token, returns null if not found

Token token = codeView.findNextMatch();

Find and highlight the previous matching token, returns null if not found

Token token = codeView.findPrevMatch();

Clear all matching highlighted token

codeView.clearMatches();

Replace the first string that matching regex with other string

codeView.replaceFirstMatch(regex, replacement);

Replace all strings that matching regex with other string

codeView.replaceAllMatches(regex, replacement);

For real examples on how to use CodeView check the example app

Comments
  • The autocomplete and The keyboard

    The autocomplete and The keyboard

    1.The autocomplete box is in the wrong position 2.The keyboard blocks the input box

    https://user-images.githubusercontent.com/103302052/166631466-4a09586d-2e0a-437e-8a43-2ad2aa8ee682.mp4

    android version:6.0.1

    Codes:

    MainActivity.java

    ` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

        // Your language keywords
        String[] languageKeywords = {"hello","world"};
    // List item custom layout 
         
    // TextView id on your custom layout to put suggestion on it
        CodeView codeView = findViewById(R.id.codeView);
        
        codeView.setEnableLineNumber(true);
        codeView.setLineNumberTextColor(Color.GRAY);
        codeView.enablePairComplete(true);
        codeView.enablePairCompleteCenterCursor(true);
        Map<Character, Character> pairCompleteMap = new HashMap<>();
        pairCompleteMap.put('{', '}');
        pairCompleteMap.put('[', ']');
        pairCompleteMap.put('(', ')');
        pairCompleteMap.put('<', '>');
        pairCompleteMap.put('"', '"');
        codeView.setPairCompleteMap(pairCompleteMap);
        codeView.addSyntaxPattern(Pattern.compile("[0-9]+") , Color.RED);
        codeView.setLineNumberTextSize(15);
        
        
        
    // Create ArrayAdapter object that contain all information
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.list,R.id.v_m_c, languageKeywords);
    // Set the adapter on CodeView object
        codeView.setAdapter(adapter);
        
        Snackbar.make(codeView,"By Ds",Snackbar.LENGTH_SHORT).show();
    }
    

    `

    activity_main.xml

    `

    <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent">

        <com.amrdeveloper.codeview.CodeView
            android:id="@+id/codeView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colo"
            android:dropDownWidth="150dp"
            android:dropDownHorizontalOffset="0dp"
            android:dropDownSelector="@color/colo"
            android:gravity="top|start" />
    

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

    `

    enhancement 
    opened by danicaStarR 10
  • Suggestions dont work

    Suggestions dont work

    my code doesnt work

    public static String[] suggestions = {"!DOCTYPE", "a", "acronym", "abbr", "address"};

    ArrayAdapter adapter = new ArrayAdapter<>(this, R.layout.code_suggestions, R.id.suggestItemTextView, suggestions); cd.setAdapter(adapter);

    suggestions dont even appear

    enhancement 
    opened by m-anshuman2166 4
  • Activity must extend AppCompatActivity

    Activity must extend AppCompatActivity

    Describe the bug Documentation does not mention the activity must extend AppCompatActivity that uses codeView

    If you do not, you can't edit anything.

    To Reproduce Steps to reproduce the behavior: use CodeView in a normal Activity, not an AppCompatActivity

    Expected behavior You should be able to use it regardsless (I guess)

    opened by piemmm 4
  • fixed bug for selection using keyboard input (shift+arrow)

    fixed bug for selection using keyboard input (shift+arrow)

    Text Selection ( Shift + Arrow key ) is not working correctly, so I found bug & fix

    repro steps:

    1. press Shift
    2. press Arrow key
    3. select the code.
    4. release shift key
    5. press arrow key

    Text unselection doesn't work.

    opened by issess 3
  • Auto pattern matching with color highliting

    Auto pattern matching with color highliting

    Is your feature request related to a problem? Please describe. Just like any code editor, having some predefined code and colors would be great.

    Describe the solution you'd like As we can't know in which language user will write, we can save some common keywords and leave the rest (keyword he/she wants to add for highlighting) to the user to implement.

    Discussion 
    opened by Chandra-Sekhar-Bala 2
  • Bring cursor at middle of pair auto complete characters

    Bring cursor at middle of pair auto complete characters

    Just a simple request/suggestion for now, in pair auto complete, cursor is moved to right of characters, I would like to see cursor to be put at middle of characters

    enhancement 
    opened by m-anshuman2166 2
  • App crash on searching for word containing special characters

    App crash on searching for word containing special characters

    App crashes on searching for special characters like ( ) or { }

    it happens due PatternSyntaxException

    maybe you could update app to treat searched word like a string, not a pattern

    enhancement 
    opened by m-anshuman2166 1
  • wrap_content not working properly

    wrap_content not working properly

    I put codeview inside linear layout wrap_content and codeView height wrap_content.

    <LinearLayout
        ...
        android:layout_height="wrap_content">
            <CodeView
                ...
                android:layout_height="wrap_content" />
    

    When button clicked, my nestedscrollview will add linear layout that contain codeView.

    Code inside codeView sometimes cut off. Code view can scroll vertical but very very dificult, I should scroll horizontal then vertical.

    I try to set

    android:layout_height="0dp"

    But my code doesn't show up.

    Use nestedScrollingEnabled to false still not work

    opened by SasmitaNovitasari 1
  • Implement Automated Code Formatter

    Implement Automated Code Formatter

    It will auto format your code after every push/PR

    To Configure

    Create a repository secret named TOKEN with your github oauth key

    https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

    opened by m-anshuman2166 1
  • Feature request

    Feature request

    Hello, dear developer, I want the feature of reading keywords from json and advanced highlighter like vs code. This feature is much better because it has a more open hand of the developer. To understand more, read the Textmeta document. Eclipse and vs code use this template with Thanks and using Library Gosn Ninja coder

    enhancement 
    opened by Arashvscode 2
  • Indentation for html

    Indentation for html

    Describe the bug Hi AMR, I'm using your library in my production apps, it's nice so far.

    Just got nailed in indenting html, i tried for indenting but it didn't work . Would you like to explain me how to do it correctly ?

    enhancement 
    opened by m-anshuman2166 1
  • Failed to inflate ColorStateList, leaving it to the framework

    Failed to inflate ColorStateList, leaving it to the framework

    I create vertical stepper using this third party library.

    Everything work on my android 5.1.1 and 11

    But I have android 5.1.1 custom ROM to MIUI global stable 9 and CodeView said error

    2022-03-26 14:37:19.556 4083-4083/com.sasmitadeveloper.java W/ResourcesCompat: Failed to inflate ColorStateList, leaving it to the framework
        java.lang.RuntimeException: Failed to resolve attribute at index 0
            at android.content.res.TypedArray.getColor(TypedArray.java:403)
            at android.content.res.XResources$XTypedArray.getColor(XResources.java:1296)
            at androidx.core.content.res.ColorStateListInflaterCompat.inflate(ColorStateListInflaterCompat.java:160)
            at androidx.core.content.res.ColorStateListInflaterCompat.createFromXmlInner(ColorStateListInflaterCompat.java:125)
            at androidx.core.content.res.ColorStateListInflaterCompat.createFromXml(ColorStateListInflaterCompat.java:104)
            at androidx.core.content.res.ResourcesCompat.inflateColorStateList(ResourcesCompat.java:229)
            at androidx.core.content.res.ResourcesCompat.getColorStateList(ResourcesCompat.java:203)
            at androidx.core.content.ContextCompat.getColorStateList(ContextCompat.java:519)
            at androidx.appcompat.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:48)
            at com.google.android.material.resources.MaterialResources.getColorStateList(MaterialResources.java:60)
            at com.google.android.material.button.MaterialButtonHelper.loadFromAttributes(MaterialButtonHelper.java:108)
            at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:246)
            at com.google.android.material.button.MaterialButton.<init>(MaterialButton.java:217)
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
            at android.view.LayoutInflater.createView(LayoutInflater.java:611)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:747)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
            at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
            at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:334)
            at android.view.LayoutInflater.inflate(<Xposed>)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
            at ernestoyaquello.com.verticalstepperform.StepHelper.initialize(StepHelper.java:68)
            at ernestoyaquello.com.verticalstepperform.VerticalStepperFormView.initializeStepHelper(VerticalStepperFormView.java:837)
            at ernestoyaquello.com.verticalstepperform.VerticalStepperFormView.initializeForm(VerticalStepperFormView.java:823)
            at ernestoyaquello.com.verticalstepperform.Builder.init(Builder.java:539)
            at com.sasmitadeveloper.java.MainActivity.onCreate(MainActivity.java:35)
            at android.app.Activity.performCreate(Activity.java:6093)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2404)
            at android.app.ActivityThread.access$900(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1315)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5296)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)
            at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
    

    at first i thought error in VerticalStepperLibrary but when I remove pattern in code view, everything work. Of cours codeView will not showing any color. This is my pattern class, copy from example in this project

    public class PatternTools {
    
        //Language Keywords
        private static final Pattern PATTERN_KEYWORDS = Pattern.compile("\\b(abstract|boolean|break|byte|case|catch" +
                "|char|class|continue|default|do|double|else" +
                "|String|true|false" +
                "|enum|extends|final|finally|float|for|if" +
                "|implements|import|instanceof|int|interface" +
                "|long|native|new|null|package|private|protected" +
                "|public|return|short|static|strictfp|super|switch" +
                "|synchronized|this|throw|transient|try|void|volatile|while)\\b");
    
        private static final Pattern PATTERN_BUILTINS = Pattern.compile("[,:;[->]{}()]");
        private static final Pattern PATTERN_COMMENT = Pattern.compile("//(?!TODO )[^\\n]*" + "|" + "/\\*(.|\\R)*?\\*/");
        private static final Pattern PATTERN_ATTRIBUTE = Pattern.compile("\\.[a-zA-Z0-9_]+");
        private static final Pattern PATTERN_OPERATION = Pattern.compile(":|==|>|<|!=|>=|<=|->|=|>|<|%|-|-=|%=|\\+|\\-|\\-=|\\+=|\\^|\\&|\\|::|\\?|\\*");
        private static final Pattern PATTERN_GENERIC = Pattern.compile("<[a-zA-Z0-9,<>]+>");
        private static final Pattern PATTERN_ANNOTATION = Pattern.compile("@.[a-zA-Z0-9]+");
        private static final Pattern PATTERN_TODO_COMMENT = Pattern.compile("//TODO[^\n]*");
        private static final Pattern PATTERN_NUMBERS = Pattern.compile("\\b(\\d*[.]?\\d+)\\b");
        private static final Pattern PATTERN_CHAR = Pattern.compile("'[a-zA-Z]'");
        private static final Pattern PATTERN_STRING = Pattern.compile("\".*\"");
        private static final Pattern PATTERN_HEX = Pattern.compile("0x[0-9a-fA-F]+");
    
        public PatternTools() {
        }
    
        public void addPattern(Context context, CodeView codeView) {
            //View Background monokia pro black
            codeView.setBackgroundColor(codeView.getResources().getColor(R.color.transparant));
    
            //Syntax Colors
            codeView.addSyntaxPattern(PATTERN_HEX, context.getResources().getColor(R.color.monokia_pro_purple));
            codeView.addSyntaxPattern(PATTERN_CHAR, context.getResources().getColor(R.color.monokia_pro_green));
            codeView.addSyntaxPattern(PATTERN_STRING, context.getResources().getColor(R.color.orange2));
            codeView.addSyntaxPattern(PATTERN_NUMBERS, context.getResources().getColor(R.color.monokia_pro_purple));
            codeView.addSyntaxPattern(PATTERN_KEYWORDS, context.getResources().getColor(R.color.monokia_pro_pink));
            codeView.addSyntaxPattern(PATTERN_BUILTINS, context.getResources().getColor(R.color.monokia_pro_pink));
            codeView.addSyntaxPattern(PATTERN_COMMENT, context.getResources().getColor(R.color.monokia_pro_grey));
            codeView.addSyntaxPattern(PATTERN_ANNOTATION, context.getResources().getColor(R.color.monokia_pro_pink));
            codeView.addSyntaxPattern(PATTERN_ATTRIBUTE, context.getResources().getColor(R.color.green));
            codeView.addSyntaxPattern(PATTERN_GENERIC, context.getResources().getColor(R.color.monokia_pro_pink));
            codeView.addSyntaxPattern(PATTERN_OPERATION, context.getResources().getColor(R.color.monokia_pro_pink));
            //Default Color
            codeView.setTextColor(context.getResources().getColor(R.color.monokia_pro_black));
    
            codeView.addSyntaxPattern(PATTERN_TODO_COMMENT, context.getResources().getColor(R.color.gold));
    
            codeView.reHighlightSyntax();
        }
    }
    

    this how I use the pattern class

            codeView.setFocusable(false);
            codeView.setEnableLineNumber(false);
            codeView.setVerticalScrollBarEnabled(false);
    
            codeView.setTabLength(4);
            codeView.setEnableAutoIndentation(true);
    
            // If I remove this, it works on android i modified
            new PatternTools().addPattern(this, codeView);
    
            codeView.setText(code);
            codeView.setHighlightWhileTextChanging(false);
    

    For information, I'm completely sure, android that I modified is also version 5.1.1

    I'm just afraid when publish my app, other android 5.1.1 will have the same problem

    question 
    opened by SasmitaNovitasari 6
  • Isn't working properly!

    Isn't working properly!

    I have added the following code in layout from the docs

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <com.amrdeveloper.codeview.CodeView
            android:id="@+id/codeView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/darkGrey"
            android:dropDownHorizontalOffset="0dp"
            android:dropDownSelector="@color/darkGrey"
            android:dropDownWidth="150dp"
    	android:gravity="top|start" />
    
    </LinearLayout>
    

    The app looks like this Screenshot_20220325-153948_Code Editor

    Keyboard doesn't appear, no response from the app. Why is that?

    opened by SunPodder 7
Releases(1.3.7)
  • 1.3.7(Oct 28, 2022)

  • 1.3.6(Oct 28, 2022)

    • Improve calculating line number padding from 3k ns to 1.5k ns per line.
    • Add support for relative line number feature inspired from vim editor
    • Add support for highlighting the current line and customize the color
    Source code(tar.gz)
    Source code(zip)
  • 1.3.5(May 13, 2022)

  • 1.3.4(Mar 20, 2022)

    Feature #18: Add option to bring cursor at the middle of pair, suggested by @m-anshuman2166 Feature#11: Add setLineNumberTypeface method to change line number font, implemented by @m-anshuman2166

    Source code(tar.gz)
    Source code(zip)
  • 1.3.3(Feb 27, 2022)

  • 1.3.2(Feb 19, 2022)

  • 1.3.1(Feb 6, 2022)

  • 1.3.0(Jan 27, 2022)

    • Version 1.3.0 (2022-01-27)
      • Improve drawing line number performance
      • Improve Auto Complete implementation to fix multi size drop down popup position
      • Add setMaxSuggestionsSize to limit the number of suggestions
      • Add setAutoCompleteItemHeightInDp take the auto complete list item to change the drop down final size
      • Add support for Auto Pair complete
      • Improve Auto indenting implementation and be able to support python indentation (Issue #9)
    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Jan 20, 2022)

    Version 1.2.2 (2022-01-20)

    • Add the missing Javadoc comments for all the public methods
    • Improve highlightSyntax implementation
    • Add resetHighlighter method to unhighlight all tokens
    • Improve the example app
    Source code(tar.gz)
    Source code(zip)
  • 1.2.1(Jan 7, 2022)

    New Features and improvements

    • Improve Auto indenting implementation and make it more customizable
    • Add support for find and replacement features and highlight match tokens
    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Nov 22, 2021)

  • 1.1.0(Nov 19, 2021)

  • 1.0.1(Jul 21, 2021)

  • 1.0.0(Aug 16, 2020)

Owner
Amr Hesham
Software Engineer interested in Android Development and PL Design
Amr Hesham
App to randomly translate word through different languages

App to randomly translate word through different languages

Grzybek 0 Jun 24, 2022
ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

ArchGuard 27 Jul 28, 2022
Project allowing to query products (languages, libraries, databases, etc) by their properties.

Products app This project allow to search products (mostly software products for now such as languages, libraries etc) based on their properties. For

null 1 May 1, 2022
Open-source modular Android App IDE for Android

Blokkok Blokkok is an open-source modular Android App IDE for Android. Every components of the IDE are separated from each other by modules, every mod

null 14 Dec 16, 2022
Advent of code 2021 (unofficial) in Kotlin for Educational Plugin on Jetbrains IntelliJ IDE.

Kotlin Advent of Code 2021 (unofficial) DISCLAIMER: I am not affiliated with the official Advent of code event or website. To open this course, you ne

null 1 Dec 10, 2021
Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo.

CutoutScreenSupport Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo. Usage whether the mobile phone is cutout

hacket 5 Nov 3, 2022
An easy way to create and access JSON Files!

JsonFile This is the JsonFile API, this class is meant to facilitate the process of creating and accessing a JSON file UPDATES Updates Version About C

Next 2 Nov 11, 2022
Easy-Note - Easy Note Application will help user to add and update their important notes

Easy-Note ??️ Easy Note App helps you to create your notes. You can ?? edit and

Ade Amit 0 Jan 30, 2022
when you use restful api and network get disconnect you have to store your data local for make your app faster and work on ofline mode

AppArchitectureOflineMode when you use restful api and network get disconnect you have to store your data local for make your app faster and work on o

Kareem-Mansy 3 Jun 20, 2021
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack is an all-in-one solution for mobile voice interfaces on Android. It provides every piece of the speech processing puzzle, including voice

Spokestack 57 Nov 20, 2022
An android app which allows users to display the data of any excel sheet in rows and columns

ExcelReader App description An android app which allows users to display the data of any excel sheet in rows and columns. Features Display data of an

Srihitha Tadiparthi 4 Oct 25, 2022
Browse your memories without any interruptions with this photo and video gallery

Simple Gallery Simple Gallery Pro is a highly customizable lightweight gallery loved by millions of people for its great user experience. Organize and

Simple Mobile Tools 2.8k Jan 4, 2023
ComicsShow app: Display comics and search for any favourites one

ComicsShow app: Display comics and search for any favourites one. Technologies used: Koin: For injecting class and providing modules on runtime :). Vi

Ahmed Gamal Yousef 1 Nov 21, 2021
An android app that displays statistics about covid-19 vaccinations and enables the user to make a dummy appointment.

AndroidApp An android app that displays statistics about covid-19 statistics and enables the user to make a dummy appointment. This a simple android a

Thodoris Kanellopoulos 7 Oct 2, 2022
An android app make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor

The purpose of this project is to make a one-stop solution for finding the desired reading or research partner, sell their own products, and also be a tutor.

Md.Asraful Islam Asif 4 Dec 14, 2022
Program, created to make popular adb and fastboot commands easier to use

Android Tool What is it? Android Tool is a powerful and beautiful program, created to make popular adb and fastboot commands easier to use. A dark the

Rodion 245 Dec 29, 2022
Dev Experience is a set of projects to make life easier for developers, in order to import, configure and use.

Dev Experience The experience that all developer need Dev Experience is a set of projects to make life easier for developers, in order to import, conf

Wagner Fernando Costa 3 Aug 31, 2022
Make your first Pull Request on Hacktoberfest 2022. Don't forget to spread love and if you like give us a ⭐️

This Repo is Excluded ?? HacktoberFest Starter Project ?? Use this project to make your first contribution to an open source project on GitHub. Practi

null 2 Nov 25, 2022
Make your Pull Request on Hacktoberfest 2022. Don't forget to spread love and if you like give us a ⭐️

HacktoberFest Project Use this project to make your first contribution to an open source project on GitHub. Practice making your first pull request to

null 1 Oct 13, 2022