> this new API, we can say that it allows developers to offer interactive and dynamic content from their apps even if you haven’t installed them
Also formerly known as Web Applications but now made by Apple with the added features of less control from the developers, a 30% mandatory fee if you accept any payments of any kind and locked to just one platform.
Nice snark, however web apps are still possible, and Android has a very similar feature (Instant - enabled by slices). Did you provide similar feedback when that was announced?
> Did you provide similar feedback when that was announced?
I did not, as I'm a lot more bored at this point in time and also have a lot of more free time.
But I do feel the same about both of the platforms movement towards "instant apps" that could have been equally solved by making web apps work better on respective platforms, instead of trying to solve the same problem again.
> But I do feel the same about both of the platforms movement towards "instant apps" that could have been equally solved by making web apps work better on respective platforms, instead of trying to solve the same problem again.
The web ecosystem has been trying to solve this for almost a decade now and has made relatively little progress. There's no reason to believe Apple could suddenly solve it in a few months if they just cared a little harder.
Web components & shadow dom are approaching 10 years old and still have issues with framework & browser support. asm.js is 7 years old, yet the ideas birthed from it are still struggling. Effective parallelism is still largely nonexistent. RAM & CPU/GPU efficiency remain a bad joke, made worse by the entire world now running on battery power.
A huge number of people are working on making web apps more viable, including people at Apple. It's not from a lack of trying at this point. The foundations are just all terrible & wrong for being an app platform. That's never what it was built or designed to be, and retrofitting that without breaking compatibility is really really difficult. If it turns out the incremental delivery benefits of the web can be retrofitted to an existing app platform more easily than the web can be retrofitted to be an app platform then... well, why not? The cross-platform-ish nature of the web was (and is) a great dream, but why can't that dream be realized by SwiftUI instead? Or Flutter? Or whatever? Why must it be web alone that gets to be that thing?
> There's no reason to believe Apple could suddenly solve it in a few months if they just cared a little harder.
No, they really could just solve it. Progressive web apps are so close to being useful. Apple just refuses to make them user-friendly to install. Just look at android for what's possible https://web.dev/progressive-web-apps/
> Progressive web apps are so close to being useful
PWAs have been pushed since 2015. 5 years of perpetually being "so close to being useful." And that's despite Google's heavy promotion of them, including building an entire OS around them.
I think it's worth separating web components and shadow dom from asm.js. The former are trying to improve the browser and the later are taking browser open philosophy everywhere. Browsers have full support for WebAssembly and keep working on optimizations. It's also taking off outside the browser too (WASI, Cloudflare, etc). If WebAssembly succeeds it's precisely because innovations in the browser did not, and we had to break it open.
Web apps have always sucked and always will suck. With decades of development and thousands of frameworks, it still sucks.
Instant apps take the one advantage web apps have (you don't have to install them) and brings that to the native platform. I think that makes a ton of sense, vs "just fixing" something that people have been trying to fix for decades.
How often do you go to uber.com to call an uber? If you want to build a product people actually want to use, make it native.
I'm using a ton of apps that have Web and native options and in most cases I prefer the Web version. I'm sure others feel differently and that's fine.
But you're forgetting two major advantages of Web apps: They are cross platform und neither users nor publishers need any permissions from some oligopolist middleman.
Cross platform web apps are a myth. You have to test a comparability matrix of all the major browsers on all the major platforms because they are all different in subtle ways that actually matter when making complicated apps.
Native cross platform toolkits like Qt are no more work but provide a much better user experience.
And I agree that the current state of the mobile platform monopolies is a shame. If you care about Android, I encourage you to publish to Fdroid.
Instant Apps on Android are opt-in (provided by a popup the first time you open an enabled link), so I can choose to use web apps if I prefer. I think the important open question is whether Apple will take a similar approach or if a Clips-enabled app will always take priority over a web one.
Perfectly valid question - I too hope for an option to keep this capability disabled or available on a per-use basis rather than a complete replacement for the existing QR URL launcher.
"with the added features of less control from the developers"
Given that this is an additional option for developers, this is pretty tenuous logic. You seem to be arguing against developers having this option by claiming that it restricts their options.
"and locked to just one platform"
I'm fairly sure making one of these apps doesn't suddenly restrict every other option. You can make Android and Web Apps and J2EE (if it still exists) to your hearts content!
This is actually a convenient conversation because I just spent thirty minutes thinking about how much of an absolute piece of shit the Steam app is, courtesy of all of the elements that are a thin wrapper around a web app. And this has pretty much always been the experience: we're all just waiting for the magic web app that's going to prove everyone wrong and light the path.
Still hasn't come.
But until then, I'd rather developers actually have options, including high performance, native, platform-suitable solutions. My only knee-jerk opposition to these Instant App style solutions (the Android version, not sure what the Apple one will be called) is the thought of a big, fat binary coming down just to view what you think is a web page...and then I remember how absolutely monstrous the overwhelming majority of web apps are now. Full native apps are absolute svelte in comparison.
Pretty sure this would be enabled by an app's universal link. URLs already work with the QR code scanner today and invoke Safari. This would be under developer control. As usual, any attempt by Apple to live as an alternative to the open web is seen as an attack on it.
Well, it does have a difference. You have full access to all native capabilities on the platform. That isn't true from a webapp. I'm not casting judgment on which is better but it is different. Actually, I wish this feature was a combination of install and run with parameter in a single step, controlled by the OS.
True, but that's only true because of Apple wants it to be like that, not because there is some physical impossibility to integrate native platform APIs in the browsers.
You can already code "native" iOS apps in React Native if you're so inclined. I can't really see a difference between devs coding against native iOS APIs in the browser that I end up having to download in order to use offline vs downloading apps coded against iOS API's downloaded natively from the app store.
I upvoted you because, to me, you're pointing out what should be fairly obvious to everyone. It seems clear to me that big tech companies have been pushing for ways to usurp the open web.
I disagree with your assessment. Web Applications involve running JS downloaded from a remote source. If this is closer to slices, as the article says (did you read it? assuming yes, as this is HN and not reddit), then it is very different. Web applications are not native UI, and often have far worse experience and clunky usage of things like cameras, peripherals, system audio, etc. Slices would ostensibly be native code bundles, verified and tested by Apple. Moving away from web-ish experiences to native ones is a huge win in my book.
PS/opinion/fluff: There is also the implementation detail of language. Swift/ObjC is significantly superior to JS.
> Web Applications involve running JS downloaded from a remote source
Any "instant apps" like this is gonna involve running code from remote sources. Then if the code is JS or Swift doesn't really matter.
> Web applications are not native UI
That's true. But that's up to the company deciding over the operating system and the browser in the end. Apple could have easily expose ways for web developers to write native UIs in HTML, CSS and JS. In fact, browsers used to be "user agents" where the user (and effectively the operating system, but user had final say) decided the styling of the content, but then website CSS became a thing and websites starting getting more control and wanted unique looks instead. Judging by the usage of the web, it seemed to have worked out pretty fine.
> Moving away from web-ish experiences to native ones is a huge win in my book.
Native in this case means running on one platform. I would much rather focus on making something that works for a bigger part of the world, meaning it doesn't exclusively run on Apple hardware but Windows and Linux as well. The browsers are one way of achieving this. Would be great if everyone (mainly Apple, Microsoft and Google) could align themselves behind one platform and work together. But I guess I've been in isolation long enough to start dreaming impossible dreams.
But considering your PS/opinion/fluff, I'm wasting my time discussing with you...
Hope you're having a good time anyways and take care!
> That's true. But that's up to the company deciding over the operating system and the browser in the end.
The OS is far more powerful, and allows for deeper integration and writing in far faster languages. The browser abstracts away the machine. Most JS writers today have no idea or understanding of the actual computer they are writing against. It's a sandbox for them, and it's the reason apps today bloat to hundreds of megabytes and burn CPU to do the most mundane thing. Less distance from the metal is better in my book.
> Native in this case means running on one platform. I would much rather focus on making something that works for a bigger part of the world.
Feels like a strawman / bad faith argument. As a user, I'd rather use one fast app on my device, I don't care if some guy on another platform can use this product. As an engineer, I want happy users, and if that means writing X clients, so be it.
What is native? On Android the native Java UI kit is slow and not native.
You need a lot of fancy work to get fast c UI libs working on the 1000 different android devices. Goodluck with that. Browsers are probably the most optimized virtual UI machines out there. Sure not native, but I would argue that an integrated webview with proper css3 is much better optimized that using the android component framework or native draw operations. On ios things are slightly different, but also there the standard UI toolkit is a freaking nightmare. Creating general purpose UIs in a language like css feels so much better than most if not all UI toolkits out there.
>Would be great if everyone (mainly Apple, Microsoft and Google) could align themselves behind one platform and work together.
So you want mediocre, resource hog, lowest-commmon-denominator apps? Because that's how you get mediocre, resource hog, lowest-commmon-denominator apps.
> Apple could have easily expose ways for web developers to write native UIs in HTML, CSS and JS.
Easily?
As as far as running on one platform, I like native because my iPhone X Pro has a heck of a lot more capabilities than some generic back alley Shenzhen Android device. And multi platform necessarily requires developing for the lowest common denominator device.
And JavaScript isn’t the best language for everything, let’s stop pretending it is.
Yes from Amazon and other trusted places. I’ve done in app purchases for games (to remove ads) for a lot of companies. I wouldn’t do it if they had their own payments.
Apple apps can only be developed on Apple computers and if you pay a fee to Apple for the privilege. And they own the app store. There's lock in and then there's complete vertical integration.
Also formerly known as Web Applications but now made by Apple with the added features of less control from the developers, a 30% mandatory fee if you accept any payments of any kind and locked to just one platform.