MOBILE INTERNET TECNOLOGY. What is a Mobile Application? “A wireless mobile application is defined as a software application, a wireless service or a.

Slides:



Advertisements
Similar presentations
Technical and design issues in implementation Dr. Mohamed Ally Director and Professor Centre for Distance Education Athabasca University Canada New Zealand.
Advertisements

Map of Human Computer Interaction
Mobile Devices in Software Engineering
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Will Wireless Gaming Be a Winner? February 1, 2007 Sumit Rohit Thaker Sung Ho Hwang.
Computer Basics 1 Computer Basic 1 includes two lessons:
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Introduction to Computer Programming CSC 1401: Introduction to Programming with Java Lecture 2 Wanda M. Kunkle.
V1.00 © 2009 Research In Motion Limited Introduction to Mobile Device Web Development Trainer name Date.
WAP: Wireless Application Protocol Mike Mc Ardle ACSG April, 2005.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
SM3121 Software Technology Mark Green School of Creative Media.
© 2009 Research In Motion Limited Introduction to developing applications for mobile devices.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Installing software on personal computer
The Internet & The World Wide Web Notes
WEB DESIGNING Prof. Jesse A. Role Ph. D TM UEAB 2010.
MSF Testing Introduction Functional Testing Performance Testing.
WebQuilt and Mobile Devices: A Web Usability Testing and Analysis Tool for the Mobile Internet Tara Matthews Seattle University April 5, 2001 Faculty Mentor:
Understanding and Managing WebSphere V5
Punit Shah Technical Lead | Microsoft
Internet GIS. A vast network connecting computers throughout the world Computers on the Internet are physically connected Computers on the Internet use.
Finding Nearby Wireless Hotspots CSE 403 LCA Presentation Team Members: Chris Scoville Tessa MacDuff Matt Mohebbi Aiman Erbad Khalil El Haitami.
Chapter 1: Voilà! Meet the Android. Smartphones –Can browse the Web –Allow you to play games –Use business applications –Check –Play music –Record.
Android Introduction Platform Overview.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Methods of communication
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
Project By:. 2 Agenda Introduction Problem Definition Proposed Solution Block Diagram Flowchart Technical Implementation Hardware & Software Requirements.
Week III Mobile Devices in Software Engineering. Overview Testing Test Stub & Driver White Box Testing Black Box Testing Testing Levels Emulators & Devices.
1 NETE4631 Mobile Cloud Computing Lecture Notes #10.
14 Publishing a Web Site Section 14.1 Identify the technical needs of a Web server Evaluate Web hosts Compare and contrast internal and external Web hosting.
New Technologies Wireless Communication Really Personal Computers Network Object-Oriented Processing The Changing Internet The Next Big Thing.
Mobile data. Introduction Wireless (cellular) communications has experienced a tremendous growth in this decade. Most of the wireless users also access.
Introduction To Computer System
Web Browsers And Mobile Web Browsers. Guiding Questions What is a mobile Web browser? Why do Web pages look differently on different Web browsers? What.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
System Design: Designing the User Interface Dr. Dania Bilal IS582 Spring 2009.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
Chapter 4 – Slide 1 Effective Communication for Colleges, 10 th ed., by Brantley & Miller, 2005© Technology and Electronic Communication.
Presented by Mark Thompson High Level Overview and Demo.
GEOREMINDERS ANDROID APPLICATION BY: ADRIENNE KECK.
CHAPTER TEN AUTHORING.
© 2001 Business & Information Systems 2/e1 Chapter 8 Personal Productivity and Problem Solving.
Architectures of distributed systems Fundamental Models
Computer Emergency Notification System (CENS)
(Business) Process Centric Exchanges
Designing web pages for handheld mobile devices Improving the client experience.
Securing Passwords Against Dictionary Attacks Presented By Chad Frommeyer.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Basics of testing mobile apps
3/12/2013Computer Engg, IIT(BHU)1 CLOUD COMPUTING-1.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Systems and User Interface Software. Types of Operating System  Single User  Multi User  Multi-tasking  Batch Processing  Interactive  Real Time.
GCSE Computing: A451 Computer Systems & Programming Topic 3 Software System Software (1) The Operating System.
System Software (1) The Operating System
Fundamentals of Information Systems, Sixth Edition
Introducing the Windows Mobile development
Java programming lecture one
Download CIW 1D0-621 Exam Latest Questions Answers - Updated 1D Braindumps - Realexamdumps.com
OPERATING SYSTEMS.
IT351: Mobile & Wireless Computing
Principles/Paradigms Of Pervasive Computing
Teaching slides Chapter 6.
And Mobile Web Browsers
Presentation transcript:

MOBILE INTERNET TECNOLOGY

What is a Mobile Application? “A wireless mobile application is defined as a software application, a wireless service or a mobile service that can be either pushed to users’ handheld wireless devices or downloaded and installed, over the air, on these devices.” [1] “An application which resides in the mobile phone or which is accessed/used by a mobile phone over any channel such as SMS, MMS, GPRS, Voice, DTMF” [2] 2

What is a Mobile Application? Two types of mobile applications can be accessed by wireless devices, the first type: Browser-Based –A Browser-Based application is an application that is accessed through the use of the mobile device’s web browser –Browser-Based applications are coded with the use of a markup language –See Wireless Application Protocol (WAP) /Open mobile alliance (OMA) Application Protocol OMA delivers open specifications for creating interoperable services that work across all geographical boundaries, on any bearer network 3

What is a Mobile Application? Native Applications –Native applications are those applications that are found entirely on the mobile device –These applications have their own runtime environment for execution –Highly interactive applications are really only feasible when they are native applications –See Java ME Micro Edition (Java ME)Java ME Micro Edition 4

Mobile Applications Mobile Applications can be found in any industry, they have been developed for: –Mobile Gaming (see gameloft)gameloft –Mobile Banking (see RBC)RBC –Mobile Text, Presentation, and Spreadsheet (see Microsoft Office Mobile) Microsoft Office Mobile –Social Networking (see Facebook)Facebook –Mobile News (see Yahoo! Mobile News)Yahoo! Mobile News –Location Aware Services (see Loopt)Loopt 5

Mobile Application Development Challenges Development of mobile applications provides for many challenges and obstacles that are not commonly found in the development of applications for desktop computers The challenges faced by developers are found in: –Heterogeneity of mobile devices –Security –Network 6

Challenge: Mobile Devices Java is a portable implementation language, any application created with Java can be run on any machine which contains a Java Runtime Environment (JRE) J2ME, is similarly a portable language, which can be run on any mobile device which contains a JRE, however this portability is severely affected by the heterogeneity of the mobile devices currently on the market Mobile devices display a wide range of characteristics that will greatly effect a mobile application’s performance, usability, functionality, etc. 7

Challenge: Mobile Devices Display/Screen Size –Mobile devices come in many different screen sizes –Consider the differentiating screen sizes between smartphones and cell phones –Smartphones offer the user a generally larger and higher resolution display screen, contrasted to cell phones which generally provide lower resolution and smaller display size 8

Challenge: Mobile Devices Memory –Just as screen size differs from device to device, the amount of available memory and differs from device to device –Developers must create applications which have a minimal memory footprint on the device while being of service to the user –Memory must also be carefully managed during the execution of any mobile application as it can potentially render the phone unusable until termination of the application 9

Challenge: Mobile Devices Processing Power –Another sign of the heterogeneity of mobile devices is the processing power –The CPUs differ from phone to phone and this must be taken into consideration by developers –Developers cannot create applications that require the user to wait an unreasonable amount of time for the service to load 10

Challenge: Mobile Devices Input Devices –The input devices on mobile devices range from full QWERTY keyboards to three letter button inputs –This means developers must take into account how much text is required by the user to input into their application and what kind of difficulties they may experience based on their device 11

Challenge: Network Transmission Errors –When creating mobile applications that utilize network connections there is a variety of issues that can effect the application –Wireless networks are exposed to interference which can alter the message received by the client or the server then what was originally sent –Applications must take into account these potential problems especially in financially sensitive services 12

Challenge: Network Message Latency –Messages that are to be sent to clients or servers can be delayed due to a variety of reasons such as overloaded network nodes or servers, dead or turned off cell phones, distance to travel –Applications must take this into account so as to avoid sending servers or clients stale information 13

Challenge: Network Bandwidth Usage –Wireless customers are forced to pay fees to access the wireless network and internet –While phones with WIFI capabilities allow for some users to have free connectivity at times it is important to keep messages to a minimum and compact –Applications that cost a lot to use will not be popular with many of the financially conscious users 14

Challenge: Security 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 air Mobile applications must secure the sensitive data that is being transmitted over the air 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 securing it 15

Solution: Mobile Devices Display/Screen Size –There is no one single method to overcome to problem of different screen sizes however there are some ways to help 1: When dealing with graphics that should be placed on edges use methods which retrieve the edge of the display 2: When creating an for a particular set of mobile devices (ie. Blackberry’s, cell phones) create the layout to the smallest display size 16

Solution: Mobile Devices Memory –Compact data representation will help reduce the amount of memory it requires to load and use your application –Use optimization techniques to reduce the amount of code required to write your application (see J2ME tech tips)J2ME tech tips –Compress any graphic images that you use in your application and save graphics in a format which takes the least space 17

Solution: Mobile Devices Processing Power –A result of reducing the memory consumption and footprint of the application should help time required to load applications –If the mobile application has a client-server architecture consider the partitioning of the application –Allow the server to do the brunt of the calculations and processing work and pass the information to the mobile device for less CPU intensive calculations 18

Solution: Mobile Devices Input Devices –To overcome some of the problems that can occur with the different input devices make input requirements concise, therefore the user should be able to perform the most common tasks in an application with the least amount of button presses –Provide users with menus when possible to help reduce the amount of button input required 19

Solution: Network Transmission Errors –Transmissions errors may be inevitable when dealing with wireless networks but there are some wireless network protocols than can correct or at the least detect these errors –One solution does not exist for every single type of transmission error that may occur, it is important to plan for these types of errors and be able to deal with them accordingly 20

Solution: Network Message Latency –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 intervals –Servers can also store the message and send it when the mobile device reconnects to the system –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 timestamps 21

Solution: Network Bandwidth Usage –Pass as little messages as required between the client and the server –Keep the messages as short as possible, you can use symbols to represent commands for the server –If your application must use a lot of bandwidth at least notify the user of this fact 22

Solution: Security Important to implement security to a level which is appropriate for the data being exchanged Mobile devices, having limited processing power, cannot generate large cryptographic keys in a reasonable amount of time 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 area that is still developing 23

Mobile Application Development Knowing the challenges faced by developers with mobile applications we can look at the tools and steps developers take when creating applications Mobile application development differs from development of applications on desktops because mobile applications are developed on one platform and then deployed on a totally different platform This leads to many issues that developers face after moving their application to another platform and stresses an importance on testing 24

Development Tools From a software perspective there are several Integrated Development Environments (IDEs) that are available for use 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 25

Emulators/Simulators The 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 no substitute for the real device 26

Ad-hoc Development A common development process is to create the mobile application within the preferred IDE The application is then tested in the IDE’s emulation environment Many of the IDE’s contain different devices which can be emulated for the developer to test their application The final step is to test the application on a physical device and if applicable, network There is no substitute for testing the application on a real device as it will provide the developer with real insight as to the characteristics of the mobile phone 27

Wireless Software Engineering The previous method, while it is likely sufficient for personal application development, is missing some features that are commonly found in software engineering A model found in (Mahmoud, Maamar, 2006) addresses these missing areas and proposes a development process for mobile applications – mobile-applications.pdf The model from a visual perspective is similar to the spiral model found in software engineering 28

Wireless Software Engineering Model 29 Planning Mobile User Analysis Scenario Analysis Architectural Design Navigation & User Interface Design Implementation Testing Deployment Customer Evaluation Maintenance

Wireless Software Engineering Model This model is very similar to the spiral model, however it has a better focus towards mobile application development This model can also be used to manage a project with multiple stages of application deployment This model has ten phases and one of the concepts behind it is the knowledge that testing and design take special consideration in mobile application development 30

Model Phases The Wireless Software Engineering Model contains ten phases: –Planning –Mobile User Analysis –Scenario Analysis –Architectural Design –Navigation & User Interface Design –Implementation –Testing –Deployment –Customer Evaluation –Maintenance 31

Planning The planning phase deals with: –Identifying the objectives of the application –Specifying the scope of the first step –Estimating the possible cost of the project –Analyzing the possible risks involved –Creating a tentative schedule 32

Mobile User Analysis This phase deals with understanding our target audience for the application We need to examine the types of users that with use the application and any special requirements or functionality they require We can gather information by: –Asking experts in the field –Reading literature on the topic –Asking current users 33

Scenario Analysis Similar to requirements analysis in classical software engineering We focus on three areas: –Screen and Interaction Analysis How the user will interact with the system, how content will be displayed –Usage Analysis The functionality of the system, use cases should be considered to relay this information –Environment Analysis The interaction between this system and other networks and devices 34

Architectural Design This phase deals with the architecture of the system when dealing with network based applications It should discuss how the system will be split and the challenges and benefits of such a design As discussed, attention must be paid to message latency and application partitioning to ensure performance, reliability, and security 35

Navigation & User Interface Design The design of the user interface is done here and is important to the success of the system A poorly designed interface will detract the user from the system while a clean and easy to use interface will show professionalism and perception Keep in mind the challenges discussed previously with user input, screen sizes, and display characteristics as these play important roles in designing an interface Screen mock-ups are important to display the look and feel to potential customers 36

Implementation Implementation of the application is done in this phase with the use of any number of development tools Code Conventions, class and object diagrams, API specifications can all be included in any documentation that is created at this point for the system This allows developers who join the project at later stages to follow the same format and style as the original authors 37

Testing Testing is extremely important in mobile application development not only due to the heterogeneity of mobile devices It is important to test not only in an emulator but on the physical device as well, and to test on all or as many physical devices as the application can be located Testing also assists us to remove bugs and flaws in programs which become inevitable in larger systems as they become complex Use Cases are a helpful tool in generating test cases for the system 38

Deployment Deployment of the application on physical devices will allow you to see the system in the real world Applications may be fine in an emulator but when transferred to a mobile device developers may find the application slow, impossible to use, not functioning all together, or consuming too much bandwidth It may not economically feasible to test on every possible device that a system may be used on but a wide variety of devices should be tested 39

Customer Evaluation At this point the application is ready for download by customers in the network Customers should be given a way of providing feedback to the developers and reporting any issues they encounter when using the application Consider providing an or web form where users can fill in the necessary info or provide an automated process which sends the error to the server 40

Maintenance Maintenance of the system after deployment deals with several issues: –Resolving any bugs found in the application and creating necessary patches –Improving the quality of the application with upgrades –Providing new services and capabilities to customers 41

References [1] Mahmoud, Qusay H., and Zakaria Maamar. "Engineering Wireless Mobile Applications." Int. J. of Information Technology and Web Engineering 1.1 (2006): [2] Gunaratne, Ruchith. "Mobile Applications." hSenid Software International. [3] Global Mobile Phone Subscribers Expected to Reach 3.3 Billion by Market Intelligence Center. Taipei: Market Intelligence Center, May [4] Kochnev, Dmitry S., and Andrey A. Terekhov. "Surviving Java for Mobiles." Ed. Sumi Helal. Pervasive Computing (2003):