Fit

Additional

Language
Java
Version
1.2.0 (Jan 22, 2016)
Created
Jun 25, 2014
Updated
Aug 14, 2018 (Retired)
Owner
Keishin Yokomaku (KeithYokoma)
Contributors
The Gitter Badger (gitter-badger)
Keishin Yokomaku (KeithYokoma)
2
Activity
Badge
Generate
Download
Source code

Advertisement

Fit

Framework for dispatching various procedure on update application.

Photo License CC by NC-ND

Attention

This library is under development so API may be changed drastically until the first major release.

Usage

Prepare VersionModule to declare what to do when your application is upgraded or newly installed.

public class MyModule implements VersionModule {
    @VersionCode({1, 2, 3}) // foo() is called when the app is updated to version code = 1, 2 and 3
    public void foo() {

    }

    @VersionCode(4) // bar() is called when the app is updated to version code = 4
    public void bar() {

    }
}

If you like to have them executed only when it is an upgrade, use UpgradeOnly annotation.

public class MyModule implements VersionModule {
    @VersionCode({1, 2, 3}) // foo() is called when the app is updated to version code = 1, 2 and 3
    public void foo() {

    }

    @VersionCode(4)
    @UpgradeOnly // bar() is called when the app is updated to version code = 4, and not called when the app is newly installed
    public void bar() {

    }
}

Register your VersionModule when Application#onCreate() called.

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fit.initialize(this, new MyModule());
    }
}

And execute update procedure like this.

Fit.getInstance().execute();

Currently Fit has a synchronous call interface only. Asynchronous call will be introduced in the near future.

ProGuard Settings

Set configuration for ProGuard to keep annotation and annotated methods.

-keepattributes *Annotation*
-keepclassmembers class * {
    @jp.yokomark.fit.VersionCode *;
}

License

Apache License v2

Copyright (C) 2014 KeithYokoma, Inc. All rights reserved.

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.