Apple is developing a feature for using apps without requiring full downloads
9to5mac.com
9to5mac.com
HTML5 is just 100X easier and nicer to program with than that abomination of Android Studio followed by aligning, keysigning, and other steps.
The HTML5 hello world is
<html><body>Hello World</body></html>
The native hello world is no less than 74 files of garbage, Gradle configurations, and other nonsense.- Work with others on standards
- Expose things on a open platform that won't allow you to have full control over what's possible for developers and users to do and use
- Admit that sometimes you're wrong and you have to change according to others
<html>
to <apple_ml>
and base64 encode the .html file (for no reason) and call the resulting file .iapp. Done. Standards broken. Proprietary status achieved with minimal effort. Change ".css" to ".bss" if you want to go the extra mile.and leave everything else as-is? Sounds like a win-win for both developers and biz dev.
Sadly already taken: https://en.wikipedia.org/wiki/.bss
Also, your html5 app needs several icons for different screen sizes.
(You should be able to find them in the list of apps in Settings)
Writing in Swift is a delight and this is the feature I was dreaming about because having the user to install the App is not easy these days(100 impressions on Appstore Search would get me about 8 installs) however the people who install it are quite happy according to the feedback.
I would imagine that the experience is similar to Apple's AR experience on Safari, which I feel can be improved but much nicer than opening the Appstore still. Let's hope that it's not too limited and can be possible to give a good feel to the user about the App's full functionality.
The article talks about letting the dev to pick which part of the App would be presented but I suspect that the actual implementation would be similar to making an App Extensions - basically creating a separate mini-app that shares the codebase and the resources.
I agree that your app is small and fast compared to what others are putting out there, but compared to what software engineering could do if people cared, this is still bloated and slow.
What kind of a comparison is that? People do care, it's just they care about ease of use (not putting strain on your sanity) over some imperceptible startup time difference or space difference on hard drives that get cheaper every day.
I believe Circle K still uses pretty much the same UI, because that mouse-less keyboard interface can be used efficiently with one hand.
Not everything needs to be pretty to work well.
I bet I can get this number lower with some lazy loading but what for? The app is loaded by the time the springboard animation ends, the user interaction isn't likely to start before that.
It's a new App that I try to iterate quickly, so I prefer to keep away of added complexity that optimizations would bring. If it feels quick enough on the lowest end device that I support(which is iPhone 6s because of iOS13) it's alright. The mobile devices are very powerful these days.
I’m certainly not used to that. Mobile launch times are substantially faster than desktop in my experience.
The most ridiculous example I've seen lately is the mobile version of the Gwent card game from the Witcher game series. It's 2.7GB. For a card game.
I am not an expert in mobile dev by any means since I switched from web to native mobile development barely a year ago but when I was still resisting to learn the native way of doing things I was exploring the cross-platform solutions and libraries to "take advantage of my current skills", anything that goes beyond the demo todo list app quickly escalated in resource consumption and development complexity.
With these cross-platform tools, the moment you try to do something a little bit differently than everybody else, you find yourself stitching multiple 3rd party libraries together and these libraries add up to the binary size and loading times.
This.
I have tons of native iOS experience.
Started with react native a little over a year ago and was shocked at how difficult some things are. Easy things are easier. Hard things are harder.
I steered clear of ionic and angular developing my own framework and the apps had less than 1mb of assets bundled with them.
The problem is that there is no incentive for developers to keep their apps small. And since Apple makes money from selling larger phones, they also have an incentive to tolerate bloat. And lastly, your provider will be happy to charge you astronomical fees for downloading that critical update over mobile data.
There's nobody making money from small apps but 2 of 3 parties can monetize bloat. So bloated apps it is!
The name Clips and the QR scanning suggests to me that this will be used for advertisements, like those AR overlays.
I guess it would be cool for a demo but I dunno. Also iOS apps are so large this won't be practical at all on cellular data.
They don't have to be. For example Tweetbot, which is a fully functional app, is only about 7MB. It's not hard to imagine that a single screen of an iOS app specifically optimized for space could be only a fraction as large – considerably smaller than the average site these days (10MB+).
Instagram and snapchat have ways to launch interactive experiences from a code and I’ve always thought Apple are missing a trick there.
One of the biggest hurdles getting clients to make apps now is “no one downloads apps anymore” so this could make a huge difference and make more frivolous interactive experience work in apps again.
I hope this happens soon.
the usecase for these kinds of things is so muddled and unclear i don't understand the point...
The change seems to be that this allows all code to be downloaded on demand, not just scripts.
Of course it'll be limited to places with high speed cellular Internet, but hey 15 years ago no one thought we'd be able to stream 3D games over the Internet..
We really are reinventing web pages on a regular basis
They see the writing on the wall with technologies like wasm blossoming, and with web APIs beginning to open up possibilities for “native”-quality apps.
So they’re interested in anything that can reduce the friction necessary to get into native iOS apps.
If people swap out QR codes with malicious ones in real life, that could have all sorts of implications.
This can already happen with a QR code and a website? I doubt these aren't going to be heavily sandboxed.
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.
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.
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?
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/
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.
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.
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.
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.
You're exaggerating.
>Native cross platform toolkits like Qt are no more work but provide a much better user experience
Not in my experience, but the quality varies a lot between apps. I think it can be done well, but so can Web apps.
The major plus for desktop apps (but not mobile) is access to local data and to different remote data sources.
And, even so, the Facebook app has many billions of downloads. Clearly some people prefer it.
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.
Unfortunately, going by current trends… it will be a full native app wrapping a browser containing a web page trying to look like native UI.
PS/opinion/fluff: There is also the implementation detail of language. Swift/ObjC is significantly superior to JS.
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!
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.
So you want mediocre, resource hog, lowest-commmon-denominator apps? Because that's how you get mediocre, resource hog, lowest-commmon-denominator apps.
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.
Do you not buy things online?
I no more want a web app on my phone than I want an Electron app on my computer.