Mobile development

We are true experts in advanced mobile applications for iOS and Android platforms. We’re experienced in many industries including fintech and telecoms, building messaging apps, social platforms, mobile banking software and more.

What we do

iOS native

We started building complex iOS apps when the first iPhone launched, and have been developing our talents with every new release. We understand the Apple ecosystem, and how to create high-performing software.

Our specialist knowledge includes:

  • Extensive experience with Objective-C and Swift
  • MVVM-C design pattern for project architecture
  • RxSwift and Combine frameworks to carry out complex operations

Android native

We know Android inside-out, building advanced apps on this platform since 2012. We’ve amassed a wealth of experience in Android native development, getting the very best out of its ecosystem.

Our specialist knowledge includes:

  • Extensive experience with Java and KotlinTypography
  • MVVM design pattern for project architecture
  • RxJava and Flow frameworks for complex operations
  • Coroutines for writing asynchronous code

Flutter

We combine deep knowledge of native iOS and Android with cross-platform solution Flutter. Backed by Google, it means we can build apps for both operating systems using one codebase.

Our specialist knowledge includes:

  • Detailed understanding of the declarative nature of Flutter
  • Component-oriented architecture and software testing
  • Experience in publishing Dart/Flutter libraries to the pub.dev repo

React Native

React Native is a powerful framework used for building cross-platform applications. Backed by Facebook, it’s another great option when creating apps for Android and iOS platforms using one codebase.

Our specialist knowledge includes:

  • Writing bridges to connect native modules with JavaScript
  • Redux for state management and Redux-Sagas for async side effects
  • Declarative UI paradigm to manipulate native views directly
IMfG 2
mobile app development ekipa

Why it works so well

Fully in-house iOS and Android teams

Everybody is together in the same office. It’s better for team spirit, problem-solving and instant knowledge sharing.

Continuous Integration & Deployment

As engineers, we strive for automation, because it reduces human error, it’s easy to build processes around, and it saves us time.

Read more

Reactive programming

All our layers are glued together using the Reactive programming paradigm. That way we get reactive data flow inside the app so users experience real-time changes.

The best open source frameworks and libraries

We take advantage of the very best on the market, avoiding spending time developing standard elements and instead dedicating resources to valuable features.

Automated and manual testing

Rigorous testing processes make sure everything we deliver meets very high standards, and all our code is specifically written to be testable, maintainable, and to easily incorporate new features.

Read more

We follow Apple HIG and Material guidelines

We understand how to develop reusable and high-performance UI components that are in line with Apple Human interface guidelines and Material guidelines.

App store regulations assistance

We handle the entire approval process from start to finish for both Google and Apple stores, guiding you on the best practices for optimal approval.

Our Work

We’ve loved working with many fantastic companies, and are really proud of what we’ve achieved together.

Explore our projects →

new image Metaswitch

Metaswitch – a Microsoft company

Unified communication apps


View case study →

asseco smaller new

Asseco

Mobile banking app

View case study →

Still unsure about something?

Don’t worry, whatever it is, we’ve got you covered in our FAQ.

Some of the most common errors in Android development that others do but we don’t:

  • Memory leaks by passing context to async tasks
  • Performing background work on the main thread, blocking the main thread
  • Developing UI without taking into account different screen dimensions and densities
  • Using view hierarchy that is too deep

Back in 2014 we made our first production real-time chat using WebSockets.

Since then, we have moved on to ejabberd XMPP which has excellent support, both on the server and client side, making development and creating features like ‘seen’, ‘delivered’ and similar functionalities quicker and simpler.

But we don’t just use that. When working on the Fling app we actually worked directly with ProcessOne, the awesome guys who created ejabberd. They took care of the server side, while we in DECODE handled the client side. Later we also worked with Erlang Solutions XMPP platform MongooseIM and some other proprietary technologies.

As far as third-party services are concerned (where there isn’t so much room for hard-core modification) we have tried out TokBox, Twilio and Bandwidth, and used Sinch (a tool from the same category which also offers audio and video communication).

Yes. In today’s environment, being agile is one of the most important things. Being agile doesn’t mean a lack of processes, but rather the opposite. Having good efficient processes and a strong working methodology helps us to be agile and at the same time organized and predictable.

Read more →

Yes, we also do maintenance.

We see that as continuous work after the first version is published. Releasing the first version of a software product is just the beginning. Our belief is that the real work begins after launch.

So we strongly encourage you to plan your budget so you can have a dedicated team working on your project after launch (this could be in reduced capacity). This option gives you confidence that the team monitors how the project behaves in the real world and acts quickly based on the data from the field.

Also, to create a successful product, you should iterate it based on the usage analytics – your users know best what they need.

We like to automate everything to reduce human error whenever possible. Being able to implement sustainable continuous integration workflow is very important so we can deliver new versions regularly and often, ensuring there’s no regression and everything works as intended. 

We have written multiple articles about this topic available to read here:

Native apps, as the name suggests, are used to build apps for a specific platform – iOS or Android – and so the programming language used would differ based on the platform.

For native Android app development, developers program with languages such as Java or Kotlin. For native iOS app development, we have a choice of Swift or Objective-C. As the native apps are written for a specific platform, they are more responsive, faster, and perform better in terms of animations. Native apps are also preferred over cross-platform apps when data protection and security is crucial.

Cross-platform apps, also known as hybrid apps, are coded once and run on multiple platforms. We can use different technologies to develop hybrid apps like React Native, Flutter, Xamarin, and Ionic to code the mobile app, using a browser supported technologies such as Html, CSS, JavaScript. Hybrid apps have their own advantages like a single code base, overall lower development cost, easy maintenance, and faster delivery.

Read more about this in our blog → 

In the spotlight
See all →
Trusted by great companies
ATT
RoyalCaribbean logo white
Asseco
Microsoft logo white
MetaSwitch logo white
Sofa Score
Work04

Let’s introduce ourselves

Find out more about who we are and why we love what we do.

About us →

Work05

Our modus operandi

Work with us and you get a highly skilled team devoted to you and your product.

How we work →