How did it start?

The origins of Flutter at Appunite go back to mid 2018, when it was still in beta phase. Since we were not yet fully convinced of its capabilities, we started with a PoC (Proof of Concept) to test whether it would be suitable for the nature of that project. The PoC was very successful so we continued to work on the project and it was as early as in 2019 that we managed to start 4 more, smaller as well as bigger, projects. Since then, we have been constantly developing the Flutter team.

Join us

What is our team?

At Appunite, everyone actually belongs to two teams at the same time. The most common type is a team working on a specific product. We also have platform teams such as Elixir, Android, iOS or just Flutter. Platform teams focus on specific technologies. It is aimed at developing members, exchanging knowledge between projects, or sharing knowledge about a particular technology with people outside the company, which results in articles, written by us, which you can find here.

How does the team work together?

What is it like to work in our team?

We have weekly platform meetings, the nature of which is entirely up to us. So at any time anyone can suggest making changes. Getting down to specifics, currently the meeting schedule looks like this: at the beginning we share what we worked on last week. We present interesting problems that we have encountered, and if there is a need, we jointly look for the best solutions. Does this mean that we have to wait a whole week to ask others for help? Of course not! It's always a good idea to describe the problem on a shared channel on Slack (communication tool), where we are all happy to help. Once we have discussed all the issues related to the projects, we move on to discuss a previously chosen issue. These may be various topics: a presentation of a new library for Flutter by one of the members, a discussion of architectural approaches in our projects, or a discussion of another problem we've found that hinders our daily work. Of course, there is no shortage of small talk on a variety of topics during our technical talks.

Conferences and Meetups

Flutter has a big community that constantly develops the framework but also gives opportunities to meet and chat with other developers in person. There are a lot of events, conferences, and meet-ups that we can take part in. It’s a chance to listen to great speakers and be updated with the latest news about Flutter and Dart while integrating and having fun with new people. We don’t need to worry about tickets because AppUnite covers the costs. We’ve already been to the biggest Flutter conferences - Flutter Europe in Warsaw, Flutter Global Summit (online), and Flutter Vikings in Oslo. It was a fantastic time where we got the engage with our technology gurus and meet Flutter folks worldwide. We even organized our internal AppUnite Mobile Talks meet-up, where we exchanged knowledge between mobile platforms. Each event brings new inspiration and motivates us to develop and improve our work constantly. After the official part, there comes a time for fun. We reach for a beer or arrange NERF shooting competition. We enjoy spending time together and getting to know each other better.

Values that are important to us

One of the most important values for us is proactivity. We do not want to remain passive. Development and broadening of horizons are incredibly important to us. Therefore, the opinion and ideas of each member are always taken into account.

The exchange of knowledge between different teams in many companies is often neglected, and can bring a lot of benefits that we may not realize on a daily basis. That's why we put a lot of emphasis on it during our weekly meetings and daily communication with each other.

Code review

An important part of our daily work is code review, where we check the changes made by another developer. By thoroughly understanding the code, checking the changes locally and suggesting improvements or pointing out errors, we are able to learn faster, learn about more favorable solutions and prevent errors in the application, which has a real impact on customer and application user satisfaction.

Working atmosphere

A good working atmosphere is also an important aspect. We want to be transparent that we care about the best possible relations between team members. It is easier and definitely more pleasant to work in a team you can rely on. Thanks to the company's outing budget, we have the opportunity to meet outside working hours for integration. There are many ideas, going bowling or to an escape room, having a bite to eat or getting a good drink 🍺.

The values we live by are an extension of our company-wide values, which you can find here.

Technology Approach

Testing

The tests are a crucial part of our work. If you don’t like to write tests, we will show you what power lies within them. All our current projects have implemented test standards for unit and golden tests, while some are running integration tests in Flutter (we’re actively working to implement them in other projects).

We also actively cooperate with the QA team, which helps us take care of the quality and stability of our products.

CI/CD

Nobody likes monotonous work. This is why we use CI/CD in our projects (if you don't know what it is, check out one of our articles on this subject GitHub CI/CD for Flutter project. In projects, we use GitHub Actions, GitLab, or CodeMagic. What do we use CI/CD for?

Testing, checking the format of the code, releasing new versions of the application, and many others depending on your needs and creativity 😁.

Architecture

Currently, most projects are based on the BLoC architecture and Clean Architecture, but this does not mean we are closed off to this solution. We actively explore other approaches to find alternatives, which are presented at our weekly meetings. The most important thing for us is to separate the code in a way that the project in which we operate is transparent, understandable, and consistent with good practices, such as SOLID, KISS, or DRY.

We use REST and GraphQL API in projects, depending on the needs.

We try to use a reactive approach using streams.

UI / UX

Our applications are based on Material Design, thanks to which future interface changes do not take much time. In accordance with company values, we actively participate in product development, keeping constant contact with designers.

So, when will you join us?

Team of people on dark background We create a great growth environment and we have our radar calibrated for challenges that we’re facing. We need great people on board. Become one of them! Apply now!