With this post we want to share the changes we made to migrate to the latest version of Ember.js: Ember 1.13. Although most of the issues are called out (via the Ember Inspector browser extension) by the deprecation system and clearly detailed in the respective transition guides, this information may be of interest to other application developers.
When was the last time you looked at your website's browser statistics? If you have, you've likely noticed a trend that's pretty hard to ignore - your users are browsing from a mobile device more than ever before. What was once a small sub-segment of your audience is now growing and representing the majority of your traffic. This may not be so surprising since today mobile usage makes up about 15 percent of all Internet traffic. Basically, if you don't already have a mobile development strategy, you may already be loosing sales/users due to poor mobile performance.
Responsive design takes care of your website's layout and interface, but performance testing for mobile devices makes sure your app can handle hundreds (even thousands) of concurrent users. A small delay in load-time might seem like a minor issue, but slow mobile apps kill sales and user retention. Users expect your apps to perform at the same speed as a desktop app. It seems like a ridiculous expectation, but here are some statistics:
- If your mobile app fails, 48% of users are less likely to ever use the app again. 34% of users will just switch to a competitor's app, and 31% of users will tell friends about their poor experience, which eliminates those friends as potential customers. 
- Mobile app development is expected to outpace PC projects by 400% in the next several years. 
- By 2017, over 20,000 petabytes (that's over 20 million gigabytes!) will be sent using mobile devices. Streaming is the expected primary driver for growth.
- 60% of mobile failures are due to performance issues and not functional errors. 
- 70% of the performance of a mobile app is dependent on the network. 
- A change in latency from 2ms (broadband) to 400ms (3G network) can cause a page load to go from 1 second to 30 seconds. 
These statistics indicate that jumping into the mobile market is not an option but a necessity for any business that plans to thrive in the digital age. You need more than just a fancy site, though. You need a fast fancy site. And the surefire way to guarantee your mobile site/app can scale and deliver a great performance regardless of the level of stress on the system is to load test early and continuously throughout the development process.
Most developers use some kind of performance testing tools during the development process. However, mobile users are different than broadband users and therefore require a different set of testing tools to make sure they are represented realistically in the test environment. Mobile connections are less reliable; each geographic area has different speeds; latency is higher for mobile clients; and older phones won't load newer website code. Therefore, you need real-world mobile network emulation and traffic simulation.
Prior to the availability of good cloud performance testing tools, most people thought the solution to performance problems was "more bandwidth" or "more server hardware". But those days are long over. If you are to stay competitive today, you need to know how to optimize your mobile code. Good performance testing and traffic simulations take more than just bandwidth into account. Network delays, packet loss, jitter, device hardware and browser behavior are also factors that affect your mobile website’s or app’s performance. To properly test your app or site, you need to simulate all of these various situations - simultaneously and from different geographic locations (i.e. not only is traffic more mobile, its also more global).
You not only want to simulate thousands of calls to your system, you also want to simulate realistic traffic behavior. And, in reality, the same browser, device and location aren't used when accessing your site or app. That's why you need to simulate traffic from all over the globe with several different browsers and devices to identify real performance issues. For instance, it's not unlikely to have a situation where an iPhone 5 on the 4G network will run your software fine, but drop down to 3G and the software fails. Only realistic network emulation covers this type of testing environment.
Finally, simulating real user scenarios is probably the most important testing requirement. Your platform's user experience affects how many people will continue using your service and how many will pass on their positive experience to others. Real network emulation performs the same clicks and page views as real users. It will help find any hidden bugs that your testing team didn't find earlier and will help you guarantee that the user experience delivered to the person sitting on a bus using a 3G network is the same as the individual accessing your service seated at their desktop connected through DSL.
Several years ago, mobile traffic was negligible, but it's now too prominent to ignore. Simple put, don't deploy without testing your mobile code!
Check out Load Impact's new mobile testing functionality. We can simulate traffic generated from a variety of mobile operating systems, popular browsers, and mobile networks - including 3G, GSM and LTE. Test your mobile code now!