Prototype Creator

As a software developer What I did for clients in the past several years – in terms of apps – is grab some data defined in some custom, private data model definition and implement a user interface for it. Some of the data was hidden and transmitted back to the server along with other accompanying meta information. Other parts was displayed on screen – names, descriptions, photos, chart representation of numbers, GPS Locations, etc, etc.

In business terms – the payment of the above work was almost all linked up and tied to the finish of the product or to my time spent. As I gained confidence that I can create stuff, I made several things of my own – Android apps, and several other Java Dekstop apps, Web apps, and more. The common thing in all of the work – mine and for others – was CRUD – create remove update delete (load and display on the screen) – of some custom data type. So in a try to detach the time spent with the result I’ve created and I’m still reshaping several versions of a software that creates apps from a data definitions.

  • – this is the core of all other variations of the Prototype Builder. It is an offline Java App. It is for developers. It generates source code for a lot of platforms – beyond the things I’m focused on. Not all code is perfect and it may have stopped working because of changes out of my control. And all software is ever – evolving so – no piece of software is ever finished.
  • – It is an Android app that you could describe your data model offline and when you are ready – send it to me. A back-end task monitors for new definitions and when there are not build – it builds an APK file – a native android app. After some time – if you synchronize again, you’ll receive the link to the installation file and you’ll be able to download, install, distribute it. The result is very similar app to the Generator itself. Just, the definitions are the ones that you’ve entered in the app. All this is without even seeing code on your side.
  • – It’s a Flutter Web Application with the same idea as the Android version of Prototype Builder. It saves the models in the browser and once the definitions are ready – they could be synchronized for building. The result here is HTML, JavaScript, CSS and some small other files. Thanks to the progress of the Web Standards and browsers, the Web Apps could be installed and be as if native apps to the mere mortal (non-tech individual). Thanks to using MVVM in the generated code – If a requirement arises – I could replace the data access layer with the mobile library and build a compiled to native Flutter Android (or iOS) application. After Flutter improves enough maybe even Desktop executable.
  • I have an almost finished – incoming version, based on, but with included some additional predefined models and relations that I’m seeing in all types of applications and web sites all over the Internet.

As you can see, I’ve tried with different tool names. From a marketing point if view my tools are app for creating minimal viable products. It is not exactly for rapid applications development, because RAD tools have User Interface for drag and drop and design tools that are totally free-style – give a lot of power but also a lot possibilities to shoot yourself in the foot. What I’m focusing in the prototype Creator is on Setting up the skeleton of an app – once you have figured out the data models. It tries to plug together the mostly used visual components and relationships between data models.

One of the reasons Why I’m still digging in – from developer perspective – is – one such tool could extend around the application core – structure and code base endlessly. Some types of improvements that are present in some places (and in others – there aren’t because of no personal development needs yet)

  • One such tool could include endless software layers that are linked around a data model – but not needed in all cases, or are variations of the way things are coded. For example the Android Code Generator that I’ve improved the most is – with Room ORM, with Kotlin, with LiveData, using the material design user interface library provided by google, and using MVVM code organization. Other types of variations that I’ve placed within are – ObjectBox and GreenDao besides Room, with Dependency Injection (Dagger), Retrofit and Paging API vs Simple, other User Interface Components, Java Versions of the same code, etc. The list could go on and on endlessly of things that could be included from developer perspective – View Binding, Co Routines, … – and that is just Android. What about all other frameworks and platforms …
  • Search/Filter, Sort, Order By – specific column. I’ve implemented this in several of the Target Platforms of my developer tool, but not yet in the No-Code/Prototype Creator result. If requested it will be a natural path for improvement and will not take me a lot of time.
  • Field validation and/or transformation between the storage and the app. The current generated code has some basic validations – mostly converting String to numbers. Many more checks may be included – based on the definitions of the properties and custom. I’ve have coded some of them, but in the specific place – not yet within the output of the tool. It will be natural progression – to embed them.
  • Another cool feature will be handling automatically the conversion of the information between the presentation layer and the data storage layer. It will make all the apps much more secure, so – even if someone, somehow accesses the data – it will be hard to read.
  • Testing – the Quality Assurance Frameworks write code that tests the code and is also another good path – to generate more tests and with higher coverage. I currently placed options for generating test cases – for Android and some of the Back-end Frameworks, but a lot more could be done. Unfortunately – I am not too focused on this feature – because of having to deal with absolutely everything around the product.If I had enough time - it could have been also a good and rising the quality feature.

And all the above improvements have a potential to be developed, included, designed in the tool for creating prototypes and it will spread all the features in the endless variations of data definitions – without need of manually code them everywhere. This is my north star – as a developer, creator and entrepreneur – a software that creates software with minimal to zero coding from my side.

Add comment