Android
Multithreading mit RxJava
Posted byFranziska Neumeister on April 18th, 2016.RxJava läuft standardmäßig synchron ab. Um Operationen mit RxJava asynchron durchzuführen gibt es `Scheduler`.
Kurze Artikel über die Softwareentwicklung für Android
RxJava läuft standardmäßig synchron ab. Um Operationen mit RxJava asynchron durchzuführen gibt es `Scheduler`.
Leicht testbarer Code ist gleichzeitig leicht zu ändernder Code, ist gleichzeitig leicht verständlicher Code. Wie schreibt man aber Code, der sich gut testen lässt? Relativ einfach lassen sich noch Akzeptanz-Tests umsetzten, die die gesamte Anwendung starten und prüfen. Dabei müssen vielleicht nur einzelne Web-APIs oder Datenbanken ersetzt werden mit System für eine Testumgebung. Hat man […]
Apple hat die Sprache Swift als moderne Alternative zu dem 30 Jahre alten Objetive-C vorgestellt für die Entwicklung von iOS Apps. Java hat vielleicht nicht ganz so viele Altlasten oder sperrigen Syntax, allerdings sind auch seid der Entstehung von Java viele moderne Konzepte entstanden, die sich in Sprachen wie Swift oder Groovy finden. Außerdem arbeitet […]
Mit der Version 1.1 von Android Studio und dem Android Gradle Plugin ist es möglich auch Android-Code auf der JVM auszuführen. Vorher war es zwar auch möglich, ein reines Java-Test-Projekt anzulegen und gegen die lokale Android.jar des Android SDK zu linken. Allerdings führte jeder Methodenaufruf im Android SDK zu einer RuntimeException mit der Nachricht „Stub!“, […]
Das Android SDK bietet Unterstützung für Unit- und Instrumentation-Tests. Dazu gehören TestCase-Klassen, die z.B. den Lifecycle von Android-Komponenten steuern und es ermöglichen Abhängigkeiten von anderen System-Komponenten zu ersetzen durch andere Objekte, z.B. Mock-Implementierungen. Standardmäßig laufen Tests in einer Android-Laufzeitumgebung. Das bedeutet, dass entweder ein Emulator oder ein richtiges Testgerät zur Verfügung stehen muss. Das Kompilieren, […]
Es gibt viele Möglichkeiten, den Zugriff auf Objekte zwischen verschiedenen Activity– und Service-Instanzen zu teilen. Die simpelste Lösung ist das Singleton-Entwurfsmuster oder ein statisches Feld, das ein Objekt hält und von verschiedenen Activities abgerufen werden kann. Schon einen Schritt aufwendiger ist eine eigene Application-Klasse für die App zu definieren, die als Attribute die Objekte hält, […]
Normalerweise erzeugt Roboguice für jede Injektion ein neues Objekt. Für manche Objekte möchte man das aber vielleicht verhindern und sichergehen, dass nur eine einzelne Instanz existiert. Ohne ein Dependency-Injection-Framework würde man dafür das Singleton-Muster einsetzen. Globales Singleton Um Roboguice mitzuteilen, dass es für einen Typ eine Singleton-Instanz verwenden soll, markiert man die Klasse mit der […]
Dependency Injection Frameworks wie Roboguice trennen die Erzeugung von Objektgraphen vom Rest der Geschäftslogik. Oft reichen die Default-Einstellungen aus, damit Roboguice weiß, welche Klassen es verwenden soll und wie es Instanzen konstruiert. Roboguice bietet die Möglichkeit, die Konstruktion von Objekten zu konfigurieren und verschiedene sogenannte Module anzulegen, die unterschiedliche Implementierungen von Objekt-Graphen bündeln. Module Roboguice […]
Die Injektion von Abhängigkeiten über Annotationen findet immer während der Erzeugung eines Objektes statt. Manchmal wird aber erst zu einem späteren Zeitpunkt eine neue Instanz benötigt, z.B. wenn der Benutzer einer Notiz-App einen neuen Eintrag anlegt in dem er eine Schaltfläche tippt. Jetzt benötigt die App ein neues Notiz-Objekt, ein neues View-Objekt, um den neuen […]
Der große Unterschied zwischen der original Guice Bibliothek und Roboguice ist die Möglichkeit auch Abhängigkeiten zu injizieren, die einzigartig für die Android Entwicklung sind. Dazu gehören Werte aus den Resourcen der App wie Text, Animationen, Bilddaten oder Farbwerte, ganze Layouts und View-Objekte aus dem Layout einer Activity oder eines Fragments. View- und Layout-Injection Die häufigen […]