Qvik – creating impact with design & technology
Qvik was founded in 2008 and has more than 85 designers, developers and business consultants. They produce desirable digital solutions based on years of experience. To fulfill their customers’ needs they combine strategy, concepts, design and development seamlessly for creating the best digital experiences. They do more than talking about impact — they deliver measurable results. Qvik is the leading mobile application consultancy company in Finland with hundreds of successful projects.
Qvik’s Software Engineer Katri Vilonen told us what triggered them to get started with Flutter, why did they decide to implement a CI/CD tool, how they made it to Codemagic CI/CD and how much time they save with a CI/CD tool.
What prompted you to choose Flutter?
As a consulting company, we had a couple of developers interested in learning Flutter and waiting for a new project. We had been talking about an internal project for a while so we decided to start developing that with Flutter. Our developers’ background was mostly in mobile development so learning the cross-platform framework was something most of us were interested in.
How do you feel about the learning curve? What projects are you building with Flutter?
We currently have one customer case with Flutter and one internal project. Our internal project team started with zero knowledge of Flutter and were able to start developing the application pretty fast. What helped with that was that we have an internal Flutter guild where some of our developers share their personal Flutter projects and experiences. The team was able to get a lot of help from the guild members with the most knowledge. All of us had varying levels of experience in mobile development which also helped to speed up the learning process. By the way, one of our developers has even written a blog post about his Flutter experience.
How many builds and tests per week do you usually do?
When developing was the most active, we did around eight builds per week. The number of tests is the same, we run tests before each build.
Why did you decide to implement a CI/CD tool in the first place?
Unfortunately, when we started working on our CI/CD setup, a global pandemic changed the working conditions of our company. Our project was in Gitlab and our first instinct was to use Gitlab CI/CD. We had had an old Mac mini set up as our CI/CD worker at the office for building iOS and Android apps but that had been disconnected from the internet and no one was willing to risk the coronavirus to go to the office to set up a worker for the internal project. So we landed on Codemagic.
The reason we wanted to use the CI/CD was because of the ease of release for the next batch of developers who would be contributing to the project. As a consulting company, our developers sometimes have to wait for weeks to get a new project so we wanted testing, building and publishing the app to be as streamlined as possible. That way the new devs that are starting in the project can just start developing and push their branches and our testers can test their new feature within an hour. The developers can concentrate on building new features, rather than the pain of going to the App Store and then the Play Store consoles.
Which CI/CD tools have you used in your previous Flutter projects?
In previous projects, we have used Jenkins, Travis, CircleCI and Github Actions but this time we wanted to try something new. Gitlab’s CI/CD was otherwise great and working for us but we didn’t have a runner setup on a Mac device that could run our iOS app. This means that half the benefit was rendered useless. Migrating from Gitlab CI/CD to Codemagic was relatively easy. The simple GUI was also a plus in Codemagic’s favor.
How much development time is saved by using Codemagic CI/CD?
After a feature branch gets merged we can move onto another task right away and let Codemagic handle tests, builds and releases so we save a few hours of repetitive work per each build.
How was your experience setting up your project(s) in Codemagic?
Scripts, environment variables, various other settings and web UI overall were really easy to use.
Read more about Qvik from their website or take a look at other success stories: