Wonderous Made Better

Greg Perry
13 min readSep 23, 2022

A Revamp of gSkinner’s Wonderous app

In the first week of September, 2022, a Canadian company named, gSkinner , partnered with the Flutter team to demonstrate Flutter's fluid navigation and animation capabilities with the release of an app called, Wonderous. It’s described as an educational app highlighting some of the more famous wonders in the World.

It’s to present ‘best practices for custom design and engaging interactions — so that developers can reuse code in their own apps.’ Indeed a beautiful app. However, I wished they had followed the Dart team’s approach to organizing a library package. This involves implementing ‘export files’ to keep the number of import statements in each Dart file to a reasonable number.

A Design in Code

Further, in my opinion, the app’s files and folders could be arranged in such a way to instill better management and maintenance of the source code itself. As you may know, most apps can easily be broken up into three areas of concern: the app’s interface, the app’s business logic, and the app’s data. This can be explicitly implemented with three directories each containing these three common aspects of an app. There’s even a naming convention for such an arrangement: the folder with the app’s interface would be named, view, the business logic folder would be named, controller, and the data folder would be named, model. Following that convention can help implement those mentioned export files as well.

I’ve taken the Wonderous app and placed its code in such an arrangement for your review. It can be found in a Github repository named, wonderous. This article will now highlight the benefits that come from making such an effort. Note, the gSkinner team continues to modify the app as of this writing. I attained a copy early in September, but I see they’ve made significant changes with their most recent version. They may even introduce such changes described here someday.

I Like Screenshots. Tap Caption For Gists.

As always, I prefer using screenshots in my articles over gists to show concepts rather than just show code. I find them easier to work with frankly. However, you…