⚠️ Experimental and work in progress ⚠️
A collection of pixel-perfect iOS-styled components and properties for Flutter, following the official guidelines.
By Jeroen Meijer and Reuben Turner.
About the Cupertinew project
Last updated: 2021-09-28
Cupertinew is a Flutter project that spawned out of a desire to create a set of pixel-perfect iOS-styled components and properties for Flutter.
While support for widgets following Material Design is absolutely stellar and offers a lot of flexibility, we feel like the current iOS component support in Flutter is severely lacking in some parts, ranging from components and scaffolding that have been available since iOS 13 (which is 2 versions behind at the time of writing) that still have not been added, existing components being out of date, and navigation paradigms that are either completely unavailable or are implemented in a package (on pub.dev) with poor code quality or support.
Our goals are therefore to start creating iOS components and features that are indestinguishable from their native counterparts, allowing all Flutter devs, both new and old, to be able to create Flutter applications that look and feel like native iOS apps.
There are some examples of iOS-styled Flutter apps, such as the official Veggie Seasons sample app. However, the components used are prodominantly custom to the project, and are not available in the official Flutter SDK. Additionally, most of the components are not pixel-perfect, and feel (sometimes heavily) outdated.
We want to help out in creating a better iOS-feeling experience for Flutter developers. We love Dart, we love Flutter, we love iOS, and we would especially love to be able to combine the best of all these in a way that is easy to use, and that is not only pixel-perfect, but also maintainable, and well tested.
But why not just contribute to the official Flutter SDK?
That is definitely our end goal, but we feel that the current Flutter SDK is not the best place to start.
At this point, we only have some ideas, ambitions and short-term plans, and this whole project spawned out of the fact that we were simply missing some components. We need time to gather our thoughts and get a plan in place, and we need to get the community involved.
First and foremost, we would like to get our goals aligned, gather data and feedback, get a group of people together, and start working on the project.
Our current roadmap is extremely rough and we are working on it — the project only just started, after all.
In the meantime, please have a look at the project board and issue #1 for more details.
How can I contribute?
First off, thank you so much for asking! ❤️
Since we are still working out the details, we would like to ask you to hold off on contributing to the project until we have a more solid roadmap. Please check back here in the future. Your patience and excitement is appreciated!