15. If you make an awesome library
hiding generated codes…
// Fields
@ExecuteSomething
String foo;
// Executor class “ThisClass$$Executor” is
generated.
// My library loads executor class automatically!
AwesomeLibrary.execute(this);
16. Alice changes Naming Rule
of Generated Class.
ex) (ClassName)$$Executor -> (ClassName)$$Doer
23. If you make awesome proguard-safe library…
// Fields
@ExecuteSomething
String foo;
// Executor class “ThisClassExecutor” is
generated.
// There are no reflection, no
ClassNotFoundException!!
new ThisClassExecutor().execute(this);
24. Bob often asks you
What s the name of Generated Classes and methods and constructor arguments and
interfaces will use in Generated Code blablabla…
25. Why ask me repeatedly ?
Why I have to remember
invisible codes?
Bob
<
https://www.flickr.com/photos/greeblie/2190709020/
29. Compare patterns
Butter Knife pattern
(hiding generated codes)
Dagger2 pattern
(no reflection)
How to load generated
codes
Library dose everything Developers have to import
Proguard configuration is needed not needed
Developers have to learn only usage of library
+ generated class naming
rules
Type-Safe No Yes