Chapter #1.pptx
Document Details
Uploaded by StupendousUkiyoE
Full Transcript
Mobile Application Development Chapter 1 Mobile Device What is a Mobile Device? a portable handheld computer, small enough to be carried easily, which can function without being physically connected to a network and power source Small devices that ar...
Mobile Application Development Chapter 1 Mobile Device What is a Mobile Device? a portable handheld computer, small enough to be carried easily, which can function without being physically connected to a network and power source Small devices that are designed to store but not send and receive information, such as external hard drives, are not considered mobile devices. A mobile device is a handheld tablet or other device that is made for portability, and is therefore both compact and lightweight Characteristics of Mobile Devices Characteristics Small enough to be carried easily Operates without a physical connection to electricity; uses a battery to store power Able to send and receive information wirelessly, using cellular data, Bluetooth, or Wi-Fi Features a user interface, such as a touchscreen or keyboard Includes internal data storage Often includes communication functions for voice or video calling May include sensors to record and store information, such as a camera, compass, or activity monitor Examples of Mobile Devices Examples of Mobile Devices Smartphones are small telephones that are primarily for placing and receiving voice or video calls via cellular or wi-fi networks. Tablets are usually larger than smartphones, with one side occupied by a screen. Tablets may or may not have both cellular and wi-fi connectivity. Laptop computers are mobile devices that function most similarly to desktop computers, but are smaller and more portable. Smartwatches are wearable mobile devices that may function as an extension of a smartphone. Some smartwatches work without being paired to other devices, as is the case with some fitness trackers. E-readers are tablet-like devices that are optimized for text reading. Handheld gaming consoles are mobile devices dedicated to running game applications, which may include network features for social games. Mobile Devices Components Mobile Device System Software is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. There are three basic types: Mobile Hardware Mobile Software System software provide core functions such as operating systems, disk management, utilities, hardware management and other operational necessities. Application software to help users perform tasks. Office productivity suites, data Mobile System Mobile Application management software, media players and security Software Software programs are examples. Native Mobile Apps Hybrid Mobile Apps Web Mobile Apps Mobile System Software Mobile Operating Systems An operating system (OS) built exclusively for mobile devices such as smartphones, tablets, PDAs, etc. Similar to a standard OS (like Windows, Linux, and Mac) but is relatively simple and light. Primarily responsible for defining mobile device features and functions including keypads, application synchronization, and text messaging. Mobile Application Software A mobile application A mobile application or app is a computer program or software application designed to run on a mobile device. A mobile application generally referred to as an app, is a sort of application software created to operate on a mobile device, like a tablet computer or a smartphone. Native Mobile Apps Native mobile apps are designed to be “native” to one platform, whether it’s Apple iOS, Google’s Android, or Windows Phone. Web Apps Web Apps: Responsive websites switch to a different design when they are accessed from a mobile device. Hybrid Mobile Apps Hybrid Mobile Apps: These apps can be installed on devices just like native apps, but they run through web browsers. All hybrid apps are developed through the HTML5 programming language. Benefits and limitations of Mobile Devices Benefits Limitations Range and bandwidth 1 Security standards 2 Power consumption 3 Transmission interferences 4 Potential health hazards 5 Lack of a BIOS 6 Human interface with device 7 Other Related Concepts What is Computing ? Computing is defined as the science that studies the treatment of information by automated methods and techniques Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. The term computing is also synonymous with counting and calculating. In earlier times, it was used in reference to the action performed by mechanical computing machines, and Other Related Concepts… Platform A computer or hardware device and/or associated operating system, or a virtual environment, on which software can be installed or run. A computing platform or digital platform Is an environment in which a piece of software can be executed. It may be the hardware or the operating system, even a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed with it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. Mobile Platform Mobile Platform The foundation for building and running mobile applications. Android Mobile Windows Mobile Palm Mobile BlackBerry Mobile iPhone Mobile Introduction To Mobile Computing Mobile Computing Mobile Computing Mobile computing can be defined as a computing environment over physical mobility. The user of the mobile computing environment will be able to access data, information or logical objects from any device in any network while on move. Mobile Computing is a technology that allows transmission of data, voice and video via a computer or any other wireless enabled device without having to be connected to a fixed physical link. A technology that is capable of providing an environment which enables users to transmit data from one device to other device without the use of any physical link/cables. Whenever any device is connected to a network without being connected physically over a link or cable, data transmission such as messages, voice recording, videos etc. can be done be done by using the concept of mobile computing. Mobile Computing technology helps users to access and transmit data from any remote locations without being present there physically. Characteristics of Mobile Computing User mobility User should be able to move from one physical location to another location and use same service Network mobility User should be able to move from one network to another network and use same service Device mobility User should be able to move from one device to another and use same service Session mobility A user session should be able to move from one user-agent environment to another. Service mobility User should be able to move from one service to another. 6. Host mobility: The user should be either a client or server. Mobile Computing System What is a Mobile Computing System is a distributed system, which is connected via a wireless network for communication. The clients or the nodes possess mobility and the ability to provide computing at anytime, anywhere. Main Components of a Mobile Computing System 1.Mobile Hardware 2.Mobile Software 3.Mobile Communication Mobile Hardware Mobile Hardware is a small and portable computing device with the ability to retrieve and process data. Smartphones, handheld and wearable devices fall under mobile hardware. These devices typically have an Operating System (OS) embedded in them and able to run application software on top of it. These devices are equipped with sensors, full- duplex data transmission and have the ability to operate on wireless networks such as IR, WiFi, and Bluetooth. Mobile Software Mobile Software is the software program which is developed specifically to be run on mobile hardware. The device sensors and other hardware components can be accessed via the OS. The most common mobile Operating Systems (OS) used by modern smartphones include Google's Android, Apple's iOS, Nokia's Symbian, RIM's BlackBerry OS, Samsung's Bada, Microsoft's Windows Phone, and embedded Linux distributions such as Maemo and MeeGo. Such operating systems can be installed on different phone models, and typically each device can receive multiple OS software updates over its lifetime. These operating systems provide features such as touchscreen, cellular connectivity, Bluetooth, Wi-Fi, GPS mobile navigation, camera, video camera, speech recognition, voice recorder, music player, near field communication and sensors. Mobile Communication Refers to the infrastructure for seamless and reliable communication and protocols, services, bandwidth, and portals necessary to facilitate and support the stated services. Deals about the exchange of data and voice using existing wireless networks. The data being transferred are the applications including File Transfer (FT), the interconnection between Wide-Area-Networks (WAN), facsimile (fax), electronic mail, access to the internet and the World Wide Web. The wireless networks utilized in communication are: IR, Bluetooth, W-LANs, Cellular, W-Packet Data networks and satellite communication system. Principles of Mobile Computing Portability Devices/nodes connected within the mobile computing system should facilitate mobility. These devices may have limited device capabilities and limited power supply, but should have a sufficient processing capability and physical portability to operate in a movable environment. Connectivity This defines the Quality of Service (QoS) of the network connectivity. In a mobile computing system, the network availability is expected to be maintained at a high level with the minimal amount of lag/downtime without being affected by the mobility of the Principles of Mobile Computing… Interactivity The nodes belonging to a mobile computing system are connected with one another to communicate and collaborate through active transactions of data. Individuality A portable device or a mobile node connected to a mobile network often denote an individual; a mobile computing system should be able to adopt the technology to cater the individual needs and also to obtain contextual information of each node. Mobile Computing Advantages Advantages Location Flexibility Saves Time Enhanced Productivity Ease of Research Entertainment Video and audio recordings can now be streamed on-the-go using mobile computing. Streamlining of Business Processes Mobile Computing Security Issues Improper and unethical practices such as hacking, industrial espionage, pirating, online fraud and malicious destruction are some but few of the problems experienced by mobile computing. Mobile Computing Is Credential Verification. As other users share username and passwords, it poses as a major threat to security. most companies are very reluctant to implement mobile computing to the dangers of misrepresentation. The problem of identity theft is very difficult to contain or eradicate. Issues with unauthorized access to data and information by hackers, is also an enormous problem. Outsiders gain access to steal vital data from companies, which is a major hindrance in rolling out mobile computing services. Mobile Computing Security Issues… What can be recommended? So, It's also important to take the necessary precautions like:- Hiring qualified personnel. Installing security hardware and software Educating the users on proper mobile computing ethics Auditing and developing sound, effective policies to govern mobile computing Enforcing proper access rights and permissions Mobile Computing Trends Long Term Evolution (LTE) LTE is a standard for wireless communication of high-speed data for mobile phones and data terminals. It is based on the GSM/EDGE and UMTS/HSPA network technologies, increasing the capacity and speed using new modulation techniques. It is related with the implementation of fourth Generation (4G) technology. Global Positioning System (GPS) The Global Positioning System (GPS) is a space-based satellite navigation system that provides location and time information in all weather, anywhere on or near the Earth, where there is an unobstructed line of sight to four or more GPS satellites. Third generation mobile telecommunications(3G) is a generation of standards for mobile phones and mobile telecommunication services fulfilling the International Mobile Telecommunications-2000 (IMT-2000) specifications by the International Telecommunication Union. Application services include wide-area wireless voice telephone, mobile Internet access, 1.3 Introduction to Mobile Applications Development Current Software Platforms 1. Android, created by Google, is one of the most commonly installed mobile OS for mobile devices, with support from various device manufacturers. It is an open source OS, which means developers are given access to unlocked hardware to develop new programs. iOS (originally known as iPhone OS) is developed by Apple and is distributed exclusively for Apple hardware (iPhone, iPad, etc.). One of its well-known features is its multi-touch gestures. Windows Phone is developed by Microsoft Corporation. Some of its features include apps that update real-time, and full support for Microsoft products such as MS Office. Other Mobile OS include Blackberry (exclusive to Blackberry phones) and Symbian(a discontinued OS last used by Nokia for their smartphones); they make up the lesser market of mobile operating systems. Important Terms Application development platform is a single solution or a collection of tools that help developers rapidly build, test, and deploy applications. Application development platforms give developers a single environment that has all of the tools developers need to create software applications. A software platform is usually an operating system that runs a device, such as your laptop or your phone. For example, the operating system of your cell phone is the platform on which third-party developers build apps that you can use on the phone. Important Terms… Application programming interface(API) is a set of defined rules that enable different applications to communicate with each other. It acts as an intermediary layer that processes data transfers between systems, letting companies open their application data and functionality to external third-party developers, business partners, and internal departments within their companies. Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software. Important Terms… Software development is primarily conducted by programmers, software engineers and software developers. Programmers, or coders write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches or displaying text and graphics. Software engineers Apply engineering principles to build software and systems to solve problems. They use modeling language and other tools, scientific method and must work in the real world. Software developers have a less formal role than engineers and can be closely involved with specific project Important Terms… A software development framework is a platform that helps developers to build software applications, allowing them to focus on the excellent functionality of the application Mobile Development Frameworks is a software platform with tools and software, debugging tools, and programming interfaces to create the application's source code, which is suitable for different mobile devices. Examples 1. Flutter:is an open framework option from Google, allows you to create native Android and iOS applications with simple code. 2. React Native :is the best software development framework used to create native applications for all platforms, suitable for iOS and Android. It supports platform-specific versions and is compatible with third-party plugins. 3. Ionic is a robust mobile development framework used by businesses of all sizes to engineer hybrid apps and web, iOS, and Android apps. MAD process steps Mobile Application Development Process Steps Requirements analysis and specification Design and development Testing Deployment Maintenance and support Benefits of Mobile Applications Convenience A mobile app user can access and share information anytime or anywhere. Internet connection is not required for most apps. Interactivity Mobile apps aretouch-based, allowing users to control the interface through pointer lock and drag and drop actions. Personalization A user can change the settings of the mobile app based on his/her preferences. Speed loading information over a slow Internet connection is eliminated since information is stored within the mobile application. Productivity Users can write, read, and present their reports using only their mobile phones. They can also manage their multimedia files and share to friends through social sites. Development Environments Known fully as Integrated Development Environments (or IDEs). A programming environment that has been packaged as an application program. A. Official IDEs for Mobile OSes 1. Android Studio is the official IDE for Android application development, based on IntelliJ IDEA (a Java IDE). 2. Xcode includes everything that can be used to create amazing apps for iPhone and iPad 3..Visual Studio is a fully-featured extensible IDE for creating modern applications for Windows, Android, and iOS, as well as web applications and cloud services. This includes features such as Universal Windows Platform development, crossplatform mobile development, and multiple languages support. A Universal Windows Platform (UWP) app can run on any Windows-powered device. Multiple language support allows you to develop mobile apps using your preferred coding language. Factors to Consider during MAD Platforms and Device Compatibility Screen Size Screen Density User Interaction Phone Function Integration Resource Management A software development framework A software development framework Xamarin Cross-platform native apps are the future of mobile app development, and Xamarin is one of them. Xamarin offers an edge over the proprietary and hybrid development models as it allows developing full-fledged mobile apps using a single language, i.e. C#. Moreover, Xamarin offers a class library and runtime environment, which is similar to the rest of the development platforms (iPhone, Android, and Windows). A platform is a set of hardware and software components that provide a space for developers to build and run applications. Examples of platforms include WordPress and Microsoft Azure. A framework is a software-only app skeleton that includes preset tools, libraries, software development kits, and other components. React Native, Ionic, and Flutter are popular frameworks. JDK (Java Development Kit) is a software development kit required to develop applications in Java. When you download JDK, JRE is also downloaded with it. In addition to JRE, JDK also contains a number of development tools (compilers, JavaDoc, Java Debugger, etc). JRE (Java Runtime Environment) is a software package that provides Java class libraries, Java Virtual Machine (JVM), and other components that are required to run Java applications. If you need to run Java programs, but not develop them, JRE is what you need. JVM (Java Virtual Machine) is an abstract machine that enables your computer to run a Java program. A software development framework Bytecode is computer object code that an interpreter converts into binary machine code so it can be read by a computer's hardware processor. The interpreter is typically implemented as a virtual machine (VM) that translates the bytecode for the target platform. Byte code is a non-runnable code after it is translated by an interpreter into machine code then it is understandable by the machine. Byte code is referred to as a Portable code. Machine code is a set of instructions that is directly machine-understandable and it is processed by the Central Processing Unit (CPU). Machine code is in binary (0’s and 1’s) format which is completely different from the byte code and source code. It is regarded as the most lowest-level representation of the source code. It is also called