SkillAgentSearch skills...

Meepo

A router generator on android, similar to retrofit.

Install / Use

/learn @nekocode/Meepo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Meepo

Build Status codecov

Meepo is a router generator for android, similar to retrofit. You can use it to create routers for Activities, Fragments and even any things.

Integration

Replace the ${last-version} in below code to number Release .

repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    implementation "com.github.nekocode:Meepo:${last-version}"
}

Usage

Firstly, declare a router interface:

public interface Router {
    @Path("user/{user_id}/detail")
    @RequestCode(1)
    boolean gotoUserDetail(Context context, @PathParam("user_id") String userId, 
                           @QueryParam("show_title") boolean showTitle);

    @Clazz(StoreActivity.class)
    @Flags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
    void gotoB(Context context, @BundleParam("title") String title,
               @RequestCodeParam int requestCode);
}

If you want to open your Activity via URI, you need to add a uri intent filter to the corresponding <activity> element in the manifest file:

<activity android:name=".UserDetailActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>

        <data
            android:host="meepo.com"
            android:pathPattern="/user/.*/detail"
            android:scheme="meepo"/>
    </intent-filter>
</activity>

And then obtain an implementation of your router interface:

final Meepo meepo = new Meepo.Builder()
        .config(new UriConfig().scheme("meepo").host("meepo.com"))
        .build();

final Router router = meepo.create(Router.class);

Now, you can invoke the router's navigation methods:

boolean isSucess = router.gotoUserDetail(this, "123", true);

Router Annotation

This library currently provides the following annotations:

| Method Annotation | Description | | :----- | :------ | | @Clazz | Class of target Activity | | @ClazzName | Class name of target Activity | | @Path | URI path and mime type of target Activity | | @Action | Action of Intent | | @Flags | Flags of Intent | | @RequestCode | Request code of Intent |

| Parameter Annotation | Description | | :----- | :------ | | @BundleParam | Parameter that will be put into the extra of Intent | | @PathParam | Parameter that will be used to replace the URI path's corresponding replacement block | | @QueryParam | Query parameter of the URI | | @QueryMapParam | Map of Query parameters | | @RequestCodeParam | Request code of Intent |

Custom Parser and CallAdapter

You can create custom Parser and CallAdapter. You can reference the sample module. It means that you can create router for anything.

final ModuleRouter moduleRouter = new Meepo.Builder()
        .config(new ModuleConfig("TEST"))
        .parser(new ModuleParser())
        .adapter(new ModuleCallAdapter())
        .build()
        .create(ModuleRouter.class);

Related Skills

View on GitHub
GitHub Stars315
CategoryDevelopment
Updated24d ago
Forks21

Languages

Java

Security Score

95/100

Audited on Mar 10, 2026

No findings