Hi Michael,

Being developer of pico I'm also watching  what you are doing ;)

Currently I'm not very happy with size (could/should be less)  and
inheritance.
Though inheritance problem could be solved easily - Just create static
method
which will inject supplied  object out of context:

RoboGuice.inject(this)

This (IMHO) would be less intrusive for users.

But I think there is more room for DI on android - not only in
interface creation

( I play with ideas to adapt pico,  but its core is currently too
big )
regards,

On Apr 6, 4:38 pm, Michael Burton <[email protected]> wrote:
> Hi Matthias,
>
> I'm with you on the sluggishness issues.  I had to dial-back my use of 
> libraries like gson because the overhead just ended up being too high.
>
> In my experience, run-time impact of RoboGuice isn't that high.  As I was 
> telling Manfred a few days ago, I notice zero impact on the Nexus One or 
> Droid.  For older devices, it's possible to notice an impact during activity 
> startup if you're looking for it, but it's fairly innocuous.   Reading 
> reviews of apps that use RoboGuice indicates that it doesn't seem to be 
> something users are generally aware of.  I've got an action item (Issue #33) 
> to publish some benchmarks at some point.  Battery impact should be 
> negligible as roboguice doesn't really do anything in the background.
>
> APK size is an issue though.  Right now roboguice+guice adds about 450k (400 
> of that is just guice).  I think proguard could probably take out much or 
> most of that impact, but I haven't had a chance to get it working yet.
>
> In fact, if anyone is up for the challenge, I'd totally offer up a license to 
> IntelliJ 9 to anyone who can supply detailed instructions on how to use 
> Proguard with a roboguice android app.
>
> Any takers? :)
>
> Cheers,
> Mike
>
> On Apr 4, 2010, at 6:12 AM, Matthias wrote:
>
> > I was thinking about using Guice myself before, but hesitated fearing
> > to make the overall sluggishness of the platform even worse.
>
> > How much of an overhead are talking about in terms of memory footprint
> > and size of bundled libraries? Any noticeable impacts on speed or
> > battery life? How often does Guice kick in in the background?
>
> > I'm currently stepping back from overly abstract programming models on
> > Android because of exactly these issues.
>
> > On Mar 29, 8:53 pm, Michael Burton <[email protected]> wrote:
> >> Hello Android developers,
>
> >> I'd like to announce the final release of RoboGuice 1.0!
>
> >>http://code.google.com/p/roboguice
>
> >> RoboGuice is a framework that brings the simplicity and ease of Dependency 
> >> Injection to Android, using Google's own Guice library.  If you've ever 
> >> used Spring (the #1 enterprise framework on Java, now more popular than 
> >> J2EE itself) or Guice, you already know how convenient this style of 
> >> programming can be.
>
> >> To give you an idea, take a look at this simple example of a typical 
> >> Android activity:
>
> >> class AndroidWay extends Activity {
> >>     TextView name;
> >>     ImageView thumbnail;
> >>     LocationManager loc;
> >>     Drawable icon;
> >>     String myName;
>
> >>     public void onCreate(Bundle savedInstanceState) {
> >>         super.onCreate(savedInstanceState);
>
> >>         name      = (TextView) findViewById(R.id.name);
> >>         thumbnail = (ImageView) findViewById(R.id.thumbnail);
> >>         loc       = (LocationManager) 
> >> getSystemService(Activity.LOCATION_SERVICE);
> >>         icon      = getResources().getDrawable(R.drawable.icon);
> >>         myName    = getString(R.string.app_name);
> >>         name.setText( "Hello, " + myName );
> >>     }
>
> >> }
>
> >> This example is 18 lines of code.  If you're trying to read through 
> >> onCreate(), you have to skip over 5 lines of boilerplate initialization to 
> >> find the only one that really matters: name.setText().  And complex 
> >> activities can end up with a lot more of this sort of initialization code.
>
> >> Compare this to the same app, written using RoboGuice:
>
> >> class RoboWay extends GuiceActivity {
> >>     @InjectView(R.id.name)             TextView name;
> >>     @InjectView(R.id.thumbnail)        ImageView thumbnail;
> >>     @InjectResource(R.drawable.icon)   Drawable icon;
> >>     @InjectResource(R.string.app_name) String myName;
> >>     @Inject                            LocationManager loc;
>
> >>     public void onCreate(Bundle savedInstanceState) {
> >>         super.onCreate(savedInstanceState);
>
> >>         name.setText( "Hello, " + myName );
> >>     }
>
> >> }
>
> >> In this example, onCreate() is much easier to take in at a glance.  All 
> >> the platform boilerplate is stripped away and you're left with just your 
> >> own app's business logic.  Do you need a SystemService?  Inject one.  Do 
> >> you need a View or Resource?  Inject those, too, and RoboGuice will take 
> >> care of the details.  
>
> >> RoboGuice's goal is to make your code be about your app, rather than be 
> >> about all the initialization and lifecycle code you typically have to 
> >> maintain in Android.
>
> >> RoboGuice has been in development since August 2009, and 0.9 entered 
> >> release candidacy in December and has been stabilizing ever since. After 
> >> three months and a few finishing touches, we now believe it's ready to 
> >> expose to a larger audience.
>
> >> We know that RoboGuice won't be for everybody.  Although RoboGuice never 
> >> prevents you from doing things the Android way, some people will still 
> >> prefer seeing everything spelled out explicitly in their code.  And other 
> >> people who write extremely high performance applications such as games may 
> >> not want to incur the small overhead imposed by yet another framework.  
> >> But for people who want to build simple and straightforward code that's 
> >> easily testable and easy to read, I encourage you to give RoboGuice a try.
>
> >> We hope you like it.  Stop by our discussion forums if you'd like to have 
> >> any help getting started.
>
> >> Cheers,
> >> Mike
>
> >> PS. We're beginning work on RoboGuice 1.1 now, which will include more 
> >> injectible objects, better unit testing support, and hopefully some 
> >> general usability improvements as well.  I'd love to hear your thoughts on 
> >> other things you'd like to see in the next release.
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to [email protected]
> > To unsubscribe from this group, send email to
> > [email protected]
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> > To unsubscribe, reply using "remove me" as the subject.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to