Android Design Patterns and Best Practices