Nemmere Android-udvikling med RoboGuice
RoboGuice er et must-have ramme, der bringer enkelhed og lethed af afhængighedsindsprøjtning til Android. Guice er en letvægtsafhængighedsindsprøjtningsramme til Java-platformen. Dependensinjektion er et mønster med hovedprincippet for adskillelsesadfærd fra afhængighedsopløsning.
Det giver mulighed for fjernelse af “hard-coded” afhængigheder og gør det muligt at ændre dem på kompilere eller løbe tid. Dette gør din kode lettere at skrive, ændre, enhedsprøve og genbrug i andre sammenhænge. Din kode bliver mindre af en boilerplate kode og mere business logik.
Med RoboGuice kan du medbringe alt det til Android. RoboGuice giver dig mulighed for Brug dine egne basklasser sammen med dine egne væsentlige metoder eller funktionaliteter. Dette gør RoboGuice kompatibel med de fleste biblioteker samt tillade dig at strippe næsten alle platformskedler via forskellige injektioner som Vis injektioner, Ressourceinjektioner, SystemService-injektioner mv.
Simpelthen betyder brug af RoboGuice i dit Android-projekt skriver mindre kode, håndterer færre fejl og har færre hovedpine.
Sådan installeres RoboGuice
RoboGuice kan nemt installeres i dit Gradle-baserede projekt ved at tilføje følgende linjer til din “afhængigheder” del af dit appmodul er gradvis build-fil:
project.dependencies compile 'org.roboguice: roboguice: 3. +' forudsat 'org.roboguice: roboblender: 3. +'
Sådan bruger du RoboGuice
RoboGuice er nem at bruge, hvis du følger disse grundlæggende regler:
1. Udvid dine klasser fra de relevante RoboGuices basisklasser som RoboActivity, RoboFragment, RoboService, RoboListActivity, RoboActionBarActivity osv..
2. Injicér visninger, ressourcer eller tjenester ved hjælp af forskellige annotationer leveret af RoboGuice som f.eks “@InjectView“, “@InjectResource“, “@Indsprøjte“, etc.
Det er det. Enkel, er det ikke? Du vil føle dig mere hjemme, hvis du er bekendt med Java Annotations.
Ingen RoboGuice vs RoboGuice
Lad os sammenligne, hvordan RoboGuice kan reducere din arbejdsbyrde og forbedre din produktivitet ved at bruge dette lille eksempel. Antag, at vi har en “activity_main.xml” layoutfil med alle nedenstående synspunkter.
Bemærk: Kommentarer tilføjes for at forbedre forståelsen af koden.
klasse NoRoboGuice udvider aktivitet // views TextView navn; ImageView thumbnail; // tjenester LocationManager loc; // ressourcer Tegnbart ikon; String myName; Offentlig ugyldig onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // angiver layoutnavn = (TextView) findViewById (R.id.name); // boilerplate initialisering thumbnail = (ImageView) findViewById (R.th.thumbnail); // boilerplate initialisering loc = (LocationManager) getSystemService (Activity.LOCATION_SERVICE); // boilerplate initialisering icon = getResources (). getDrawable (R.drawable.icon); // boilerplate initialisering myName = getString (R.string.app_name); // boilerplate initialisering name.setText ("Hej," + myName); // egentlig kode
Sådan ser det ud til RoboGuice:
@ContentView (R.layout.activity_main) // indstiller layoutklassen RoboGuice udvider RoboActivity // views @InjectView (R.id.name) TextView navn; @InjectView (R.id.thumbnail) ImageView thumbnail; // ressourcer @InjectResource (R.drawable.icon) Tegnbart ikon; @InjectResource (R.string.app_name) String myName; // tjenester @Inject LocationManager loc; Offentlig ugyldig onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); name.setText ("Hej," + myName); // egentlig kode
RoboGuice reducerer ikke kun koden, men hjælper også med at forbedre læsbarheden og forståelsen af kildekoden. Det tager gættet ud af app udvikling og din ansøgningskode er ikke længere fyldt med mekanikerne på Android-platformen.
Denne fordel hjælper meget på tidspunktet for debugging eller opdatering applikationen som du nemt kan læse og ændre kildekoden. Du behøver ikke længere at søge den egentlige kode mellem kedelpladens initialiseringskode, fordi nu kun den egentlige kode eksisterer og RoboGuice gør kedeplade initialisering automatisk for dig.