All Projects β†’ 2BAB β†’ ScratchPaper

2BAB / ScratchPaper

Licence: Apache-2.0 license
A Gradle Plugin for adding variant/version/git-commit-id/etc information to APK launcher icon.

Programming Languages

kotlin
9241 projects
shell
77523 projects

Projects that are alternatives of or similar to ScratchPaper

Badgeforappicon
The unread badges of the android launcher icon.
Stars: ✭ 83 (+43.1%)
Mutual labels:  launcher, badge, icon
Badges4 Readme.md Profile
πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» Improve your README.md profile with these amazing badges.
Stars: ✭ 929 (+1501.72%)
Mutual labels:  badge, icon
qpage
πŸ‘¨β€πŸ’» Free Project For Creating Academic Homepage Without Any Code In 3min
Stars: ✭ 87 (+50%)
Mutual labels:  badge, icon
Ruby Gem Downloads Badge
Clean and simple gem downloads count badge, courtesy of http://shields.io/. You can checkout the application directly at the following URL:
Stars: ✭ 29 (-50%)
Mutual labels:  badge, icon
Iconshowcase
Full-of-features, easy-to-customize, free and open source, Material Design dashboard for icon packs.
Stars: ✭ 91 (+56.9%)
Mutual labels:  launcher, icon
Image-Support
Add badge with counter to ImageView Android.
Stars: ✭ 128 (+120.69%)
Mutual labels:  badge, icon
Easylauncher Gradle Plugin
Add a different ribbon to each of your Android app variants using this gradle plugin. Of course, configure it as you will
Stars: ✭ 123 (+112.07%)
Mutual labels:  launcher, icon
Iconshowcase Dashboard
A full-of-features, easy-to-customize, free and open source, Material Design dashboard for icon packs.
Stars: ✭ 197 (+239.66%)
Mutual labels:  launcher, icon
Flutter app badger
Support to update the app badge on the launcher (both for Android and iOS)
Stars: ✭ 191 (+229.31%)
Mutual labels:  launcher, badge
UltimateTabLayout
A library for tab layout use with viewpager. Very useful, small
Stars: ✭ 33 (-43.1%)
Mutual labels:  badge, icon
Polyfill
An artifact repository to assist writing Gradle Plugins for Android build system.
Stars: ✭ 68 (+17.24%)
Mutual labels:  variant, android-gradle-plugin
svelte-fa
Tiny FontAwesome 5 component for Svelte
Stars: ✭ 214 (+268.97%)
Mutual labels:  icon
octicons-modular
GitHub Octicons with tree-shaking support and icon-per-file style.
Stars: ✭ 25 (-56.9%)
Mutual labels:  icon
pojavlauncherteam.github.io
Official website for PojavLauncher, built with VuePress
Stars: ✭ 64 (+10.34%)
Mutual labels:  launcher
SDKLauncher-iOS
A small iOS application to serve as a launcher/testbed for the Readium SDK.
Stars: ✭ 69 (+18.97%)
Mutual labels:  launcher
WoW-Launcher
A game launcher for World of Warcraft that allows you to connect to custom servers.
Stars: ✭ 56 (-3.45%)
Mutual labels:  launcher
Apple-App-Icons
This repository is for hosting Apple App Icons Sketch file, .sketch
Stars: ✭ 31 (-46.55%)
Mutual labels:  icon
TabBarInteraction
A tab bar example that animate based on user interaction
Stars: ✭ 72 (+24.14%)
Mutual labels:  icon
vscode-icon
Icon created for Visual Studio Code Stable & Insiders.
Stars: ✭ 98 (+68.97%)
Mutual labels:  icon
badge-generator
Magically generate Markdown badges for your docs πŸ›‘οΈ 🦑 πŸ§™
Stars: ✭ 104 (+79.31%)
Mutual labels:  badge

ScratchPaper

Maven Central Actions Status Apache 2

[English][δΈ­ζ–‡θ―΄ζ˜Ž]

ScratchPaper is a Gradle Plugin helps distinguish the variant/version/git-commit-id by adding a launcher icon overlay, powered by New Variant/Artifact API & Polyfill. Accepted by Google Dev Library.

How does it work?

If you install both debug&release Apps on one device, you can not distinguish which one you is your target for testing.

If you have more than one staging Apps for QAs, when they found some issues you may don't know how to match the App version to your code base (branch/commit/etc..), because all of them share the same version like "2.1.0-SNAPSHOT".

ScratchPaper can add an overlay on your launcher icon, and put given information on it.

  • Support regular & round Icons
  • Support adaptive-icon
  • Support AAPT2
  • Support custom text of multiple lines with some built-in content

In addition, the plugin can be enabled/disabled for per variant respectively.

Why choose ScratchPaper?

We can find some similar solutions from Github, but the pain points of them are: most of them do not support latest AAPT2/AGP. ScratchPaper supports latest AAPT2/AGP, adaptive icons, and use new Variant API / Gradle lazy properties to gain a better performance. Apart from that, usefulness/easylauncher-gradle-plugin is one of the most popular solution that is still under maintained, it supports fancy filters and additional pngs to add on badges. If you don't need multiple lines text, that is a great choice as well.

Usage

0x01. Add the plugin to classpath:

buildscript {
    repositories {
        ...
        mavenCentral() // Since 2.5.4, the publish repository has been shifted from Jcenter to Maven Central.
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
        classpath 'me.2bab:scratchpaper:3.1.0' // Since 2.5.4, the artifactId of ScratchPaper changed from scratch-paper to scratchpaper
    }
}

0x02. Apply Plugin:

// On Application's build.gradle (do not use in Library project)
apply plugin: 'me.2bab.scratchpaper'

0x03. Advanced Configurations

scratchPaper {
    // Main feature flags. Mandatory field.
    // Can not be lazily set, it's valid only before "afterEvaluate{}".
    // In this way, only "FullDebug" variant will get icon overlays
    enableByVariant { variant ->
        variant.name.contains("debug", true)
                && variant.name.contains("full", true)
    }

    // Mandatory field.
    // Can be lazily set even after configuration phrase.
    iconNames.set("ic_launcher, ic_launcher_round")

    // Some sub-feature flags
    enableXmlIconsRemoval.set(false) // Can be lazily set even after configuration phrase.
    forceUpdateIcons = true // Can not be lazily set, it's valid only before "afterEvaluate{}".

    // ICON_OVERLAY styles, contents.
    style {
        textSize.set(9)
        textColor.set("#FFFFFFFF") // Accepts 3 kinds of format: "FFF", "FFFFFF", "FFFFFFFF".
        lineSpace.set(4)
        backgroundColor.set("#99000000") // Same as textColor.
    }

    content {
        showVersionName.set(true)
        showVariantName.set(true)
        showGitShortId.set(true)
        showDateTime.set(true)
        extraInfo.set("For QA")
    }
}

0x04. Build your App and Enjoy!

Check screenshots on the top.

Compatible

ScratchPaper is only supported & tested on LATEST ONE Minor versions of Android Gradle Plugin. Since 2.5.4, the publish repository has been shifted from Jcenter to Maven Central.

AGP Version Latest Support Version
7.1.x Maven Central
7.0.x 3.0.0
4.2.x 2.6.0
4.1.x 2.5.4
4.0.x 2.5.3
3.6.x 2.5.1
3.5.x 2.4.2
3.4.x 2.4.1
3.3.x 2.4.1
3.2.x 2.4.0
3.1.x 2.4.0
3.0.x (Aapt2) Support
2.3.x (Aapt2) Never Tested
2.3.x (Aapt1) Not Support

Git Commit Check

Check this link to make sure everyone will make a meaningful commit message.

So far we haven't added any hook tool, but follow the regex below:

(chore|feat|docs|fix|refactor|style|test|hack|release)(:)( )(.{0,80})

v1.x (Deprecated)

The v1.x IconCover forked from icon-version@akonior. It provided icon editor functions that compatible with Aapt1, and I added some little enhancement like hex color support, custom text support. As time goes by, we have to move to Aapt2 sooner or later. So I decide to revamp the whole project and add more fancy features. If you are still using Aapt1 with IconCover, now is the time to consider moving into the new one.

License

Copyright 2016-2022 2BAB

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].