Neues Open-Source Project

K

ko5tik

Stammgast
41
Kleine aber feine DI für android. MItstreiter willkommen.

1. Keine externe Abhängigkeiten
2. Leicht (sonst macht es kein sinn)
3. Mit Annotationen gesteuert
4. Mit 2 Scopes ( onCreate() , onResume() / onPause() )
5. Mit Injection von der Preferences

.... Weitere Ideen?

Projekt gerade gestartet, Mitstreiter willkommen:

https://github.com/ko5tik/andject
 
Jetzt geht bereits folgendes:

In Activity:
Code:
    class WithInjectableViews extends Activity {
        // shall be injected
        @View(id = R.id.irgendwas)
        private android.view.View asView;
        @View(id = R.id.irgendwasanderes)
        private Button button;

        public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);

             Injector.startActivity(this);
    }

Und alle views sind initialisiert. Annotation name is etwas unglücklich - Vorschläge sind willkommen.
 
hmm was bringt das ganze?
 
Es bringt nichts, es nimmt eher weg :

scanArea = (ImageView) findViewById(R.id.scanarea);

Ist nicht mehr notwendig. Weitere injections folgen
 
Statt @View lieber dem Standard @Inject folgen.

@Swordi: Google mal nach Dependency Injection, bevor du solche Fragen stellst.
 
Namenskollision mit J2EE Annotation ist uncool, zumal die nicht bei Android gibt. Frage ist was besser ist - viele Annotationen, oder Logic im injector
 
Ok

ich habe mir dafür ein Eclipse Plugin getippt, welches mit einem Klick sämtliche findViewByIds erzeugt und separat abspeichert :)

da brauch ich genau noch 0 Zeilen selbst tippen
 
ko5tik schrieb:
Namenskollision mit J2EE Annotation ist uncool, zumal die nicht bei Android gibt. Frage ist was besser ist - viele Annotationen, oder Logic im injector

Logik im Injector natürlich. Und @Inject kannst du schon verwenden. Jedes DI Framework macht das. Spring, Guice, etc.

Edit: Und wie sollte da eine Kollision zusammenkommen? Die Annotation wäre ja in deinem Package. Und Java EE (J2EE gibts nimma :p) gibt es ja nicht auf Android ^^
 
Ok, erste Tests. Allein die Injection von Views hat code etwas Schrumpfen lassen. Sowohl in Zeilenmenge im onCreate() als auch apk Große. Gestrippte Version von Bibliothek ist zur Zeit etwa 3KB
 

Ähnliche Themen

M
Antworten
2
Aufrufe
626
Mozart40
M
D
  • Data2006
Antworten
14
Aufrufe
483
jogimuc
J
Tiefkuehlpizza
  • Tiefkuehlpizza
Antworten
0
Aufrufe
767
Tiefkuehlpizza
Tiefkuehlpizza
Zurück
Oben Unten