0% found this document useful (0 votes)
4 views7 pages

Components of An App

The course on Modern Application Development will cover the essential components of applications, including storage, computation, and presentation, using an email client as a primary example. It will explore various platforms such as desktop, mobile, web-based, and embedded systems, highlighting their distinct features and paradigms. The focus will primarily be on web-based applications, emphasizing cloud storage and accessibility.

Uploaded by

livingasankit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views7 pages

Components of An App

The course on Modern Application Development will cover the essential components of applications, including storage, computation, and presentation, using an email client as a primary example. It will explore various platforms such as desktop, mobile, web-based, and embedded systems, highlighting their distinct features and paradigms. The focus will primarily be on web-based applications, emphasizing cloud storage and accessibility.

Uploaded by

livingasankit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Modern Application Development - I

Professor. Nitin Chandrachoodan


Department of Electrical Engineering
Indian Institute of Technology, Madras
Components of an App

Hello, everyone, and welcome to this course on Modern Application Development.

(Refer Slide Time: 0:16)

So, let us look briefly at the components of an application. So, I am going to use the term app
and application sort of interchangeably from now onwards. And what exactly are the kinds of
apps that we will develop as part of this course; we will look into those a little bit further later
on. For now, I want to understand what are the components? Or in other words, what kind of
things are we trying to bring together when we implement an app.

And the main things that we will again be looking at in considerable detail later; are storage,
which basically means there is some data corresponding to the app that needs to be stored
somewhere, and is then manipulated in some form. Computation, which essentially involves how
are we manipulating this data? What exactly are we doing with it? And the presentation, how do
we show this data to the user?
(Refer Slide Time: 1:15)

To understand those words, a little better, let us take the example of an email client. After all,
pretty much everyone doing this course has some experience with email. You have used some
kind of a browser or other email client, in order to send email, receive email, look at a list of
emails that you have, delete some of them, archive some of them, and move them into folders,
various other tasks.

So, in the context of the components that we just discussed, the first one would be storage.
Where are these emails stored? Are they stored on your laptop or on your desktop? Or are they
stored somewhere in the cloud? Now, personally, I for one, use Gmail. And what that means is
that my emails are now stored in the cloud, on servers hosted by Google. How are they stored on
the server? Frankly, I do not know.

Google has got some kind of formats they use that are suited for their purposes. And what are
their purposes? they need to be able to retrieve all emails that belong to me, show them to me,
and also help to sort of search through them if necessary. So, some kind of indexing, some kind
of finding out what are the keywords in all the emails also needs to be done at their end. They
need to do a few things; they need to make sure that I only see emails that were sent to me, not to
someone else.

So, how do you sort of separate things out? Do you create one database, pore all emails into it
and just index based on the “to address” or do you have sort of separate databases for each
person? Do you put things into folders? Do you use file systems? How does Google do it?
Frankly, I do not know. How would it be stored on a local application? It depends on the
application you are using.

So, outlook, for example, uses some kind of proprietary format, where mails are all sort of
clubbed together into a large file, which is also indexed like a database. Other things like
Thunderbird will probably use either the maildir or mbox protocols, which are more text based,
and in that sense, are probably easier to migrate from one client to another. But the point is that
the problem needs to be solved. How do you stop?

The next question is, what kind of computations do we need to do? Because after all, email looks
like there is no real computation involved. After all somebody sent me an email, I want to read it,
and maybe I want to reply to it. But there is some kind of computation, which in the case of
email would primarily be what I said, the indexing of the emails. So, Google does this thing
where they basically create an index of all the emails that a given person has received.

And the purpose of that is so that whenever you search, let us say that you want to find out all
emails that came to you from your friend, you type in that friend's email address, it quickly
searches through and shows you all the emails that came from that person, you want to search for
emails that were sent to you in March of 2021. Sure, you can put in a filter for that, and you
should be able to get those quite fast.

So, that is something that happens behind the scenes. A lot of indexing happens behind the
scenes, but when you actually ask for a search to be conducted, it needs to actually perform some
computation on the fly. So, that would be what we call the business logic. It actually needs to do
some manipulation of the data in order to generate the final presentation. And the presentation is
not just “take the text of the email and throw it onto the screen”. It needs to format it, it needs to
render and display individual emails in a way that is nice to read.

You might also want to see lists of emails. How many emails have I got today? How many are
unread? How many are from so and so. Each of those is a list that it needs to create. All of those
fall under the presentation part of the application.
(Refer Slide Time: 5:04)

A brief word about platforms, like I already said, we have the desktop, mobile, web based. And
we could also have so-called embedded platforms.

(Refer Slide Time: 5:21)

So, we already looked at some of these briefly before. But just to, sort of quickly recap, what are
the main features that distinguish one platform from another? A desktop would typically have
things like keyboard video mouse, and it uses the desktop paradigm, by paradigm I basically
mean, the set of concepts that are involved in understanding how something works, some way of
understanding a problem.
So, the desktop paradigm means that, how do we understand what is meant by a desktop. And in
our case, primarily, that means we are now thinking in terms of folders, files that go into folders,
documents that are created or edited in various ways, things like that; because we are trying to
recreate the metaphor of an actual physical desktop. But now inside your computer.

Now, mobile has a slightly different paradigm. The main thing that changes over there is that
your keyboard, video, mouse have changed, keyboard and mouse have been replaced by a
touchscreen. The video has been replaced by a relatively small form factor display, it is still a
video display, but the size is now different.

But now there are new interfaces, there is voice, there could be tilt, there could be camera, there
could be the gyroscope, or magneto meters. A whole bunch of different interfaces that did not
exist in laptops. And typically, given the constraints you want to go for small self-contained
apps. Web based, as I said, is one of the things that we will be primarily looking at. The storage
would primarily be in a data center, where it is made persistent.

And the one sort of big motivating factor behind web-based apps is the notion of access
anywhere. And the whole idea of the cloud, the fact that if your data is on the cloud, you could
be at home, you could be at work, you could be traveling to another country, and you should still
be able to access exactly the same information, even if you lost your laptop, or broke your phone.
And finally, one thing that we did not look at earlier is the so-called embedded platforms. And
what I mean by embedded is, these are single function limited scope devices.

So, nowadays, in fact, we do not even see digital cameras, everybody has a camera, but it is just
part of their phone. Whereas, for several years in between there was the notion of a digital
camera whose only purpose was to take photos, save them onto a flash drive, and connect up
with a PC to transfer those files back into your computer for sorting or storage or deletion as you
might like.

Now, the camera could do only that, it was pretty much a single function device, it could take
pictures, and it was specialized at doing that, it was very good at it. Another example would be a
typical use of a watch, a watch, for example, displays time, it might also have a timer, or maybe
a couple of other applications associated with it, but that would be pretty much it. Nowadays, of
course that has changed. Digital cameras are just part of your phone, and the phone can do a lot
more than just taking pictures.

Nowadays, even a watch has changed. You have a smartwatch, and you are no longer restricted
to just seeing the time, you could probably even at a pinch, there have actually been attempts to
write code on watches, extremely painful, but it is more proof of concept than anything else. So,
having said that, embedded devices still exist. And some of the classic examples are, for
example, these smart refrigerators or smart microwave ovens or smart TVs even.

Not all of them have the full set of interfaces of an Android phone; they might have only some of
the apps associated with that just what is required for its functionality. So, a fridge might allow
you to for example, just connect up with the grocery store and place orders for what you need
next, or it might allow you to control what is the settings inside the fridge. We will again not
really be spending much time on such embedded devices. Like I said, the main focus of this
course is ultimately going to be web based.

You might also like