One of the great things about working at Novoda is that we often get to use the expertise we’ve gained to help the wider developer community. Sometimes that takes the form of attending meet-ups and speaking to other developers, while at others, it becomes something more formalised. Last month saw us working on the latter, when Novoda was commissioned by Flutter to write Flutter for iOS Developers.
Flutter is Google’s mobile app SDK for crafting high-quality native interfaces on iOS and Android. It’s come a long way in the last 12 months, moving from early alpha to production ready beta. To keep up with this epic pace of development, Flutter needed to update the documentation, and we were on hand to make that happen.
The documentation itself lives on the Flutter website. As a company that often uses Flutter, with engineers who are constantly exploring new technologies, Novoda was ideally placed to help update that. We have several team members who regularly use Flutter, including Sebastiano Poggi, one of the few GDEs in Flutter Google Developer Expert for Flutter and Identity, and Niamh Power, an iOS engineer who has hosted training sessions and spoken at meet-ups on the subject. In short – we had the right team to take on this challenge.
Like any Novoda project, we approached the task with an initial meeting to discuss the scope of the work, before deciding together how we would split it up. This allowed us to leverage our normal toolset and use the best practices that underlie all Novoda projects.
One change from the norm was our use of GitHub ‘Projects’ feature. This is a lightweight version of our normal story tracker, Jira, and we found it lent itself well to small self-contained documentation tickets, that didn’t necessarily need estimating or detailed logs or discussion attaching.
When a ticket was complete, it was then reviewed by three different engineers, before a pull request was made on the Flutter website repository. This meant that any mistakes were spotted early. Making sure that people in different roles reviewed the documentation further helped with this - different viewpoints often means that different errors are spotted, and ultimately, all are caught.
We weren’t starting from scratch with the documentation – Flutter for Android Developers and Flutter for React Native Developers already existed, which gave us a great base to start from. In fact, we could use the Android document to form the skeleton from which to build out the iOS documentation, allowing us to duplicate the topics that were similar, and maintain consistency in layout between the two, which would benefit developers reading both later down the line.
For instance, the Navigation section could be duplicated, whilst adding Localisation of Strings which was iOS specific. We adjusted the order of topics between the Android and the iOS version, due to some iOS topics being more closely related than in its Android counterpart. This allowed us to cater for the typical iOS engineer’s base iOS framework knowledge, and to create a more readable document for the intended audience.
Now the documentation is live and Flutter development work is continuing, there are always more updates that can be done, but getting to this point provides a baseline of documentation that any new engineer to Flutter can use. In fact, due to the speed of Flutter’s development, there are already some new features that we can add, regarding Web Views and maps in the near future.
Flutter at Google I/O
After we completed the work, Novoda attended Google I/O. While there, it quickly became apparent that Flutter was a hot topic of conversation, despite no big feature announcements being made. There were plenty of talks on the subject, which have definitely enticed a whole new group of developers to try the platform out.
There was also the Could, Firebase & Flutter tent, where you could find members of the Flutter team willing to answer questions regarding the technology. For the Novoda team, it was great to meet the people who had been reviewing our pull requests and providing feedback on the work.
The future of Flutter
Here at Novoda, we’re excited to see the next year for Flutter. It’s got so much potential, and is such a fun and fast way to develop great looking apps. Dart as a language is relatively easy to pick up, and by using an IDE like IntelliJ, you’re helped along the way.
There are also some fantastic codelabs straight from Google on getting started, if this post has piqued your interest. You can check them out here..