Besides from, obviusly, creating a basic Flutter project to start with, in this phase we gather all data files in one place. Images first, icons, logos, fonts, special characters, gradients, colors… anything that will make your app be different from other similar apps.
Sometimes this step is more difficult than it seems, for example, may require converting dozens of images from one resolution to another and so on.
This is proper time to insert app logo into the app. It is easier in Flutter than in other languages, one must admit.
In this step I also gather all the Flutter plugins needed for the project. It usually is straightforward, in other times, if the plugins are not stable yet, it may require me to write the plugin of my own.
I start with a shell — CakePHP code for a membership site, where the admin can create all other types of users. Then we define data structures that will be seen in the app and turn them into MySQL databases. Then we access these data through CakePHP and enable users of the server to store, edit, and view the data on the server.
In a recipes app, you would have the ability to insert recipes with images and the apps on mobile would read them in real time and show onscreen.
In a sales and orders app, you would record sales done through mobile devices, upload them to the server and then approve of the sales, receipts, or cancel them, postpone them and so on.
Later on, you may allow users of the app to upload images of the drinks they made and then show them in a community oriented part of the app. If the app uploads orders, then obviously you do not share that across the app.
The app server will also send notifications and emails to the registered users of the app. In a restaurant finding app, the server would send an email in the morning so that the customer may book a table in advance.
The emails can be sent to admins of the server as well. Say, once the order arrives from mobile, the admins of the web server may receive an email about it, click a link in email that leads to the order directly, and then process the order accordingly.
This is peculiar to Flutter. It is widget based so creating mock up is prototyping is creating the real user experience for the app. Writing the code without testing is the fastest way to code the app. However, you have to be really experienced in widget making in order to make this approach work for you.
Great advantage of Flutter is coding for both platforms at once, but in this phase we still have to differentiate between the two. This is especially true when it comes to testing, as it is done differently on each platform. In particular, in iOS we test with TestFlight and Apple wants to review even that version of the app. On Android, testing is a bit easier.
Ditto for the Android platform. There are so many form factors on Android that you really have to devote some time to testing it (iOS also has lots of form factors but the process of coding is smoother).
Now we gather feedback from test users and fix the app, sometimes significantly.
If this is the first time you publish an app to the stores, I can guide you to insert elements of ASO (app store optimization) into the listing, create and upload images and so on. If you already have a system for apps publishing in place, then you may not need all of these services from me.