Developing Network-Friendly Applications outlines strategies for optimizing the user experience of mobile applications that connect via networks. It discusses how mobile networks work and limitations developers should consider. Key recommendations include making few connections, concatenating data transfers, caching assets, using compressed formats, optimized codecs, transmitting only processable data, and conserving battery life. Instant messaging apps in particular are noted as challenging to optimize due to frequent updates that can drain batteries without benefits.
Peter Ludin, Vice-President EMEA Telecom Solutions, Draka Communications
Demands of a modern network, how to balance network quality & costs, creating value through innovation and current & future innovations in the passive layer.
Jennifer Kaplan, Product Marketing Manager, GovDelivery, discuss 9 rules for digital communications as part of GovDelivery's 2013 Digital Communications Tour.
Peter Ludin, Vice-President EMEA Telecom Solutions, Draka Communications
Demands of a modern network, how to balance network quality & costs, creating value through innovation and current & future innovations in the passive layer.
Jennifer Kaplan, Product Marketing Manager, GovDelivery, discuss 9 rules for digital communications as part of GovDelivery's 2013 Digital Communications Tour.
Dealing with F**k & Other User Generated Content Challenges for Digital Out of Home Networks, August 2009
Executive Summary
Unlike content designed only for websites, UGC is uniquely challenging for public display. There are plenty of user experience challenges and legal concerns that lawyers can and do worry about. Businesses need to balance cost and potential or hypothetical risks of displaying UGC. For many, the safest thing to do is give up! For others, the focus is on best practices combined with the best user experience. Clearly, large companies still need to adjust to the fact that social networks enable a culture of openness. Being too restrictive about content, especially content that might be critical of the brand, endangers the authenticity of UGC applications. But brands need to understand the balance between controlling the conversation and directing it.
Review of the changes impacting operators, and their need for applications developers to use their network to remain relevant to their customers as operators.
Large Volume Map Generation via Grid ComputingJeffrey Stewart
Whitepaper presented at the 2007 ESRI User Group conference. Covers application of distributed tasks and grid computing techniques to significant;y increase production of personalized route map images via ArcWeb Services.
Enabling Innovators for the Era of the Social Enterprise: presented to Triple Helix 9 conference at Stanford University to address the opportunities for expanding the Silicon Valley model to emerging economies
Mobile mas alla de la app store: APIs y Mobile Web - MobileConGalicia 2011Ricardo Varela
presentacion para MobileCon Galicia 2011 sobre aplicaciones utilizando tecnologias web y apis de movil, porque no todas las aplicaciones moviles dependen de AppStores, iPhone y Android - mas info en http://mobilecongalicia.com/
Dealing with F**k & Other User Generated Content Challenges for Digital Out of Home Networks, August 2009
Executive Summary
Unlike content designed only for websites, UGC is uniquely challenging for public display. There are plenty of user experience challenges and legal concerns that lawyers can and do worry about. Businesses need to balance cost and potential or hypothetical risks of displaying UGC. For many, the safest thing to do is give up! For others, the focus is on best practices combined with the best user experience. Clearly, large companies still need to adjust to the fact that social networks enable a culture of openness. Being too restrictive about content, especially content that might be critical of the brand, endangers the authenticity of UGC applications. But brands need to understand the balance between controlling the conversation and directing it.
Review of the changes impacting operators, and their need for applications developers to use their network to remain relevant to their customers as operators.
Large Volume Map Generation via Grid ComputingJeffrey Stewart
Whitepaper presented at the 2007 ESRI User Group conference. Covers application of distributed tasks and grid computing techniques to significant;y increase production of personalized route map images via ArcWeb Services.
Enabling Innovators for the Era of the Social Enterprise: presented to Triple Helix 9 conference at Stanford University to address the opportunities for expanding the Silicon Valley model to emerging economies
Mobile mas alla de la app store: APIs y Mobile Web - MobileConGalicia 2011Ricardo Varela
presentacion para MobileCon Galicia 2011 sobre aplicaciones utilizando tecnologias web y apis de movil, porque no todas las aplicaciones moviles dependen de AppStores, iPhone y Android - mas info en http://mobilecongalicia.com/
APIs are the underlying enabler to increase the pace of innovation at AT&T. The API platform removes organizational, functional, and technical barriers to accessing AT&T’s network and information assets
This makes the network an intrinsic part of an innovation ecosystem and gives AT&T an opportunity for new monetization by serving consumers and business customers.
With the explosion of mobile devices, software developers must exploit opportunities at the application layer and apply location-and presence-aware data to deliver services relevant to enterprises and consumers.
DESIGN OF A WIRELESS COMMUNICATION SOFTWARE BETWEEN MULTIPLE CLIENTS AND A SI...edirin aphunu
Wireless communication cost reduction software provides a simple but sophisticated means of communications between individuals in an organization. Here we focus on both sides of the clients-server relationship using Java Programming Language. The client requests that some action be performed, and the server performs the action and responds to the clients. The clients will also be able to establish connection between themselves through the server itself. Java’s fundamental networking capabilities are declared by classes and interfaces of package java.net, through which Java offers stream-based communication that enable applications to view networking as streams of data.
The common challenges of mobile internet for up coming generationeSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
The common challenges of mobile internet for up coming generationeSAT Journals
Abstract In this survey we concentrate on the mobile internet. Our main focus on mobile internet in two different cases of fixed connection which is provided by the telecommunication network provider and the second one is the wireless network which is getting from internet access point can be home network, Education campus .etc; in this case we also would like to discuss about network layer (protocols and Transport layer protocols).
Contemporary Energy Optimization for Mobile and Cloud Environmentijceronline
Cloud and mobile computing applications are increasing heavily in terms of usage. These two areas extending usability of systems. This review paper gives information about cloud and mobile applications in terms of resources they consume and the need of choosing variety of features for users from several locations and the evolutionary provisions for service provider and end users. Both the fields are combined to provide good functionality, efficiency and effectiveness with mobile phones. The enhancement by considering power consumption by means of resource constrained nature of devices, communication media and cost effectiveness. This paper discuss about the concepts related to power consumption, underlying protocols and the other performance issues
Abstract: Cloud computing is a latest trend and a hot topic in today global world. In which sources are provided to concern as local user on an on demand basically as usual it provides the path or means of internet. Mobile cloud computing is simply cloud computing throughout that at all smallest variety of devices could be involved as wireless equipment this paper concern multiple procedure and procedure for the mobile cloud computing . It developed every General mobile cloud computing solution and application specific solution. It also concern about the cloud computing in which mobile phones are used to browse the web, write e-mails, videos etc. Mobile phones are become the universal interface online services and cloud computing application general run local on mobile phones.
Technology Trends & Strategies for 2014. How to prepare your company for next wave of IT & Cloud computing focused on mobile applications and user experience
IPQ is an application-embeddable QoS solution that addresses the network quality challenges and opens up the huge opportunities where real-time apps, mobility, and the need for multiple simultaneous networks intersect.
Many of mobile devices suffer from limited computation resources (memory and processors), limited network
connection, bandwidth and limited battery life. For minimizing these problems mobile agents are premising
technology. However, for clients and servers most mobile agent systems are very resources demanding. This
research paper describes an approach to run mobile agents on different devices from mobile phones and
Personal Digital Assistants (PDAs) to powerful PCs. It proposes a simple mobile agent architecture and
middleware that makes it possible for accessing a mobile agent system on different devices. This architecture
and middleware proposes that clients will state their abilities. Depending on these abilities, the client will either
run the full mobile agent on the device or only run a light-weight version of the agent on the device. The mobile
agents are basically same on all clients, but code of the mobile agent is removed for small devices. This means
that only the data of the agent can be changed for mobile devices with minimal resources. The code of this agent
is stored at the server. When the agent returns to the server, the two parts are joined and the agent is ready to be
executed. The joined mobile agent can migrate to other agent servers and clients. A middleware is also proposed
that makes it possible to establish communication between different heterogeneous devices.
Facetones, developed by Vringo Inc, creates an automated video slideshow using friends’ photos. It then plays this video each time a user makes or receives a call. Learn how BlueVia helped market Facetones through Telefonica's App Stores.
The BlueVia SDK for .NET gives Microsoft developers the ability to quickly develop applications that use the BlueVia platform, and thus start realizing revenue potential.
A detailed guide to payments, taxation and money movement from BlueVia, the global developer platform from Telefonica that helps developers take apps, web services and ideas to market.
Visit www.bluevia.com for more information
Movistar developers platform está cambiandoBlueVia
Durante el último año hemos aprendido mucho con Movistar Developers Platform. Con la experiencia obtenida, junto con el conocimiento y posición de una operadora global como Telefónica, vamos a reinventar la plataforma MDP. En esta presentación, los desarrolladores de Moviestar Developers Platform, conocerán BlueVia, la nueva oferta de Desarrolladores de Telefónica que englobará a las comunidades existentes en Argentina, México, España y Reino Unido.
O2 Litmus is Changing: Find out about BlueViaBlueVia
O2litmus is changing to BlueVia, the new developer offering from Telefonica. This presentation will bring you up to speed with these developments, from what BlueVia can offer you, when it will be available for you to use and most importantly an opportunity for you to ask any questions you may have.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Leading Change strategies and insights for effective change management pdf 1.pdf
Developing network-friendly-applications
1. Developing Network-Friendly Applications
Tips on improving and optimising the user experience when
developing applications that connect via a mobile network.
Edited by: Paul Golding, Chief Disruptor, BlueVia Labs & James Parton, BlueVia Marketing
Developing Network-Friendly Applications by bluevia.com is licensed under a CC
Creative Commons Attribution-NoDerivs 3.0 Unported License. BY ND
2. Developing Network-Friendly Applications
The great news is that the boom in mobile apps development and smartphone proliferation has brought
a whole new generation of developers into the mobile world. The choice of applications has never been
better. The downside is that the dramatic increase in network usage can have a negative impact on the user
experience of connected applications. This document will outline strategies and techniques for trying to
improve the user experience through the best use of network resources and “network friendly” development
approaches at both the application and OS level.
3. Developing Network-Friendly Applications
Making a user wait for a
connection whilst one is not
available would be a poor
experience.
Introducing Network Friendliness
Think UX, Think Network!
A good user experience is essential to the success With increasingly faster networks and faster devices,
of any application, mobile or otherwise. Mobility it is common to see developers assuming that
introduces additional challenges. For example, making “anything goes,” in terms of development, as if the
a user wait for a connection whilst one isn’t available power of the network and device were “unlimited,” or
would be a poor experience. On the other hand, approaching that of desktop environments. This isn’t
giving the user other options whilst the connection is the case.
unavailable might improve the experience. As another
Your users are a lot more sensitive to a poor
example; frequent updating, even when there’s no
experience on mobile devices and are a lot less
new data to download, can cause excessive battery
forgiving. You should pay attention to all aspects
drain, resulting in a poor experience. Moreover, the
of the application design that will have a positive
constant “hammering” of the network with new data
or negative impact on the user experience, which
requests might hinder other users from getting the
includes thinking about the network connection.
best performance from the network.
4. Developing Network-Friendly Applications
Network Friendliness
BlueVia encourages “network friendly” application Network-friendly design is a principle of being a good
design. Connected applications share the same “network citizen,” which is something we want to
network resources as other connected applications encourage at BlueVia. Network-friendly design is
in a given geographical area (i.e. within the coverage about improving the mobile experience for all network
area of a mobile cell). The behavior of one connected users, not just your application’s users. Collectively,
application can impact other connected apps within you and your fellow developers can improve the
the same geographic area. overall user experience of all connected applications
on the network. In this document, we focus on
approaches towards network-friendly application
Network-friendly design is design, taking into account the connection to the
a principle of being a good network and how it influences the user experience.
“network citizen”.
5. Developing Network-Friendly Applications
Network connections can
exhibit a range of behaviors
that might affect application
performance.
More Than Just a Pipe
For the inexperienced mobile developer, it is easy to We could just ignore these characteristics and hope
assume that the network connection is just a pipe for the best, but delivering an optimum experience for
– it’s there and it works! This view is over-simplistic. your users (the people that matter the most) requires
Network connections can exhibit a range of behaviors that we understand these characteristics and build
that might affect application performance, as shown the intelligence into our applications to accommodate
in the illustration above. them.
Whether you are using a DSL, fibre, LAN or mobile You should also keep in mind that mobile operators
networks, each of these networks has different across the world are gradually switching to “data
characteristics for maximum throughput, end-to-end caps” - i.e. maximum MBytes per day or month. This
delay (latency), signaling overheads and available places a responsibility on you to optimise application
capacity. traffic volumes. Every MB saved is a direct saving from
the customer’s usage bundle. And they’ll love you for
it, especially if they choose to roam abroad.
6. Developing Network-Friendly Applications
Being Network-Friendly – The Headlines
Here’s a summary of tips for Application Developers that we will cover in more detail in this document.
Tips include:
• Making as few connections as possible to the • Enabling compression where possible
network, both concurrently and temporally
• Supporting asynchronous messaging, (e.g. using
• Concatenating data transmissions in order to preferred PUSH mechanisms)
lower connection “chattiness”
• Caching frequently used assets
• Closing open connections when they are no
• Using compressed image formats as much as
longer being used
possible
• Where possible using a single TCP session for all
• Utilising optimised codecs to transmit audio and
communications
video over mobile networks
• Ensuring that all TCP sessions are torn down
• Transmitting only information that a device is
correctly (i.e. with FINs)
subsequently able to process
• Using light-weight protocols where possible (e.g.
REST instead of SOAP) • Taking various measures to conserve battery life
7. Developing Network-Friendly Applications
Achieving Efficient Network Connections
Overview of Mobile Networks
Before getting into the details of how to achieve However, once resources are allocated to a mobile,
efficient connections, a brief exploration of the nature it is inefficient to release them immediately in case
of cellular connections will highlight the fundamental the mobile needs them again a short while later.
limitations. Otherwise, the overhead of reserving and releasing
resources can overload the signaling channels on
Cellular networks optimise the available capacity
the network, even though there might be enough
to allow many users to share the same physical
capacity to send the actual data. This results in
resource, namely the finite radio spectrum. In sharing
mobiles being “blocked” from the network. Indeed,
the same resources, mobiles essentially “take
this is exactly what happened when the iPhone
turns” whenever there are more mobiles than radio
became so successful and popular so quickly.
bandwidth available. This process involves reserving
resources on the network before a mobile can
transmit or receive data.
8. Developing Network-Friendly Applications
When there is a period of inactivity in the try to concatenate sessions, but know that there’s a
transmission of data (e.g. whilst reading a web page), point at which keeping the session active versus re-
the radio network will detect this and move the connecting will work against your user’s battery life.
connection to a less active and less power hungry The trick is to use a variable timer that you can easily
state. The benefit of this requirement is longer change if you start to hear about battery problems
battery life for the device. You can imagine how your from your users!
application design might affect these state changes.
For example, if an application polls for data too often, Most developers are unaware of these issues
it might never achieve the less active state, even and simply assume that the connection
though there is no data to transmit. In other words, behaves like a wired connection. As you can
the business of constantly checking for data, even see, this is not the case. So, let’s now explore
when there isn’t any, will still drain the battery and some recommendations for achieving efficient
hog network resources, thereby degrading the user connections:
experience (including those in the cell who might be
blocked from getting network resources).
The process of moving between active and less active
states also consumes power in itself. However, there
is a potentially more pressing issue to consider, which
is that reconnecting to a more active state can also
If an application polls for
take a few seconds (depending on the number of data too often, it might never
achieve the less active state.
users) so if the application is going to transmit and
Z
Z
receive data on a frequent basis it’s better to keep
Z
Z
the connection in an active state in order to avoid
delays in the user experience. This contradicts the
earlier advice of letting your application move to an
Z
idle state in order to save power, so what should you
do? The answer is to avoid unnecessary polling or
communication that is not adding significant value
to the user experience (e.g. polling too often for data
that doesn’t change as often as the polling interval).
But, when you do need to use network resources,
9. Developing Network-Friendly Applications
Recommendations for achieving efficient connections:
Make as few connections as possible to the network, The installation or removal of a “connected
trying to concatenate communications in order application” should not cause any modification to the
to lower the frequency of transmission instead of device/OS network connectivity settings common to
sending data as and when it becomes available. the platform and all connected apps.
Automatically turning off applications during low If user intervention is needed to configure connection
activity periods for those applications that are not settings, then the application developer should offer
crucial for the user a wizard-type tool to simplify the process in order
to avoid user error that could interfere with proper
connection performance.
Make as few connections
as possible to the network,
trying to concatenate
communications.
10. Developing Network-Friendly Applications
Any open connections that are no longer being used should be closed properly You should use “delay tolerant”
techniques. For example, consider putting network access on a different (i.e. background) execution process
to the main user-interface process. In this way, if the network process becomes blocked or sluggish, it won’t
necessarily have an impact on the user interface process. Your app should break content into small pieces that
can be downloaded separately and coded more efficiently. Again, don’t assume that the network will give the
application constant and consistent network performance for the duration of a download or session. Perhaps
a software update, for example, could be carried out in “stages” rather than one big download. You should
program your app to release connections as soon as possible, letting the radio layers of the software know as
soon as possible that a connection resource can be released (for low-level device drive design, please see “Fast
Dormancy” - http://gsm.org/documents/TS18_v10_TSG_PRD_Fast_Dormancy_Best_Practices.pdf).
It hopefully goes without saying, but use mobile network connection only when there are no others available
(e.g. WiFi). This seems obvious, but an application might simply (and naively) use the current/available
connection, which might a 3G connection, just because that’s the state the device is currently in even though a
WiFi connection might be available. Applications with heavy data requirements could remind the user to switch
back to WiFi (if possible).
Use mobile network
connection only when there
are no others available
11. Developing Network-Friendly Applications
Configure widgets or “active icons” so that they are updated on an infrequent basis in background. Although
the update frequency might be selectable by the user, it is down to the application developer to suggest
sensible settings and adopt friendly defaults.
Avoid coding an application to use a specific APN. Instead, use the information contained within the platform
APIs for the device to pick up the active data configuration, allowing the device platform to manage API
configurations where possible. This will ensure that more efficient APN settings can be applied globally for
all applications. However, for best flexibility, the user should still be able to edit APN data associated with a
particular application.
Consider putting network
access on a different
execution process to the
main user-interface process.
Roaming users might want to enable data-roaming, but would like to be sure that only essential applications
start consuming network resources. Many devices can allow an application to check the roaming status of
the device. If so, you should take advantage of this in your design and adopt the default setting to avoid
connections whilst roaming unless granted by the user.
Radio connections and associated Data Context sessions can take several seconds to set up. Short delays do
not necessary mean failure. It could be that the session has been queued for resource allocation and will still
be serviced, or that the device is busy with another transaction. Remember that your application does not
have exclusive access to the device resources, sessions or bandwidth (e.g. be prepared to wait while other
transactions complete).
12. Developing Network-Friendly Applications
When a data session is set up, the radio system has a number of controlled states that should be observed. For
example, do ensure that timeout states are long enough - tearing down the session and retrying will just use
more power and take longer in the end.
If a session is going to transmit and receive data on a frequent basis, it is better to leave the session open.
Overall, try to optimise network requests by batching requests, throttling low-priority requests and backing off
during periods of inactivity. Instant-message presence updates are a classic example where throttling can have
a major impact on network performance and battery life. For example, if an IM client has 100 friends in the
address book with active presence, then every status update for these users is going to flow from the IM server
to the client, even though the client might not be active in the foreground. Slowly, these updates will drain the
battery without offering any benefit to the user.
Deploy design techniques at the application level to minimize the perceived latency due to network delays.
For example, when gathering data to update the application display, consider scheduling some partial updates
to the display before waiting for all of the data to be downloaded. A classic example is an e-mail client that
needs to download 50 e-mails. Why not download the first few and display these in the client before waiting to
download the rest? In this way, even if the network is slow, the application itself can still seem responsive.
Too many IM updates will drain the
battery without offering any benefit
to the user.
13. Developing Network-Friendly Applications
Application/widget updates and “Network
Hammering”
All applications require updates to improve or correct Does the network support data voice and data calls
bugs and some widgets are designed to collect and simultaneously? Many 2G networks don’t allow
receive data. In both cases developers can help users both to happen at the same time so if there is a
by considering the frequency of interactions. Key flow of data (automatically or otherwise) this can
things developers should ask are: result in voice calls being missed or failing. Nothing
worse than missing that important call, especially
When’s the best time to do the updates? Off peak
if you’re working for yourself!
times means the user is likely to get a higher speed
and therefore faster update meaning less battery
Has the application and widget been thoroughly
consumption.
tested? Nothing worse than finding your
How often should updates occur? Frequent updates monthly data bundle has been consumed or
could use more data so you might be better off your battery life reduced to minutes because
bundling a number of updates and pushing these an application has a bug and keeps interacting
out at the same time. with a server.
If the user has a monthly data allowance, is it
better to allow the user to decide when to do an
update rather than automatically updating?
14. Developing Network-Friendly Applications
We’ve seen applications that have been poorly A user’s subscription to a service has ended but no
designed and behave unexpectedly in the real world. one told the app that so it keeps retrying. This is
These applications get into an unplanned state and a frequent problem with mobile clients, so ensure
then continuously set up and tear down connections that you have a proper mechanism for disabling
and consume battery. Runaway apps can potentially clients as part of the user deactivation process.
deplete the battery in minutes! Grrrrr! Examples of Users (whom you should always assume are
this include: impatient) will repeatedly hit the button because
“nothing happened”.
A fault or condition develops that stops the
app communicating to the origin server so it
keeps trying.
Runaway apps can potentially
deplete the battery in minutes!
15. Developing Network-Friendly Applications
Instant Messaging and other “Chatty” Apps
Isn’t IM just so yesterday? Well no, lots of people
still rely on IM and now the use of “group chat” Some of the best clients we’ve seen use
applications is growing. Moreover, many social a co-ordination server, which the mobile
networking apps, or “socially-enabled” apps device connects for a single TCP/IP session.
increasingly exhibit “chat-like” traffic profiles. Here at The co-ordination server then handles
multiple IM sessions (conversations) via a
Telefonic, we’ve seen a huge difference between good
single TCP/IP socket.
and bad IM client applications. These are probably
some of the toughest apps to optimise and it will
always be a judgement call on the right trade-off
between the messaging performance and battery life.
16. Developing Network-Friendly Applications
Here are some guidelines that might apply to IM and “Chatty” clients (including
social networks):
Do not generate separate sessions for every Hence:
connection.
Do not open lots of TCP sessions if they are not going
Do not use push for keep-alives (as this creates to be actively used. This is a case of being careful
unnecessary paging in the network). in your code design, avoiding things like setting up
sessions as part of initialization only to find that
Do not create a context for every keep- alive and tear
the code pathways later on don’t make use of the
it down again.
initialized resources.
If periodic keep-alives are necessary from the mobile,
Close unwanted sessions elegantly, thus allowing the
current thinking is that the optimum is just under 30
network to keep valid (required) sessions open longer.
mins.
Avoid leaving server applications with hung sessions.
Multiple sessions are often produced because some
devices do not close sessions, either because sessions Always close sessions that are no longer in use or
are intended to be used long term or an application needed.
closed without properly ending the session.
Do not open lots of TCP
connections if they are not going to
be actively used
17. Developing Network-Friendly Applications
TCP Session Guidelines: Advice about Content Handling and
Format:
Where possible, use a single TCP session for all
communications. Connected applications should utilize embedded
viewer capabilities on the device for displaying videos.
Ensure all TCP sessions are torn down correctly with
The app should use the mechanism (API) supplied by
FINs etc.
the device to connect with the appropriate viewer.
If TCP sessions exceed an hour, a push service is
Use compressed image formats as much as possible.
recommended.
Consider the use of <canvas> element or SVG for
If a TCP keep alive mechanism is used outside of a
dynamic graphics.
push environment the minimum duration should be
10 minutes. Use cookies sparingly.
Give preference to UDP over TCP. Use optimised codecs to transmit audio and
video over the mobile network, adjusting as much
With multiple application sessions, avoid opening
as possible to the network quality and device
lots of TCP sessions. Instead, consider sharing a
characteristics.
single TCP connection between multiple application
sessions. Make assets as lightweight as possible.
Sessions should be closed elegantly, closing all Ensure errors are handled properly and gracefully,
unused or terminated TCP sessions. Please ensure including appropriate display of user messages.
that your application logic manages connections
If an application is going to reference sensitive
gracefully and carefully.
user information, then it is worth considering best
practises in terms of protecting sensitive data,
Protocols and Data Formats:
especially if a SIM-swap is detected.
Use light-weight protocols and data formats where
possible (e.g. YAML instead of XML)
18. Developing Network-Friendly Applications
Processing Power Considerations: Asynchronous and Push Messaging:
Transmit only the information the device is able to
When supporting asynchronous messaging (i.e.
handle and process in a timely fashion.
asynchronous method invocation and asynchronous
Use circular buffering to reuse the RAM at the method dispatching), consider the following:
beginning when memory runs out, notwithstanding
the possibilities of overwriting other data.
Stating the obvious, but do not do work that you do
not need to do, or until you need to do it. For example,
if a translation application downloads text to be Use preferred PUSH mechanisms
translated into another language, then don’t do this instead of polling, or at least put
this under the user’s control.
until the user needs it, and then only for the parts
that he or she reads. (Also, consider off-loading these
tasks to the server anyway.)
Use e-MN (e-Mail Notification, which is an OMA
Be careful with memory allocation. Again, stating
recommendation) so that whenever there is a new
the obvious: do not allocate memory unnecessarily,
e-Mail, the network sends a message (WAP push)
perhaps as part of an overly zealous initialisation
to the device. If the device is “alive”, it will connect
procedure.
to get this new e-Mail. This way, the device is not
continuously sending messages to the network to
say: “I am alive.”
For clients that need to access a number of server-
side resources across different URIs, consider the use
of server-side aggregation, which co-ordinates access
to multiple TCP sessions in the network and presents
them as only one TCP session to the mobile client.
19. Developing Network-Friendly Applications
Remember that users move between networks
and tariff
Users often now move between different networks and propositions on those networks. Some advice we’d
offer is:
Don’t hardcode the APN settings into your app. Rely on the device APIs to pick up the specific network settings.
As a last resort if you can’t use the native device API then let the user manually change this in the application.
Respect your users’ confidentiality – If an application has information a user may deem sensitive then consider
deleting this data if the SIM has been swapped in the device or figure out some other way of protecting the
information.
20. Developing Network-Friendly Applications
Contributors
Mr. Eric Robotham
Head of Network Architecture, End to End Design and Data Access at O2 UK
Mr. Athar Meo
Senior Engineer – Test (Radio Networks)
Ms. Esther Arellanoo
Head of Mobile Devices
Mr. Harald Heckmann
Technical Devices Vendor Manager
Mr. Javier Lorente
Head of Customer User Interface
Mr. Manuel Cáceres
Job Title: NAS Competence Centre Engineer
Mr. Miguel Lira
New technologies manager
Mr. Neil Warren
Device Technology Manager
21. Developing Network-Friendly Applications
For Press and Media Enquiries:
33 Digital
BlueVia@33-digital.com
+44 (0)20 7608 2500
Developing Network-Friendly Applications by bluevia.com is licensed under a CC
Creative Commons Attribution-NoDerivs 3.0 Unported License. BY ND