1.0.8 - Released 9/27/2013

September 24, 2013

New Default Theme

If you have iOS 7, you may notice that your theme has changed to the Simple Blue Theme. This is the new default theme Flexile uses for iOS 7 so that it matches with the new ‘direction’ Apple is taking iOS. Don’t worry, you can still change your theme back to whatever other Theme you want to if you don’t like this one… this was a one-time only switch on my part. If you’re not using iOS 7, I didn’t change your theme. However, it will change when you update to iOS 7. Again, this is a one-time only switch so I won’t be messing with your theme choices again.

New User Interface

Much of Flexile’s User Interface (UI) has been changed. Yes, of course I’ve changed the graphics and (hopefully) made it look nicer. I’ve also changed the ways you can interact with Flexile. I’ve almost completely done away with swiping (first you swipe, then something happens). Instead, views are now draggable, which means views will follow your finger as you move them. This gives Flexile a much more tactile feel to it and make it easier to navigate. More importantly, you can change your mind in the middle of a drag and replace the view you were removing. Of course, you don’t have to drag as there are buttons to make all of Flexile’s features obvious. If you see a view bounce a little during a transition, it’s draggable.

Modal views have changed a little. They can now stacked on top of each other and can be dismissed individually. I use this a lot for displaying password screens and reference pickers. The transition animation should make all this obvious, but I though I should mention it. Also, as a neat addition, you can now pinch in or out to dismiss a modal view. Yeah, yeah… it’s a small thing, but it’s fun.


Views can now be easily edited directly from where it’s being displayed. Look for the glasses icon near the upper left of the screen to change a view, edit it and add a new view. This means you no longer need to go into the table options to add and edit views, which can be a big time saver.

Fields can now be added and deleted directly from within the View Creator. This makes creating and editing tables a lot easier and quicker.

Stateless Records

Flexile’s records no longer need to be saved. Flexile will automatically save all changes you make to a record immediately so you don’t have to worry about unsaved data. To guard against accidental changes, Flexile will keep an undo list available for each record you can use to undo changes you’ve made to the record. The undo list will persist as long as Flexile remains in memory. Once Flexile is shut down, it will discard the undo list. Note: Leaving Flexile doesn’t shut it down. It’s just placed in the background. Of course, if you leave the app for too long (especially if you’re visiting other apps) it may be shut down, but normally you won’t need to worry about loosing the undo list if you’re jumping between Flexile and another app.

Password Protection

You can now password protect Flexile on a couple of levels. Passwords are encrypted. For those who care, I’m using b-crypt with 10 salt rounds. This means it’ll take a second to set and check a password. It also means there’s virtually no way for anyone to get your password… not even me. So if you forget it, you’re out of luck. You’ve been warned.

Passwords can be alpha-numeric with a standard keyboard or numeric with a number pad. The number pad is easier, of course, but a full alpha-numeric password is probably more secure. That said, you can use mathematical operation in the number pad (add, divide, subtract, multiply) so creating a password using an operation can be more secure and still retain the ease of use that comes from number pad. 

App Level Password

Flexile can be password protected so that you must enter a password before you can use Flexile. You’ve got two options for when the password is required.

You can require the password only on startup, which means Flexile will only require the password when it’s started. It won’t require the password if you’re jumping between Flexile and another app.

Flexile can require the password every time you enter Flexile. This means if you close the app (hit the home button) and immediately re-open Flexile, you’d have to re-enter the password. This is a lot more secure and, frankly, a lot more annoying… especially if you were trying to copy data from another app.

Table Passwords

Each table can have it’s own password. You’ll be required to enter the password for a locked table to edit it or to view any of it’s contents. This also applies to Links, so if you’ve linked a record to a locked table’s record, you won’t be able to view it until the password has been entered. You’ll also have the option to auto-lock a table if you leave Flexile.

New Fields & Features

There are three new fields you can choose from as well as some new features. 

New Fields

Reference Field: A reference field will display a linked record’s value. At the moment, you have the choice to use either the first or last Linked record. A reference field value cannot be edited and it will update whenever the original/source record has been updated. Moreover, a reference field can reference another reference field, which means you can chain reference fields together. A reference field will display a Link/Chain icon in the detail view. If you tap on this, you’ll be presented with a list of records you can reference for easy selection. This makes the reference field a powerful kind of pick list, where the list you’re picking from is another table.

Concatenation Field: The concatenation field will allow you to combine the text of other fields together according to a formula you create. For example, you could have fields for First, Middle and Last names. Then concatenate (combine) them with a Full Name concatenation field using the same kind of drag and drop interface used for the Calculation fields. Moreover, you can include other elements conditionally, such as only adding a space if a field has a value.

Running Balance Field: The running balance field will display a running balance in the list views (record list or link list) and in the detail view if the detail view was opened from the record list (otherwise, there’s no balance to display). Creating the field is as simple as selecting the other field you want to take a running balance of. Running balances are not stored in the database. Instead, they are calculated whenever the list is displayed. Because of this, they cannot be referenced by any other field. Moreover, they’re much more computationally intensive than other fields. If you use multiple running balances in a single table, you may experience a slowdown.

New Features

Table Aggregates: Number and Date based fields can now have aggregate information (total, average, etc) displayed at the bottom (footer) of a table. In the field option, you can choose to what kind of aggregate (if any) you want displayed. No matter what kind of aggregate you choose (as long as you choose one), you’ll still have access to the other aggregates by tapping on the aggregate in the list view.

Calculated Field Dates: Calculated fields now have an option to display a duration as well as a date. In the past, all date-based calculations were displayed as a duration, which didn’t always make sense. However, this also means that any calculations that used to display a duration will now display a date, at least until you change it’s display format.

Image Field: Image fields can now save their images back to your devices photo library

Location Field: Locations can now be opened in Apple Maps and Google Maps (if you have it installed). Moreover, you can open the location or you can get directions when you open it in the Maps app.

Bug Fixes

There are a lot of bug fixes. To be perfectly honest, I’m not sure which bugs existed in the previous release and which ones were a result of the development of all these new features. However, I can say with absolute certainty that bugs were definitely squashed.