1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. ko5tik, 05.09.2011 #1
    ko5tik

    ko5tik Threadstarter Android-Experte

    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

    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

    hmm was bringt das ganze?
     
  4. ko5tik, 06.09.2011 #4
    ko5tik

    ko5tik Threadstarter Android-Experte

    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

    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

    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

    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

    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

    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
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Gradle: maven-publish abhängigkeiten Android App Entwicklung 12.06.2017
[INFO] Neue Playstore Richtlinien im Mai 2017 Android App Entwicklung 19.05.2017
[UMFRAGE/INFO/DISKUSSION] Kotlin, die neue Programmiersprache für Android Android App Entwicklung 18.05.2017
[ERLEDIGT] Android Project: hat jemand das schon mal gehabt? Android App Entwicklung 20.04.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
AS-Emulator & Smartwatch-Source funktioniert nicht Android App Entwicklung 27.01.2017
Viewelemente neu zeichnen Android App Entwicklung 04.01.2017
Android Studio: Fehlermeldung "... different signature" auf neuem PC Android App Entwicklung 03.10.2016
Open World Game erstellen Android App Entwicklung 30.08.2016
Du betrachtest das Thema "Neues Open-Source Project" im Forum "Android App Entwicklung",