¿Cuál es el mejor diseño de paquetes?

Estoy trabajando en una aplicación de carrito de la compra para Android. Al crear el diseño del paquete, puedo pensar en 2 opciones

Diseño 1. Divida paquetes basados ​​en roles como

com.shoppingcart.activity //all activity classes com.shoppingcart.utility //all utility classes com.shoppingcart.database //all database handlers 

Etc

o

Diseño 2. División basada en el componente

 com.shoppingcart.login com.shoppingcart.searchproduct com.shoppingcart.order 

¿Cuál de los 2 diseños será mejor?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.