9 ms·
This weekend the 3G mysteriously stopped working on my iPhone, so after months of use, I rebooted it. Rebooting the iPhone takes 1+ minute, and there _is_ a kin
by Maro 15y ago
This weekend the 3G mysteriously stopped working on my iPhone, so after months of use, I rebooted it. Rebooting the iPhone takes 1+ minute, and there _is_ a kind of splash screen shown during that time. The reason it appears instantenous during normal use is that it doesn't actually boot or load, it just turns the display back on. Also, many iOS apps actually have splash screens, you just don't see them very often as they're usually already running in the background (big apps like Facebook, and even small ones like PCalc Lite or Quotes).
You can kind of achieve this with Windows + Adobe stuff too. Just don't quit Photoshop when you're done using it, and don't turn the computer off, put it to sleep. If you have an SSD (like your iPhone), then swapping Photoshop back into main memory will also be much faster.
Of course the OP is right, Adobe stuff is bloatware and sucks. Fortunately for non-pro designers, there are alternatives like Pixelmator and Paint.NET.
- saturdaysaint 15y agoHe's talking about smartphone app behavior, not the OS. A lot of good apps (with notable exceptions like Facebook and Kindle) work to minimize the "splash" by throwing up a graphic that looks like the UI, even while the app is loading and the UI (briefly) isn't even responsive to user input. I like it - it definitely smooths the transition into using that app.
- jiggy2011 15y agoYou can probably do that with a simple smartphone app where the first screen is basically just a static menu. However with (let's say) eclipse or photoshop , when the program loads the first thing it displays is either my code or a graphic I am working on. How would it allow me to interact with that in any kind of useful way without actually loading the program?
- saturdaysaint 15y agoGood question - I understand that this is a lot harder for heavy professional apps, but I'm with the author in that I'd prefer a subtler transition. Maybe show me the rudiments of the interface (toolbars, menus, etc.) and a subtle progress bar for loading/opening the app and your last file.
- jiggy2011 15y agoI'm not sure how that's any better than a splash screen in fact I think it could cause much confusion. I created a web app recently that had to make an Ajax call but could not allow any user input until this action had completed as various parts of the UI would have to be refreshed with new information. I had reports from users that they thought the app had crashed since it wasn't responding to their inputs for a few seconds. It turned out the best solution was to simply whiteout the entire page and show an animated egg timer until the action had completed. It's only really heavy professional apps that take much time to start anyway.
- Maro 15y agoiOS apps that I have that use splash screens: Facebook, Linkedin, Flickr, IMDB, Dropbox, Angry Birds, Skype, iGo, Quotes, PCalc Lite...
- DrJokepu 15y agoThis practice actually goes against the recommendation of iOS Human Interface Guidelines, although it doesn't seem like Apple actually enforces it: Display a launch image that closely resembles the first screen of the application. This practice decreases the perceived launch time of your application. Avoid displaying an About window or a splash screen. In general, try to avoid providing any type of startup experience that prevents people from using your application immediately.
- MatthewPhillips 15y agoThat's a bit surprising to me. I haven't noticed this (not much of an app person), do many apps use the recommended technique? Personally I would find a splash screen that looks like the first screen to be confusing.
- DrJokepu 15y agoAll Apple apps (inbuilt or downloadable) follow this guideline. Amongst the non-Apple apps that follow it are Reeder, WhatsApp, Twitter, Sykpe (sort of), AIM, Shazaam, Instapaper and so on.
- ben1040 15y agoPlenty do. The idea with that guideline is that it resembles the first screen the user sees, but in a "vague" manner - that is, maybe it just has the title bar and empty table view with no data filled in. The idea is to give the user the impression the app has already started instantaneously, and you're just waiting for data to roll in to populate the UI.
- Turing_Machine 15y agoYeah, I'm using it in the project I've got in development right now -- actually sort of a hybrid approach. It's a grayed-out version of the main UI, with a "Loading..." message overlaid. I think that's a pretty common approach (graying it out, with or without an explicit message). The app needs to load something close to 200 fonts (it's a design-oriented app). If they're not all present, the font choice list won't render properly. Lazy-loading isn't really an option -- otherwise the user will be sitting there watching the UI slooowwwlly render each font choice, one by one, while he waits to do something with them. Better to take the hit at startup, IMO, rather than making the user pause while he's in the middle of creating something.
- darxius 15y ago> If you have an SSD (like your iPhone), then swapping Photoshop back into main memory will also be much faster. I think the point the author is trying to make is that it shouldn't be up to the consumer to spend more money to make their programs run faster. Software reform is what's needed and "just buy an ssd" is a very strong argument.
- CodeMage 15y agoWhenever you can run the same software on a variety of hardware with different specs and capabilities, it's always up to the consumer to spend more money to make that software run faster. Having said that, I agree with the idea of making software less monolithic and making it start up as fast as possible, as long as it is possible. However, when I say that I want a program to start up fast, I mean that I want it to start being useful fast. Quite a few of author's ideas are not about bootstrapping gradually, they're about faking it. It's like going to a place that used to have a "closed for lunch" sign and discovering that it's now open, but populated by robots whose personality is an Eliza-like AI.
- darxius 15y agoI might have misstated. I mean that consumers shouldn't have to compensate for poorly written (in terms of efficiency and speed) software. Sure buying an SSD would increase the write speed, which is usually the bottleneck for a system, but the consumer can save a couple hundred bucks if the developing company focused on speed instead of bloat. And I agreed about the "faking" issue. Just like how Windows will silently keep loading tons of services in the background after a reboot, but shows you a desktop and makes you think you are free to click and launch stuff.
- sciurus 15y agoIt's probably the random read speed that matters for starting apps.
- tripzilch 15y ago> However, when I say that I want a program to start up fast, I mean that I want it to start being useful fast. Quite a few of author's ideas are not about bootstrapping gradually, they're about faking it. But quite a few of those ideas are useful. The only ones I thought were a bit out-there were the ones about "just processing it in the cloud" while the local copy is still loading. But other HNers are probably more qualified to judge how realistic this is. What is a possibility, however, during loading a lot of time is spent on loading all sorts of modules, ones that might not even be used that session, and most definitely not in the first few minutes. Because what is the user going to do first? Most likely it'll be `File > Open ...` and browsing through the filesystem looking for whatever project they intend to open. You don't need any plugins for that. And it's exactly the type of task that spends relatively a lot of time waiting for user input and not so much time computing or loading things. During this task the app can continue loading modules and plugins and the user doesn't have to wait because they're selecting a file. You probably need to disable (most of) the instant preview in the file open dialog until it's done loading, but that's a minor trade-off. Of course you're loading the modules necessary for opening files first (most recently used filetypes first). When that's done the dialog can start showing previews. If the user happens to have found and selected their file before it's done, then, only then they'll have to wait. Now you're loading the file and it's showing on the screen, the user can browse the layers a bit and ponder where exactly they left off last time. A wonderful time to load the rest of the modules! Of course the features used in this project will be loaded first. If there's no text layers, we can put off loading font-rendering support in favour of other modules. It's not all load-on-demand, but a lot of user tasks are not as processor- or data-intensive as you'd think, because the user is busy thinking and as long as the UI is responsive enough they're happy.
- roadnottaken 15y agoI guess this is sort-of the idea behind OSX behavior where an App is running with no open windows. They WANT you to leave everything running in the background. As a longtime Windows user, I still find this confusing, but I think they're trying to make everything appear to "load" instantly because it's just always running... sort of like on a phone.
- why-el 15y ago+1. I find that extremely annoying. Some times I reopen a window of preview let's say just to close the whole program.
- chc 15y agoYou know you could just close it from the Dock or application switcher, right?
- kylebrown 15y agoYes but that requires a click-and-hold, causing the whole dock to resize for the pop-up menu, which is quite slow on my 32-bit MBP maxed out at 2GB RAM. I find it quicker to just click the Preview icon (causing a new window to open as the focus switches), and command+q.
- msbarnett 15y agoYou might want to try command-tabbing and quitting. Basically with command held down the entire time, hit tab until Preview is framed, and instead of releasing command (which would pull Preview to the foreground), hit Q, which will send Preview the command-q event and cause it to quit.
- pavel_lishin 15y ago> Some times I reopen a window of preview let's say just to close the whole program. I do not understand what you are saying. Can you elaborate?
- cageface 15y agoAdobe stuff is bloatware and sucks. No, it's just vastly more complicated than most of the cut-down alternatives because it has to meet the needs of pro designers. Maybe there's some accumulated cruft there but I can guarantee you that Pixelmator, for example, would be similarly large if it had to support all the same use cases.
- systemtrigger 15y agoYes though I suspect Photoshop's load time could be significantly reduced by limiting the features available at load time. If the method code for the 223rd most popular effect is loaded into memory prior to the user being able to do anything, Adobe is doing it wrong.
- cageface 15y agoMaybe so, but that kind of dependent loading might also significantly complicate the code. I have no idea how Photoshop actually handles this but it's about as close as software gets to magic already so I'm disinclined to accuse the developers of incompetence or sloth.
- jiggy2011 15y agoYes, part of the problem that Photoshop has is that it is seen as the "go-to" tool for doing any kind of graphics work at all. Many people install pirate Photoshop to resize and put a few filters on their photos and complain that is it too slow and complicated when really they could have achieved the same result from either a freeware program or a significantly cheaper commercial one.