Hey everyone, i am near completion of my first Ninox app, which is essentially a crypto exchange for my crypto consultancy for my clients worldwide. It is currently isolated to me, but i hope that Ninox can be expanded to allow my users to log in with a role set by me and have them see only a subset of the system.
With that said, i have been making efficiency notes as i go along. I present them here for your thoughts. Some or all may have already been discussed but in the interest of limited my time, i am simply dropping them all here. Perhaps I will learn some great tips from this, and numbered for easier reference!
● 1. With layers of views open, fall back to the one tapped, not sequentially back. If I am three objects deep and tap on the first object in the sequence, close ALL the objects at once.
● 2. Better code editing experience: Bold, italics at least, horizontal lines. FIND text in editor is crucial. I am often copying the current state of my global code into a text editor to do find and replaces actions.
● 3. The ability to command-click or double-click a function in a formula and go to that formula definition is a hallmark of more RAD code editing. A bookmark “back” to where you were would also be amazing.
● 4. The ability to have a second window open at the same time, to allow coding to display. Pop-up is ok, and when we flip to a new field that has a formula, show it, if we edit it and move to a new field, save it automatically (nice to have a system option to ask to save if we want that behaviour).
● 5. In UI field definition, PLEASE separate title and fieldname, as using both is very limiting.
● 6. Allow calculated choice fields to display at checkmarks.
● 7. Add tip: in calculated yes/no field, simply tap in number format field, set nothing, allows Ninox to display No rather than false. This is very odd, and causes UI inconsistency if you had not known of this “feature”.
● 8. Into the popups of the view functionality (ie where you set Sum/Grouped etc) please add a Copy option. So often a value is needed somewhere else and is showing to the user in a view’s grouped arrangement but NOT available for copying, which is very old-school. I currently screenshot the value into a floating always-on-top image so that I can then type it out. Not very efficient.
● 9. In grouping views, being able to not show the bottom summary footers is crucial for end-user understanding in systems that group disparate values, like crypto. A column of crypto that contains summary footer totals for both bitcoin and an alt coin makes fundamentally no sense, but the subtotals are crucial.
● 10. Being able to move a tab and have all the fields retain location would be SO helpful.
● 11. The ability to move or hide tables from the graphical display. Many are support tables that are rarely accessed, and only clutter up things. Especially pertinent for regular users.
● 12. The ability to include formulas and/or code in the Find functionality is critical for complex systems. We must be able to track down and ensure function updates are handled efficiently.
● 13. The ability to force update any UI from code. The after update trigger is tied to manual updates only, and this requires specific action and knowledge by the users if logic is set to the table’s afterUpdate trigger, namely a manual edit to a field to force this to happen.
10. You can drag and drop a tab element in the Edit Field view, with other elements retaining their location.
11. Hide any table by checking "Hide" under table properties. Change order of tables (in v2.56).
Typo. Should read "in v2.6".
Hey Dean, when i drag at tab, i want the entire tab to maintain its specific field setup, and currently this does not happen. I use of "move" in 11 was not specific, as i know i can rearrange them. I also don't want to hide them. I would rarther logicially organize them, so for example, have a Utility Table folder and drop the rarely used tables there.
"have a Utility Table folder and drop the rarely used tables there"
Yes, folders would be good.
● 14. Tougher to explain perhaps but relates to refactoring. I like the managed environment that all uses of functions, fields and variable for naming purposes, but have encountered situations where a field needs to be replaced (which will be the subject of a new post). The act of deleting a field/formula renders ALL references to it dead, like "T1" or F2" etc gets dropped in as a token. There is NO way to track this and one must either manually parallel an admin document to tally every usage of functions/fields or walk every screen and examine every formula. This is bad.
A simple example, let's say fieldA needs to be replaced with FieldB but FieldA is found in 20 formulas on 5 differing screens. How would you do this? Easy, once FieldB is tested and working as required, delete FieldA, the rename FieldB to FieldA. Done.... nope, now you have to pour a coffee and buckle down and manually walk your app and replace every possible past usage of FieldA.
I have suggested we need an developer-oriented view which allows a cross-reference direct view to fields and formulas. This might help. That is longer-term. In the short term: and admin toggle that states: Turn Off Automatic Field Management. Then, when i am about to delete FieldA, i toggle that, delete the field, reset FieldB to be FieldA, flip the toggle and carry on.
I have had to do this numerous times due to the inevitable refactoring that is involved in every system of any complexity.