Neues Open-Source Project

K

ko5tik

Stammgast
Threadstarter
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
 
K

ko5tik

Stammgast
Threadstarter
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.
 
K

ko5tik

Stammgast
Threadstarter
Es bringt nichts, es nimmt eher weg :

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

Ist nicht mehr notwendig. Weitere injections folgen
 
TheDarkRose

TheDarkRose

Gewerbliches Mitglied
Statt @View lieber dem Standard @Inject folgen.

@Swordi: Google mal nach Dependency Injection, bevor du solche Fragen stellst.
 
K

ko5tik

Stammgast
Threadstarter
Namenskollision mit J2EE Annotation ist uncool, zumal die nicht bei Android gibt. Frage ist was besser ist - viele Annotationen, oder Logic im injector
 
S

swordi

Gewerbliches Mitglied
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
 
TheDarkRose

TheDarkRose

Gewerbliches Mitglied
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 ^^
 
K

ko5tik

Stammgast
Threadstarter
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
 
Oben Unten