Question

1. Explain the key differences between development of systems to run on mobile devices and on...

1. Explain the key differences between development of systems to run on mobile devices and on typical personal computing or internet-based environments, and apply this knowledge in the design of mobile device software.
2. Design effective applications for a mobile device by taking into consideration the underlying hardware-imposed restrictions such as screen size, memory size and processor capability.
3. Build, test and debug graphical applications for mobile devices by using the standard libraries that are bundled as part of the developers’ toolkit for the mobile device.
4.What are the key areas that need attention during (Android) mobile application development? You can use a visual model here if it helps.
5.Elaborate on aspects that you found challenging or different (to expectations) and why?
6.Discuss how mobile application is different/the same compared to the other types of development that you have undertaken.

Homework Answers

Answer #1

1. Explain the key differences between development of systems to run on mobile devices and on typical personal computing or internet-based environments, and apply this knowledge in the design of mobile device software:

Mobile phones and personal computers (PCs) are both very popular devices used by people of every age and background. In addition to that similarity, PCs and mobile phones are alike in many other ways; for example, both can be used as a form of direct communication. However, there are distinct differences between the two devices.

Mobile Phone Differences:

The most obvious difference between a mobile phone and PC is the size. Mobile phones are significantly smaller than PCs, and are able to fit in the palm of one's hand. Mobile phones are also designed for mobility. Since they have internal batteries which may be charged from any wall outlet, they can be used practically anywhere. They are also intended for personal use, meaning they are rarely used by more than one person. Mobile phones have less command functions than a PC's keyboard and considerably less storage space. Some mobile phones may be used as a GPS device.

PC Differences:

There are two types of personal computers, desktops and laptops. Laptops share more similarities with mobile phones than desktops, because laptops are portable. Larger desktops remain stationary, for the most part, and may be used by multiple members of a household. Laptops and desktops have much more room for software and digital media than any mobile phone, and can oftentimes play CDs and DVDs. It's also easier to attach hardware like printers, speakers, and external drives to a PC.

2. Design effective applications for a mobile device by taking into consideration the underlying hardware-imposed restrictions such as screen size, memory size and processor capability:

Small and portable, mobile devices offer exciting opportunities for software development. Their limited screen size and reduced memory, storage, and processor power are far less exciting, and instead present some unique challenges.

Compared to desktop or notebook computers, mobile devices have relatively:

>

Low processing power

>

Limited RAM

>

Limited permanent storage capacity

>

Small screens with low resolution

>

High costs associated with data transfer

>

Slow data transfer rates with high latency

>

Unreliable data connections

>

Limited battery life

Each new generation of phones improves many of these restrictions. In particular, newer phones have dramatically improved screen resolutions and significantly cheaper data tariffs. However, given the range of devices available, it is good practice to design to accommodate the worst-case scenario.

3. Build, test and debug graphical applications for mobile devices by using the standard libraries that are bundled as part of the developers’ toolkit for the mobile device:

Testing your app is an integral part of the app development process. By running tests against your app consistently, you can verify your app's correctness, functional behavior, and usability before you release it publicly.

Testing also provides you with the following advantages:

  • Rapid feedback on failures.
  • Early failure detection in the development cycle.
  • Safer code refactoring, letting you optimize code without worrying about regressions.
  • Stable development velocity, helping you minimize technical debt.

Testing the applications:

Users interact with your app on a variety of levels, from pressing a button to downloading information onto their device. Accordingly, you should test a variety of use cases and interactions as you iteratively develop your app.

1. Create and test code iteratively:

When developing a feature iteratively, you start by either writing a new test or by adding cases and assertions to an existing unit test. The test fails at first because the feature isn't implemented yet.

2. View your app as a series of modules:

To make your code easier to test, develop your code in terms of modules, where each module represents a specific task that users complete within your app. This perspective contrasts the stack-based view of an app that typically contains layers representing the UI, business logic, and data.

3. Configure your test environment:

When setting up your environment and dependencies for creating tests in your app, follow the best practices described in this section.

  • Organize test directories based on execution environment

  • Consider tradeoffs of running tests on different types of devices

  • Consider whether to use test doubles

4. Write your tests:

After you've configured your testing environment, it's time to write tests that evaluate your app's functionality. This section describes how to write small, medium, and large tests.

Levels:

5. Write small tests:

The small tests that you write should be highly-focused unit tests that exhaustively validate the functionality and contracts of each class within your app.

  • Local unit tests

  • Instrumented unit tests

6. Write medium tests:

In addition to testing each unit of your app by running small tests, you should validate your app's behavior from the module level. To do so, write medium tests, which are integration tests that validate the collaboration and interaction of a group of units.

7. Write large tests:

Although it's important to test each class and module within your app in isolation, it's just as important to validate end-to-end workflows that guide users through multiple modules and features. These types of tests form unavoidable bottlenecks in your code, but you can minimize this effect by validating an app that's as close to the actual, finished product as possible.

4.What are the key areas that need attention during (Android) mobile application development? You can use a visual model here if it helps:

1. Your mobile app must be user-centric: This is the main motto of having a mobile app, that is to make it more convenient for your customers. It doesn’t matter how many features your mobile app has or how many products or services you offer. All the features or products must be easily accessible in your app. The designer and developer of your app need to work meticulously in collaboration to achieve this goal.

2. Keep it simple: Innovation and new ideas are good, but they must be clear. When you are taking a plunge in a new venture like launching an app, you will get plenty of advice. People will tell you that innovation and newness works! It does work, but until and unless it is understandable. What is the point if no one understands what you want to convey in your application. Hence, you must keep your app simple, such that everyone can understand your application easily.

3. Operating system compatibility: This is one of the major differences in a website and a mobile app. You don’t have to worry about operating system and compatibility while developing a website. A website will work same on any browser, hence you just develop a website without worrying about which browser user will use. This is not the same as an app, as the user is going to download your app in their mobile devices.

4. Carry out the development process in phases: A mobile app is not like a website that you develop it once and forget about it. A mobile app is a constant development process where you need to keep on updating the features as technology changes. A mobile app development is generally carried out in phases where we make changes according to the user feedback. This is the only way to make a mobile app user-friendly and user-oriented.

5. Choose a technology that is scalable: The web developers are working hard all the time to make your website more interesting and engaging. To improve your website’s functionality the developers also need to scale up their development platform from HTML to JavaScript. Now that enterprises have seen that apps are a better way to connect with the consumer, all the innovation and research are going on in this sector.

5.Elaborate on aspects that you found challenging or different (to expectations) and why?:

We all know this we go through the app store looking for cool new and promising apps, download them and after a few seconds we recognize some odd bugs or become annoyed at the handling, always tap on the wrong button or simply don’t find what we are looking for.

1. Have an Idea!: Every mobile app starts with an idea – either a vague or already a concrete one. I’m not telling you anything new, but most of the greatest ideas just appear out of the blue. As people use apps to make their life a little more comfortable, productive and pleasant, the really big challenge is to have an idea that is awesome, innovative, and creative or exactly the app everyone was longing for.

2. Know Your Target Group!: The main purpose of your app is to satisfy the users’ needs. This is key to get good reviews and ratings as well as high adoption rates resulting in numerous downloads.

3. Mind the Costs!: Besides your idea and knowing your potential users, there is one more essential challenge at the beginning: the costs. Because your financial as well as human resources define the frame of your app and hence both extend and duration of the realization process.

4. Detect Users’ Requirements!: After this first planning phase the design process can be initiated. Probably the best way to start off is by sketching your app ideas. Using rapid prototyping for this will breathe life into your idea.

5. Use Eye Candy!: Another challenge is to create a modern app fitting to today’s technological demands including a user-friendly handling, comprehensible usability and of course a pleasant experience.

6. Make it interactive!: Similar to the transitions and responsive design, interactions are a must-have! At the same time, they also constitute a time-consuming challenge during the design process and hence should be considered in advance! The main reason is that mobile devices are full of high-tech sensors and hence offer a wide range of opportunities.

7. Make it clear!: An app should be self-explanatory since users don’t want to think when using an app. Furthermore, you should keep in mind that the functioning or handling of the app might be clear to you (as the inventor), but this doesn’t necessarily apply to your users.

6.Discuss how mobile application is different/the same compared to the other types of development that you have undertaken:

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: 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.

1. 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.

2. 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.

Technology Used: Web apps are designed using HTML5, CSS, JavaScript, Ruby, and similar programming languages used for web work.

3. Hybrid Apps: And then there are the 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 native APIs. They’re developed using: Ionic, Objective C, Swift, HTML5, and others.

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
ADVERTISEMENT
Need Online Homework Help?

Get Answers For Free
Most questions answered within 1 hours.

Ask a Question
ADVERTISEMENT