Professional Documents
Culture Documents
Allows programmers to decouple static resources and device specifics from the
application code
Leads to better app design and effective customization of the app to different devices
Each resource package is accessed by addressing it using its package name, resource
type, and resource name
o <package_name>.R.<resource_type>.<resource_name>
(c) What are the key differences between Android Views, View Groups and Tile
Views.
The user interface for each component of your app is defined using a hierarchy
of View and ViewGroup objects, as shown in the figure below. Each view group is an invisible
container that organizes child views, while the child views may be input controls or other
widgets that draw some part of the UI. This hierarchy tree can be as simple or complex as you
need it to be (but simplicity is best for performance).
This class represents the basic building block for user interface components. A View
occupies a rectangular area on the screen and is responsible for drawing and event handling.
View is the base class for widgets, which are used to create interactive UI components (buttons,
text fields, etc.). The View Group subclass is the base class for layouts, which are invisible
containers that hold other Views (or other ViewGroups) and define their layout properties.
The TileView is a subclass of ViewGroup that provides a mechanism to asynchronously
display tile-based images, with additional functionality for 2D dragging, flinging, pinch or
double-tap to zoom, adding overlaying Views (markers), built-in Hot Spot support, dynamic
path drawing, multiple levels of detail, and support for any relative positioning or coordinate
system. The viewgroup is hence the parent and the tileview and views are children of the
viewgroup.
(Assumption: TileView is the view that is being described in
https://github.com/moagrius/TileView)
(d) Why did Android support implicit intents? What unique capabilities can be
achieved using implicit intents?
Implicit intents, unlike explicit do not name a specific component, but instead declare a
general action to perform, which allows a component from another app to handle it. This can be
particularly useful if our app is not capable of performing certain functions that other apps can
perform like displaying a location on a map of capturing an image, etc. Using implicit intents,
we can invoke the activity that is able to perform the function that we need to be completed.
The android system give the user a choice of applications from which the user picks a single
application that can perform the desired function.
The main advantage of using implicit intent is that as a developer, we need not specify all
the details of the task to be performed but a general description of the task to be performed that
allow the android system to decide as to which application is capable of performing that task.
To inform the system which implicit intents they can handle, activities, services, and
broadcast receivers can have one or more intent filters. Each filter describes a capability of the
component, a set of intents that the component is willing to receive. It, in effect, filters in intents
of a desired type, while filtering out unwanted intents but only unwanted implicit intents
(those that don 't name a target class ) .
current
mobile
application
model
followed
in
todays
platforms
is
Assumption: Most apps need to be connected to the internet to display information to the
user or store user data.
I belive that an app model in which the user doesnt have to install the application but can rather
access it using a url should be the main focus of the future. The apps can be built in a modern
development framework like node.js. This way the developer needs to develop a common
application that can run on any platform, the user doesnt have to download the application in
order to use it.
S.No. DIUD
My Model
1. Installation required
2. Since the app is stored locally, device Since the app is loaded dynamically, the
needs adequate storage space.
specific
hardware
permissions.
4. App needs to be developed for all the Single app can work on all the platforms
platforms
5. App can run in the background and App can be stops from running in the
eat up battery life
(b) Address one of the challenges you identified in (a) and sketch a proposal of a solution
to overcome it. If you have to make any assumptions, write your assumptions down
clearly.
Using a hybrid architecture for cloud mobile system where the client cloud transactions can be
reduced by performing most of the computations in the cloud and then sending the final
information to the client whenever it contacts the cloud for the necessary information. Cloud
can also send data to the clients using push notifications that are delivered as and when the
client connects to the cloud.
We can also improve the connectivity of the clients with the cloud by using better technologies
like WIMAX. Google is also launching balloons that beam data directly to the clients. Such
improvements in technologies would mean that the client is better connected to the cloud, thus
leading to more accurate transactions.
The most important point to note is that if a User makes a mistake while using your application,
then its a problem with the UI, not with the user. Hence, app developers need to design apps in
such a way that the workflow of the application is not counter intuitive to the users perception.
(Designs should be user centered)
While developing apps for mobile devices, the biggest challenge that the developer faces is that
he has a limited room to include all the information to engage the user. Placing appropriate UI
elements at locations that are intuitive to the user will provide a seamless experience for the
user. He can use techniques like changing the size of a particular UI element to highlight its
importance, change the fonts, colours.