Hey Brendan,
I’m really enjoying TF Pro. You have done an incredible job with all versions of TF. I’m proud to say I’m a long-time TF user. I guess it was probably around 2009ish I found TF on the App Store and fell in love with it. I was amazed at how I could have a fully functional and customizable database on my phone, especially right when the App Store was really just starting to get its footing. TF was way ahead of its time and still is. After a number of years I became a traitor and went to Android for a while. The whole time I was on Android I was chasing that TF experience in the Google Play store to no avail. When I came back to iPhone I snatched up TF5 and use it every day. Now I’m happy to upgrade to a Pro subscription and support an amazing app by an incredible developer.
The new features have been great and I have only ran into one issue so far. I have a form in TF that I use to track product reviews. One of the fields in my form is a Note field titled “Review”. In TF5 I configured this field so that it has a default value of the review template I created (ss attached). I upgraded from TF5 and imported my .tfarc file into TF Pro. When I go into the field options for my Review field in TF Pro and tap into the “Default Value” option the app crashes immediately. Is this something you’ve heard of happening before? Thanks a ton!
-Josh
Attachments:
You must be
logged in to view attached files.
Is there a way to read/write to sub-levels in Cascading Pick Lists in scripts?
That last paragraph should read “this wouldn’t apply to anyone who chose to end their subscription. This would only apply should you not be able…”
A question, Brendan. Please keep in mind that this is coming from a person that has absolutely no experience in development or dealing with the App Store or how it works. I’m just throwing this at the wall as it were.
Is there a way you could switch things to non-subscription should you find yourself in a situation where continuing to work on TFP wouldn’t be possible, and it would cause the app to become non-functional for users? Or, is there someone that you could trust with the reins temporarily, if needed.
This wouldn’t apply to anyone who chose to end their subscription. This wouldn’t apply only because applicable should you not be able to continue your efforts with the app that would interfere with its ability to function. Just something to put out there to ease users concerns?
Again, no clue here. Just spaghetti at the wall!
I completely understand your perspective, Brendan. You’re a single developer that’s made a database app with more functionality than most of the other ones out there. I’m wary of locking myself into an ecosystem that comes with a yearly subscription, but admittedly I can’t think of another model where you make enough money to keep this going. I think Software-as-a-service sucks but I’m not a developer. I’m a director. I’d probably be pretty frustrated if I was paid to direct an episode of TV then expected to direct the rest of the season for free.
I wish the ‘free version’ had more functionality, like Notion but I imagine that just wouldn’t work for your current business model.
Long time user of TF5 and made the switch to pro without and hesitation. Generally I dislike subscription based apps; unless that offers a high level of support, development and as in this case supports a single or small developer whom needs the steady income stream.
I can understand some of the concerns about TF5 not working any more but I also can see it from a developers point of view that why should he support an older app in perpetuity because people don’t like paying an annual fee. I use TFP for my one man band business for invoicing, tracking expenses and the like as well as for personal trip planning and finances.
I think the annual subscription is a fair price – if it all went away tomorrow it would be a right hassle but that’s the way things go.
Another app I use of Omni outliner. Currently that is a pay once programme and I have had more than my monies worth out of that and suspect it will also move to a subscription based system. I like the simplicity it offers for me to see who is what courses and the dates etc. I would probably pay for that annually because like TFP it makes my work flow easier and saves me time.
Rereading price. I think that having access to the app across the Mac,iPhone and iPad with syncing (almost seamless) for around d £60 is pretty good and I payed and move over to TFP immediately. The only thing I would ,ike it to do is for the iPad app to be able to export custom layouts so I can send invoices away from my Mac.
Thanks for your reply Brendan!
Unfortunately I still don’t get it…
I now wrote this (with the help of ChatGPT), but it still doesn’t work. Any pointers would be greatly appreciated
function Copy_Location_Script() {
var source_location_id = form.getFieldNamed("Source Location").getId();
var target_location_id = form.getFieldNamed("Target Location").getId();
let sourceValue = record.getFieldValue(source_location_id);
if (!sourceValue || !sourceValue.latitude || !sourceValue.longitude) {
return "Source location is not set.";
}
let lon = sourceValue.longitude;
let lat = sourceValue.latitude;
// Fetch current value of target field
let locationValue = record.getFieldValue(target_location_id);
locationValue.longitude = lon;
locationValue.latitude = lat;
// Save updated value back to record
record.setFieldValue(target_location_id, locationValue);
// Return debug info
return "Target location set to: " + JSON.stringify(record.getFieldValue(target_location_id));
}
Copy_Location_Script();
Hi Markus,
I understand. No worries. You have to do what you have to do. But so do I in order to earn a living while still doing what I love to do by continuing to build Tap Forms and support my customers.
You know, there’s a great app called Ulysses which you may have heard about. It’s used by writers. They moved to the subscription model a bunch of years ago. They don’t have a lifetime option. I asked the developer recently how the transition went. He said it was rough the first couple of years, but after that he said it was the best decision they ever made. Still no lifetime option all these years later. They continue to improve and keep up with macOS and iOS releases and everyone benefits from that. I met the founder of the company a bunch of years ago at WWDC in San Francisco. Great guy. And now they have multiple employees working for the company. Perhaps if things go well enough for Tap Forms Pro, I’ll be able to do that too.
Thanks,
Brendan
Use TapForms5 2 or 3 times a month. Subscriptions doesn’t make sense for me. If no lifetime license will be offered I stay at TF5 and in case Apple discontinue Rosetta the hard way I will switch to some other piece of software. What a pity……
How do I save to a location field?
For a test I tried getting the value from a filled in location field and setting a test-location field to it, but that doesn’t work. Is this a bug, or am I using the wrong commands?
function Test_Script() {
var scouting_location = record.getFieldValue('fld-b625c89aa5664db4933aa9ecc8bedcde');
var temp_location_id = 'fld-6b6551dc87e9420aaedb2887d525cff3';
console.log (scouting_location);
record.setFieldValue(temp_location_id, scouting_location);
}
Test_Script();
In the end I’m hoping to use it to retrieve a location of a photo:
function Scouting_Script() {
var locationFieldID = form.getFieldNamed('Scouting Location').getId();
var photoFieldID = form.getFieldNamed('Scouting Photo').getId();
var media = record.fetchMediaForField(photoFieldID);
if (!media || media.length === 0) {
return "No photo found";
}
var gpsData = media[0].getGpsData();
if (gpsData && gpsData.Latitude && gpsData.Longitude) {
var lat = gpsData.Latitude;
var lon = gpsData.Longitude;
var locationString = lat + " " + lon;
record.setFieldValue(locationFieldID, locationString);
document.saveAllChangesAndRefresh();
return locationString;
} else {
return "No GPS data found in photo";
}
}
Scouting_Script();
The way I see it Brendan, you’re kind of stuck between a rock and a hard place as to satisfying people. Many of us will continue to subscribe regardless of our concerns because this an outstanding app. Others may not because their concerns surpass their willingness to enter into a subscription based app from a one man business.
You do what you need to in order to keep providing a great app. If you do decide to provide an option for a one time purchase, I’m all in. In the meantime, I’ll continue with my iPad annual subscription.
CSV export and the JavaScript API are crucial because they ensure I can easily export my entire database in a common format. This prevents vendor lock-in, a problem I’ve faced before where extracting my data became costly due to a company’s business strategy change. Maintaining direct access to my data is paramount, though I hope I never have to rely on it. Obviously, this would be very disruptive.
Cheers, Daniel
---
See https://lab.danielleu.com/tapformspro/ for scripts and tips&tricks
Hi Brendan
I spoke yesterday with my wife about the issues and my concerns with updating to TapForms Pro. She told me to bring the topic up here at the forum. I then told her, good idea, you are very open and responsive. So you are! Thanks for that long answer.
I absolutely see the point. In german we would call the situation a “Zwickmühle”. I guess in english “quandry” would be a suitable translation. On one hand, there is your side with your business. As I said, I’m willing to pay the subscription without any discussion. Then there is our side as users with a business organised with TapForms. We need some kind of security. I understand that there is not an easy way to solve this. Especially as I know there will be many bigger companies using TapForms which will take advantage of any solution as you described.
I really appreciate the option of CSV exports. As small business this is just not really helpfull. In the unlikely event that TapForms will not work anymore just exporting the CSV will not really help, as there is no time or resources to get CSV data working again including all form relations.
Until MacOS28 TapForms 5 is a valid option as backup software. But from MacOS28 this option is gone, except I would keep at least one old Mac on an older OSX version to keep TapForms 5 running as backup.
There is no need to solve this issue today, but maybe this discussion helps to think about a solution where you can get enough money for your business to further develop Tapforms (I really love to software!!) but also give us small business owners who are using TapForms some kind of security, that TapForms Pro keeps working at least for a couple of months in case of any issues is subscription, licensing servers failures, bancrupcy (I don’t wich that this ever happens!) etc.
Hi Keith,
I’ll look into the prompter function and the favourites script list.
I’ve actually just fixed the Checkmark field grouping issue today. So that’ll be fixed in the next update.
If you see the 10-record limit, try tapping on the Restore Purchase link on the paywall screen when it comes up.
When running a script via the Favorites button, I can only run a prompter-based script only once. I have to quit and restart the app for another prompter-based script to work again. It can run multiple times through the regular Run a Script option, however. The order of the scripts in the Favorites menu keeps getting rearranged.
Sometimes, when adding a record with a script in forms grouped by a checkbox, there are two groups of unchecked records. In my usage, I’m adding all the records with a script. Sometimes, the separate grouping goes away on its own, and all the unchecked records are properly sorted within a single unchecked group, but other times, I need to check, then uncheck that record. (I notice this in the MacOS version, too.)
I’ve also gotten the 10-record limitation notification, even though I’ve subscribed to TapForms Pro. Quitting the app and going back to it seems to get rid of that.