An iOS app update that annoys me
jpmens.net
jpmens.net
This is exactly what I expected to read when I started reading. So many apps have done this to me that I'm now hesitant to install, and become dependent on, any new apps.
I'm genuinely sorry, but I'm not paying a subscription for an app that doesn't do a lot of back-end work (that's valuable to me). No, syncing doesn't count; I have iCloud and Nextcloud and the share sheet functionality for that. No, social features don't count either. This goes quadruple for apps that have a feature enabled and then sneak it behind a paywall many updates later.
And when I write that I'm genuinely sorry, I really am! I know that developers need to earn a living but I'm not willing to sustain it on the back of 10 or 20 or 30 "low annual price of just $9 or $15 or $25 or $49 per year!" subscriptions. If that means fewer apps or fewer people making their living at being app developers, that is bad and I hope that applies pressure on Apple and Google to add features to their app stores that make a better balance.
What does count as "a lot of back-end work" that's valuable to you?
> I know that developers need to earn a living but I'm not willing to sustain it on the back of 10 or 20 or 30 "low annual price of just $9 or $15 or $25 or $49 per year!" subscriptions
Why are subscriptions bad and what would your solution to this be?
By way of examples, something like a weather application or access to content. Weather data is, at least until the end of humanity's existence on Earth, ever-changing and in need of update.
> Why are subscriptions bad and what would your solution to this be?
Because I do not want to wind up in a situation where an app developer suddenly turns on subscriptions and hides features of an app behind it, on the back of an opaque update. Plus, for most apps I am quite happy to pay for a particular version and be done. (I have no problem with paying for applications.) I want the finality of the transaction, that I've given my $5 or $10 or $20 or what-have-you a single time and our business is done. Application makers have done this since time immemorial, sometimes releasing complimentary bug fixes, other times not.
I just don't like the idea that in order to retain access to a program that does all of its work on my device, I have to keep paying rent for it. Like the app at issue here, where it was doing what the user wanted and then poof, a change that cannot be reversed.
I also understand that the current model on the app stores is not conducive to one-and-done application purchase transactions. Apple doesn't make it easy to do upgrade-by-version pricing, for example. In-app purchases are available, but they're not (by default, or nearly as widely) sharable on the family-level like outright purchases are.
I dislike subscriptions to apps[0] because:
1. If I ever stop paying, I get nothing, no matter how much I've spent on the software over the years.
2. It shifts a lot of the risk of developing the new version onto the customer. I'm paying in advance for the next version, instead of being told what the features are and being able to make an informed decision. If I hate the new version, see (1).
3. It's more winner-take-all. If I'm spending $Y/mo on an app, that's $Y/mo I'm not spreading around to other apps. All-in-all, it feels like a clear win for the developers that 'win', but it feels lose-lose to me as a customer. I get all the joy of (1) and (2), but also I get less variety, both in my own purchases, and probably in available choices in the long run.
[0] - To be clear, I'm talking applications which require subscriptions for basic functionality, 'extra' functionality that was clearly removed to push subscriptions, or include useless tacked-on functionality like cloud storage (also clearly to justify a subscription). I'm not talking about apps for which there are recurring costs associated with my continued use of the app.
Edit: An addendum: I also like that I don't have a contract that explicitly states what I'm getting for my money each month. Usually it's just access to the app. Then they'll have language about how the subscription allows them to work on new features, offer support, etc. But they're not contractually obligated to provide me with any of that. (I don't have any levers at all, except not giving them more money, which doesn't help much.)
The Zune music service actually had a great fix for this: every month they allowed you to download a couple DRM-free tracks that you could keep forever. So if you ever cancelled, at least you had those tracks.
That was nice, but at the same time I disagree that when you stop the service you are left with nothing. In fact, what you got was access to the service. If I ever stop paying for Spotify, I'm left with nothing... except for all the hours I spent listening to and enjoying music on Spotify without ads. Isn't that something?
If I pay for a year, I get to keep access to that version.
Regarding Spotify, for Spotify, while yes they have an app, you're mainly for the music streaming from the service. They mention that subscription to services are fine.
Spotify the Application, is just the means of accessing Spotify the Service. It provides me with cheap access to a library of data that I don’t otherwise possess.
By way of analogy, I understand why I have to pay for a magazine subscription: they send me information on pieces of paper every month and that has a cost. But I wouldn’t pay a monthly fee to the manufacturer of my toaster. Whether I toast a thousand slices or let the toaster collect dust on the counter, the manufacturer incurs no additional cost. Leasing a toaster would be absurd, but that’s the expectation some developers of pretty basic applications expect.
One of the related posters mentioned JetBrains. I agree JetBrains get it right. You get to keep your toaster when you unsubscribe. If you stay subscribed you get the latest toaster if that’s what you want. And the incentives and risk are on them to make sure they make the next model toaster compelling.
That’s exactly apps likes Spotify. They restrict downloading, skipping, and bitrate unless you pay for premium, which I would say is basic functionality. You get access to the music whether you pay or not. I’m not paying for the music, I’m paying to skip ads and download to play offline.
You're taking that statement out of the context of the post in which I said it. I began my post with "Subscriptions to services are fine." Everything in the post after that, including that quote, is specifically and explicitly not talking about services like Spotify.
Spotify is different. With Spotify, when I stop paying for Spotify I still get to listen to the music. But I lose the basic functionality of the app, like the ability to save songs to disk, or to skip tracks. To me, this seems like the exact model you're saying is bad. They have removed basic functionality in order to push a subscription.
My footnote is not part of my argument. It's only meant as a clarification for which types of applications (not services) I'm discussing. You also mistake what I mean by 'basic functionality'. I maybe should have said required functionality. Spotify is perfectly usable without download, skip, or bitrate. Instead, I'm talking about applications like an RSS reader (again, an application only, not an online service) that will only show you sample feeds if you're not subscribed.
> What does count as "a lot of back-end work" that's valuable to you?
Perhaps functionality that's not easily recreated using built in tools like shortcuts ?
In the case of the app in question, a simple shortcut in the shortcuts app or in i.e. Pythonista that adds a record to a spreadsheet, or even directly to a .csv file, would take <1 hour to write.
Another example is apps that provide some kind of backend. Of course keeping infrastructure running is not free. For the app in question it's not providing that.
Overcast handles a full index of pretty much all podcasts, with specific metadata. For example, it learns how often a podcast updates. Is it a weekly show? If so, what day does it come out on? etc.
Just the part where it syncs where I am in each episode is just a bonus, I'm happy to pay for the feed database.
Everyone has to figure out a marketable skill until their rate of labor is exceeded by their rate of capital. If they fail they fail, whoops.
I make no claims about how anything should be. This is what it is.
That is a surprisingly insightful one-liner, thank you.
You should be hesitant to become dependent on anything that does not provide you unfettered access to your data in a usable format.
It's the fairest model there is: Developers get a recurring income stream so long as they maintain the software, while customers aren't forced to rent software ad infinitum.
I wish there were some way Epic V. Apple could force Apple to implement this. It would solve so many problems on the App Store.
They release a new major version every X years and stop supporting the old one. The old one will keep working until it doesn't. If you want the new one, you buy it and upgrade.
Airmail used to do this and I believe Tweetbot still does it.
Airmail messed it up and I stopped using it altogether after years. I talked to friends that I know used it and they also moved away from it when they messed it up.
It's similar to how Jet Brains does it.
Someone else mentioned that they're being charged on the new API they're being forced to move to. Seems like it's needed.
However, I'm curious what other apps will do and if that will cover desktop and mobile apps.
We'll see.
If there's anything missing, they'll migrate. If not, they don't need it or don't care about it.
That's what I do every year when I have to renew my JetBrain products.
Do I need it? Will I actively use it? Is it just worth keeping the current version?
They moved to a subscription model with Tweetbot 6. At least Tapbots is not being dicks:
- Twitter makes them pay for the API 2.0
- The Tweetbot subscription is shared across the family
The former means I get access to Twitter without ads, kind of like the oft asked "I'd pay to have no ads", and I get a usable UI in the package.
The latter is so rare I didn't know this was even possible until that last update.
If updating to the latest version of iOS breaks some of your apps forcing you to buy them again, people will avoid updating the OS.
In other words I complicated it. It’s 15% for all in app purchase subscriptions after a year for all developers.
I've never really gotten into it but still paid once or twice because I loved the idea so much :-)
Subscriptions make for more services revenue, and services is their growth driver now. That's all there is to it. If there was an option to stop paying and keep what you have they would make less money. Same reason you now get what are essentially ads in the Settings screen "reminding" you about AppleCare+, Apple Arcade etc. Services services services.
As a long time fan of Apple hardware and software it's pretty sad to see.
I really wish Flexibits had created a different app without the cloud features and let this one languish. Clearly they needed a "teams" version for families/small enterprise that they felt they could monetize. That they bundled it into their main app annoys me.
Same with 1password - but in that case, I felt it was worth my subscription (family for several users, admin capabilities worth it alone).
I wouldn't recommend it anymore either because of the subscription model, but I don't see any functionality missing compared to the previous version.
The only drawback for me is that the UI takes more space.
Finding out that macOS/iOS Calendar is perfectly fine for me.
To provide a little context: Most developers have no choice but to do this. I've seen a lot of developers for the App Store getting broke because of Apple's refund policies. People are quick to click refund, but then the developer has to pay for Apple's 30% of the fees (and transfer costs).
Say, you sell an App for 10.00$. Apple gets 3.00$ of that when a user buys the App, and the remaining 7.00$ go to the developer's account. When the user is now unhappy with the app they can get a refund for the costs.
User gets 10.00$ back, but from the developer, which means the developer now has a net negative of -3.00$ (ignoring the accumulative bank transfer costs)
And no, there's no limit in how many people can scam an App developer on the App Store, which means that you could literally use millions in the case of a social justice thing that goes viral, which happened to quite some Indie game developers I personally have worked with and was a target of in the past because the target audience (kids, teens and the like) doesn't realize the damage they're causing with this. Kids think it's funny and it forces the Game developers to implement the features they so desperately want, but the result is that the developer is broke and legally so indebted that they won't be able to recover from this anyhow; certainly not when they are a private developer.
I've seen claims that this is the case and then people responding that it isnt. See: https://twitter.com/twolivesleft/status/1288625617873694721
And discussion here: https://news.ycombinator.com/item?id=23995750
Apple may have in the terms that they could do this, but rarely do.
As you might guess, I didn't use any Apple product eversince and kind of ditched all ideas to develop an app or game for iOS.
This seems to be a pretty well researched article that links to the specific clause in the developer's contract [1] and [2]
[1] https://www.cultofmac.com/9789/updated-appstore-refund-polic...
[2] https://kotaku.com/apple-putting-the-squeeze-on-iphone-devel...
Verbesserung = Improvement. Verschlimmerung = Aggravation.
While the seller calls it a Verbesserung, the consumer calls it a Verschlimmerung. Officially it then is a Verschlimmbesserung.
This seems less like an improvement gone awry though, and more like a classic case of what in English we'd call "bait and switch."
Verschlimmbesserung
Improvementagrrivation
It's only three characters shorter, and English being a Germanic language, English is often referred to as simplified German, the languages maps pretty much one to one in the general case.English does the same sort of thing were you'll see something like use case become use-case and then usecase.
This is called portmanteau in English, and here's the Wikipedia article, with some common examples.
https://en.wikipedia.org/wiki/Portmanteau
Edit to add: also compound words
The different is that the former is a legit syntax/form of a composite word in German (where you can combine words more freely), whereas Improvementagrrivation is not. Also the former conveys a meaning, whereas the latter would have people scratching their heads.
The limitation with port-manteu and/or compound words in English is that you don't just create them and that's it: they also need to be adopted in order to be part of the language, accepted as words and understood as terms and intention (and not just an error of forgeting to add a space between two words), etc.
In programming terms, one might say that German has first-class support for compound words, whereas with English you need to wait for each new word to slowly be added to the vocabulary.
It's effectively the same as saying "improvement aggravation".
Communication can be defined as information that makes a difference, and the German verschlimmbesserung adds nothing.
It literally transliterates to the exact same thing in English.
I don't really agree much with your last point. Someome still has to come up with the word in German, and others have to use it.
Edit: fixed a tapographical error <- see, it works in English too, as my sibling comment pointed out with updowngrade.
No, it's not (I also assume you meant "improvement aggravation").
First, pragmatically, as it is at the monent:
(1) "verschlimmbesserung" IS a word in German, and is in use, people understand it, use it to express their update pain, etc. "improvement aggravation" on the other hand, is not a thing. It's just two words next to each other. People will scratch their heads as to what you mean, and you'll need to explain it with further terms in a circumlocutory way.
And that's not by accident, it's because (2):
(2) The second issue is that in german adding two words together (or more) "parses" in the language, and creates a valid new term (with either an obvious or a culturally transmitted meaning).
In English that's not the case. You can't just say "This is an improvement aggravation" (I mean, it's a free country, so you can, but people would just think you've made a syntactic mistake).
>I don't really agree much with your last point. Someome still has to come up with the word in German, and others have to use it.
Yes, but like in Lisp with macros, in German the speaker (programmer) is allowed to come up with such words.
It's not really a new word, nothing new has been added.
If we take the context away from the German as used here in this case, then it's just as meaningless as the English context-free utterance.
The German term is just the two words smooshed together.
Have you ever watched Lucy The Daughter Of The Devil?
There's an episode where Jesus and Satan are doing smooshes.
People think these German words and cool because they're novel and foreign, but English has plenty of very similar sorts of constructs, weirdness, and coolness too. Dang nab it!
I'd argue English is just as expressive.
Well, it's not. The devil is in the details, which includes the use of the language, not just how it appears to us.
Instead, the “ver-“ prefix and the “-ung” suffix are factored out and basically, a new verb is invented and immediately can be understood by German speakers: “verschlimmbessern”
> In German you can combine more freely, and people will more ofen than not, get it immediately too.
It could be true but I'm sceptical, I reckon tht in most languages you can change things on the fly and people will get it. For example, the next comment down from yours has this:
> I suppose in English it's an updowngrade?
All you'd need is the context and pretty much everyone would get it. You may say that context is the difference but doesn't everything in English need a bit of context?[1] (I'm also a bit sceptical of the context thing too though!:)
As an example, deepfake was noted to be first coined circa 2017.
I am willing to bet that every German will likely understand Morgenkaffeesehnsucht, the desire for coffee in the morning (which I just made up on the fly).
There are certainly English phrases shorter than their German counterparts. "Car insurance" vs "Autoversicherung", for example. It's just that beyond a select few exceptions certain types of things are not a convention in Standard English, like nouns for very specific feelings.
It amuses me when we brits complain about US spelling when in some cases it’s we that changed and not North America.
For instance "law school entrance exam administration".
This noun compounding process is extremely free and productive in English.
The context I known it from, are situations where you already have an answer which is correct. But then you 'revise' it so the answer is wrong.
Just the same, I will count some of them:
- I used an app (gas cubby) to keep track of my car mileage. You could enter your vehicles. When you filled up, you would select a vehicle and enter mileage and gallons and cost, and it would keep track of everything. You could export the data. You could also enter lots of other things, like VIN, insurance, service intervals, etc.
It was a decent app and offline.
And one update - everything changed. It made everything cloud based, uploaded all your very private information and added a login. jerks.
- I used an app (camscanner+) that would let you take a picture of a document, it would find the edges and turn it into a .pdf file. This was sold to tencent, which had no privacy policy (broken link) and uploaded all your data to the cloud. When the privacy policy link eventually worked it was in super ambiguous broken english and basically said they use all your personal information.
- I used an app called adblock ios that created a VPN at 127.0.0.1 and allowed you to filter your phone traffic. Apple made them change (cripple) it. Happily I read the 1-star reviews and didn't update.
I think I'm a pretty astute user, the general population just has to get used to being worked over in this fashion.
Apple is 100% in the wrong here. You should:
- be able to know what your phone is doing, what sites apps are contacting
- be able to firewall your phone - even to apple
- know of changes - especially change of policies/behavior/ownership before installing an app
- be able to revert apps
I think the GPL is becoming more and more important as this stuff has taken root.
1. Find a handful of decent apps you use and like
2. Copy the apps functionality and user interface
3. Wait for the inevitable update that breakes your use-case
4. Launch
The scanning part is only the beginning, the phone -> network pipeline needs to be automatic and reliable, and Apple will do nothing for third party synching.
Perhaps a Shortcut pipeline could do it ? If it still gave enough flexibility about batch scanning etc. ?
https://www.techrepublic.com/article/how-to-use-the-files-ap...
I use iCloud to do exactly what you say and trash the physical copies, but it should be possible with anything in the files app AFAIK.
You still need to manually save each document where you want it, instead of the app doing it automically in batch at every scan. With dedicated scan apps I never need to think about it, just scan and I know it's been done.
[0] https://wittman.org/blog/scan-paper-document-to-pdf-with-iph...
With a bit of organisation, adequate lighting, and a photo tripod, this is quicker than using my flatbed scanner.
But you can. 1Blocker firewall everything for you, albeit it requires you to add an SSL certificate to trust.
Eventually other features (app thinning?) got prioritized and this is no longer possible.
[1]https://www.theverge.com/2020/4/21/21229943/epic-games-fortn...
edit: just tried to back up an app that was definitely installed as a bundle, and yes, the result was a regular apk
Now, as far as my own knowledge of apk signing goes, v1 signature should definitely be fine because it operates on files inside the archive, so naturally merging multiple apks signed with the same certificate would keep it valid. But v2 signs the archive itself, which means merely repacking it would render the signature invalid. I don't have much of an idea about v3. Maybe there's some algorithm to merge multiple apks such that signatures remain valid.
Related question that needs research: how are bundle apps stored after installation? I know that installing a regular apk copies it into /data/app, extracts native libraries from it, and adds its metadata to some XML files I forgot names of. Again, it's been too much time since I did something serious for Android, so I'm not quite up to date on this stuff.
(are you the guy behind Cydia btw?)
edit again: apparently it doesn't back up the additional parts
$ pm path com.vanced.android.youtube
package:/data/app/~~JVhMJHpiRhB5U1ZM1MHNmw==/com.vanced.android.youtube-iqpVMVaXRD4XezgeqdjBHQ==/base.apk
package:/data/app/~~JVhMJHpiRhB5U1ZM1MHNmw==/com.vanced.android.youtube-iqpVMVaXRD4XezgeqdjBHQ==/split_config.arm64_v8a.apk
package:/data/app/~~JVhMJHpiRhB5U1ZM1MHNmw==/com.vanced.android.youtube-iqpVMVaXRD4XezgeqdjBHQ==/split_config.en.apk
package:/data/app/~~JVhMJHpiRhB5U1ZM1MHNmw==/com.vanced.android.youtube-iqpVMVaXRD4XezgeqdjBHQ==/split_config.ru.apk
The apk I backed up earlier is base.apk, so that mystery is solved. It probably just adds them all to the classpath in runtime like regular JVM does with a bunch of jars.as far as I've gathered bundles are a way of adding multiple ABI's into a smaller shared apk that then is split into per abi by google but I may be entirely off base here
https://www.apkmirror.com/apk/apkmirror/apkmirror-installer-...
Curiously enough by the way, Google themselves only recently added a feature to the Play Store which officially allows directly sharing (free) apps with nearby devices. I wonder how that is supposed to work going forward when app bundles will become more and more widespread – can you then only share apps with somebody having the same screen density and language setting? Or can apps at least still fall back to dynamically using the assets for whatever language/screen density was available just like they would today with a monolithic APK?
[1] As a perhaps more trustworthy alternative, there's SAI on FDroid (https://f-droid.org/de/packages/com.aefyr.sai.fdroid/), which a quick search indicates that it might be able to read and install APKMirror's bundle format, too.
[2] Also the fact that it makes Titanium Backup semi-useless for those apps, even though in other respects I still like it better than any of the other alternative backup apps I've tried.
[3] CPU architecture at least, although there's less variation there because almost everything will be either 32- or 64-bit ARM, and even before App Bundles some apps would already ship separate APKs for different CPU architectures.
What does this have to do with backing up your apps? You can still install APKs even if they do that.
It's horrible but it may work, I haven't paid attention to whether apps are restored to a previous state or just data.
Someone after my own heart!
I miss the days of things not changing out from under me without me having any say about it. I remember a time when I looked forward to updates because they brought interesting new functionality or, you know, actually fixed bugs. And when I didn’t like a new version of something, I could simply go back and reinstall the old version and keep using that.
It is actually amazing that Apple’s ability to prevent people from downgrading aligns perfectly with developers wanting monthly subscriptions for everything.
The only application that has gotten better consistently over the last 10 years has been iThoughts, which is one of the best tools ever for high-level abstract thinkers, and it is the only reason I use the iPad now.
And even if apps do use offline storage, the problem you get is that eventually OS support moves on. I have this issue with Adobe Creative Cloud - I still use CS6 (pre-cloud) because it doesn't require a subscription, but now I have to keep an old machine dedicated for that on Mac OS X 10.14 (currently two versions behind - I expect it won't be supported for that much longer with updates)...
What would get around that is requiring being able to point apps at your own server, and requiring open API documentation, but I don't see how that could really be workable in the real world...
I think a standardized software "Nutrition facts" or "Truth in software" disclaimer would work for this: a simple table displayed in app stores that makes the important facts visible, such as the effective-price-per-year and data privacy declarations we have today, but add a line for how long-term support works, and what parts of the system are dependent on first-party hosted services and to what extent it can operate offline or with self-hosted services).
I'm not opposed to SaaS (after all, it's how I earn my living right now), but I am strongly opposed to software companies pulling a Darth Vader and altering the deal of software through app updates that most people don't think twice about, such as when Angry Birds changed from being a straightforward $0.99 app without ads to being another trashy freemium game[1], to Adobe dicking around with Creative Cloud
> What would get around that is requiring being able to point apps at your own server, and requiring open API documentation, but I don't see how that could really be workable in the real world...
Again, my issue isn't the fact that Cloud-hosted SaaS exists, but that customers get sold one thing, but which slowly morphs over time into something that no-longer works in their best interests.
I remember decades ago, being a sprog in lower secondary school, in IT class, when we were discussing the nature of "business software" compared to retail software and computer games, and the teacher was telling us about how site-licenses work compared to individual EULAs we'd all seen - but also that when the school or local education authority, bought software, especially custom or modified software, that they'd seek a clause in their support contracts with the vendor that the source-code of the software be placed in escrow in the event the vendor goes bust - so the school can keep on running. That's sensible. What I'm proposing is that SaaS vendors that reach some kind of minimum critical mass of customers, should be legally accountable to their customers to provide a working self-hosted system - or at least straightforward steps towards building a working self-hosted system, in the event of insolvency or their bus-factor going below unity - this doesn't need to be arduous: given we're all hosting code on GitHub, so just a law that states "reasonable precautions" must be taken should be sufficient. This would need to be a criminal statute thrown at the company's execs though, given that if an LLC company goes bust then anyone pursuing a civil law case doesn't have any company to chase after.
-----
[1] I'm not angry (hah) that /Angry Birds/ became an exploitative freemium game: I'm angry that the game that I paid for was compromised: I think the iOS App Store should have rejected their proposed update when it went freemium and instead required Rovio to launch it as a separate SKU in the store. Unrelated, but I'm also angry that games and apps I paid-for on the iOS app store can be pulled by their publishers with absolutely no-way to re-install the game or app if we do a clean-reset of our devices unless you made a private backup of the IPA files (Apple will give you a refund if you complain, at least...). EA is bad for this: they'll routinely remove great games of theirs from the iOS App Store for the most banal of business reasons: the won't even simply remove games from being advertised, but block paying customers from downloading previously paid-for games - which is ridiculous.
Can you say more about how and why you use it?
Interestingly, there is a major difference in interaction UX between mouse/keyboard versus touch/zoom. iThoughts does this UX very well.
Let's not pretend this isn't also something Apple wants. There's a reason they never implemented paid upgrades despite developers begging for it since the beginning: every new app subscription is more services revenue, and services is driving their growth right now.
I got my wife to start using a password manager, but I really should have given her some guidance. She picked one that was popular in her native language. I also encouraged her to upgrade iOS on her phone. We backed up her phone and upgraded, but the new iOS version would drain her fully charged phone in an hour or so. So, we restored iOS from backup. Unfortunately, her password manager had been discontinued, and iOS backups just contain effectively remote symlinks to installed apps rather than containing the actual binaries. The discontinued password manager then showed up as something like a stub displaying an error message that the app could not be installed. Luckily, I was able to get into the backup and determine the password manager used an unencrypted sqlite DB with English column names and I was able to give my wife her passwords back.
I would have much preferred a warning that the backed-up version was no longer supported, and be given 3 options: (1) install the last released version in a locked-down sandbox (2) install the backed-up version in a locked-down sandox or (3) uninstall the app.
WTF? No wonder it got pulled!
I am curious as to why you don’t just use the native password manager?
As for why my wife doesn't use the iOS Keychain, I'm not sure. I try to avoid pressuring her to use one solution or another. If I pressure her to use some solution and there's a bug, then that's on me.
Although SQLite is in public domain, the encryption is not. They charge $$$$ for it.
Apple uses their App Store rules to ensure a good experience for customers. The descriptions on apps must accurately reflect what the app is about.
What if Apple required the changelog on app updates to accurately reflect what changed? This would create a better experience for users and is exactly the sort of thing I would want in my walled garden.
> 2.3.12 Apps must clearly describe new features and product changes in their “What’s New” text. Simple bug fixes, security updates, and performance improvements may rely on a generic description, but more significant changes must be listed in the notes.
[1]: https://developer.apple.com/app-store/review/guidelines/#acc...
Also annoyed when Apple removed Binding of Isaac which I paid $15 for, my money and the app never to be seen again.
Sadly it used to be the case (not sure now) that the app size limit had Apple itself recommend that behaviour be implemented when it was too big.
Seems likely considering it's a Japanese game.
Nopety nope.
The Secret of Monkey Island vanished from my purchase history after Disney bought LucasArts. Apple support essentially said "Fuck off, dear customer". The end.
https://apps.apple.com/au/app/receipt-box-spending-tracker/i...
The same developer appears to offer a "Pro" version of their app with no in-app purchases or subscriptions. It is priced around $20:
https://apps.apple.com/au/app/receipt-box-pro/id1289911732#?...
I would assume that this Pro version is intended to be completely unlocked all the time, while the free version is being monetized and directed towards people who want to try something but aren't dedicated users
(Although I don't understand why they don't simply have the "Pro" version be a $20 once-off in-app-purchase in the free app bundle)
Most in-app purchases can't be shared between family members. I will never buy an in-app purchase again. I learned this the hard way after spending $20 on a children's game and my son could only use my phone to play it -- not my partner's. It was really annoying to always have to give up my phone when on the plane/train.
https://9to5mac.com/2020/12/03/users-can-now-share-in-app-pu...
But developers need to manually enable family sharing for in-app purchases. So this is now down to the grace of individual developers
More in the stream of neverending censorship bullshit from the App Store.
Apps aren't even included in "backups", so restoring a device from backup won't actually put it into the state it was before: you get the current versions of any apps (if they are even still available, sometimes they aren't) re-downloaded at time of restore. This is, of course, contrary to the entire concept of what a backup is for.
Of course, you can't download any apps at all without an Apple ID, and also providing your unchangeable hardware serial number to Apple (transmitted when you launch the App Store like a supercookie). You also can't get the Apple ID without providing a telephone number that can receive SMS, so you basically have to dox yourself to restore a working backup.
I've had every single iPhone that has ever been produced (except the 3G - I went from 1 to 3GS), but I'm fairly confident I have purchased my last one.
https://www.amazon.com/gp/aw/d/B00XAF4J04
As for smartphone, I have a few Pixel 3 XLs I'd like to test graphene and lineage on. In general I'm kind of over smartphones because browsing the web on them (the main thing I do with them) is suboptimal compared to a computer/laptop that can run uBlock and NoScript, so I will probably mostly just leave an iPhone-sized hole in my life.
The Nokia 106 is also good for receiving SMS, which is the only thing I really have a non-data SIM for at this point.
I carry a battery powered gl.inet wireguard/lte wifi openwrt router with me with a Google Fi data SIM in it for internet. I have root on it and can write my own iptables rules, and it only sends traffic via the vpn.
They're pretty painless to use, too; there's an 'Add-ons' option in the main ⋮ menu with an entry for each extension. Tapping an extension's entry opens the usual extension dialogue in a full-screen view, and tapping 'back' in that view has the same effect as closing the extension dialogue on a desktop browser.
So you can use NoScript to enable a script and reload the page in...5 taps. It could be worse.
Also, I don't use Firefox due to its telemetry.
If in 1990s I’d have to connect(mapStateToProps) or something similar to draw few spaceships on the screen, I’d become a lawyer or a salesman. And that’s still relevant. If you want cool apps, reduce salesmen and increase makers. Summon them from regular smart people of all ages right now and stop maximizing young geek culture.
It's disgusting and it's not getting better. Probably 50% of my screen time is spent on apps I no longer update because the new versions are unacceptable.
Did the developer change since his screenshot?
I have converted my apps to subscription now away from advertising. I am making a more steady income. I will convert my last app in the next month or two.
Apple sell more devices with this privacy change, and they get big profit in taking a 30% cut of subscriptions. They took 0% cut of advertising.
So many end users choose to abuse app developers who funded apps through advertising. Instead this is a self inflicted wound, end users support Apple making this privacy change, so now end users have to pay for apps instead of advertisers.
So, what is the alternative? The same as it was with software ever since the dawn of computing: Sell major versions. Provide bugfixes in minor versions. Be more like GoodNotes, who follow that exact model.
My business is more successful because of this change. Users love the content in my apps. This change has not and will not hurt me financially. I am trying to explain why the dev made that change to you! Attacking the dev or offering junior level inexperienced advice will make no difference. Please take note of the reason why and who made the change that did this to you.
As a German, you can luckily still request your data using the GDPR. I'd suggest finding an alternative (preferably Open Source) app and giving them your export file to ask if they can add support to import this other format.
I am doing this with my app too, just supporting importing from other apps' GDPR-extracted data. An example: https://github.com/TheLastProject/Catima/issues/168
Changing behaviour like that in an export file in a format that traditionally is used for data exchange between computer systems, especially when not mentioned in the release notes, is a borderline bug.