title: Need to design the architecture design of an android application
body: <p>I need to create an architecture design for my application.</p>
  
  <p><strong>App Details:</strong> In my app, i show some data which is fetched from server. So basically when you start the app, you get a list of categories and when you click on a category, application calls a web service using REST and get a JSON response. After getting the response, JSON data is parsed to create an Arraylist of objects and finally an adapter shows this data in a list view.</p>
  
  <p><strong>Package structure which i have thought of:</strong></p>
  
  <p><code>com.app.activities:</code> contains all the activities required in the application.</p>
  
  <p><code>com.app.customviews:</code> custom views required for the application.</p>
  
  <p><code>com.app.adapters:</code> different list/grid adapters to create different types of list and grid views.</p>
  
  <p><code>com.app.parsers:</code> contains all parser classes to parse the JSON response received from the server. These classes basically will return an arraylist to the activities which will be further used by adapter class for creating list and grid views.</p>
  
  <p><code>com.app.utils:</code> contains functions which are used through out the application like function for getting the response from server for a request, getting a string from the inputstream, download an image from a certain url, logging etc.</p>
  
  <p><code>com.app.model:</code> contains all the model classes for various user-defined data types.</p>
  
  <p>App work flow: When a certain category is selected, <code>activity</code> gets the response from <code>utils</code> and send it to <code>parsers</code> to get an arraylist of <code>Model</code> type. Now this arraylist is passed to the <code>adapters</code> which returns an adapter object which is finally used in showing the list/grid in the <code>activity</code>.</p>
  
  <p>Now as per the application architecture, your code should be divided into following three layers:</p>
  
  <ol>
  <li>Presentation Layer</li>
  <li>Business Layer</li>
  <li>Data Layer</li>
  </ol>
  
  <p>Now i need to know, as per my application which part belong to which layer. </p>
  
  <p>Please help, i am totally clueless about this. </p>
  
  <p>thanks!!</p>
  
  <p><strong>Update:</strong> While googling i stumbled upon this link:</p>
  
  <p><a href="http://apparchguide.codeplex.com/wikipage?title=Chapter%2019%20-%20Mobile%20Applications" rel="nofollow">http://apparchguide.codeplex.com/wikipage?title=Chapter%2019%20-%20Mobile%20Applications</a></p>
  
  <p>It says, your application should have some workflows, business components, entities etc. </p>
  
  <p>So, i think my current package structure is incorrect as i am doing most of thing in Activities only.</p>
  
  <p>So now, my question is: If i follow this architecture, what should be package structure or how do i setup my code base.</p>