Skip to content

A fast annotation processor that auto-generates the Parcelable methods without writing them.

License

Notifications You must be signed in to change notification settings

zeoflow/parcelled

Repository files navigation

Parcelled - Android Library

Intro

A fast annotation processor that auto-generates the Parcelable methods without writing them.

Getting Started

For information on how to get started Parcelled, take a look at our Getting Started guide.

Submitting Bugs or Feature Requests

Bugs or feature requests should be submitted at our GitHub Issues section.

How does it work?

1. Depend on our library

Parcelled for Android is available through Google's Maven Repository. To use it:

  1. Open the build.gradle file for your application.
  2. Make sure that the repositories section includes Google's Maven Repository google(). For example:
allprojects {
    repositories {
        google()
        jcenter()
    }
}
  1. Add the library to the dependencies section:
dependencies {
    // ...

    // parcelled version
    def parcelled_version = "1.0.0"

    // Java Project
    implementation("com.zeoflow:parcelled-runtime:$parcelled_version")
    annotationProcessor("com.zeoflow:parcelled-compiler:$parcelled_version")

    // Kotlin Project
    implementation("com.zeoflow:parcelled-runtime:$parcelled_version")
    kapt("com.zeoflow:parcelled-compiler:$parcelled_version")

    // ...
}

2. Usage

2.1 Import

import com.zeoflow.parcelled.Default;
import com.zeoflow.parcelled.Parcelled;
import com.zeoflow.parcelled.ParcelledAdapter;
import com.zeoflow.parcelled.ParcelledVersion;

2.2 Class Declaration

@Parcelled(version = 1)
public abstract class CustomBean implements Parcelable {

    @Nullable
    @Default(code = "null")
    public String firstName;

    @ParcelledVersion(after = 1, before = 2)
    @Nullable
    public String lastName;

    @ParcelledAdapter(DateTypeAdapter.class)
    @ParcelledVersion(before = 1)
    @Default(code = "new Date()")
    public Date birthday;

    public static CustomBean create(
      @NonNull String firstName,
      @NonNull String lastName,
      @NonNull Date birthday
    ) {
        return new Parcelled_Person(firstName, lastName, birthday);
    }
}

License

Copyright 2020 ZeoFlow

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.

🏆 Contributors 🏆