Given the current mobile device market,
customers need high quality applications on the three main platforms: Android,
iOS and Windows Phone. However, designing and building applications on these platforms
can lead to myriad challenges, including the need to reconcile the unique
native languages of each platform while creating an elegant and consistent
user experience.
Here are some key lessons learned from the
Mobile Client Work for SkyDrive, Microsoft's Personal Cloud Storage Service,
and best practices for anyone who wants to build powerful mobile apps across
all platforms.
-
Selecting Development
Technologies
One of the biggest challenges in developing
cross-platform mobile applications is that each mobile platform has a language
and an SDK, or a software development kit. Windows Phone has C# with .Net, iOS
has Objective C with Cocoa and Android has Java with ADK. There are also
solutions for code sharing. HTML5 can be run on all three platforms, just like
code written in C++.
We found that the use of native language and
SDK on each platform had significant benefits in terms of support for all
platform features, ease of development, and high performance. It also provides
the fastest access to new features in the new versions of the operating system
and SDKs. For the best experience, the benefits of the native platform are
paramount.
HTML5 offers the ability to update the
functionality of the application by updating a web server from which the HTML
is downloaded, which could be a good solution for some applications. C++ could
also be a good solution for some common multi-platform modules.
However, access to platform features and user
interface writing would be more difficult in both cases. You may need to
combine these options with native SDKs to use some of the unique features of
the platform.
-
Defining User Experience
In some cases, the desired application
functionality may be the same for each platform. But customers in each platform
expect the style to be similar to the other apps they use. A good motto here is
"the personality of the application, the appearance of the platform".
With the personality of the application,
customers can feel the unique values provided by your applications.
Applications on different platforms can have a lot in common to identify, such
as themes, features, and similar color flows for the user's actions. Even if a
client changes their platform, they should still be able to use the application
with little or no scalability.
With the appearance of the platform, customer
interactions will be similar to those of other platform applications, and
customers can immediately use the application. For example, the command icons
will be in the same place on the screen as other applications on the same
device.
-
Developing Rapidly and Using
the Application
In the mobile space, competition is fierce and
customers expect regular updates. Traditional product development processes
with long planning, development and testing phases can take months or even
years.
A better approach is to adopt a quick release
cycle process. Each release cycle should contain a set of smaller features that
can be developed in a few weeks or less. Each launch cycle can be a set of
logically complete functions that could be released if desired.
While stabilizing the code, some team members
can start planning the next release cycle. In this way, publishing cycles can
continue to run and customers can enjoy the updates they expect.
To facilitate development and maintenance,
applications must have similar designs for non-platform-specific logic, such as
business logic and the common infrastructure for managing the user's actions.
Developer expertise can be exploited if the same developer has functionality
across multiple platforms.
A key to providing quality in this environment
is feedback from customers. Real customers will use the applications in a way
that cannot be easily recreated in the lab. They will experience a wide variety
of network characteristics and will use their own data. In addition, they will
use the app on a wide variety of devices.
The best way to achieve quality in these
situations is to put the applications in the hands of as many people as
possible before releasing them. A dog food program reaching a business group,
social group, friends or potential customers adds a lot of value and also helps
to build enthusiasm for the application. The application should provide an easy
mechanism for first users to report problems; a single support for reporting
problems greatly improves the chances of getting more feedback.
Keys for Success
If the steps mentioned above are followed, you
are in an excellent position to offer a high quality multi-platform
application. Here are some additional considerations that will greatly increase
your chances of success.
Providing Amazing User Experience
With small screen sizes, it can be difficult
for a client to see all the data and find all the necessary commands; the
application must facilitate navigation. Most of the screen space should be
devoted to displaying the data the customer wants to see, and the commands,
status, etc. the most important ones should appear on the screen.
All less commonly used items can be moved to
menus or other dialogs. Always ask, "How can customers finish an
operation?" Fewer taps make customers more likely to use a feature.
Tuning Application for High
Performance
This is essential in an environment where the
client usually monitors the application as it is running, and the hardware and
network may be slow. Response time and CPU-memory-network consumption are the
key areas that should be examined.
To improve response time, move all tedious
operations in the background to release the UI thread for user interactions. When
viewing a large list, load the data one page at a time from the network to
reduce the waiting time for users. Caching downloaded resources from your
servers significantly reduces network consumption and significantly reduces
response time.
When the underlying data changes, you must
only update the UI elements affected by the changes. Limiting memory space
reduces the chances that the operating system will remove the application from
memory while it is in the background. When users return to the application,
they start faster.
It is best to frequently run monitoring tools
on the application to find and resolve CPU, memory, and network consumption
issues.
Interaction with Other Applications
With hundreds of thousands of applications in
the App Store, mobile customers can do many different things on mobile devices:
send SMS, receive / send emails, social networks, browse content and even edit documents.
They expect their applications to work together, and activating the interaction
will result in the use of your application.
Monitoring Customer Feedback
One of the great things about mobile apps is
the speed with which reviews become available in product reviews and blogs.
These comments allow mobile app
developers to quickly address urgent issues and provide a source of ideas
for future improvements.
If you need any
assistance related to mobile app
development or cross platform mobile app development,
you can contact us. We are a leading web and mobile app development company in India
& USA engaged in
providing feature packed, secure and scalable web and mobile apps across all
business verticals.
Great post.
ReplyDeletehttps://web.ask.byu.edu/users/487/jamesl9/