Criton is building apps for 200+ hotels
Criton is an award-winning guest engagement and integrations platform that simplifies digital transformation, enabling hoteliers to deliver the perfect digital guest journey and maximize in-stay spend.
Criton is using Codemagic to build apps for 200+ hotels. Additionally, they run daily unit tests and nightly technical builds to test the integrity of their codebase.
Criton has a team of 15 that covers development, QA, support, product management, and customer experience. Eight team members use Codemagic regularly. Four developers use it for technical builds and unit tests, and four team members use it for triggering client app publications. “Thanks to Codemagic, any of our team members can trigger a production-level build,” said Alan Hannah, who’s a development manager at Criton.
Continuous integration and delivery is vital for Criton’s operations
“The CI/CD service is vital to our operations from many vectors. For our developers, it’s an instrumental part of their workflow. At Criton, we use Codemagic for unit tests and technical builds. We can ensure that code introduced to the codebase is stable before release,” said Alan Hannah.
Alan sees that CI/CD is vital to ensure that Criton:
- has consistency in build environments
- has/gets rapid feedback for developers
- has an asynchronous publishing process
- can scale their business
- has the flexibility and scalability to adapt to demand and platform changes
Since the start of the UK’s COVID-19 lockdown in March, Criton has seen a huge increase in demand for their product. Criton averaged three distinct app publications per day during the peak of the pandemic.
“We have written our own back-office platform in Python/Django. The back office allows customization of apps for each client. We can then trigger the build and publication process via the Codemagic API,” said Alan Hannah.
Working with clients and YAML in Codemagic
Criton is triggering white-label builds via the Codemagic API.
The Codemagic engineering team helped Criton to manage their release pipeline for their white-label customers in a single workflow rather than overloading the .yaml file with thousands of lines of boilerplate code. They can reuse parts of the configuration, define an environment variable, and re-write the parts with the Codemagic API. Criton uses this to manage multiple flavors for customers.
What impressed the Criton dev team the most was the very straightforward setup of the project. “We established a proof of concept via the Codemagic dashboard. We then moved to codemagic.yaml configuration for greater control over the build process,” said Alan. “We spoke to the team at Codemagic to discuss our requirements. The team then enabled some extra API fields that we required.”
For example, in a workflow defining a script:
&build_appbundle name: Build appbundle script: | cd $APP_DIR flutter build appbundle --release --flavor=production -t lib/main.dart
Can be called elsewhere by using the * notation. For example:
Scripts: cd $FCI_BUILD_DIR *build_appbundle
Criton team developers and QA engineers also really enjoy that they can test on a device without having to build the app themselves.
Codemagic is saving Criton 84% of time – 700 app versions within 7 days instead of 45 days
Before they worked with Codemagic, it would have taken Criton around 90 minutes per client to build and publish apps to the iOS and Android stores. According to Alan, the process required a level of technical knowledge.
“We spent around six weeks in total developing and refining tooling that triggers app publication with the Codemagic API. We’ve reduced the amount of time it takes to trigger an app publication to around 15 minutes or less. The 15 minutes is the manual effort to check the configuration before publication.
The actual time taken to build the clients’ applications on the Codemagic VMs has also been reduced to 35–45 minutes,” Alan Hannah explained.
Criton has also used other CI/CD tools. “We used other CI/CD tools for unit-test validation and publishing. The lack of joined-up processes for testing and deployment was a huge missing feature for us,” said Alan.
Take a look at other success stories: