sdpd 1
TRANSCRIPT
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
Today’s AGENDA
Introduction to Course Title (SDPD) &
Introduction to Application Development for
Portable Devices
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
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
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?
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
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.
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.
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..
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.
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.
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)
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Abstract View of Operating System
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.
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.
Architecture and framework of different mobile platforms
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.
Architecture and framework of different mobile platforms
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.
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
Architecture and framework of different mobile platforms
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
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
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.
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.
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
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
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
The big 5 stages involved in app development:
1.Analysis and Estimation2.Work Flow3.Design 4.Development5.QA6.Launch
Development Life Cycle
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
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
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
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.
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.
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.
MVC Advantages
Clarity of designClarity of design
Efficient modularityEfficient modularity
Multiple viewsMultiple views
Ease of growthEase of growth
DistributableDistributable
Powerful user interfacesPowerful user interfaces
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
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
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
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
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)
MARKET TRENDS
MARKET TRENDS
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.
Mobile Trends
Mobile Trends
Mobile Trends
Mobile Trends
Mobile Trends
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?
Next Class
Introduction to
ANDROID