Factors in Developing Mobile Applications Chapter 2 PDF

Document Details

EasyFluxus3675

Uploaded by EasyFluxus3675

2024

Chalew Z.(MSc)

Tags

mobile app development software engineering mobile applications technology

Summary

This document is about factors in developing mobile applications. It covers topics such as the GSM architecture, mobile software engineering, distribution channels, audience research, app ideas, development strategies, and more. The document also gives an overview of mobile app frameworks and tools for development.

Full Transcript

Chapter 2 Factors in Developing Mobile Applications Compiled by Chalew Z.(MSc) 11/18/2024 1 Introduction  With the increased usage of mobile devices across the world, more and more applications are being targeted at them.  If an application that is developed for computers c...

Chapter 2 Factors in Developing Mobile Applications Compiled by Chalew Z.(MSc) 11/18/2024 1 Introduction  With the increased usage of mobile devices across the world, more and more applications are being targeted at them.  If an application that is developed for computers can also run on the mobile devices, then the entire paradigm of application usage changes as it enables the user to run application from wherever.  There were different standards on which the mobile networks are based.  One of the popular standards is GSM.  In this point, we introduce the GSM architecture. Compiled by Chalew Z.(MSc) 11/18/2024 2 Cont.. GSM (Global System for Mobile Communications) is a set of mobile communications standards and protocols governing 2G networks, first developed and deployed in Europe. The GSM architecture consists of three major interconnected subsystems that interact with themselves and with users through certain network interface. The subsystems are Base Station Subsystem (BSS), Network Switching Subsystem (NSS) and Operational Support Subsystem (OSS). Compiled by Chalew Z.(MSc) 11/18/2024 3 Cont.. GSM architecture. Compiled by Chalew Z.(MSc) 11/18/2024 4 Mobile Software Engineering Mobile application development is the set of processes and procedures involved in writing software for small, wireless computing devices, such as smartphones and other hand-held devices.  Factors that influence your mobile app development process are:  Distribution Channel  Audience Research  App Idea  App Development Strategy  User interface (UI) and user experience (UX)  Testing, Security, and Monitoring. Compiled by Chalew Z.(MSc) 11/18/2024 5 Distribution Channel  As a developer, you must first identify which platform best supports your grand idea.  Though Google Play Store and Apple App Store serve the same function, they have different guidelines.  You can view the description, icon, logo, screenshots or image gallery, and a snippet or a trailer of the app on both platforms.  However, there are few elements that differentiate one from the other.  For instance, businesses generate more income when they first release their app on the App Store than in Google Play Store. Compiled by Chalew Z.(MSc) 11/18/2024 6 Cont..  In terms of description, Google Play Store gets more taps because of their read more button is in a prominent position.  You can find the description hidden above the image gallery and screenshots.  The App Store, on the other hand, optimizes their description for iPhone screens.  You can read the description directly without needing to tap on a button or scroll down.  Moreover, the platforms are also essential when thinking of other factors such as monetization, security, and the availability of different types of apps. Compiled by Chalew Z.(MSc) 11/18/2024 7 Audience Research  For your idea to become successful, you must first conduct audience research.  Before you think of plunging into the market with some application, it is always advisable that you do some market research. o If you want your apIt will help you understand what exactly your requirements are. o Analyze what your competitions are doing, o what are their strengths and weaknesses. o Check the customer reviews that you receive, try to understand what your audience is expecting from you. o You can avoid repeating mistakes if you do thorough market research.  p to solve abyproblem, Compiled Chalew Z.(MSc) you should not base your decisions on assumptions. 11/18/2024 8 App Idea  Unfortunately, not all ideas become great and successful once you turn them into an app.  Remember that working on an app development project requires money, effort, and time.  You must first check if your design is unique.  Most of all, you must be able to differentiate your idea from the what’s already available on the platforms.  It must also be able to resolve the weaknesses of the existing competitive apps. Compiled by Chalew Z.(MSc) 11/18/2024 9 App Development Strategy  To properly execute your app idea, you must have a solid app development strategy.  It clarifies how much of the design work you will undertake for the app development.  It covers your timeframe for working in the project.  It also factors in the technology you will use to develop your app idea.  Part of your app development strategy must include the strengths and weaknesses of each mobile device.  If you over or underestimate in any of the factors, your app can end up becoming a failure. Compiled by Chalew Z.(MSc) 11/18/2024 10 User interface (UI) and user experience (UX)  User interface (UI) and user experience (UX) are part of what keeps users hooked on an app.  Users prefer apps that are “handier” compared to those that require too much effort to operate.  Navigation and usability aren’t the only ones that matter to the users. They are also receptive to several UI/UX factors.  For instance, an app with low-res images, slow loading times, broken sign up/ login functionality and app navigation, and poor connectivity to social profiles are all signs of poor UI/UX. Compiled by Chalew Z.(MSc) 11/18/2024 11 Testing  Developing and designing your mobile app idea is only half of the job in your mobile app development journey.  You must also run a few tests to ensure your design runs smoothly.  It’s a way to secure that your mobile app has no exceptions and bugs.  You must also look into the app’s integrations and usability.  It’s also important to find out if your app is compatible with different platforms and devices.  Most of all, you should test if the app functions properly at the user’s end before going live. Compiled by Chalew Z.(MSc) 11/18/2024 12 Security  Security must be part of your app development process.  Users should not have to think of the threat of malware when they use your app.  Thus, you should leverage the security features of the device’s OS.  You can also keep the user’s information safe through encryption.  You should also restrict your app’s permissions to a minimum.  Always prioritize security to ensure your app isn’t vulnerable to external threats. Compiled by Chalew Z.(MSc) 11/18/2024 13 Monitoring  You still have work to do after you publish your mobile app.  You must be hands-on with fixes, performance improvements, changes, and integrating new features.  As a developer, you must track crashes and look at technical information to help you resolve the problems users encounter.  Youcan also check into analytics as well as recommendations and reviews by users to see how well the market responds to your app.  The information you get from these platforms is what you need to identify trouble spots and make room for improvement. Compiled by Chalew Z.(MSc) 11/18/2024 14  Lifecycle management: Cont.….  Once an app is deployed, developers must test, host, deploy, maintain and analyze its usage throughout its lifecycle.  As a result, it’s important for developers to consider the long-term capabilities and long-term costs of tools.  Delivery:  Apps aren’t done when they go into production. They must be dependable.  They must scale.  They will need updating based on evolving requirements and end user feedback.  Developers need to make sure the tool they select will allow for easy upgrades, updates, availability, scalability and performance. Compiled by Chalew Z.(MSc) 11/18/2024 15 The Main Considerations for Mobile App Design  Intended utility of the mobile app:  Consumer engagement with richer user experience.  Productivity through efficient flows.  Driving incremental revenue through user stickiness.  Customer conversion  User loyalty through targeted and personalized offers  App Architecture:  Native vs hybrid vs web based on the requirements  Middleware requirement for centralized configuration  Offline vs online capability for storing data Compiled by Chalew Z.(MSc) 11/18/2024 16 Cont.…  App Development Principles:  User experience through richer controls and interactive components  Compatibility on various devices and platforms  Performance for each screen and task  Security for data o Productivity enhancement tools  Target users:  Consumers for B2C apps  Business for Business to Business (B2B) apps  Partners for B2B apps o Employees for Business to Employee (B2E) apps Compiled by Chalew Z.(MSc) 11/18/2024 17 Cont.…  Testing:  Device testing  Performance testing  Various testing scenarios Compiled by Chalew Z.(MSc) 11/18/2024 18 The Main Challenges in Mobile app strategy  Diversity of devices and heterogeneous technologies:  There are various mobile platforms and devices.  The app should provide optimal experience in all the scenarios.  Security:  Mobile app should ensure data security during transmission and during storage.  User experience:  Mobile app should provide optimal user experience leveraging the device capabilities to provide highest engagement possible.  Network:  Mobile app should be designed to work in regions with network, latency and bandwidth challenges.  Compliance to diverse standards, OS, mobile platforms and devices. Compiled by Chalew Z.(MSc) 11/18/2024 19 Mobile App Development Frameworks and Tools Compiled by Chalew 11/18/2024 Z.(MSc) 20 Cont.….. Mobile engineers design, develop, and implement software programs for smartphones and other mobile devices. They often specialize in a certain type of operating system, such as Android or iOS. In the field of mobile applications, we primarily develop apps and programs for the following platforms:  iOS  Android Compiled by Chalew Z.(MSc) 11/18/2024 21 Frameworks and Tools Compiled by Chalew Z.(MSc) 11/18/2024 22 Generic UI Development A good User Interface (UI) focuses on making user’s interactions simple and efficient. User would appreciate a website with intuitive user interface that leads them towards their task in most engaging way. User Interface (UI) design focuses on thinking of a user, what they might need to do when they visit website and ensure that the interface has elements that are easy to access and understand. Being a UI designer, one need to understand the goals, skills, preferences and tendencies of the user to make a better interface. Compiled by Chalew Z.(MSc) 11/18/2024 23 Cont.. The Generic User Interface (Generic UI, GUI) framework allows you to create UI screens using Java and XML. XML is optional but it provides a declarative approach to the screen layout and reduces the amount of code which is required for building the user interface. Vaadin Framework is a Java web application development framework that is designed to make creation and maintenance of high quality web-based user interfaces easy. Vaadin supports two different programming models: server-side and client- side. The server-driven programming model is the more powerful one. Compiled by Chalew Z.(MSc) 11/18/2024 24 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 25  The application screens consist of the following parts: Cont..  Descriptors: XML files for declarative definition of the screen layout and data components.  Controllers: Java classes for handling events generated by the screen and its UI controls and for programmatic manipulation with the screen components.  The code of application screens interacts with visual component interfaces (VCL Interfaces).  These interfaces are implemented using the Vaadin framework components. Compiled by Chalew Z.(MSc) 11/18/2024 26 Cont.. Visual Components Library (VCL) contains a large set of ready-to-use components. Data components provide a unified interface for binding visual components to entities and for working with entities in screen controllers. Infrastructure includes the main application window and other common client mechanisms.  A screen is a main unit of the generic UI.  It contains visual components, data containers and non-visual components.  A screen can be displayed inside the main application window either in the tab or as a modal dialog. Compiled by Chalew Z.(MSc) 11/18/2024 27 The main part of the screen is a Java class called controller. Cont.. Layout of the screen is usually defined in an XML file called descriptor. In order to show a screen, the framework creates a new instance of the Window visual component, connects the window with the screen controller and loads the screen layout components as child components of the window. After that, the screen’s window is added to the main application window. A fragment is another UI building block which can be used as part of screens and other fragments. 11/18/2024 28 Compiled by Chalew Z.(MSc) More on UIs They come in three formats: 1. Graphical user interfaces (GUIs) - Users interact with visual representations on digital control panels. A computer’s desktop is a GUI. 2. Voice-controlled interfaces (VUIs) - Users interact with these through their voices. Most smart assistants e.g., Siri on iPhone and Alexa on Amazon devices are VUIs. 3. Gesture-based interfaces - Users engage with 3D design spaces through bodily motions: e.g., in virtual reality (VR) games. Compiled by Chalew Z.(MSc) 11/18/2024 29 VUIs and Text-to-Speech Technique Voice user interfaces are user interfaces that are used through speech. Typical examples of voice user interfaces include smart speakers and voice assistants. Voice UIs employ speech recognition and natural language understanding technologies to transform user speech into text and meaning. Speech is a tool for enhancing traditional touch user interfaces into multimodal voice user interfaces. Compiled by Chalew Z.(MSc) 11/18/2024 30 Voice user interaction(VUI)  Voice User Interaction represents a unique challenge for mobile developers.  As human beings, we are social, vocal creatures, which means that using our voice to communicate should be natural.  However, voice interaction is still a significant departure from the keyboards and touchscreens that you might be accustomed to using.  All the traditional guidelines for designing for iOS or Android, or graphical user interfaces in general, have very little relevance to VUIs.  However, currently In android, by using TextToSpeech class we can easily convert Compiled our bytext into voice. Chalew Z.(MSc) 11/18/2024 31 Text-to-Speech Techniques  Text-to-speech (TTS) synthesis ultimate goal is to create natural sounding speech from arbitrary text.  Moreover, the current trend in TTS research calls for systems that enable production of speech in different speaking styles with different speaker characteristics and even emotions.  Speech synthesis generally refers to the artificial generation of human voice – either in the form of speech or in other forms such as a song.  The computer system used for speech synthesis is known as a speech synthesizer. Compiled by Chalew Z.(MSc) 11/18/2024 32 Cont..  There are several types of speech synthesizers (both hardware based and software based) with different underlying technologies.  For example, a TTS (Text to Speech) system converts normal language text into human speech, while there are other systems that can convert phonetic transcriptions into speech.  The goal of a text-to-speech system is to automatically produce speech output from new, arbitrary sentences.  The text-to-speech synthesis procedure consists of two main phrases.  The first is text analysis, in which the input text is transcribed into a phonetic or some other appropriate representation.  The second is the actual generation of speech waveforms, in which the acoustic output is produced from the information obtained from the first phase Compiled by Chalew Z.(MSc) 11/18/2024 33 Designing the Right UI  In mobile app development, the UI (user interface) and UX (user experience) play the most significant roles in a mobile app’s success.  From the perspective of a designer, an exceptional UI for mobile app can only be ensured when you follow some tried and tested UI design principles.  It is always advisable to stick to certain principles that are accepted by the designers’ community.  Such UIs not only attract the user, but also help in retaining them in the long run. Compiled by Chalew Z.(MSc) 11/18/2024 34 Designing the Right UI …  UI principles:  Consistency of the design layout.  Unambiguous Interactive Elements.  Single Trial Learning Experience.  Anticipate and Answer Users’ Queries.  Use Toast in Android and notifications in iOS so users will be notified when a process has completed.  Layered User Experience:  The UX should be layered.  Layered here refers that all the features of an app must not be exposed at once. Compiled by Chalew Z.(MSc) 11/18/2024 35 Designing the Right UI … Compiled by Chalew Z.(MSc) 11/18/2024 36 Designing the Right UI …  Uniqueness  There is no point in creating something that already exists.  Structure  User interfaces for mobile applications should be organized in such a way that users will find it helpful and meaningful.  Context  Before moving on, you need to find out in what context your app will be used and then build the interface according to this information.  Gestures  Let’s say if the user is holding the handrail on a public transport with one hand and trying to work an app with the other hand, it might be annoying if there are no other gestures but to pinch to expand, since this gesture requires two hands. Compiled by Chalew Z.(MSc) 11/18/2024 37 Designing the Right UI …  Tolerance  Tolerance means allowing users to make mistakes and giving them the opportunity to revoke changes.  The design should be flexible and tolerant, reducing the cost of mistakes and misuse by allowing undoing and redoing  Consistency  Consistency means tidiness and it is certainly a must-have in every app, which is why in the majority of mobile app design companies there’s a rule to create a UI kit for every project.  Communication  The core idea here is to let users know your app registered the action and processing it even if it is not possible to give an immediate result.  From a psychological perspective, people need to get acknowledgment for their actions, and it is especially important in the banking sphere. Compiled by Chalew Z.(MSc) 11/18/2024 38 Multichannel and Multimodal UI  Multichannel and multimodal UIs are exciting developments in user interface design. Let’s break it down:  Multichannel UI  A multichannel user interface allows users to interact with a system across multiple platforms or channels.  For example: Web,Mobile and Desktop Compiled by Chalew Z.(MSc) 11/18/2024 39 Multichannel and Multimodal UI  Multimodal UI  Multimodal interfaces support multiple modes of interaction within those channels. These modes can include:  Touch: Interacting via touchscreens, as on phones or tablets.  Voice: Using voice commands through services like Siri, Alexa, or Google Assistant.  Gestures: Leveraging motion sensors to interpret physical gestures as commands.  Text: Typing or text input as a traditional mode of interaction. Compiled by Chalew Z.(MSc) 11/18/2024 40 Cont..  ASR capabilities are easy to integrate into new user interfaces by making use of available programming APIs.  On the technical side one of the next challenges is therefore to realize conversational speech interaction in many applications. Compiled by Chalew Z.(MSc) 11/18/2024 41 Android Core Building Blocks:  An android component is simply a piece of code that has a well defined life cycle e.g. Activity, Receiver, Service etc.  The core building blocks or fundamental components of android are activities, views, intents, services, content providers, fragments and AndroidManifest.xml. Compiled by Chalew Z.(MSc) 11/18/2024 42 Android Intents And Services  Activity: Being similar to a Frame in AWT, an activity as a class represents a single screen.  View: The UI element including button, label, text field, etc, and anything that one can see is a view.  Intent: Intent is the message that is passed between components(Detail discussion in chapter 3)  Services : Being a background process the service can run for a long time. E.g. music player, network download etc…  Content Provider: it is used to share the data between the applications.  Fragment: Being a part of an activity, one or more fragments can be displayed on the screen at the same time by the activity.  AndroidManifest.xml: Information about activities, content providers, permissions, etc is in the AndroidManifest.xml which is like the web.xml file in Java EE. Compiled by Chalew Z.(MSc) 11/18/2024 43 Android Widgets  Android App widgets are the small application views. These views can be embedded into other applications.  They can receive updates on periodic basis. A widget is a quick view of your app’s functionality and data.  This view is accessible from home screen of your device. Widget is rectangles containing texts, image, etc  Android widgets are of following types: Compiled by Chalew Z.(MSc) 11/18/2024 44 Cont.. A. Informational Widget: it used to display only that information to user which is important and dynamic in nature. For Example the information displayed on your home screen saying time and weather condition is a widget of this type. Compiled by Chalew Z.(MSc) 11/18/2024 45 Cont.. B. Collection Widgets: These Android widgets scroll in top-to-down direction. Collection of information of same type and then enabling user to open any one of them to full detail. For Example is your e-mail app which will display all the mails in your inbox and then allow you to open any one o them. C. Control Widgets: Displays the most frequently used functionalities which user might want to control from home screen. For example in a video app, you can pause, play, stop, go to previous track, move to next track. D. Hybrid Widgets: These Android widgets combine features of all of the above three. Compiled by Chalew Z.(MSc) 11/18/2024 46 Android UI Design in XML  Recall: Files Hello World Android Project  It has Files: 1.Activity_main.xml: XML file specifying screen layout. XML file used to design Android UI 2.MainActivity.Java: Java code to define behavior, actions taken when button clicked (intelligence) 3.AndroidManifest.xml:  Lists all app components and screens Like a table of contents for a book E.g. Hello world program has 1 screen, so AndroidManifest.xml has 1 item listed App starts running here (a bit like main( ) in C), launching activity with a tag “LAUNCHER” Compiled by Chalew Z.(MSc) 11/18/2024 47 Cont.. We have two option to design user interface 1.Option 1: Drag and Drop widgets in Android Studio Design View then edit widget properties (e.g. height, width, color, etc) Compiled by Chalew Z.(MSc) 11/18/2024 48 Cont.. We have two option to design user interface 2. Option 2: Edit XML Directly Text view: Directly edit XML file defining screen (activity_main.xml) Note: dragging and dropping widgets in design view auto-generates corresponding XML in Text view Compiled by Chalew Z.(MSc) 11/18/2024 49 Android UI Controls  In android user interface or input controls are the interactive or View components which are used to design the user interface of an application.  In android we have a wide variety of UI or input controls available, such as TextView, EditText, Buttons, Checkbox, Progressbar, Spinners, etc. Compiled by Chalew Z.(MSc) 11/18/2024 50 Cont.. Some example of UI Controls TextView: it is a user interface control which is used to set and display the text to the user based on our requirements. EditText: is a user interface control which is used to allow the user to enter or modify the text. Button: is used to perform an action whenever the user click or tap on it. Compiled by Chalew Z.(MSc) 11/18/2024 51 TextView Text in a rectangle, Just displays text, no interaction Compiled by Chalew Z.(MSc) 11/18/2024 52 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 53 Button Compiled by Chalew Z.(MSc) 11/18/2024 54 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 55 ImageView and ImageButton ImageView: display image (not clickable) ImageButton: Clickable image Compiled by Chalew Z.(MSc) 11/18/2024 56 Compiled by Chalew Z.(MSc) 11/18/2024 57 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 58 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 59 Android Layouts in XML Layout is used to define the user interface for an app or activity and it will hold the UI elements that will appear to the user. A layout is used to position and place components in a container in the desired location and style Layouts (XML files) stored in res/layout Compiled by Chalew Z.(MSc) 11/18/2024 60 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 61 Cont.. Compiled by Chalew Z.(MSc) 11/18/2024 62 Thank you! Any questions? Compiled by Chalew Z.(MSc) 11/18/2024 63

Use Quizgecko on...
Browser
Browser