Fit
Framework for dispatching various procedure on update application.
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.