Mobile App Localization - Flutter From a Business Decision Perspective

Mobile app localization

 

Sign up for our newsletter on globalization and localization matters.

 

BLUF - Bottom Line Up Front

It has long been known that mobile applications are a high-impact market, one that is still growing exponentially every year. It has also been long-standing knowledge that localization is an important marketing force multiplier, but is all too often overlooked and treated as an afterthought. Furthermore, implementing localization in something as complex as a mobile application presents a unique set of challenges with it: developers need to allocate extra time and effort in implementing a localization framework to enable the translation of the app content, project managers on both sides of the aisle need to work with non-trivial file formats and workflow requirements, and linguists need to deal with often-cryptic and confusing formats mandated by localization engines.

My goal with this article is to help you understand how Flutter can support your team’s efforts not only by helping them build a more stable app but also by facilitating the interactions between the developers and other stakeholders such as copywriters and your translation agency of choice, all the while improving time-to-market and iteration speed. It does this not only by treating localization as a first-class citizen in its architecture, but also by using a file format that’s relatively easy to understand both for developers and other, less-technically-inclined stakeholders.

For an overview of the most popular mobile frameworks, with a special eye for their localization support, check out our blog post “Mobile App Development with Localization In Mind- Part 1”. Complement this with our detailed article on using the Flutter framework in localization.

Flutter For Interactions

One of the points of friction between software developers and LSPs is that the file formats that translators prefer to work with are usually not the same as those that developers are prepared to work with. This is usually because the two camps have very different use-cases for content, resulting in different requirements that don’t mesh well. However, Flutter’s Application Resource Bundle (ARB) format has the potential to be the bridge between these two shores.

Flutter vs Your Team

Implementing localization in a mobile app can involve multiple stakeholders, including developers, project managers, and linguists. Flutter's ARB format can streamline the workflow by providing a standardized and easy-to-understand format for managing app content translations. Developers can use familiar tools and techniques to create and manage ARB files, while project managers can easily coordinate translation efforts with linguists using CAT tools that support JSON files. This can lead to more efficient communication and collaboration between  team members, reducing the likelihood  of miscommunication or errors during the localization process.

At its core, ARB is just a JSON (Javascript Object Notation, a relatively easy-to-read way of describing a given structure) which lends itself well to being edited by developers - since it’s the primary data exchange format of the world, almost all developers have at least some knowledge of it - while being relatively easy for “outsiders” such as copywriters as well to read and understand. This means that anyone can contribute to the app’s content, in a way that is easy to track and ensures that the translations are kept up to date as well (more on how this can be done later).

Flutter vs Your Language Vendor

Flutter's use of the ARB format as a flexible and standardized means of bridging language services providers (LSPs) can greatly improve interaction between your development team and your chosen translation vendor. Almost every CAT tool nowadays has some form of support for JSON files, which extends to ARB as well. This native support allows ARB files to be handled without the usual, time-consuming adaptation processes, saving time and money on both sides. Your developers don't have to go through complex procedures to provide your LSP with easily-handled files, while the LSP’s localization engineers don't need to spend extra time  filtering and adapting the files for translation. By removing these extra steps, Flutter can greatly contribute towards a smoother workflow and a better relationship between your team and your LSP, not to mention the cost savings of avoiding unnecessary engineering hours.

Flutter vs Bugs

Because Flutter is built on a strongly-typed language (which essentially means that if you declare something to be a certain type, like a duck, you cannot then try to make it behave like another type, like a dog), it is immune to entire classes of bugs and errors that can plague developers working in other languages. Because the language works with your team to build  a more secure and more stable application, your team can focus on the really important things, like building new features, instead of chasing a myriad of bugs.

Furthermore, Flutter’s well-developed testing environment offers not only provides the ability to test the basic units of your application, but also the ability to test your app as it behaves on a real device, including how it looks and whether all content is visible on the screen (this is something I had to iterate on several  times). With the appropriate setup, it is even possible to automatically take screenshots of the app during testing, not only for debugging purposes, but also for use as promotional material.

Flutter For Iterations

Flutter also has advantages beyond the project management and interaction scopes too. In fact, it has even more to offer to developers and engineers who use it in their projects.

Aside from the many technological advantages it has - which are beyond  the scope of this article, but you can read more about them in this article’s companion  piece - there are two in particular that should stand out for decision makers: its speed of iteration and its “Write once, run everywhere” nature.

Flutter vs Time-to-Market

The ability to quickly and easily add new languages to a mobile app can significantly impact the time-to-market for international releases. Flutter's ARB format allows for efficient localization workflows, enabling development teams to easily create, manage, and update app content for multiple languages in parallel. This can help accelerate the localization process and reduce the overall time required to launch a localized app in new markets. Additionally, Flutter's hot-reloading feature allows for real-time updates and previews of app content changes, making it easier to iterate and fine-tune localized content during the development process.

Flutter vs Delivery

As most current frameworks do, Flutter also lends itself well to the automated test-build-deploy process of Continuous Integration/Delivery. Not only can its various forms of testing be automated and offloaded to external services, but it’s also quite trivial to offload the delivery process and create a pipeline where the entire value chain can be kicked off and run to completion, fully automated.

Closely related to this,  it’s even possible to integrate the localization step of the process into said pipeline. Since Flutter enforces the presence of localized content files for all languages the app declares support for, the build system can - and does - check for their presence at build-time, and fail the pipeline if one or more locales don’t exist. And with the right tools in hand, it’s even possible to automate the handoff of the content files to your language vendor (along with the retrieval of the translated content), freeing up valuable time to focus on what’s really important.

Conclusions

After a thorough examination of Flutter, there are two noteworthy aspects that I would like to highlight. First, using Flutter can speed up the development process and, more importantly, accelerate the delivery of the product by incorporating the localization step into the process. This makes it easier to include localized content and ensures its presence in the final product.

Second, Flutter streamlines the process by using a file format that is understood by both developers and translation companies, thus saving valuable engineering time that would otherwise be spent manually converting files between the two groups.

Finally, for the more engineering-minded among you, there’s another article that focuses more on the developers’ perspective of Flutter strong points. You can read it via this link if you’re interested in another point of view.

 

Do you want to contribute with an article, a blog post or a webinar?

We’re always on the lookout for informative, useful and well-researched content relative to our industry.

Write to us.