meghanmnia / parcelled

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 πŸ†

About

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

License:Apache License 2.0


Languages

Language:Java 100.0%