Más contenido relacionado


Chapter#01 Introduction, Basic Concepts, Mobile OS (1).pptx

  1. Mobile Application Development Introduction, Basic Concepts, Mobile OS
  2. Course Learning Outcomes: CLOs Description Taxonomy level PLO 1 Explain the basic concepts used in various Mobile Application Development Frameworks. C3 1 2 Use mobile application components and compare the different performance trade- offs C4 2 3 Create mobile application solutions to real world problems C5 3 4 Develop mobile applications using current software development environments P3 5 Upon successful completion of the course, the student will be able to:
  3. Marks Distribution CLO 1 and CLO 2 - Mid terms and Final Exam - 80 Marks CLO 3 – Semester Project and Assignments - 20 Marks CLO 4 – Practical Class – 50 Marks
  4. What is Mobile? Able to move or be moved freely or easily. Technically defined as : “relating to mobile phones, handheld computers, and similar technology”. What is an Application? Putting something into operation Technically defined as: “A computer program designed to perform a specific task for the user”.
  5. What is mobile computing? A simple definition could be: Mobile Computing is using a computer (of one kind or another) while on the move Another definition could be: Mobile Computing is when a (work) process is moved from a normal fixed position to a more dynamic position. A third definition could be: Mobile Computing is when a work process is carried out somewhere where it was not previously possible. Mobile Computing is the technology used for transmitting voice and data through small, portable devices using wireless enabled networks.
  6. Main Components of Mobile Computing Systems Mobile Hardware Mobile Hardware is a small and portable computing device with the ability to retrieve and process data. 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. Laptops PDAs Tablets Smartphones Notebooks E-Readers Smart Watches, etc.
  7. Contd. Mobile Software Mobile Software is the software program which is developed specifically to be run on mobile hardware. This is usually the operating system in mobile devices. 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. The device sensors and other hardware components can be accessed via the OS.
  8. Contd. Communication Mobile Communication refers to 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. It is the mobile communication infrastructure which takes care of seamless and reliable communication between mobile devices.
  9. Wireless Communication Networks personal area network (PAN) A wireless telecommunications network for device-to- device connections within a very short range Bluetooth A set of telecommunications standards that enables wireless devices to communicate with each other over short distances
  10. Contd. Wireless Local Area Networks and Wi-fi wireless local area network(WLAN) A telecommunications network that enables users to make short-range wireless connections to the Internet or another network Wi-Fi (wirelessfidelity) The common name used to describe the IEEE 802.11 standard used on most WLANs wireless accesspoint An antenna that connects a mobile device to a wired LAN hotspot An area or point where a wireless device can make a connection to a wireless local area network (using Wi-Fi)
  11. Contd. WWAN (wireless wide area network)communication bandwidths 1G - The first generation of wireless technology, which was analog based 2G - The second generation of digital wireless technology; accommodates voice and text 2.5G - An interim wireless technology that can accommodate voice, text, and limited graphics 3G - The third generation of digital wireless technology; supports rich media such as video 3.5G - This generation was inserted into the ranks of cell phone generations; it refers to the packet-switched technologies used to achieve higher transmission speeds 4G - It provides faster display of multimedia 5G - 5G networks are the next generation of mobile internet connectivity, offering faster speeds and more reliable connections on smartphones and other devices than ever before. Combining cutting-edge network technology and the very latest research, 5G should offer connections that are multitudes faster than current connections, with average download speeds of around 1GBps expected to soon be the norm.
  12. Applications of Mobile Computing Emergencies Services In companies Stock Information Collection/Control Credit Card Verification Taxi/Truck Dispatch Electronic Mail/Paging Mobile Commerce Banking and Financial Services Wireless Electronic Payment Systems Location based Services Mobile Shopping Mobile Entertainment Mobile games and Hands-free driving Wireless Telemedicine Other Mobile Computing Services for Consumers Non–Internet Mobile Applications for Consumers
  13. Advantages No location constraint: Mobile computing frees the user from being tied to a location and increased bandwidth and speed of transmission makes it possible to work on the move. It saves time and enhances productivity with a better return on investment (RoI) It provides entertainment, news and information on the move with streaming data, video and audio Streamlining of business processes: Mobility has enabled streamlining of business processes, cumbersome emails, paper processing, delays in communication and transmission. Newer job opportunities for IT professionals have emerged and IT businesses now have an added service in their portfolio which only will keep growing as per indicative mobile computing trends.
  14. Challenges Disconnection Low bandwidth High bandwidth variability Low power and resources Security risks Wide variety terminals and devices with different capabilities Device attributes Fit more functionality into single, smaller device
  15. Mobile OS A mobile operating system (OS) is software that allows smartphones, tablet PCs and other devices to run applications and programs. A mobile OS typically starts up when a device powers on, presenting a screen with icons or tiles that present information and provide application access. Mobile operating systems also manage cellular and wireless network connectivity, as well as phone access. Apple iOS GoogleAndroid BlackBerry OS Nokia’s Symbian Hewlett-Packard’s webOS (formerly Palm OS) Microsoft’s Windows Phone OS
  16. Traditional Trends Relevant to older mobile systems Made use of older mobile operating systems such as: • Palm OS • Psion OS • Symbian OS Technologies used: Specific to the above operating systems such as C/C++, Java mobile edition, WML etc.
  17. Current Trends iOS Android Windows Phone
  18. Current Trends (Contd..) Android Developed by Google Inc. Free and open source Uses Linux operating system Manufacturer: Oppo, Nokia, Samsung, Huawei, Vivo, Motorola etc.
  19. Current Trends (Contd..) iOS Developed by Apple in June 2007. Device Manufacturer: Apple Windows Phone Developed by Microsoft. Uses Windows operating system (Windows 8 and above). Device Manufacturer: Nokia (formerly), Microsoft
  20. Current Trends (Contd..) Mobile Apps Platform Pros Cons iOS • New features are usually available very quickly. • Less fragmentation arising from upgrades • Excellent graphics • Closed platform • Development only on Mac • Duplicating core iOS features is prohibited. • Publishing apps is expensive. Android • Free and open source • Major share of mobile market (81%) • Open content sharing • Publishing apps is easy (only 25$ fee once) • Development on any platform • Fragmentation between different versions of the OS • Graphics are often slower. • Delay in upgrades Windows Phone • Develop once publish anywhere (phone, tablet or laptop). • Low take-up of windows phone • Publishing apps is less flexible • Development only on Windows 8 or above.
  21. YOUR CHOICE???
  22. Current Trends (Contd..) Mobile Apps Platform Development Technology iOS • System: MAC • Programming language: Objective C • Development software: Xcode Android • System: Any system • Programming language: Java/ Kotlin • Development software: Android studio Windows Phone • System: Windows • Programming language: C# or C++/ Javascript • Development software: Visual studio Hybrid (3 into 1) • System: Any system • Programming language: Dart, Javascript, C# • Development software: Flutter, React JS, PhoneGap, Xamarin
  23. Activity Android Releases are named as Petit Four (1.1), Cupcake (1.5), Donut (1.6), Eclair (2.0-2.1), Froyo (2.2), Ginger Bread (2.3), Honeycomb (3.0), Ice Cream Sandwich (4.0), Jelly Bean (4.1) and Kit Kat (4.4), Lollipop (5.x),Marshmallow (6.x),Nougat (7.x),Oreo (8.x),Pie (9.x), Android 10, Android 11, Android 12. Name a Pakistani android release.
  24. Types of Mobile App Development Types of Mobile Apps by Technology There are three basic types of mobile apps if we categorize them by the technology used to code them: Native apps are created for one specific platform or operating system. Web apps/Cross platform apps are responsive versions of websites that can work on any mobile device or OS because they’re delivered using a mobile browser. Hybrid apps are combinations of both native and web apps, but wrapped within a native app, giving it the ability to have its own icon or be downloaded from an app store.
  25. Types of Mobile App Development 01. Native Apps Native apps are built specifically for a mobile device’s operating system (OS). Thus, you can have native Android mobile apps or native iOS apps, not to mention all the other platforms and devices. Because they’re built for just one platform, you cannot mix and match – say, use a Blackberry app on an Android phone or use an iOS app on a Windows phone. Technology Used: Native apps are coded using a variety of programming languages. Some examples include: Java, Kotlin, Python, Swift, Objective-C, C++, and React. Pros: Because of their singular focus, native apps have the advantage of being faster and more reliable in terms of performance. They’re generally more efficient with the device’s resources than other types of mobile apps. Native apps utilize the native device UI, giving users a more optimized customer experience.
  26. Types of Mobile App Development 01. Native Apps And because native apps connect with the device’s hardware directly, they have access to a broad choice of device features like Bluetooth, phonebook contacts, camera roll, NFC, and more. Cons: However, the problem with native apps lies in the fact that if you start developing them, you have to duplicate efforts for each of the different platforms. The code you create for one platform cannot be reused on another. This drives up costs. Not to mention the effort needed to maintain and update the codebase for each version. And then, every time there’s an update to the app, the user has to download the new file and reinstall it. This also means that native apps do take up precious space in the device’s storage.
  27. Types of Mobile App Development 01. NativeApps
  28. Types of Mobile App Development 02. Web Apps Web apps behave similarly to native apps but are accessed via a web browser on your mobile device. They’re not standalone apps in the sense of having to download and install code into your device. They’re actually responsive websites that adapt its user interface to the device the user is on. In fact, when you come across the option to “install” a web app, it often simply bookmarks the website URL on your device. One kind of web app is the progressive web app (PWA), which is basically a native app running inside a browser. Technology Used: Web apps are designed using HTML5, CSS, JavaScript, Ruby, and similar programming languages used for web work.
  29. Types of Mobile App Development 02. Web Apps Pros: Because it’s web-based, there is no need to customize to a platform or OS. This cuts down on development costs. Plus, there’s nothing to download. They won’t take up space on your device memory like a native app, making maintenance easier – just push the update live over the web. Users don’t need to download the update at the app store. Cons: Web apps are entirely dependent on the browser used on the device. There will be functionalities available within one browser and not available on another, possibly giving users varying experiences. And because they’re shells for websites, they won’t completely work offline. Even if they have an offline mode, the device will still need an internet connection to back up the data on your device, offer up any new data, or refresh what’s on screen.
  30. Types of Mobile App Development 02. Web Apps
  31. Types of Mobile App Development 03. Hybrid Apps These are web apps that look and feel like native apps. They might have a home screen app icon, responsive design, fast performance, even be able to function offline, but they’re really web apps made to look native. Technology Used: Hybrid apps use a mixture of web technologies and nativeAPIs. They’re developed using: Ionic, Objective C, Swift, HTML5, and others. Pros: Building a hybrid app is much quicker and more economical than a native app. As such, a hybrid app can be the minimum viable product – a way to prove the viability of building a native app. They also load rapidly, are ideal for usage in countries with slower internet connections, and give users a consistent user experience. Finally, because they use a single code base, there is much less code to maintain. Cons: Hybrid apps might lack in power and speed, which are hallmarks of native apps.
  32. Types of Mobile App Development 03. HybridApps
  33. Types of Mobile App Development Types of Mobile Apps: How to Choose Just One If you’re currently developing an app, then you need to make a decision about which type of app you’re going to be creating. There will be certain factors that are ideal only on one type of app, and not on others. As you go through the following decision factors, you should answer: what is the single most important factor for your decision today? The answer will dictate which type you have to focus on NOW.
  34. Types of Mobile App Development Types of Mobile Apps: How to Choose Just One Decision Factor: I Need an App ASAP! If you absolutely must have an app in the shortest amount of time possible, then you need to invest in building a web app. Not only will one codebase drastically speed up development time, but it will also mean that your users already have what they need to use it: a mobile browser. Decision Factor: I Have Limited Resources If time and money are not on your side, then consider either a web app or a hybrid app. The hybrid app gives you a chance to test the market with a minimum viable product that can be in the hands of users within a few months. And if successful, you can decide to build a full-fledged native version later on. Decision Factor: My App Must Be Fast and Stable If performance is of the utmost importance, then there’s no way around it: you need to develop a native app. This type of app will give you the speed, stability, and customization features you deem crucial to your success. In the end, choosing which type of mobile app you will build is not a one-and-done decision. You can always choose to build another type down the road, depending on your user’s needs. And once you do finally build it, make sure you monitor the metrics that matter for the actual growth of your brand.
  35. Native Mobile Apps When To High Performance Apps Heavy on OS and Device Features Complex N/W comm. Only Few Platforms When Not To Performance is not the main criteria More or less Replicates WebApps with few device feature Standard Restful Many Platforms
  36. Cross Platform Mobile Apps When To Performance is not the main criteria More or less Replicates Web Apps with few device feature Standard Restful Many Platforms Time to market is critical Saving Cost is critical When Not To High Performance Apps Heavy on OS and Device Features Complex N/W comm. Only Few Platforms
  37. Hybrid Mobile Apps When To Fairly Simple UI Complex Backend Quite few platforms Why To • Some parts of app are common • Rest parts are different • Use Cross Platform to develop common part • Use Native to develop the weight lifting parts
  38. Mobile context awareness
  39. Understanding Mobile Context Awareness Introduction Our mobile devices are very much part of our day to day lives. Mobile devices accompany us in the kitchen, in the library, in the vehicle, in the bed or even when we are hiking through a mountain. Any situation we find ourselves in, mobile devices does what its best at — to provide the suitable and tailored services and information through the Apps whenever we need it. When a mobile app understands user, situation or combination of any environment variables and provide the suitable services, we call them context-aware mobile apps. Location based service apps are an example of such apps. Since mobile devices are always with us and has powerful sensors and services, a mobile device should be able to establish our context and provide right service at the right time making our life easier with a concern for the mobile device limitations.
  40. Reducing Distraction 40 User attention is a precious resource The most successful mobile computing systems of the next decade will be those that are able to reduce or eliminate user interactions
  41. User Interaction with Mobile Device Mobile application autonomy can reduce user interaction. Mobile application should place greater dependence on contextual information 41
  42. Traditional View of Computer Systems Computer System input output Context independent: acts exactly the same Human in the loop
  43. Motivation Modern computers are divorced from reality Unaware of who, where, and what aroundthem Leads tomismatch Computers have extremely limited input Aware of explicit inputonly Can take a lot of effort to do simplethings Context-Aware Computing Making computers more aware of the physical and social worlds we live in Breaking computers out of thebox
  44. Context as Implicit Input/Output Context-Aware System explicit input explicit output Context: • state of the user • state of the physical environment • state of the computing system • history of user-computer interaction
  45. Definition of Context Schilit divides context into three categories: Computing context (available processsors, network capacity etc.) User context (location, nearby people,etc.) Physical context (temperature, lighting, noise levels, etc.) Time is also important and natural context Time context => context history
  46. Why Context-Aware Computing? Existing Examples Context Types Human Concern Auto Lights On / Off Room Activity Convenience Calendar Reminders Time Memory Smoke Alarm Room Activity Safety Barcode Scanners Object Identity Efficiency
  47. Existing Examples Why Context-Aware Computing? Activity Activity Identity Identity & Time Time Smoke Alarm Auto Lights On / Off Barcode Scanners File Systems Calendar Reminders Potential Examples Context Types Human Concern Auto Cell Phone Off In Meetings Identity Time Location Proximity Activity History … Convenience Tag Photos Finding Info Proximal Reminders Memory Health Alert Safety Service Fleet Dispatching Efficiency
  48. Examples of Context Spatial: location, orientation, speed Temporal: date, time of day, season Environmental: temperature, light, noise Social: people nearby, activity, calendar Resources: nearby, availability Physiological: blood pressure, heart rate, tone of voice
  49. Context Awareness & Mobile Apps Context-aware applications tend to be enhanced mobile applications for the following reasons: User context changes frequently subject to the user’s mobility behavior The need for context-aware behavior is greater in a mobile environment (user location, network resources, and device capabilities) 49
  50. Sensing the Context (1/3) Location: Outdoors: GPS Indoors: IR, RF , ultrasonic, camera (cellular and non-cellular) Hybrid: IEEE 802.11, Mobile-IP Issues: Heterogeneous sensors with uncertainty and conflicts (sensor fusion) Data vs sensor networks Making mobile devices location-aware
  51. Sensing the Context (2/3) Low-level contexts beyond location Time: time-of-day (with calendar) Nearby objects Network bandwidth Orientation Others: photodiode (light), accelerometer (tilt, vibration), microphone, sensors for temperature, pressure, gas, etc. Issue: sensors in mobile devices or infrastructure => direct vs. indirect awareness
  52. Sensing the Context (3/3) High-level contexts: user’s activity Camera technology and image processing Consult calendar for what user is to do Combine low-level sensors using rules How about emotional contexts?
  53. People Issues Avoiding dangerous situations Need to take into consideration cost of mistake Smoke alarms when cooking Lights that turn off when you're still there Will adding more context really help here?
  54. People Issues Making it predictable and understandable Setting preferences "I want my cell phone to ring except in theaters and when I'm in a meeting unless…" Privacy What does the computer know about me? What do others know about me? Capturing/collecting lots of information about people, places and devices People uncomfortable when don’t know what is being collected and how it’s used
  55. Killer Applications? Need something to focus and drive the research Need something to put in the hands of real people Business model: how to make money from it?
  56. Summary User attention is a precious resource in mobile environment Mobile application should reduce user interaction Mobile application should place greater dependence on context Need balance of user control due to imperfect context information 56