1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Neues Open-Source Project

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von ko5tik, 05.09.2011.

  1. ko5tik, 05.09.2011 #1
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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
     
  2. ko5tik, 06.09.2011 #2
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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.
     
  3. swordi, 06.09.2011 #3
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    hmm was bringt das ganze?
     
  4. ko5tik, 06.09.2011 #4
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Es bringt nichts, es nimmt eher weg :

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

    Ist nicht mehr notwendig. Weitere injections folgen
     
  5. TheDarkRose, 06.09.2011 #5
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Beiträge:
    1,292
    Erhaltene Danke:
    136
    Registriert seit:
    20.08.2010
    Statt @View lieber dem Standard @Inject folgen.

    @Swordi: Google mal nach Dependency Injection, bevor du solche Fragen stellst.
     
  6. ko5tik, 06.09.2011 #6
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Namenskollision mit J2EE Annotation ist uncool, zumal die nicht bei Android gibt. Frage ist was besser ist - viele Annotationen, oder Logic im injector
     
  7. swordi, 06.09.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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
     
  8. TheDarkRose, 07.09.2011 #8
    TheDarkRose

    TheDarkRose Gewerbliches Mitglied

    Beiträge:
    1,292
    Erhaltene Danke:
    136
    Registriert seit:
    20.08.2010
    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 ^^
     
  9. ko5tik, 08.09.2011 #9
    ko5tik

    ko5tik Threadstarter Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    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
     

Diese Seite empfehlen