Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0-alpha01] - 2024-11-29
Initial release of App Sizer as an open-source project.

### Added
- Gradle plugin for analyzing Android app download sizes
- Command-line tool for non-Gradle build systems
- Support for analyzing:
- Total app download size
- Detailed size breakdown
- Size contribution by teams
- Module-wise size contribution
- Size contribution by libraries
- List of large files
- Reports in multiple formats:
- InfluxDB database (1.x)
- Markdown tables
- JSON data
- Comprehensive documentation
- Usage guides for both Gradle plugin and CLI tool
- Docker setup for InfluxDB & Grafana
- Detailed configuration options
- Known limitations documentation

### Notes
- This is an alpha release for early feedback
- API and configuration options may change in future releases
- Testing with different Android project configurations is ongoing

[0.1.0-alpha01]: https://github.com/grab/app-sizer/releases/tag/0.1.0-alpha01
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,32 @@ App Sizer provides two flexible integration methods:
*Note: The command-line option was the original implementation and remains supported for broader compatibility.*

### Gradle Plugin Integration
In root `build.gradle`:

Add the plugin to your project using the Gradle plugins DSL:

1. Add the plugin to your root `settings.gradle`:

```groovy
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.grab:app-sizer:SNAPSHOT"
}
pluginManagement {
repositories {
mavenCentral()
gradlePluginPortal()
}
}
```
In the app module 's `build.gradle`
2. Apply and configure the plugin in your app module's build.gradle:

```groovy
plugins {
id "com.grab.sizer" version "<version>"
id "com.grab.sizer" version "0.1.0-alpha01"
}

// AppSizer configuration
appSizer {
// DSL
// Configuration goes here
}
```

To run analysis, execute
3. To run analysis:

```
./gradlew app:appSizeAnalysis[Release|Debug] --no-configure-on-demand --no-configuration-cache
Expand Down
29 changes: 16 additions & 13 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,29 +32,32 @@ App Sizer provides two flexible integration methods:
*Note: The command-line option was the original implementation and remains supported for broader compatibility.*

### Gradle Plugin Integration
In root `build.gradle`:

Add the plugin to your project using the Gradle plugins DSL:

1. Add the plugin to your root `settings.gradle`:

```groovy
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.grab:app-sizer:SNAPSHOT"
}
pluginManagement {
repositories {
mavenCentral()
gradlePluginPortal()
}
}
```
In the app module 's `build.gradle`
2. Apply and configure the plugin in your app module's build.gradle:

```groovy
apply plugin: "com.grab.app-sizer"
plugins {
id "com.grab.sizer" version "0.1.0-alpha01"
}

// AppSizer configuration
appSizer {
// DSL
// Configuration goes here
}
```

To run analysis, execute
3. To run analysis:

```
./gradlew app:appSizeAnalysis[Release|Debug] --no-configure-on-demand --no-configuration-cache
Expand Down
29 changes: 28 additions & 1 deletion docs/plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,33 @@ App Sizer provide a gradle plugin as the option to seamlessly integrates with yo

## Getting Started

There are two ways to integrate the App Sizer plugin into your project:

### Option 1: Plugins DSL (Recommended)

1. Add the plugin to your root `settings.gradle`:

```groovy
pluginManagement {
repositories {
mavenCentral()
gradlePluginPortal()
}
}
```

2. Apply and configure the plugin in your app module's build.gradle:
```groovy
plugins {
id "com.grab.sizer" version "0.1.0-alpha01"
}

appSizer {
// Configuration goes here
}
```

### Option 2: Legacy buildscript method
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This content seems repeating?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think we can remove this legacy approach from the index.md & readme.md
What do you think?

1. Add the plugin to your root `build.gradle`

```groovy
Expand All @@ -11,7 +38,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath "com.grab:app-sizer:SNAPSHOT"
classpath "com.grab.sizer:sizer-gradle-plugin:0.1.0-alpha01"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion gradle/publishing.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def configurePom = { MavenPublication publication ->
developer {
id = 'MinhNguyen-nvm'
name = "Minh Nguyen"
email = 'van.minh@grab.com'
email = 'minhnguyen.gtvt@gmail.com'
organization = 'Grab'
organizationUrl = 'https://github.com/grab'
}
Expand Down