Tap Forms Database Pro for Mac, iPhone, iPad and Apple Watch › Forums › Using Tap Forms 5 › A Few Questions
- This topic has 18 replies, 4 voices, and was last updated 5 years ago by
Christin White.
-
AuthorPosts
-
July 15, 2020 at 1:24 PM #41291
Christin WhiteParticipantHey, 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 aSource
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 forSocial Media
accounts with Twitter (URL), Facebook (URL), etc. These could belong to myPeople
form or myCompanies
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 likeProductivity
,Productivity / Habits
andProductivity / 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 WhiteParticipantExample 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 MoffattParticipantHi 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
BrendanKeymasterHi 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 WhiteParticipantThanks 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 thisParent 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 withParent 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 WhiteParticipantHuh, 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 WhiteParticipantOh good, it doesn’t nuke non-breaking space characters in code tags ?
July 17, 2020 at 1:40 AM #41334
Sam MoffattParticipant2. 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 WhiteParticipant3. 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 WhiteParticipantLooks 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 LeuParticipantYou 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&tricksJuly 17, 2020 at 2:49 PM #41346
Christin WhiteParticipantThat 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 LeuParticipantYeah, this only work with records :(
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricksJuly 17, 2020 at 7:52 PM #41352
BrendanKeymasterActually 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
BrendanKeymasterOops… it seems the form view URL format only works on Mac right now.
July 18, 2020 at 11:24 AM #41366
Daniel LeuParticipantActually 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&tricksJuly 18, 2020 at 2:17 PM #41371
Christin WhiteParticipantAwesome, thanks Brendan!
-
AuthorPosts
You must be logged in to reply to this topic.