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

Overview

CodeView

Min API Level 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 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

Who uses CodeView?

If you use CodeView in an interesting project, I would like to know!

Add CodeView to your project

Add it to your root build.gradle
allprojects {
	repositories {
	   ...
	   maven { url 'https://jitpack.io' }
	}
}
Add the dependency
dependencies { 
     implementation 'com.github.AmrDeveloper:CodeView:1.0.0'
}

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" />

Initalize 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);

Rehighlight 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();

Rehighlight the erros depend on the error lines

codeView.reHighlightErrors();

Add Custom AutoComplete Adapter

//Your langauge 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 Tokenizer

 codeView.setAutoCompleteTokenizer(tokenizer);

Set highlighter update delay

codeView.setUpdateDelayTime();

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 5
  • 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
Amr Hesham
A lightweight Kotlin library for a form state management and field validation.

Chassis A lightweight Kotlin library for a form state management and field validation. Setup Library and it's snapshots are available on Maven Central

Bogusz Pawłowski 30 Dec 12, 2022
A periodic text updating library

RotatingText Rotating text is an Android library that can be used to make text switching painless and beautiful, with the use of interpolators, typefa

Mobile Development Group 1.6k Dec 30, 2022
Include MatchTextView and MatchButton..Come..you will like it

Android MatchView This project is learned from (https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh) . Thanks for liaohuqiu.. I like the animat

Roger 858 Dec 7, 2022
() An Android TextView with a shimmering effect

Shimmer for Android This library is DEPRECATED, as I don't have time to mainatin it anymore. But feel free to go through the code and copy that into y

Romain Piel 2k Jan 9, 2023
() Android experiment showing a sinking TextView

Titanic for Android This library is DEPRECATED, as I don't have time to mainatin it anymore. But feel free to go through the code and copy that into y

Romain Piel 1.8k Dec 15, 2022
:page_facing_up: Android Text Full Jusiftication / Wrapping / Justify / Hyphenate - V2.0

LIBRARY IS NO LONGER MAINTAINED If you want to adopt + maintain this library, please drop me a message - [email protected] Android Full Justific

Mathew Kurian 1.9k Dec 29, 2022
RoundedLetterView like the one in Android 5.0 Contacts app

RoundedLetterView RoundedLetterView like the one in Android 5.0 Contacts app Attributes to choose from: rlv_titleText - The text in the first row. rlv

Pavlos-Petros Tournaris 653 Nov 11, 2022
Android's TextView that can expand/collapse like the Google Play's app description

ExpandableTextView ExpandableTextView is an Android library that allows developers to easily create an TextView which can expand/collapse just like th

Manabu S. 4k Jan 8, 2023
This is based on an open source autosizing textview for Android.

SizeAdjustingTextView This is based on an open source autosizing textview for Android I found a few weeks ago. The initial approach didn't resize mult

Elliott Chenger 255 Dec 29, 2022
A editable text with a constant text/placeholder for Android.

ParkedTextView A EditText with a constant text in the end. How to use <com.goka.parkedtextview.ParkedTextView xmlns:app="http://schemas.android.co

goka 270 Nov 11, 2022
OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette.

Open Template Hub - IntelliJ Platform Theme v1 OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette. After installi

Open Template Hub 5 Dec 18, 2022
OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette.

Open Template Hub - IntelliJ Theme Plugin v1 OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette. After installing

Open Template Hub 2 Apr 21, 2022
[Deprecated] This project can make it easy to theme and custom Android's dialog. Also provides Holo and Material themes for old devices.

Deprecated Please use android.support.v7.app.AlertDialog of support-v7. AlertDialogPro Why AlertDialogPro? Theming Android's AlertDialog is not an eas

Feng Dai 468 Nov 10, 2022
A library that converts Time to its equivalent local languages starting with some basic Nigeria languages(Yoruba, Hausa, Igbo, Efik and English)

Language_Time A library which converts "Time" to its equivalent local languages starting with some basic Nigeria languages like -(Yoruba, Hausa, Igbo,

Adetuyi Tolu Emmanuel 51 Feb 9, 2021
create your custom themes and change them dynamically with ripple animation

Android Animated Theme Manager create your custom themes and change them dynamically with ripple animation Features support java and kotlin projects.

Iman Dolatkia 601 Dec 22, 2022
A straightforward, no-BS compass app with support for Material You themes 🧭

Compass A simple & straightforward, no-BS compass app that works with your Material You colors! Motivation I do security work as a fourth job and havi

Synapse Technologies, LLC 16 Nov 23, 2022
Make your IDE play Wilhelm Scream effect when you are using unsafe !! operator in Kotlin

Make your IDE play Wilhelm Scream effect when you are using unsafe !! operator in Kotlin

Mikhail Levchenko 78 Nov 15, 2022
[Deprecated] Android Studio IDE support for Android gradle unit tests. Prepared for Robolectric.

#[Deprecated] Google has finally released a proper solution for unit testing. Therefore this plugin will no longer be activlty maintained. android-stu

Evan Tatarka 236 Dec 30, 2022
✈️ IDE plugin for the IntelliJ platform which adds GitHub Copilot support. (VERY WIP)

JetBrains Copilot GitHub Copilot support for the IntellIJ Platform. Installation Download the latest release. Select the Install Plugin from Disk opti

Koding 155 Dec 10, 2022