Hacker News new | past | comments | ask | show | jobs | submit login

I have an app written in Swift and weights between 8-20Mb(depending on device and iOS version), which is not too far of from a typical website these days and the startup times are phenomenal(between 250-500ms, depending on the devıce).

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.




It's hard to imagine, but some DOS apps had <100ms startup time on a 486 while coming full-featured on a 1.44MB floppy disk.

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.


And it had 2 squares on the screen with 10 pixel letters inside them saying 'Proceed y/n'?

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.


Nah, it was a full cashier system including a bar code scanner attached through that big printer port.

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.


Oh I did not put any effort to optimize that.

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.


When you are used to desktop apps coming up and being useable literally in the next frame of you launching them, any interaction with mobile decices and webbpages with loading times everywhere is absolutely terrible. Makes me remember all the game consoles which would have loading time ms everywhere - it was terrible and frustrating when you were used to PCs


> When you are used to desktop apps coming up and being useable literally in the next frame of you launching them,

I’m certainly not used to that. Mobile launch times are substantially faster than desktop in my experience.


I remember when starting Netscape took over 1 minute


Things are very different for my iPhone 6 vs Galaxy S10.


A large part of the bloat is from graphics assets. The icon for most apps is many times larger than these old programs and you can’t do much about that. It’s one thing people don’t realize that happens when you get these hidpi screens.


Many old games used vector art to compress things. I'm guessing that would also work for many app icons.


Aren't icons already typically SVG?


‘Full featured’? What does that mean for 1989 compared to now?


With Objective-C apps, it used to be even better, in startup and in app size. I think you can still get similar app size if you make a pure Obj-C app today.


On modern versions of iOS, the runtime ships with the system so even your Swift app can be hundreds of kilobytes to a few megabytes.


The nature of swift itself, similar to C++, makes it create bigger binaries compared to equivalent Objective-C code. So even with no runtime included, they will still be bigger on average.


Eh, that depends on your code.


What's the status of Objective C language today? Is it fully supported forever or is it in legacy status waiting for its support to be dropped in the future?


It will be fully supported probably forever since Apple wrote a ton of their own systems in it and it has perfect integration with C and C++. The language is basically done at this point, any new features will probably be aimed at language interop.


Thanks. I'm not a vivid iOS developer, but I'm writing some apps sometimes. Swift is so fast moving target that I don't want to pursue it, while Objective C is a language that I know and actually like. It's like C vs C++, I learned C++ 15 years ago, but it's completely different since then, so my knowledge is basically useless without solid investments, while C is almost the same as it was 30 years ago.


Before Swift become a thing I look at Objective-C but it was so irritating that I stuck with JavaScript. It's probably faster but what difference it would make to open the app faster than what the user can perceive? I can use static images to give the impression that the app is already running, which is recommended by Apple anyway since the user won't be able to react before the app is fully loaded anyway.


I can't remember the last time I installed an app that was only 20MB. Even the most simple things weigh in at 100MB and up these days.

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.


The unnecessarily large apps probably use cross-platform tools that ship their runtime with each installation, losing out on Apple's optimizations or they have multiple ad tracking or 3rd party UI libraries.

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.


> 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.


Yeah, IMO the cross platform tools are mainly designed for apps that aren't doing hard/uncommon things. Which is a lot of them to be fair.


I think adding the Facebook SDK added something like 40-120MB to my app if memory serves me correct. One more reason I always use the mobile web version in a WebView every time I can get away with it. It has all of these dependencies like Bolts and what not. All to display 2-3 screens worth of login.


A fair number of the just have a bazillion frameworks, even if they’re fully native. Large tech companies are notorious for this.


Hmm it might be worth you checking out capacitor, I've shipped a couple of full featured fairly complex apps under 5mb that use the same codebase for iOS and android.

I steered clear of ionic and angular developing my own framework and the apps had less than 1mb of assets bundled with them.


I haven't used Flutter but I remember Expo being particully bad for this, a hello world app weighs in at 100mb.


How much do you think is code and how much do you think is high resolution art assets


Can I ask what the app is? Just curious.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: