Skip to content

succeun/androidinjection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Andriod Injection

이 프로젝트는 AndroidAnnotation에서 아이디어를 얻었으며, 그 프로젝트의 Annotation을 닮으러 노력하였습니다. 유사 프로젝트로 AndroidAnnotation, butterknife가 있으며, 차이점으로 Annotation processing이 아닌 Reflection을 사용하고자 합니다.

이유인즉, 운영에서 소스 생성을 허락하지 않는 회사에서 사용하고자 소스 변경이 발생하지 않도록 Reflection을 사용하여 동일한 동작을 하고자 합니다.

Code Sample

import androidinjection.annotation.AnnotationActivity;

@EActivity(R.layout.translate)
public class TranslateActivity extends AnnotationActivity {

    @ViewById(R.id.textInput) // Injects
    EditText textInput;

    @ViewById(R.id.myTextView) // Injects
    TextView result;

    @ResAnimation(android.R.anim.fade_in) // Injects 
    Animation fadeIn;

    @Click(R.id.doTranslate) // When button is clicked 
    void doTranslate() {
         invokeBackground("translateInBackground", textInput.getText().toString());
    }

    @Background // Executed in a background thread
    void translateInBackground(String textToTranslate) {
         String translatedText = callGoogleTranslate(textToTranslate);
         invokeUiThread("showResult", translatedText);
    }

    @UiThread // Executed in the ui thread
    void showResult(String translatedText) {
         result.setText(translatedText);
         result.startAnimation(fadeIn);
    }

    // [...]
}

Version

0.1

About

View "injection" library for Android which uses reflection.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages