In this edition of Digging Deeper, we sat down with our iOS development team lead, Filip, and got him to tell us more about the work of iOS developers at Bornfight.
Want to join our mobile development team? Check out our open positions:
Let’s start with a general one. Tell us a bit more about Bornfight’s iOS team…
OK, here’s the gist of it. The iOS team is a part of a larger mobile unit within Bornfight, and that unit consists of a specialized Android team and an iOS team. As far as iOS goes, I’d say we’re a very focused and tech-oriented team whose work primarily revolves around creating mobile applications that could be described as quite challenging and complex.
We work on a large variety of apps – from customer-focused lifestyle and social applications that are readily available for everyone on the App Store, all the way to highly specialized internal and B2B applications for businesses.
As for technologies, we really like to experiment, so we worked on AR and VR applications, as well as a variety of apps that utilized the IoT technology… so yeah, I’d say there’s always something new in the team. Whether it’s a new type of a mobile app we got to develop, or some new piece of tech that was just released and we want to experiment with it – there’s always an opportunity to grow, learn something new, upgrade our processes or architectures… and the best part is that everyone can be a part of it.
You mentioned a large variety of apps, let’s dig a little deeper into them…
Yeah, as I said, there’s a lot we do, and a lot to talk about. At Bornfight, our goal is to always create long-lasting partnerships with our clients, so a lot of the mobile applications we work on are long-term projects that are constantly being upgraded and made better. There are a number of apps in our portfolio of work that started as MVPs (minimum viable products) some 3-4 years ago, and have grown and are still growing thanks to those successful long-lasting partnerships partnerships and continuous upgrades. For example, Pvtistes, Ajmo! and Moja Žuja are among those apps.
So, MVP is the main approach you follow?
Exactly. Our goal is to always start with a Minimum Viable Product. We do it as it has been proven to be the quickest way to get the first functional version of the application into our clients’ hands, and because it’s a prerequisite for creating a successful long-term app development strategy.
MVP has been our approach of choice for quite some time, because when you start working on the application, it’s impossible to predict how users will react to it, how they’ll react to certain features or design elements… and that makes any kind of long-term business and development planning extremely difficult. The MVP approach turns that around because it revolves around creating the first functional version of the app with just enough features to satisfy early users, and then testing on users, receiving feedback and iterating based on that feedback. It’s more agile and flexible and, in the end, gives the application a higher chance of succeeding and achieving goals.
Excellent, excellent. Now, tell me more about those different types of apps you mentioned at the beginning…
In general, there are 2 main types of mobile application that we’re focused on.
The first type are B2B applications whose goal is most often to enhance the business processes of a certain company. When it comes to this type of mobile apps, we dig deep into the business of our client, analyze all of their processes, pinpoint pain points and see how they work, and then we define certain aspects of their business that could be made faster, more efficient or just overall better if they were done with a mobile application. This is quite an interesting type of apps to work on because every industry has its own type of specific processes and issues it’s facing.
The second type are B2C apps that are available for everyone to download right there on the App Store. And this is where the variety I talked about really comes into play, because we develop social networks, different lifestyle applications… this is also the type of apps where we’re most likely to use AR, VR, IoT and other types of technologies that are trending in mobile development.
You keep mentioning technologies, so I think it’s about time we talk some more about it…
The main point is that we always try to be on the bleeding edge of technology and to incorporate it into our workflow as much as possible. We’re constantly looking to upgrade the way we work, to make our processes more streamlined, to make development itself simpler and quicker… and new understanding new tech can greatly help us with it. I believe we’ll never reach a point where we’ll just stop and say that we know enough and that we don’t need to implement anything new.
Now, as far as specific technologies go, we use Swift as a main programming language. When I think about it, we actually started using it from the first version that was launched. We’ve also been using RxSwift as our core framework for quite some time, and with Apple releasing Combine, which is basically their version of RxSwift, we’re ready to quickly add it to our stack as it’s very, very similar.
Our main database is Realm – it’s extremely simple to setup, and it proved to be more than capable of handling any project we ever worked on. When it comes to architecture, we actually created our own, it’s called Coconut, and it can be described as a mix between MVVM and VIPER. I wrote a few blogs about it, so feel free to check them out and learn about it.
And the last aspect I should mention is deployment automation – for this, we use GitlabCI and Fastlane.
Let’s switch it up a bit. Tell me more about the iOS developer position…
Well, the most important aspect, or characteristic of iOS developers at Bornfight is that they’re able to see and understand the bigger picture behind every project they’re working on – they can independently work on a project, they know what they need to achieve and what’s the best way to achieve it, they’re also comfortable in communicating and cooperating with other teams that are working on the same project (eg. design, project management, back-end development). All in all, they’re experienced in handling mobile app projects from the first line of code to the app’s publishing on the App Store and beyond.
Another important aspect is proactivity – we expect our iOS developers to help us grow as a team, both in terms of improving the infrastructure we’re working in, as well as mentoring junior members of the team.
Those would be some of the main responsibilities of our iOS developers.
Give us a couple of examples, something more specific…
OK, got it. I believe that good iOS developers are the ones who have successfully delivered a number of applications and can give accurate estimates regarding the scope of a project, and who can also understand the process of publishing applications and the entire iOS ecosystem. Basically, developers who can independently create an iOS application.
Also, it’s important that iOS developers can detect when certain aspects of a project are a bit off or if there are more efficient ways to perform certain actions. For example, they can decide when using a custom element is better than using a native element, or vice versa. Or when it comes to working with back-end teams, great iOS devs will be able to clearly communicate what they want to get from an API etc. That’s the technical side.
The other, teamworking side, is all about proactivity and helping the team to grow. It mostly revolves around upgrading processes and sharing knowledge between members of the team through educations and workshops or by guiding junior members through tasks and projects.
You talk about working independently on projects, but you also constantly mention teamwork. Can you explain one and the other?
OK, yeah, it’s like this – as an iOS developer at Bornfight, you won’t be working alone on a project. You’ll work with other developers, project managers, designers, strategic partnerships managers… and that’s where this teamworking aspect and that team player attitude comes into play. You need to be able to clearly communicate your needs, delegate tasks to junior members of the team, report on progress…
As for working independently, that’s all about understanding technologies and frameworks, understanding the process, knowing what you need to do and how you should do it, as well as respecting set deadlines As I already said – it’s about being able to deliver the project from start to finish without having someone constantly looking over your shoulder.
What do you mean by upgrading processes? Give us some examples…
Well, for example, this can be anything from upgrading our tech stack and incorporating new tools to updating our internal wiki and creating better or faster way we can gather knowledge. There are various processes between mobile and design teams – from the way specific screens are designed to handover between our teams. We currently have one way of doing it, but there’s maybe a better way – we can maybe use some other tools or some of the steps might be done faster. The same is with our cooperation with the back-end team – we can maybe create better API routes, upgrade the way we handle documentation…
Of course, these upgrades don’t have to be internal. As an iOS developer, you can propose upgrades that’ll make our clients’ projects better, aspects or features that would be better for users of a certain app, or even help our clients reach their business goals faster – there are countless possibilities.
Why do you place such a high emphasis on it?
Because iOS is constantly changing – elements are being upgraded, new tools and frameworks are introduced, trends are changing, new devices are constantly coming out. You can’t just sit and do your thing without taking into account what’s going on in the ecosystem – you’ll be outdated in a year. And everyone else will be far ahead of you. That’s just the state of iOS, and mobile, at this moment.
Last one. What would you say to anyone who’s thinking about joining Bornfight and the iOS team?
If you like to work on challenging applications that will enable you to quickly grow your skills and expertise, this is the right place. You’ll have the chance to grow both personally and professionally – work on projects, upgrade the entire iOS team, guide others and help them grow, and have fun doing it.
Well, OK… that’s it then. Recording done!
That’s been all for this edition of Digging Deeper. If you’d like to join our iOS Development team, check out the open position for an iOS Developer.