Mjukare Android utveckling med RoboGuice
RoboGuice är ett måste-ha ramverk som ger enkelhet och lätt beredskapsinjektion till Android. Guice är ett lätt inriktningsinjektionsramverk för Java-plattformen. Dependensinsprutning är ett designmönster med kärnansvarig för separationsbeteende från beroendeupplösning.
Det möjliggör avlägsnande av “hårdkodad” beroenden och gör det möjligt att ändra dem vid kompilering eller körningstid. Detta gör din kod lättare att skriva, ändra, enhetstest och återanvändning i andra sammanhang. Din kod blir mindre av en boilerplate-kod och mer affärslogik.
Med RoboGuice kan du ta med allt det till Android. RoboGuice tillåter dig att använd dina egna basklasser tillsammans med dina egna väsentliga metoder eller funktioner. Detta gör RoboGuice kompatibel med de flesta biblioteken samt tillåta dig att stripa nästan alla plattformspannplattor via olika injektioner som Se injektioner, Resursinjektioner, SystemService-injektioner mm.
I enkla termer innebär det att du använder RoboGuice i ditt Android-projekt skriver mindre kod, hanterar färre fel och har färre huvudvärk.
Så här installerar du RoboGuice
RoboGuice kan enkelt installeras i ditt Gradle-baserade projekt genom att lägga till följande rader till din “beroenden” del av din appmoduls gradvisbyggnadsfil:
project.dependencies compile 'org.roboguice: roboguice: 3. + "tillhandahållen" org.roboguice: roboblender: 3. +'
Så här använder du RoboGuice
RoboGuice är lätt att använda, om du följer dessa grundläggande regler:
1. Utöka dina lektioner från lämpliga RoboGuices basklasser som RoboActivity, RoboFragment, RoboService, RoboListActivity, RoboActionBarActivity, etc.
2. Injicera visningar, resurser eller tjänster Använda olika annoteringar som tillhandahålls av RoboGuice som “@InjectView“, “@InjectResource“, “@Injicera“, etc.
Det är allt. Enkelt, eller hur? Du kommer att känna dig mer hemma om du är bekant med Java-anteckningar.
Ingen RoboGuice vs RoboGuice
Låt oss jämföra hur RoboGuice kan minska din arbetsbelastning och förbättra din produktivitet genom att använda det här lilla exemplet. Antag att vi har en “activity_main.xml” layoutfilen med alla synpunkter som anges nedan.
Notera: Kommentarer läggs till för att förbättra kodens förståbarhet.
klass NoRoboGuice utökar aktivitet // views TextView name; ImageView-miniatyrbilden; // tjänster LocationManager loc; // resurser Drawable icon; String myName; offentligt ogiltigt onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // anger layoutnamnet = (TextView) findViewById (R.id.name); // boilerplate initialisering thumbnail = (ImageView) findViewById (R.th.thumbnail); // initialisering av boilerplate loc = (LocationManager) getSystemService (Activity.LOCATION_SERVICE); // boilerplate initialisering icon = getResources (). getDrawable (R.drawable.icon); // initialisering av boilerplattan myName = getString (R.string.app_name); // boilerplate initialisering name.setText ("Hej," + myName); // aktuell kod
Så här ser det ut som RoboGuice:
@ContentView (R.layout.activity_main) // anger layoutklassen RoboGuice utökar RoboActivity // views @InjectView (R.id.name) TextView namn; @InjectView (R.id.thumbnail) ImageView thumbnail; // resurser @InjectResource (R.drawable.icon) Drawable icon; @InjectResource (R.string.app_name) String myName; // tjänster @Inject LocationManager loc; offentligt ogiltigt onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); name.setText ("Hej," + myName); // aktuell kod
RoboGuice minskar inte bara koden utan hjälper också till att förbättra källkodens läsbarhet och förståbarhet. Det tar gissningen ut av apputveckling och Din ansökningskod är inte längre skräp med mekaniken i Android-plattformen.
Denna fördel hjälper mycket vid tidpunkten för debugging eller uppdaterande applikationen som du enkelt kan läsa och ändra källkoden. Du behöver inte längre söka efter den aktuella koden mellan kedjeplattans initialiseringskod för nu endast den faktiska koden existerar och RoboGuice gör initieringen av boilerplattan automatiskt för dig.