Test Automation focus on Mobile application
testing – Looking at the challenges of this space created due to network,
platform & device diversities and in increasing complexity of mobile apps
all traditional test automation tool are extending their capabilities in mobile space On the mobile side till now, screen/image comparison tools were used for
functional automation with platform like device anywhere and now a new type of
mobile testing automation tool which work on object comparisons like mAutomate
are getting lot of traction due to their capabilities of asynchronous remote
testing of mobile application over-the-air and reporting of performance numbers
along with test results.
Saturday, January 12, 2013
Friday, January 11, 2013
Enterprises to adopt hybrid app development strategy
1 Enterprises
to adopt hybrid app development strategy – with high diversity in mobile
devices and tablets which are expected to be used by enterprise workforce (with
BYOD coming), the enterprises will be surely moving on from native apps to
hybrid where they can support multiple device platforms and form factor
diversity using single code base. The next generation of true hybrid
application development platforms like eMobilizer will fuel this growth. They
provide structured development of single codebase using HTML 5,CSS 3 and Java
script which can blend together with native containers that can render it using
platform native controls to provide platform specific User experience.
Friday, January 4, 2013
Five major trends in Mobile for 2013
Mobile continues to be the key focus area of growth in the
ecosystem around us. The growing internet traffic from various mobile devices
had forced all business consultants to focus on mobile as a major channel for
delivery of services and reach-out to their existing & prospective
consumers.
Enterprises mobility is no more restricted to email/exchange
but are now focusing on mobility of their workforce and empowering it with
mobile apps which can help them with quick response and faster decision making.
High end dual/quad core processors are getting popular on
mobile/tablets, which allows for more complex applications to be developed for
the diversified set of mobile device platforms starting now from iOS, Android to
WP8 and BB10.
Five major trends
that I can predict for 2013 and you all will see are:
- Enterprises to adopt hybrid app development strategy
- Test Automation focus on Mobile application testing
- Customization of Android Tablets in various Industry verticals
- WP8 & BB10 will start showing their presence in consumer & Enterprise space
- BYOD: Bring Your Own Device
Stay tuned for more details on each of these above….
Connected Information Device Ecosystem and Moving Trends
User is
looking for synchronized Information across various connected devices including
mobile and non-mobile devices. This leads to the emergence of new ‘connected’
information devices ranging from Smart televisions to personal hand-held
devices. This multimode information delivery system empowers the ‘user’ to be
more productive. Switching
frequently from one connected device to other, User expects the application to
manage its session & state for the user to continue on the other device. This
trend creates an ‘ecosystem’ – comprising the matrix of devices along with the
latest and authenticated Information flowing through for each User.
User expects consistent
UX of an application across all devices, and does not want a new learning curve
for each device. On the other side, Enterprise App Providers’ are exploring the
way to manage single codebase for each delivery platform and want to hold their
‘User’ keeping the cost of production low. This scenario has
pushed towards ‘Technology Neutral’ UI engineering to deliver consistent UX
irrespective of the end device.
True Hybrid app development frameworks like eMobilizer are available in the market now that actually blends the platform independent HTML based UI components and render them on the target platform using native UI controls, to not only match the UI look&feel of the target platform but also provide platform specific User experience to the end users - using single platform neutral code base.
Introduction
of HTML5 and the blend of mark-up languages with ‘scripted programs’ opens up a
new horizon for delivering ‘smart’ and stable interfaces. Cloud powered
Smart Hybrid Application architecture adds a new dimension to handle the aspect
of application delivery and device computational power.
Emergence of
devices like Smart TV - promotes the fusion of media with information. On the
other side, social platform promotes user to be connected to each other. This
inter fusion of these two worlds creates a new space in the world of
Information Technology, Media and Entertainment. Businesses are
looking forward to take advantage of getting connected to new and prospective customers
and keen to be ‘present’ on every possible information device in the ‘ecosystem’.
Trends show that
Users not only expect latest Information, but want authenticated personal
data/information for instant interpretation and consumption to enhance productivity.
This trend leads to Interface designs to ease out the user while interacting
with large volumes of information. On the other hand, user wants to secure his personal/private
information, so the security aspect of the devices in ‘connected device
ecosystem’ is really going to be a challenging area.
We all have seen how web apps have been
extended to mobile & Smartphones in the past, and now all of them are
quickly moving to iPad and other tablets. Current forecast indicate 350 million
connected TVs set to be sold by 2015 and related TV applications are predicted
to generate a remarkable $1.7 Billion in annual revenue by 2013. This will force all successful connected apps
to extend to smart TV and touch screen based business TVs.
Monday, March 7, 2011
Memory Management (m-Cube Level 1)
Memory is one of the main resources for mobile devices. Managing this resource in an optimum manner is one of the main challenges for mobile application developers… Even though there are numerous devices in the market today that have good memory capacity… it is still important that the memory management is not neglected.
While developing mobile applications, one should always use optimal solution for memory usage. For instance, if applications want to display an image on the screen, then using PNG format instead of BMP is advised..
If a single application is used for multiple screen resolution devices, then all the resources should be downloaded from the server at the first launch. This way… the application need not increase its size by packing all resources of different screen sizes together in the final distributable.
If the application want to display a tile pattern in the background of the screen.. it will make more sense to use a small image and render it multiple times on the screen to create the impression of a big image. This way, the applications can reduce the actual memory required to store that big image and it will help in scalability of the app to other screen resolutions.
Also … applications should consider memory fragmentation rules as to allocate memory in the power of 2.
let’s suppose it would require 15 bytes to store a string, applications should allocate 16 bytes (2^4) as it would be easier to add/delete those memory blocks.
Also, try to allocate large chunks rather than small ones. For example, instead of allocating a single object, allocate an array of objects at once and then start the processing the same.
Another factor is Lazy loading, also known as dynamic function loading. Here, applications do not load all the components by default into the memory when a program is started…
In lazy loading, all dependent components will be loaded as and when required by the application. It can be used to improve the performance of an application, if most of the dependent components are not used together on a single screen but are required at different points in the application flow.
All mobile applications should ensure that they do not use more memory than actually necessary.
Memory management should also adhere to the guidelines of the corresponding OS. For example, an iPhone app should follow the guidelines for using an AUTORELEASE POOL.
If the applications want to store a received object completely in an instance variable, then they must retain or copy it. They should generally not use weak references and decide where they would require a Deep Copy of objects and where a shallow copy will do.
While developing mobile applications, one should always use optimal solution for memory usage. For instance, if applications want to display an image on the screen, then using PNG format instead of BMP is advised..
If a single application is used for multiple screen resolution devices, then all the resources should be downloaded from the server at the first launch. This way… the application need not increase its size by packing all resources of different screen sizes together in the final distributable.
If the application want to display a tile pattern in the background of the screen.. it will make more sense to use a small image and render it multiple times on the screen to create the impression of a big image. This way, the applications can reduce the actual memory required to store that big image and it will help in scalability of the app to other screen resolutions.
Also … applications should consider memory fragmentation rules as to allocate memory in the power of 2.
let’s suppose it would require 15 bytes to store a string, applications should allocate 16 bytes (2^4) as it would be easier to add/delete those memory blocks.
Also, try to allocate large chunks rather than small ones. For example, instead of allocating a single object, allocate an array of objects at once and then start the processing the same.
Another factor is Lazy loading, also known as dynamic function loading.
In lazy loading, all dependent components will be loaded as and when required by the application. It can be used to improve the performance of an application, if most of the dependent components are not used together on a single screen but are required at different points in the application flow.
All mobile applications should ensure that they do not use more memory than actually necessary.
Memory management should also adhere to the guidelines of the corresponding OS. For example, an iPhone app should follow the guidelines for using an AUTORELEASE POOL.
If the applications want to store a received object completely in an instance variable, then they must retain or copy it. They should generally not use weak references and decide where they would require a Deep Copy of objects and where a shallow copy will do.
Thursday, November 25, 2010
Interrupt handling (m-cube: Level 1)
I think interrupt handling is one of the crucial parts of any mobile solution.
So many times it happens that while running a mobile app, there are interruptions such as an Incoming Calls, Text Messages, low memory or a low battery notification. A good mobile solution must be able to handle these notifications gracefully… and without any disruption. Few of the important aspects to be considered here are
• Application suspend and resume should be handled properly especially for incoming calls and Text Messages.
• The UI and media, such as images, sounds, context pointers should be released on SUSPEND event.
• Low memory notification should be given highest priority and unused memory should be release immediately.
• Suspend routine should be small and must not consume time.
• Object Serialization/De-serialization and state management should be considered.
• Context sensitive handlers should execute data processing in case of interrupt handling.
• Thread safe the execution of processes, so that the UI threads will be in a sleep state until interrupt is executed.
Every mobile platform has its own recommendation for interrupt handling. For example, in the iPhone Applications, the low memory notifications must be appropriately handled and necessary steps should be taken like cleaning up the stale resources.
However, if the iphone application is data centric, the “Application state management” should be present. This will be required to handle the premature exit of the application; for example, if the last session of application is closed abruptly, the application should be able to serialize its state before exit, and when the same application is accessed, it should initiate from the same point.
Similarly in BREW applications, “Suspend and resume behavior” is one of the very important recommendation of NSTL TBT certification. As per the NSTL guidelines, BREW application must suspend itself on notification of incoming call and must resume from same point after the call is finished.
In the case of a client-server based mobile application, the app must have ability to check network connectivity (GPRS or WI-FI). If the connectivity is not available, then the application should keep information (to be synced with server) in some local storage and sync it with the server when the network is available next time.
For mobile devices like iPhone, iPad, Windows mobile phones, that supports bolth..landscape and portrait modes, the application should be able to provide the required support with the help of appropriate delegates/ events.
Subscribe to:
Posts (Atom)