sdpd 1

76
SEWP/SEAP ZC424 Software Development for Portable Devices 1 Sunil Bhutada [email protected] Ph: 9849822142

Upload: aman-verma

Post on 12-Jun-2015

137 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Sdpd 1

SEWP/SEAP ZC424

 Software Development for Portable Devices

1

Sunil [email protected]

Ph: 9849822142

Page 2: Sdpd 1

1. Introduction to Application Development for Portable Devices2. Introduction to Android (2 Sessions)

3. User Interface Design and Implementation (2 Sessions)4. Files, Saving states and Preferences

5. Android Database - Introduction to SQLite database (2 Sessions)

ASSIGNMENT (10%)MID SEMESTER EXAMINATION (30%)

1. Hardware Support for Portable Devices 2. Software Support for Portable Devices (2 Sessions)

3. Using Internet Resources 4. Maps and location-based services5. Telephony and SMS (2 Sessions)

6. Advanced Topics

COMPREHENSIVE EXAMINATION (60%)

CONTENTS

Page 3: Sdpd 1

Today’s AGENDA

Introduction to Course Title (SDPD) &

Introduction to Application Development for

Portable Devices

Page 4: Sdpd 1

SDPD

Portability in high-level computer programming is the usability of the same software in different environments. The pre-requirement for portability is the generalized abstraction between the application logic and system interfaces. When software with the same functionality is produced for several computing platforms, portability is the key issue for development of cost reduction.

When describing hardware that is portable it means something that is small and lightweight. Laptop computers are portable because they are easy to carry. Other portable devices include PDA's, hand-held computers and TabletPC's.

Software can also be described as portable when it can be run on a variety of computers. The software does not require any particular hardware in order to operate.Portable Devices : mobile devices

Page 5: Sdpd 1

1. Introduction to Application Development for Portable Devices2. Introduction to Android (2 Sessions)

3. User Interface Design and Implementation (2 Sessions)4. Files, Saving states and Preferences

5. Android Database - Introduction to SQLite database (2 Sessions)

ASSIGNMENT (10%)MID SEMESTER EXAMINATION (30%)

1. Hardware Support for Portable Devices 2. Software Support for Portable Devices (2 Sessions)

3. Using Internet Resources 4. Maps and location-based services5. Telephony and SMS (2 Sessions)

6. Advanced Topics

COMPREHENSIVE EXAMINATION (60%)

CONTENTS

Page 6: Sdpd 1

Is it Android App softwares can support

or run on all Mobile Devices ?

Is it Android is sufficient for this course-SDPD?

Is it Android is an example for this course?

Page 7: Sdpd 1

Introduction to Application Development for Portable Devices

1. Mobile Operating Systems

2. Architecture and framework of different Mobile Platforms

3. Development Platforms and Development Tools

4. Programming language binding

5. Simulator and Emulator

6. Development life cycle

7. Model-View-Controller (MVC)

8. Market trends.

CONTENTS

Page 8: Sdpd 1

Mobile Operating Systems Mobile phone usage has been increasing dramatically over the

last several years. Globally, if a usage comparison can be carried out between PCs and mobile devices.

Mobile devices have approximately 3.5 times more usage than PCs. But cell phone in today’s society is not only a tool for making call and writing SMS, but it’s a personal item which provides entertainment and information. There should be nothing that users can access on their desktop that they can’t access on their cell phone.

The increasing importance of mobile devices has triggered intense competition among technology giants, like Symbian, Google, Microsoft, Apple, and Nokia in a bid to capture the bigger market share for mobile platform.

Page 9: Sdpd 1

Mobile Operating Systems (Cont..)

Some of the most well-known Mobile Operating Systems are

Symbian,  BlackBerry OS, Apple iOS, Windows Mobile, and  Android.

Symbian is primarily found on Nokia phones, but phones by Sharp, Fujitsu, Sony and other companies have the operating system installedas well. Symbian is open source.BlackBerry OS is the only one of the mobile phone operating systems to be found on BlackBerry devices. The BlackBerry OS is tailor-made for business, with functionality taking a seat over personality or appearance. Its main focus is on messaging, email and other communication features.

Page 10: Sdpd 1

Mobile Operating Systems (Cont..)

Apple’s iOS is found on the iPhone, iPad and iPod Touch. Operating system security and compatibility has been a point of contention for some in regards to iOS. It is entirely closed-source, and Apple chooses on its own which software the platform will and will not support.

Windows Mobile, also known as Windows Phone, is the mobile phone version of Microsoft's operating system. Because of this, it is easily compatible with many Windows programs such as Microsoft Office, making it a popular choice for businesspeople.

The Android is based on the Linux operating system. Originally developed by an independent organization, it was later bought by Google, although the OS itself remains free and open source. Android is praised by many for his flexibility as a platform. Anyone can develop apps for the OS, and any company can release a phone using it..

Page 11: Sdpd 1

Mobile Operating Systems (Cont..)Other Mobile Operating Systems are

BlackBerry Tablet OSBlackBerry Tablet OS is from QNX Software System/BlackBerry

Brew is from Qualcomm. Brew is used by some mobile phone manufacturers and mobile networks,

GridOS is from Fusion Garage. GridOS was built using open source code from the Android kernel. It is used as the operating system of the Grid 4 mobile phone and Grid 10 tablet.

WebOS is from LG, although some parts are open source.

Maemo is from Nokia. It is open source and GPL. Maemo is based on Debian GNU/Linux and draws much of its  GUI,  frameworks and libraries from the GNOME project.

Page 12: Sdpd 1

Mobile Operating Systems (Cont..)Upcoming software platforms

Aliyun OS Aliyun OS is from Alibaba/AliCloud. It is cloud based. AliCloud's operating system revolves around the idea of bringing cloud functionality to the mobile platform. According to the company, Aliyun is to feature cloud-based e-mail, Web search, weather updates and GPS navigation tools.

Firefox OS Firefox OS is from non-profit organization Mozilla Foundation. It is open source and uses GPL.

Ubuntu Touch OSUbuntu Touch OS is from Canonical Ltd.. It is open source and uses GPL. Etc.

Page 13: Sdpd 1

Mobile Applications

Mobile Applications can be found in any industry, they have Mobile Applications can be found in any industry, they have

been developed for:been developed for:

– Mobile Gaming (see Mobile Gaming (see gameloft))

– Mobile Banking (see Mobile Banking (see RBC))

– Mobile Text, Presentation, and Spreadsheet (see Mobile Text, Presentation, and Spreadsheet (see

Microsoft Office Mobile))

– Social Networking (see Social Networking (see Facebook))

– Mobile News (see Mobile News (see Yahoo! Mobile News))

– Location Aware Services (see Loopt)Location Aware Services (see Loopt)

Page 14: Sdpd 1

Mobile Application Development Challenges

Development of mobile applications provides for many challenges Development of mobile applications provides for many challenges

and obstacles that are not commonly found in the development of and obstacles that are not commonly found in the development of

applications for desktop computersapplications for desktop computers

The challenges faced by developers are found in:The challenges faced by developers are found in:

– Heterogeneity of mobile devicesHeterogeneity of mobile devices

– SecuritySecurity

– NetworkNetwork

Page 15: Sdpd 1

Challenge: Mobile Devices

Java is a portable implementation language, any application created Java is a portable implementation language, any application created

with Java can be run on any machine which contains a Java Runtime with Java can be run on any machine which contains a Java Runtime

Environment (JRE)Environment (JRE)

J2ME, is similarly a portable language, which can be run on any mobile J2ME, is similarly a portable language, which can be run on any mobile

device which contains a JRE, however this portability is severely device which contains a JRE, however this portability is severely

affected by the heterogeneity of the mobile devices currently on the affected by the heterogeneity of the mobile devices currently on the

marketmarket

Mobile devices display a wide range of characteristics that will greatly Mobile devices display a wide range of characteristics that will greatly

effect a mobile application’s performance, usability, functionality, etc.effect a mobile application’s performance, usability, functionality, etc.

Page 16: Sdpd 1

Challenge: Mobile Devices

Display/Screen SizeDisplay/Screen Size

– Mobile devices come in many different screen sizesMobile devices come in many different screen sizes

– Consider the differentiating screen sizes between smart phones Consider the differentiating screen sizes between smart phones

and cell phonesand cell phones

– Smart phones offer the user a generally larger and higher Smart phones offer the user a generally larger and higher

resolution display screen, contrasted to cell phones which resolution display screen, contrasted to cell phones which

generally provide lower resolution and smaller display sizegenerally provide lower resolution and smaller display size

Page 17: Sdpd 1

Challenge: Mobile Devices

MemoryMemory

– Just as screen size differs from device to device, the amount of Just as screen size differs from device to device, the amount of

available memory and differs from device to deviceavailable memory and differs from device to device

– Developers must create applications which have a minimal Developers must create applications which have a minimal

memory footprint on the device while being of service to the usermemory footprint on the device while being of service to the user

– Memory must also be carefully managed during the execution of Memory must also be carefully managed during the execution of

any mobile application as it can potentially render the phone any mobile application as it can potentially render the phone

unusable until termination of the applicationunusable until termination of the application

Page 18: Sdpd 1

Challenge: Mobile Devices

Processing PowerProcessing Power

– Another sign of the heterogeneity of mobile devices is the Another sign of the heterogeneity of mobile devices is the

processing powerprocessing power

– The CPUs differ from phone to phone and this must be taken into The CPUs differ from phone to phone and this must be taken into

consideration by developersconsideration by developers

– Developers cannot create applications that require the user to wait Developers cannot create applications that require the user to wait

an unreasonable amount of time for the service to loadan unreasonable amount of time for the service to load

Page 19: Sdpd 1

Challenge: Mobile Devices

Input DevicesInput Devices

– The input devices on mobile devices range from full QWERTY The input devices on mobile devices range from full QWERTY

keyboards to three letter button inputskeyboards to three letter button inputs

– This means developers must take into account how much text This means developers must take into account how much text

is required by the user to input into their application and what is required by the user to input into their application and what

kind of difficulties they may experience based on their devicekind of difficulties they may experience based on their device

Page 20: Sdpd 1

Challenge: Network

Transmission ErrorsTransmission Errors

– When creating mobile applications that utilize network connections there When creating mobile applications that utilize network connections there

is a variety of issues that can effect the applicationis a variety of issues that can effect the application

– Wireless networks are exposed to interference which can alter the Wireless networks are exposed to interference which can alter the

message received by the client or the server then what was originally message received by the client or the server then what was originally

sentsent

– Applications must take into account these potential problems especially Applications must take into account these potential problems especially

in financially sensitive servicesin financially sensitive services

Page 21: Sdpd 1

Challenge: Network

Message LatencyMessage Latency

– Messages that are to be sent to clients or servers can be Messages that are to be sent to clients or servers can be

delayed due to a variety of reasons such as overloaded delayed due to a variety of reasons such as overloaded

network nodes or servers, dead or turned off cell phones, network nodes or servers, dead or turned off cell phones,

distance to traveldistance to travel

– Applications must take this into account so as to avoid sending Applications must take this into account so as to avoid sending

servers or clients stale informationservers or clients stale information

Page 22: Sdpd 1

Challenge: Network

Bandwidth UsageBandwidth Usage

– Wireless customers are forced to pay fees to access the wireless Wireless customers are forced to pay fees to access the wireless

network and internetnetwork and internet

– While phones with WIFI capabilities allow for some users to have While phones with WIFI capabilities allow for some users to have

free connectivity at times it is important to keep messages to a free connectivity at times it is important to keep messages to a

minimum and compactminimum and compact

– Applications that cost a lot to use will not be popular with many of Applications that cost a lot to use will not be popular with many of

the financially conscious usersthe financially conscious users

Page 23: Sdpd 1

Challenge: Security

Wireless networks by default are not as secure as wired networks, it is Wireless networks by default are not as secure as wired networks, it is

important to note that message can be intercepted when travelling through the important to note that message can be intercepted when travelling through the

airair

Mobile applications must secure the sensitive data that is being transmitted Mobile applications must secure the sensitive data that is being transmitted

over the airover the air

There are different methods to implement security but it must be relative to the There are different methods to implement security but it must be relative to the

information we want to secure and the resources that we wish to use for information we want to secure and the resources that we wish to use for

securing itsecuring it

Page 24: Sdpd 1

Solution: Mobile Devices

Display/Screen SizeDisplay/Screen Size

There is no one single method to overcome to problem of different There is no one single method to overcome to problem of different

screen sizes however there are some ways to helpscreen sizes however there are some ways to help

When dealing with graphics that should be placed on edges use When dealing with graphics that should be placed on edges use

methods which retrieve the edge of the displaymethods which retrieve the edge of the display

When creating an for a particular set of mobile devices (ie. When creating an for a particular set of mobile devices (ie.

Blackberry’s, cell phones) create the layout to the smallest Blackberry’s, cell phones) create the layout to the smallest

display sizedisplay size

Page 25: Sdpd 1

Solution: Mobile Devices

MemoryMemory

– Compact data representation will help reduce the amount of Compact data representation will help reduce the amount of

memory it requires to load and use your applicationmemory it requires to load and use your application

– Use optimization techniques to reduce the amount of code Use optimization techniques to reduce the amount of code

required to write your application (see J2ME tech tips)required to write your application (see J2ME tech tips)

– Compress any graphic images that you use in your application Compress any graphic images that you use in your application

and save graphics in a format which takes the least spaceand save graphics in a format which takes the least space

Page 26: Sdpd 1

Solution: Mobile Devices

Processing PowerProcessing Power

– A result of reducing the memory consumption and footprint of the A result of reducing the memory consumption and footprint of the

application should help time required to load applicationsapplication should help time required to load applications

– If the mobile application has a client-server architecture consider the If the mobile application has a client-server architecture consider the

partitioning of the applicationpartitioning of the application

– Allow the server to do the brunt of the calculations and processing Allow the server to do the brunt of the calculations and processing

work and pass the information to the mobile device for less CPU work and pass the information to the mobile device for less CPU

intensive calculationsintensive calculations

Page 27: Sdpd 1

Solution: Mobile Devices

Input DeviceInput Device

– To overcome some of the problems that can occur with the To overcome some of the problems that can occur with the

different input devices make input requirements concise, different input devices make input requirements concise,

therefore the user should be able to perform the most common therefore the user should be able to perform the most common

tasks in an application with the least amount of button pressestasks in an application with the least amount of button presses

– Provide users with menus when possible to help reduce the Provide users with menus when possible to help reduce the

amount of button input requiredamount of button input required

Page 28: Sdpd 1

Solution: Network

Transmission ErrorsTransmission Errors

– Transmissions errors may be inevitable when dealing with Transmissions errors may be inevitable when dealing with

wireless networks but there are some wireless network protocols wireless networks but there are some wireless network protocols

than can correct or at the least detect these errorsthan can correct or at the least detect these errors

– One solution does not exist for every single type of transmission One solution does not exist for every single type of transmission

error that may occur, it is important to plan for these types of error that may occur, it is important to plan for these types of

errors and be able to deal with them accordinglyerrors and be able to deal with them accordingly

Page 29: Sdpd 1

Solution: Network

Message LatencyMessage Latency

– In a client-server architecture the server can store messages that do not In a client-server architecture the server can store messages that do not

arrive at the mobile device and attempt to resend them at specific arrive at the mobile device and attempt to resend them at specific

intervalsintervals

– Servers can also store the message and send it when the mobile device Servers can also store the message and send it when the mobile device

reconnects to the systemreconnects to the system

– Let the user know if they receive a message that can possibly be out of Let the user know if they receive a message that can possibly be out of

date or no longer valid, this could be done using timestampsdate or no longer valid, this could be done using timestamps

Page 30: Sdpd 1

Solution: Network Bandwidth UsageBandwidth Usage

– Pass as little messages as required between the client and the Pass as little messages as required between the client and the

serverserver

– Keep the messages as short as possible, you can use symbols to Keep the messages as short as possible, you can use symbols to

represent commands for the serverrepresent commands for the server

– If your application must use a lot of bandwidth at least notify the If your application must use a lot of bandwidth at least notify the

user of this factuser of this fact

Page 31: Sdpd 1

Solution: Security

Important to implement security to a level which is appropriate for the Important to implement security to a level which is appropriate for the

data being exchangeddata being exchanged

Mobile devices, having limited processing power, cannot generate large Mobile devices, having limited processing power, cannot generate large

cryptographic keys in a reasonable amount of timecryptographic keys in a reasonable amount of time

There has been research into creating keys for algorithms such as RSA There has been research into creating keys for algorithms such as RSA

and others and sending this to the mobile device to use but this is an and others and sending this to the mobile device to use but this is an

area that is still developingarea that is still developing

Page 32: Sdpd 1

Abstract View of Operating System

Page 33: Sdpd 1

Features •Multitasking•Scheduling•Memory Allocation•File System Interface•Keypad Interface•I/O Interface•Protection and Security•Multimedia features

OPERATING SYSTEMFunctions

•Process Management•Resource Management•Memory Management•Power Management•File Management•I/O Management•Protection and Security etc

Mobile Operating System Structure:A mobile OS is a software platform on top of which other programs called application programs, can run on mobile devices such as PDA, cellular phones, smart phone and etc.

Page 34: Sdpd 1

Architecture and framework of different mobile platforms

Mobile phones have become programmable handheld computerswhich have internet connectivity, computing power and open applicationprogramming interfaces (APIs) providing prospective platforms for an infinite set of new mobile services and applications.

The new mobile phones which are usually called smart phones have both hardware and software parts the same as all computing systems. The

software part is called Mobile Software Platform.

consider a layered architecture for the software platform of typical mobile devices consists of operating system layer, middleware layerand applications layer (ibid).

Layered architecture is an architectural pattern helps to structure systems that can be decomposed into groups of subtasks in which each group ofsubtasks is at a particular level of abstraction.

Page 35: Sdpd 1

Architecture and framework of different mobile platforms

Page 36: Sdpd 1

Architecture and framework of different mobile platforms

A proposed mobile software architecture that is a general model and can be applied to different mobile platforms was shown. To discuss the openness strategy of mobile platforms based on their architecture, the proposed model is not sufficient and it should be expanded to an “architectural openness model” to demonstrate platform extension mechanisms and platform accessibility.The architectural openness model to accommodate the platform accessibility and platform extension methods and in a higher view the platform openness, should illustratehow much and under which conditions the platform extenders (application developers, device makers, customers…) can access to different layers and components of the platform and extend its functionality. Two online resources of Google Android have usedand defined integrate, extend and modify concepts to clarify the openness notion in the architecture of Android platforms.

Page 37: Sdpd 1

Architecture and framework of different mobile platforms

Page 38: Sdpd 1

Architecture and framework of different mobile platforms

To expand the “mobile software architecture” presented in the previous part to “architectural openness model”, the same terms and definitions are used here: Integrate a layer: To use the existing components of a layer in a mobile application via API, Service Call, source code inclusion, shared data object and other software extensions mechanisms.

Extend a layer: To enhance the functionality of the components of a layer. The application uses the built-in Google map application and adds its own functionality on top of Maps is an example.

Modify a layer: To replace or change the components of a layer.

Page 39: Sdpd 1

Architecture and framework of different mobile platforms

Page 40: Sdpd 1

Architecture and framework of different mobile platforms

Page 41: Sdpd 1

Architecture and framework of different mobile platforms

Page 42: Sdpd 1

Architecture and framework of different mobile platforms

Page 43: Sdpd 1

Architecture and framework of different mobile platforms

Page 44: Sdpd 1

Architecture and framework of different mobile platforms

Page 45: Sdpd 1

Architecture and framework of different mobile platforms

Page 46: Sdpd 1

Mobile Application Development

Knowing the challenges faced by developers with mobile applications Knowing the challenges faced by developers with mobile applications

we can look at the tools and steps developers take when creating we can look at the tools and steps developers take when creating

applicationsapplications

Mobile application development differs from development of applications Mobile application development differs from development of applications

on desktops because mobile applications are developed on one platform on desktops because mobile applications are developed on one platform

and then deployed on a totally different platformand then deployed on a totally different platform

This leads to many issues that developers face after moving their This leads to many issues that developers face after moving their

application to another platform and stresses an importance on testingapplication to another platform and stresses an importance on testing

Page 47: Sdpd 1

Development Tools

From a software perspective there are several Integrated From a software perspective there are several Integrated

Development Environments (IDEs) that are available for use Development Environments (IDEs) that are available for use

such as:such as:

– Sun Java Wireless Toolkit for CLDCSun Java Wireless Toolkit for CLDC

– Blackberry Java Development EnvironmentBlackberry Java Development Environment

– Metrowerks CodeWarrior Wireless StudioMetrowerks CodeWarrior Wireless Studio

– Borland JBuilder with MobileSetBorland JBuilder with MobileSet

Page 48: Sdpd 1

Development platforms and development tools

Mobile PlatformsAccording to International Data Corporation, in 2016, the platform breakdown will be as follows:•    Android = 68.8%•    iOS =19.1%•    Windows Phone = 11.4%•    BlackBerry OS = 4.1%•    Other = 1.6%Based on this data, it would make sense to simply start with Android and work your way down the list to accommodate the most users. However, there are a few shortcomings with this plan.First, leaving 31.8 percent of your mobile users without a mobile experience is probably not the best plan. Second, the cost of developing an application for each platform is very expensive and requires specialized skills for each platform, which is also expensive.

Page 49: Sdpd 1

Development platforms and development tools

Tools•AppgyverToolbelt: Tooling to develop and iterate apps for PhoneGap across the two major smartphone platforms – Android and iOS – with no requirement for Xcode.•Sikuli: This is a visual technology to automate and test graphical user interfaces (GUI) using images.•Ranorex: Test automation tools for mobile, web and desktop apps.

Page 50: Sdpd 1

Emulators/Simulators The terms “emulator” and “simulator” are often used interchangeably. These The terms “emulator” and “simulator” are often used interchangeably. These

technologies serve as virtual pieces of hardware that operate on a PC or laptoptechnologies serve as virtual pieces of hardware that operate on a PC or laptop

IDE’s mentioned come with emulators to mimic the functionality and look seen on a IDE’s mentioned come with emulators to mimic the functionality and look seen on a mobile device, while these are extremely helpful for the developer there is ultimately mobile device, while these are extremely helpful for the developer there is ultimately no substitute for the real deviceno substitute for the real device

Page 51: Sdpd 1

A simulator is a software that duplicates some processor in almost all the possible ways. 

An emulator is a hardware which duplicates the features and functions of a real system, so that it can behave like the actual system. 

Usually the emulators and simulators are used for the testing of new architectures and also to give training in some complex systems. A most famous example for a simulator is the flight simulator that simulates the functionalities of an aircraft.

Basically a simulator tests the program on the development processor (the processor on which we are working), while an emulator is used on the target processor (the processor for which the program is being written).

Emulators/Simulators

Page 52: Sdpd 1

Lifecycle of Mobile Application Development:

Realizing the lifecycle of mobile application development has become crucial as mobile devices and their applications have conquered almost 90% of the world. Be it a business or individual, the need for mobile applications is raising without any hurdles. As these applications have completely eased out the entire marketing courses of businesses and helped customers with easy on-the-go access, picking the right mobile application for their own needs becomes a must. So, here I would like to shine a light on how smart phone apps are designed and developed by app developers across many parts of world.

Development Life Cycle

Page 53: Sdpd 1

The big 5 stages involved in app development:

1.Analysis and Estimation2.Work Flow3.Design 4.Development5.QA6.Launch

Development Life Cycle

Page 54: Sdpd 1

Analysis and estimation:Figuring out the application goal and objective is the first and foremost aspect. Apart from this, other factors include picking the right platform and perfect developers who have the ability to come up with a clean app. Also, the target audience of the app is crucial as well. Not to forget, the cost estimation for developing such high-quality apps is crucial as well. Work flow:Upon finalizing the application developer and estimating the cost for development, the next step should be preparing a complete detailed document on the work flow. This should include testing as well. The project scope should be categorized and the specifications should be met without any issues.

Development Life Cycle

Page 55: Sdpd 1

Design:Designing has a major role to play when it comes to app development. Getting a wireframe done is the very first step to start with. When performing the wireframe, it is a must to checkout whether all the features that you wish to have been included. Upon repeated modifications and idealization on wireframe, plan the design of your intended app. Development:At times, though you might have conducted the wireframe strategy, the apps might still lack some features when loaded on real devices. In such cases, the scope needs to be revisited and the necessary feedbacks have to be sent to the developers to fix the issues. Sometimes this may lead to time delay which isn’t supposed to happen as it may spoil the reputation of concern. So, the process should be clean and perfect; however without any missing features.  

Development Life Cycle

Page 56: Sdpd 1

Quality assurance:Though, the developers revisit the scope and make the necessary modifications to launch the apps with complete features, they often fail to visualize a few missing data. The testing team takes this responsibility in making an application which completely adheres to the scope of work. Each and every feature is tested, next to the quality and performance. They conduct different kinds of testing services in order to make the app completely free from all bugs and deliver with impeccable quality. Launch:The final phase is the delivery of app which is otherwise called as launching. The app will be published in iTunes if it is an iPhone app or in Google Play if it is an Android app. I hope this post provides you the inner picture of what exactly happens in every mobile app development company worldwide.  

Development Life Cycle

Page 57: Sdpd 1

MVC

A classic design pattern often used by applications A classic design pattern often used by applications

that need the ability to maintain multiple views of that need the ability to maintain multiple views of

the same data.the same data.

A commonly used and powerful architecture for A commonly used and powerful architecture for

GUIs.GUIs.

Page 58: Sdpd 1

Three Modules of MVC In MVC design pattern, all the objects are cleanly separated In MVC design pattern, all the objects are cleanly separated

into one of three modules:into one of three modules:

– ModelModel• The core of the application. This maintains the state and data that The core of the application. This maintains the state and data that

the application represents. When significant changes occur in the the application represents. When significant changes occur in the model, it updates all of its views.model, it updates all of its views.

– ViewView• The UI which displays information about the model to the user. The UI which displays information about the model to the user.

Any object that needs information about the model needs to be a Any object that needs information about the model needs to be a registered view with the model.registered view with the model.

– ControllerController• The UI presented to the user to manipulate the application.The UI presented to the user to manipulate the application.

Page 59: Sdpd 1

Events typically cause a controller to change a model, or view, or both. Whenever a controller changes a model’s data or properties, all dependent views are automatically updated. Similarly, whenever a controller changes a view, the view gets data from the underlying model to refresh itself.

Page 60: Sdpd 1
Page 61: Sdpd 1

MVC Advantages

Clarity of designClarity of design

Efficient modularityEfficient modularity

Multiple viewsMultiple views

Ease of growthEase of growth

DistributableDistributable

Powerful user interfacesPowerful user interfaces

Page 62: Sdpd 1

Mobile Computing Barrier Areas

Human InterfaceHuman Interface

– displaydisplay

– input meansinput means

Power/Battery/Display IssuesPower/Battery/Display Issues

Performance (for speech, video)Performance (for speech, video)

Communications InfrastructureCommunications Infrastructure

Form Factor/ Heat DissipationForm Factor/ Heat Dissipation

Applications Applications

Page 63: Sdpd 1

Technology Barriers

Bandwidth, capacity, reliability, latency, coverage, and cost of wide-area Bandwidth, capacity, reliability, latency, coverage, and cost of wide-area

networksnetworks

– protocols for handling data transfers efficientlyprotocols for handling data transfers efficiently

– caching strategiescaching strategies

– security issuessecurity issues

– connectivity management in overlay networksconnectivity management in overlay networks

– Very-Local Area Networks (Body LAN) and mobile WLANsVery-Local Area Networks (Body LAN) and mobile WLANs

– ad-hoc networkingad-hoc networking

– incorporation of videoincorporation of video

– new WAN medianew WAN media

Page 64: Sdpd 1

Technology Barriers (Cont.) Input limitations for mobile/wearable devicesInput limitations for mobile/wearable devices

– speech capture, recognition, understandingspeech capture, recognition, understanding

– speaker identification and verificationspeaker identification and verification

– handwriting capture and recognitionhandwriting capture and recognition

– real-time digital voice multicastingreal-time digital voice multicasting

– videovideo

ArchitectureArchitecture

– hardware/software architectures for mobile systemshardware/software architectures for mobile systems

– OS design (?)OS design (?)

– compilers for low-power devicescompilers for low-power devices

Page 65: Sdpd 1

Technology Barriers (Cont.)

Human-computer interactionHuman-computer interaction

– new techniques for mobile I/O: gesture based, new techniques for mobile I/O: gesture based,

augmented-reality displaysaugmented-reality displays

System design and packagingSystem design and packaging

– form factors for mobile systems (ID group)form factors for mobile systems (ID group)

– wireless head mounted I/O, including video capturewireless head mounted I/O, including video capture

Applications and user interfacesApplications and user interfaces

Page 66: Sdpd 1

Microprocessors Technology Trends

1

10

100

1000

10000

1982 1987 1992 1997 2002

GUIs

Speech Recognition

Vision

Natural Language

Per

form

ance

(S

PE

Cin

t92)

Page 67: Sdpd 1

MARKET TRENDS

Page 68: Sdpd 1

MARKET TRENDS

Page 69: Sdpd 1

Mobile TrendsChanges in Behavior and Ubiquity Drive A Mobile Mind shift in 2013Mobile’s momentum continues to accelerate in 2013 — more than 1 million apps available, more than 150 million tablets sold, and more than 1 billion smartphones in consumers’ pockets globally.1 As we revisited our 2012 mobile trends, we found that all of them are still evolving and relevant (see Figure-1)2 A number remain important enough to be key trends in 2013 but for different reasons than last year. But more important than the scale of the numbers is the fact that mobile devices and their connectivity fundamentally shift how people behave and how businesses engage with them. These shifts are happening even faster outside North America and Europe, in countries like China, Brazil, and India. Marketers who were affected early on by this shift in mobile mindset understand that:■ Immediacy and convenience combine to alter people’s behavior. Consumers are changing■ Ubiquity profoundly disrupts business models.

Page 70: Sdpd 1

Mobile Trends

Page 71: Sdpd 1

Mobile Trends

Page 72: Sdpd 1

Mobile Trends

Page 73: Sdpd 1

Mobile Trends

Page 74: Sdpd 1

Mobile Trends

Page 75: Sdpd 1

Questions

1. What is Portability in view of software and hardware? List out Portable Devices?

2. Describe the need of Mobile Operating Systems?3. Compare and contrast different types of Architectural

frameworks of Mobile Platforms?4. Review the Development Life Cycle of Mobile Application

Development Process?5. List out the Latest software’s for Portable Devices and explain its

features?6. Discuss the development of Mobile Apps?

Page 76: Sdpd 1

Next Class

Introduction to

ANDROID