Flexile is a fairly easy system to use. However, there are a few concepts you need to wrap your head around before Flexile will make sense to you. Generally speaking, if you understand what a “Table” is (computer speak… not what you eat on :) and you understand how “Fields” and “Records” relate to a Table, then you should be fine. Otherwise, I recommend reading the explanation below to understand these terms.
If you need support, you can contact me at: firstname.lastname@example.org. I am not providing any further updates to the app, but I will try to answer any questions you may have.
Generally speaking, it’s really not that difficult to create a Flexile database. However, there’s some considerations that’ll make it easier for you to use Flexile. One of the most important things to remember about Flexile is that it keeps all of your Links right there along with each record. For all practical (and it is quite practical) purposes you can consider the Links of a record as part of the Record data. This can have a profound impact on the way you design your database.
Flexile uses a unique UI (User Interface) that’s designed to help you move around your data as easily as possible. Here I’ll describe some of the main elements of Flexile’s user interface as well as explain some common gestures that make Flexile a pleasure to use.
Creating Tables is a fairly easy process. However, if you’re not sure what a table actually is (and no… not the wood kind you eat on) then I recommend you take a look at Understanding Flexile, which explains some key concepts important in Flexile. Mostly, all you really need to do is tap on the Add button in the table list, enter the Name of the table into the appropriate field and save the table. Of course, you can’t really do anything with the table, but hey… at least you created one right? Truth is, after you create a table you’ll really want to look into adding Fields to the table so it can be useful. For more information on how to do this, look at the Fields Tutorial.
Fields are the basic building blocks for tables. They allow you to define the types of data your table will store. Flexile provides a lot of field types you can use tailored to specific types of data. Below you’ll find a list of all the field types Flexile offers, but before we go into that you’ll first want to know how you add fields to a table. There are two ways you can do this:
Accessing record for any particular table is astonishingly easy (as well it should be). From the table list/grid screen (the main screen Flexile opens to) tap on the table you want to access records for. Flexile will then transition you over to the right pane, showing all the records for that table. I would make it easier, but Apple hasn’t released their ‘mind-reading’ API… yet. The record list has a lot going on so read on for all the latest gossip in Flexile record manipulation.
Filters are a way to filter out records you don’t want to see by searching for values on the fields of the records you do want to see. Filters range from simple, consisting of a single field search, to much more complex with multiple fields and even sub-groups/filters.
Flexile allows you to organize the order in which your records are displayed by creating Sorts on one or more fields. Once you’ve created a sort, you can easily select that sort and/or attach that sort to a View. With a Sort attached to a View, you can easily change both the way your fields are organized and the order those records are displayed in.
Flexile uses a stateless system for managing changes to records. What this means is there is not such thing as an unsaved record. Changes you make to a record are saved as soon as you make them.
Before we get into the ‘tutorial’ part of this tutorial, I want to reiterate what exactly Links are. They’re really quite simple in concept, but can be powerful when used well. Essentially, Links are simply connections from one record to another. What makes Flexile is unique is that it makes it very easy for you to make these connections and it arranges and displays them for you right along with the record. In most databases, doing this is not always very easy…. actually, it can be down-right confusing and frustrating at times. There’s a lot of “internal structure” that has to be setup just to make it possible for one table to connect to another. And just because you’ve set it up doesn’t mean those connections will be “visible” in your record. Flexile aims to hide that complexity (there’s nothing to setup) and make all connections a record has visible.
Flexile provides a very rich way of organizing your fields and displaying your data. Flexile uses a few key concepts, though that you’ll need to understand before you start setting up custom views.
Flexile allows you to import data from CSV (comma separated values), TSV (tab separated values) and from the local contact database on the device. The import process is quite sophisticated, allowing you to adapt the import file to a variety of needs. In many case, you can actually duplicate within Flexile an entire other database (including relational data) through the import process alone. Alternatively, it can be used for very simple Imports… it all depends on what you want to do. Because there’s so much to the import process, I’ve broken the instructions into a set of “mini” tutorials to make it a little easier.
There are several places in Flexile that allows you to manage a list of items. Normally, these are text-based lists that often represent some specific type of data. For example, the list manager is used to manager:
Flexile allows you to create passwords for both the entire app as well as individual tables. Passwords are fully encrypted (using b-crypt with 10 rounds of salt… for the curious), which means once you create your password virtually no-one will be able to access it. Even Flexile doesn’t know what the original password is. When you unlock a table (or the app) with a password, Flexile compares the resulting hash (encrypted text) to the one created from the original password. All that to say: your passwords are safe. However, if you loose your password you’ve lost your data. I can’t retrieve it. Note: Just because I can’t retrieve it doesn’t mean other won’t be able to. Using a good password technique will go a long way toward protecting your data.
There are several ways of accessing an import file, depending on where the file is stored and how you want to access it.
Flexile has the ability to import both CSV (comma separated files) and TSV (tab separated files). Data rows can be split up between tables, auto-generating links, and deduplicate data to maintain the relational nature of the originating data.
This will describe how to match import data (the columns) to a single table. I won’t be going over many of the options here (check out the Complex Import Match tutorial for details on all options). But you can get a quick rundown of how to match import columns to to Flexile’s Tables and Fields to easily import data into a single table.
Here we’ll go over the full import matching process. The process can be pretty complex, and if you’re just looking to import a single file into a single table, you’ll probably be better served by going through the Simple Import Match Tutorial.
Matching up the import columns to Flexile’s tables/fields can be a very involved process and take quite a bit of time to setup. Because of this, it can be very frustrating to have to re-setup the import configuration of a complex import. To solve this, Flexile provides a method to save an import configuration as a template. This tutorial will explain how to use templates and describe how Flexile will use a template to match columns with fields (this is important…you should read it so you know what to expect).
Let’s talk about how Flexile imports values. Flexile will have specific behavior for importing values dependent on what format the import value is in and what field it’s being imported into.