Hotwire Tech Blog

Scribes from Hotwire Engineering

Goal

Currently at Hotwire, when developing new mobile features, the business logic and UI is written separately for the Android and iOS app. This is especially time-consuming when developing features that have a lot of overlap. Not only does this take more development time, but also both platforms end up having their own bugs. We felt that it was an interesting time to try out a cross-development tool to build features in a more unified way. One of the promising tools we decided to try out is React Native, a mobile, JavaScript Framework. In this post, I will be discussing the basics and advantages of React Native. In Part 2, I will be going into more detail regarding integrating…

Read more...

GOAL

If you are already using Jenkins for continuous integration you can easily adopt for iOS as well. You can use all the features of creating jobs like build, unit tests, smoke, and regression as well as creating pipelines. This blog helps you to get started with setting up iOS CI and also running tests in parallel on multiple computers.

1. BUILD JOB CONFIGURATION:

Discard Old Builds

Discard Old Builds controls how long we would like to keep the build records such as console output, artifacts, reports. This can be achieved by one of two criteria

Goal

Having a good automation framework is fundamental for a quality app. There are several tools available for mobile test automation but not any framework which ties them all together. At Hotwire we wanted to create a test automation framework for Mobile Native apps which will help us to scale & maintain tests as we add more features to the apps. We came up with following requirements for the frameworks:

  1. Test scenarios should be written in plain English so that it is easy to maintain & most importantly tests should reflect end user perspective.
  2. Tests should scale. Able to slice and dice tests based on features set & level of testing like…

    Read more...

Goal

Speed of deployment has always been an important metric used to judge how often and efficiently an app release can be. As we’ve mentioned in our previous post iOS Continuous Deployment , here at Hotwire, we spend a lot of time figuring out ways to reduce release regression time. Two pockets of opportunities are – reduce the test writing/execution time and another is to reduce test framework maintenance time. In the past, it has been a challenge to keep our functional testing framework robust enough with every iOS release considering third party tools(in our…

Read more...

Goal

At Hotwire one of our goals is to create processes and tools that help deploy new features in iOS apps as often as possible with high quality. In other words, we want continuous deployment for iOS apps. To get there we have two main challenges – one is regression time and another is deployment time. In this blog we will focus on how we reduced deployment time to App store from hours to minutes with the help of Fastlane & Jenkins. It took hours because there are several sub tasks involved like creating a release build, uploading to iTunesConnect, uploading binary & dSYM to Fabric (Crashlytics) for crash…

Read more...