Managing tracking code in iOS using delegation pattern

Kunal Balani posted January 30, 2017
Tracking is ubiquitous in mobile engineering. At TripAdvisor we measure the success metric associated with every feature. This also means that a good percentage of our code base consists of tracking related code. Most of the tracking changes are usually embedded in UIViewController subclass, making it rigid and difficult to test. The article introduces handling and managing, tracking changes using delegation. Let's take an example of how a tracking code within the app looks like…
Full Article

Swift, Objective-C, Or Both?

Jay Ayres posted January 11, 2016
If you are a developer of a native iOS app written in Objective-C, the topic has likely come up whether it is worth switching your app to use Swift, and if so, when, and how. TripAdvisor is no exception, and with hundreds of thousands of lines of Objective-C code in our flagship app, we have had a huge decision to make on this topic. It is unrealistic for TripAdvisor to…
Full Article

Improving the TripAdvisor Flights experience on Android

Cheng Han posted December 4, 2015
Our goal is to create a first class user experience for Android. In an effort to improve this on native apps, TripAdvisor Flights team did a great amount of work about year ago. For our flights app, because most of important flights itinerary information needs to be shown on the search header, it takes a considerable amount of screen real estate, which leaves less space for showing the search result itself. In…
Full Article

Augmented reality on the iPad

Jay Ayres posted September 14, 2015
Another blast from the past, this time related to what was then the new and shiny iPad. We are very excited to announce a brand new Virtual Tours feature for our TripAdvisor iPad app, code-named “OwlCam”. When the iPad launched last April, one noticeable shortcoming was its lack of camera, preventing augmented reality apps from really taking off on the platform. However, augmented reality is such a great tool for…
Full Article

Optimizing image sprites for high-density displays with SVG

Jay Ayres posted August 31, 2015
Note: we first published this article several years ago on our old blog. We're republishing today based both on recent staff experiences and on receiving questions on the topic from interview candidates. Image spriting is a well-known technique for improving webpage load performance. Performance is greatly improved by reducing the total number of resource requests to the server, whether those resources are CSS files, Javascript files, or image files. Spriting…
Full Article

HTML5 Navigation Timing

Ryan Hurley posted August 24, 2015
There are a lot of client side libraries and frameworks that are used on a modern website. On the TripAdvisor mobile website, we primarily use Zepto and Backbone but there are pages that use React as well. Though these tools can make a developer's life easier, they can also have a detrimental affect on client side performance. With the addition of navigation timing to the HTML5 specification, there is now…
Full Article

Going Material

Kedar Sarmalkar posted August 17, 2015
Google introduced material design in IO 2014 and finally established some strong android design guidelines. Here I'm going to describe some of things I had to do to convert the existing non-material TripAdvisor Flights screens to material design. Some of the steps were super easy and straight forward and some required a bit of troubleshooting and tweaking to get things right. Change the target SDK We had already done this…
Full Article

Making an Android Wear App

Dharmin Majmudar posted August 10, 2015
TripAdvisor helps you in multiple ways to plan your perfect trip right from finding places you would enjoy, getting trusted reviews from fellow travelers about that place, finding great restaurants that would enhance your trip and finally booking a relaxing hotel to end your perfect day. Once you are actually on your trip you would want to explore what's nearby, and what better way to lookup something quickly than turning…
Full Article

Lowering the Noise Floor

Thomas Alexander posted July 31, 2015
Automated UI testing is difficult, especially in a company that moves as fast as TripAdvisor. It seems that every week we have new features and UIs rolling out the door. Unfortunately, with all this development, there is bound to be some bugs that escape our tests. TripAdvisor currently serves 37 points of sale, with over 8 million locations, so comprehensive manual testing is frequently not an option. To aid us…
Full Article