A Few Questions

Viewing 16 reply threads
  • Author
    Posts
  • July 15, 2020 at 1:24 PM #41291

    Christin White
    Participant

    Hey, I’m just evaluating Tap Forms right now, I’m using the trial for Mac and went ahead and purchased the iOS app but there are some things I’d like to figure out before I purchase the Mac version.

    1. If you can’t get iCloud syncing working consistently on a poor network is there an easy way to toggle it on/off or delay it (macOS)? Dismissing Synchronization Failed messages every 30 seconds while I’m trying to work is very annoying. Do I really need to use a firewall to force it offline so I can get things done? Better yet, is there a way to fix it? I have nine forms and all of like 15 items between them. Is this going to get even worse as I build up a large database?
    2. I’d like to minimize superfluous relationship clutter. One thing I’d like to store are quotations, quotations can come from different sources, Articles, Books, Movies, etc. Each of these will have have different forms but only one will be used for each quote. Can I create some kind of intermediate form that allows me to pick which child form to use to populate information for? That way I don’t have a Source header and fields for seventeen different possible sources where only one is actually relevant? It seems like that kind of clutter will grow quickly if you’re using a single database for a bunch of potentially related items.
    3. Along the same lines let’s say I have a form for Social Media accounts with Twitter (URL), Facebook (URL), etc. These could belong to my People form or my Companies form, if I have other of those forms show inverse relationships I end up with People and Companies in my Social Media items when only one or the other is ever used, can I disable the UI if there are no relationships?
    4. It would also be pretty nice if I could get the inverse relationship UI of One to Many for Many to Many instead of showing the full table.
    5. I’d really like to implement a hierarchical tagging system like I use in Bear (or an boolean approximation like Keep It does). Is there a clever way to have child items so I’m not implying hierarchy through text like Productivity, Productivity / Habits and Productivity / Habits / Atomic Habits which don’t have any actual relationship between them and require tagging an item with all three tags? I know this is somewhat semantic since I can search by Productivity OR Habits OR Atomic Habits but it would be nice to have actual hierarchy.

    Attachments:
    You must be logged in to view attached files.
    July 15, 2020 at 1:50 PM #41296

    Christin White
    Participant

    Example of clutter for Question 2, I’m obviously still setting some of those forms up.

    Attachments:
    You must be logged in to view attached files.
    July 16, 2020 at 12:12 AM #41302

    Sam Moffatt
    Participant

    Hi Christin,

    Responding as a regular user, some of these will require Brendan’s input.

    1. I suggest looking at CouchDB or Cloudant as the sync system, I’ve found CouchDB to be reliable and if you’ve only got a small amount of data the IBM Cloudant free tier I think gives you 1GB of space to use (CouchDB is an open source server and Cloudant is IBM’s hosted version of it).

    2. I’d probably leave all of those fields in a single form with a “type” field and then use custom layouts to control which quote you saw. It won’t work so well on the table view but a workaround would be to use either a calculation field or a script field to compose the text relevant to the record type, perhaps like a bibliography line generator. You click add, in the ‘quotations’ form select the right layout for th type, put in the data and then you can go back to the parent form.

    3. Companies are people too, at least in the US anyway. I’d actually take inspiration from Apple’s approach where if a contact card is a company is a tick box for the contact card and everything else more or less remains the same. You can still filter and search on if something is a company or not and if you bump it up your field list after name, you can have it render in the list view as well (I’d also tick “show field name” on the checkbox as well). I don’t think you can hide the UI if there is nothing there.

    4. Many to Many implies both sides could have multiple entries though, that’s why it’s displaying the table because there is the possibility that multiple records will be available or another one could be added even if there is currently only a single record.

    5. I’m not sure I fully understand so my apologies if I’m off base but what might work for you is something not dissimilar to what I just threw together for Pierrot for his keywords mapping for magazines. Some amount of scripting could help automate building the linking structure you’re interested in achieving though I must admit I’m not sure I fully understand it. There are a couple of ways of structuring the forms to use calculation or script fields to create surrogate field values (e.g. take the name of the current level such as Habits and then prepend a field with the name of it’s parents) which if set to be the first field shows up in the flat list but can maintain the parent association via a 1:M link. Then I’d probably use a normal Link to Form M:M field to map the children of each of the category records to it’s categories that is maintained by a script. You could brute force like the above script or a field script might also work to detect links being manipulated and to automatically propagate adding/removing the links internally.

    Hopefully that makes sense, I’m sure others on the forums might have different takes and Brendan often chimes in with features that are built in that might handle some of it. I think with some scripting support you can get a little bit further.

    July 16, 2020 at 2:05 AM #41307

    Brendan
    Keymaster

    Hi Christin,

    That error you’re seeing is probably due to a mismatch in the iCloud data and the metadata stored within your document. The solution will be to reset sync by disabling iCloud sync, then click the Delete from iCloud button. Then re-enable sync. That will fix that.

    July 16, 2020 at 11:48 AM #41312

    Christin White
    Participant

    Thanks Sam and Brendan!

    Sam,

    1. Brendan’s solution seems to have resolved the issue for now, if I have more trouble with things in the future I may look into those other services.
    2. Hmm, I hadn’t considered this approach but having one form for all media seems like a more elegant solution than a bunch of forms, even if it means I have a ton irrelevant metadata for each record, I’m liking this better! I’m not much of a fan of custom layouts though, I hadn’t realized those were an option before you mentioned them but playing with it now it seems very paper/page-centric in design, not really UI-centric and responsive to different device screen sizes. I wish I could just take the default layout but just hide fields for each layout. I may play with this more but it seems to lack the elegance of the default layout. I’m definitely spoiled coming from AirTable in terms of design elegance, I just wanted something native and not limited by subscription pricing tiers.
    3. Good point, certainly, but that was just an example, combining things like media types or companies and individuals may not always make sense. I can work around this but it’s a shame there isn’t more control.
    4. I get that but it’s a pity it doesn’t collapse the table if there’s only a single relationship or a many to one option.
    5. I’ll take a look at your scripting, I was having trouble describing the system in a clear way. Basically, I want a tagging system sort of like this

    
    Parent Tag 1 (record 1, record 2, record 3 - collected/reverse inherited from children)
      Child Tag 1 (record 1, record 2)
      Child Tag 2 (record 3)
    

    Bear parses tags by just using slashes in the tag names like Development/Languages/Javascript but that’s only one approach. Keep It for instance doesn’t do hierarchical tags but if you filter by a tag the tag panel will then show you other tags that associated with items that has that tag so hierarchy can be implied through boolean unions.

    A programmatic solution where any record that is assigned Child Tag 1 would automatically tag it with Parent Tag 1 would certainly work if Tap Forms’ scripting support is robust enough parses regex expressions, assign and remove tags, it sounds like it is.

    I need to explore a little more, look at that keyword mapping and figure out what you’re suggesting a bit better when I have more context.

    While not as flexible in some ways as I would like it seems like Tap Forms will work for me and is worth the investment, it is an awesome system and I realize I’m probably an outlier for some of the ways I want to use it

    July 16, 2020 at 12:25 PM #41316

    Christin White
    Participant

    Huh, okay, every time I try to edit my post it deletes it instead, sorry for the multiple pings, hopefully I’ve figured out the way to get the markdown to not collapse spaces and dashes, if not apologies for not being as clear as I’d like.

    Thanks Sam and Brendan!

    1. Brendan’s suggestion worked for me, If I have trouble in the future I may look at those other sync services.

    2. Hmm, that does make sense in this context and having a single form for media that can match some pre-selected types is a more elegant way to approach this, it just means each record will have a lot of superfluous fields specific to other types of media.

    I hadn’t played with custom layouts yet, having done so now I feel like it’s a bit clunky and page/print-centric for me, I definitely prefer the more responsive UI design of the default layout, it’s a pity that it can’t be duplicated but some fields simply hidden or even just section headings collapsed for each layout.

    3. That’s certainly a good idea but this was just an example, combining media types or people and companies into combined forms aren’t always going to work for every example, it would be nice if records could be toggled to simple hide unused inversely linked fields.

    4. Along the same lines it would be sweet if *Many to Many* relationships with only a single link could collapse to a non-table view or a *Many to One* option existed.

    5. I did a poor job articulating this but it looks like you got the idea. Basically, I want a tagging system tags can be nested and parent tabs inherent the items of their child tags like Bear does. So basically you get something like this:

    Parent Tag 1 (Record 1, Record 2, Record 3)
      Child Tag 1 (Record 1, Record 2)
      Child Tag 2 (Record 3)

    Bear does this by simple parsing tag names for slashes and extracting the tag structure from that but I’ve seen other apps implement it in other ways. Keep It does something that’s similar and creates some sort of implicit hierarchy from a flat list of tags. When you select a tag to filter by the tag panel then filters out any tags that aren’t designated in other items with the tag selected so you very quickly create structure through boolean unions.

    Regardless, assuming Tap Forms’ scripting is capable of parsing regex expressions, assigning and removing tags programmatically I think the functionality I’m looking for could be implemented that way. I’ll definitely take a look at that example and think through your suggestion further, I think I’m still missing a little contextual experience with the application to entirely understand but it sounds like it’s worth a try. Thank you!

    Tap Forms seems like an awesome system, while not quite as flexible as I would like for some things, I certainly realize I may be an outlier on how I want to use it. With some care in how I design things and a certain amount of clutter I think its worth the investment and will work for me.

    My goal was to move away from AirTable to something more native to the platforms I use every day and to escape the limits by subscription tiers and Tap Forms achieves both goals and does so quite well overall.

    July 16, 2020 at 12:28 PM #41317

    Christin White
    Participant

    Oh good, it doesn’t nuke non-breaking space characters in code tags ?

    July 17, 2020 at 1:40 AM #41334

    Sam Moffatt
    Participant

    2. I’ve thought for a while that a custom layout using the default layout view but with the ability to re-order fields and hide ones that aren’t important would be an interesting addition and could provide a form of custom layout support on the mobile platforms as well. I used section headings to collapse down records and keep them clean during editing though that isn’t a good fit for your use case.

    3. The problem is that those fields are still editable in the sense that they can create an entry on the other side of the link. I can see your use case though and I think an implementation path forward could be per record overrides for field settings which could hide the field just for that record via a script interaction (though that isn’t a feature that exists today).

    5. TF uses Apple’s JavaScriptCore for the scripting so almost anything you can do in JavaScript you can do in Tap Forms. Check out the JavaScript API for details about Tap Forms specific functionality but you can manipulate almost any data item in the application via the scripting interface.

    As an aside, editing the post generally gets caught by the antispam as that is a technique to change a post after it’s been visible to hide links in it. I’ve been caught a few times by it myself.

    July 17, 2020 at 8:12 AM #41336

    Christin White
    Participant

    3. That’s a really good point, I guess what I’m really looking for throughout most of these questions/requests are ways of streamlining UI/data manually and contextually to fit the use and provide more flexibility. The nice thing is that Tap Forms seems to do almost everything I want it to functionally, the underlying data isn’t limited so I can adopt it now and hope for some more presentation control in future versions.

    5. I was looking over the APIs after I posted that yesterday and it looks like it’s quite powerful, JS isn’t my favorite language in the world but getting better at it has long been on my todo list since JXA is used in a lot of my Mac automation tools and things like Scriptable and JSBox are so powerful on iOS if you want to go beyond just Shortcuts for automation (I like Python even less ?).

    Ah, I went back and looked at the edit form and couldn’t figure out how I was deleting instead of saving, spam filtering makes sense, thanks for clarifying that.

    July 17, 2020 at 11:49 AM #41340

    Christin White
    Participant

    Looks like you can’t open a form, not a record with the URL scheme, is that correct?

    tapformz://record/view/[document-id]/[form-id]/
    tapformz://record/view/[document-id]/[form-id]

    Neither do anything other than bring Tap Forms to the front.

    July 17, 2020 at 2:03 PM #41345

    Daniel Leu
    Participant

    You can use the URL scheme to open a record

    tapformz://record/view/db-xxx/frm-xxx/rec-xxx

    In your examples, you are missing the record id.

    Cheers, Daniel
    ---
    See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks

    July 17, 2020 at 2:49 PM #41346

    Christin White
    Participant

    That was my point, I would like to jump to a form and whatever the top record is, not a specific record that could be deleted or may not be the top sorted record.

    July 17, 2020 at 3:48 PM #41349

    Daniel Leu
    Participant

    Yeah, this only work with records :(

    Cheers, Daniel
    ---
    See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks

    July 17, 2020 at 7:52 PM #41352

    Brendan
    Keymaster

    Actually you can now…

    tapformz://form/view/db-xxx/frm-xxx

    and you can execute scripts:

    tapformz://script/db-xxx/frx-xxx/scriptName

    July 17, 2020 at 7:54 PM #41353

    Brendan
    Keymaster

    Oops… it seems the form view URL format only works on Mac right now.

    July 18, 2020 at 11:24 AM #41366

    Daniel Leu
    Participant

    Actually you can now…

    tapformz://form/view/db-xxx/frm-xxx

    Oh, I missed this change! Cool! Could this be added to the documentation? Thanks!

    Cheers, Daniel
    ---
    See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks

    July 18, 2020 at 2:17 PM #41371

    Christin White
    Participant

    Awesome, thanks Brendan!

Viewing 16 reply threads

You must be logged in to reply to this topic.