Trying to Recreate iOS on the Web

(homescreen.app)

139 points | by plurby 7 hours ago ago

73 comments

  • btown 2 hours ago

    https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu... is a parallel saga for mimicking the macOS touchpad behavior on Linux; it's been a full 8 years in the making. It's so much more than acceleration settings!

    I really appreciate, and will buy a beverage of choice anytime for, anyone who tries to go down these paths, including OP, whether with web or desktop technology.

    Painstakingly mimicking, then eventually improving on, Apple's interactivity/motion design is IMHO one of those things that could make open-source desktops a superior option to both Windows and Apple from a mainstream user viewpoint, and those possibilities should be cherished.

    • conradev 2 hours ago

      Someone was trying to raise money and find engineering time for the effort (but, no longer):

      > We recognize that our rate of visible updates has slowed to the point where it no longer makes sense to continue billing sponsors of this project.

      > But at the moment, our lead developer is working on Linux touchpad improvements at less than 1/8 capacity. This means that progress is slow as he can only spend half a week per month on improvements.

      https://news.ycombinator.com/item?id=39607747

    • jimkoen 2 hours ago

      I've tried looking up the source code, but this seems to be the CEO of a security company blogging about their closed source side project.

    • moralestapia 25 minutes ago

      Battery life and trackpad is why I've been buying Apple for like 20 years now.

      All other hardware companies have been doing a mediocre job on these two features.

    • ant6n 2 hours ago

      Iā€™m not sure why people always praise Apple on interaction Design. I just got a MacBook again, and thereā€™s little things that just drive me crazy: when you use tap-to-drag on macOS, thereā€™s a delay when releasing the drag (presumably so u can continue dragging by putting the finger back down). This doesnā€™t exist in windows or Linux, so when working with multiple OSs, one keeps mis-dragging, making a big mess every time. But there doesnā€™t seem to be a setting for it, either.

      Or why does Apple insist on having a non-standard keyboard in Germany, it doesnā€™t even have characters like ~{}[] on it, only accessible via hidden key combinations that donā€™t match the standard keyboard. Oh and the US keyboard is only available in the Apple Store, where everything is 200ā‚¬ more expensive. Just like, why mess with basic interaction design in a way thatā€™s really unrefined and infuriating.

      • samatman 2 hours ago

        Something being unfamiliar doesn't make it worse. Or better necessarily, but it seems noteworthy that your frustration is with a feature designed to make it possible to drag draggable things around without losing them if your finger leaves the trackpad for an instant.

        > Or why does Apple insist on having a non-standard keyboard in Germany,

        This:

        https://www.apple.com/shop/product/MXCL3D/A/magic-keyboard-u...

        Appears to my eye to match this:

        https://en.wikipedia.org/wiki/German_keyboard_layout

        Precisely. I just switched to the german layout, which has some amusing consequences for words like layout, but: []{}~, looks like everything is where Wikipedia says that a T1 German layout should put things. What's the complaint exactly? Because it's not that the keyboard is nonstandard, is it?

        If you'd rather use another layout, you very easily can, right? I mean, I just did.

        • klausa an hour ago

          FWIW, that is a thing that Apple actually gets wrong a bit across the world.

          The default layout for Macs sold in Poland is also nonsensical ā€” it's "technically" more correct, and maps closer to what the typewriters looked like (I think?); but it is a layout that literally nobody else uses.

          I don't think I could easily find a non-Apple keyboard with that layout in Poland if I tried.

          • reddalo 36 minutes ago

            Old Italian Macs used a classical QZERTY keyboard, like typewriters, but no other computer keyboard uses that layout.

            Normal computer keyboards use QWERTY (plus some accented letters). Luckily, Apple switched to that layout for Italian keyboards many years ago.

        • seedie an hour ago

          What they mean is that on a standard german keyboard layout to type []{}~ one would press

            [ Alt Gr-8
            ] Alt Gr-9
            { Alt Gr 7
            } Alt Gr 0
            ~ Alt Gr +
          
          While on an Apple keyboard you use

            [ āŒ„-5
            ] āŒ„-6
            { āŒ„-8
            } āŒ„-9
            ~ āŒ„-n
          • dcrazy an hour ago

            Donā€™t confuse ā€œstandardā€ with ā€œwhat IBM and Microsoft implemented in the 80sā€.

  • coder543 4 hours ago

    Thinking about what feels different here, there are a couple of things that could be fun to implement:

    - On iOS, opening and closing an app also scales and blurs/unblurs the wallpaper at the same time that itā€™s animating the app entering/exiting the foreground.

    - Also, years ago, Apple added a very subtle 3D effect to the Home Screen. Essentially, when youā€™re looking at the Home Screen, as you tilt the phone, the icons and widgets move a few pixels in the direction of the tilt, which makes it feel like theyā€™re popping out of the screen a little. To study the effect in detail, you can just look at the edge of an icon or the text below an icon and tilt the screen around and notice how it moves relative to the background image. Itā€™s meant to be a very subtle effect, not some garishly dramatic effect.

    • afavour 3 hours ago

      I did that parallax background effect on a web site many years ago. Unfortunately (but understandably) accelerometer data is now behind a permission prompt on the web. Displaying a garish modal permission prompt so that you can do a subtle background transition doesn't make sense as a tradeoff.

      • KTibow 2 hours ago

        I'm a bit confused, what permissions would this animation require?

        • happyopossum 2 hours ago

          You donā€™t want every website in the world to have unfettered access to your accelerometer - way too much sensitive info can be grokked from that.

        • kossae 2 hours ago

          Accelerometer data from the phone in order to determine the position for the parallax effect.

    • mentalgear 3 hours ago

      I actually added the parallax effect back in my version of iOS 7 on the web (2013). It was meant for people to check the new design out on their phones before upgrading. You could even open/zoom into folders. Spend quite too much time on it, but it was quite novel back then. https://streamable.com/pki7ux

    • hbn an hour ago

      The parallax background effect has actually been broken for a few years now

      https://forums.macrumors.com/threads/home-screen-parallax-ef...

      • coder543 an hour ago

        That linked discussion doesn't say it is broken all the time (which your comment strongly implies to anyone who doesn't read the link)... and I had verified the parallax effect was working fine earlier today when I made my comment.

        I hadn't rebooted my phone in quite awhile, so I'm not sure what the conditions are for that bug, but I think that discussion is wrong that rebooting is the only way to get it working again. I had surely accessed the App Library since the last reboot at some point, and yet parallax was working fine. But I can confirm that it does break (at least temporarily) after accessing the App Library.

    • sroussey 3 hours ago

      It does have the blur thing when you slide over the widget screen.

    • spicybright 2 hours ago

      That's disappointing if it's removed now, I used to really like that on my old phone!

      • coder543 2 hours ago

        I didnā€™t say it was gone! Just that Apple added it years ago.

        The website this post is about doesnā€™t implement the feature.

    • nottorp 2 hours ago

      You realize that quite a few people have disabled that 'subtle 3D effect' because they found it annoying?

  • redbell 17 minutes ago

    From a design perspective, this is really impressive. However, I noticed a few basic functionalities seem to be missingā€”at least for meā€”like the ability to return to the home screen from an app.

    On a related note, Try Galaxy (https://news.ycombinator.com/item?id=35886033) is another fascinating project. It offers a web-based One UI clone, and when installed as a PWA, the experience becomes even more seamless.

    Speaking of web-based UI clones, I canā€™t resist giving an honorable mention to Puter (https://news.ycombinator.com/item?id=33838179) and DaedalOS (https://news.ycombinator.com/item?id=38830132). I believe they are exceptional projects that deserve recognition.

  • solarkraft 4 hours ago

    I thought this would be about the interactions that are so charactetistically iOS and are hard to recreate on the web.

    Well, it seems that the things that are hard to recreate have been omitted, making this not all that interesting.

    On that note: It would be interesting to see something that actually does this.

  • yesimahuman 5 hours ago

    Really nice, and I say that as someone that built a quite popular mobile web framework that duplicated a lot of iOS UI (Ionic). One thing I noticed is the swipe gestures arenā€™t working. This is all very doable on the web which many people donā€™t believe. Itā€™s pretty wild what the web platform is capable of, the gap is absolutely with web devs who donā€™t know how to put the many modern APIs and capabilities into practice.

    • aziaziazi 3 hours ago

      > modern APIs

      In my experience the gap is also about supporting a wide range of users and their old or not so powerful devices. Sure polyfills do the job of support but at the cost of bundle size and compute, which may degrade the experience for that particular audience. My number one moto in web app design and development is KISS.

      Iā€™m glad so see ionic have a browser support page https://ionicframework.com/docs/reference/browser-support and will probably give it a try someday.

    • indeyets 4 hours ago

      Itā€™s usually the difference between having a low-level api and high-level api. iOS gives a lot ā€œfor freeā€.

      Creating stuff from scratch is not a fun experience

      • duxup 4 hours ago

        >Creating stuff from scratch is not a fun experience

        It's one of those things that I love the idea of doing. I'd love to create my own look and feel and design.

        But day to day at my job I just need a dang button that does the thing or transition between things, a spinner or ... whatever.

        • Maxion 4 hours ago

          And the amount of fine-tuning done on ios for the various gestures is quite astounding. Re-creating them using browser APIs isn't really entire possible.

          • yesimahuman an hour ago

            You can extremely close if not imperceptibly there for a lot of interactions. The bigger issue is actually mobile browser ā€œchromeā€ getting in the way (i.e. baked in gestures in mobile browsers)

      • jeffhuys 3 hours ago

        > Creating stuff from scratch is not a fun experience

        I'd have to say that I completely disagree here - it's one of the things I get most fun out of, even at work.

  • klausa 3 hours ago

    My main takeaways from this are:

    ā€” wow there sure are a lot of subleties in iOS animations and interactions that seem very _very_ hard to replicate

    ā€” why is my brain _so good_ and noticing those little things?! I shouldn't be able to notice that the battery indicator is too thick; that the squircles are not continnous, or that the curves on all animations are just ever so slightly off.

  • thih9 4 hours ago

    Loosely related, there are frameworks for recreating native UI for mobile apps written in JS, e.g: https://framework7.io/

    > free and open source framework to develop mobile, desktop or web apps with native look and feel

  • jsheard 6 hours ago

    Remember when optimizing sites for mobile was new and everyones first impulse was to unironically turn their site into a fake iOS app? Those were the days.

    • gpmcadam 5 hours ago

      The biggest contributor to this was jQuery Mobile. Surprisingly, the "ThemeRoller" is still up, despite the project being discontinued. Quite a fun trip down memory lane.

      https://themeroller.jquerymobile.com

      • m_st 5 hours ago

        Don't laugh, but we still have a big software solution based on jQuery Mobile up and running, used daily by hundreds of users on tablets and smartphones, and getting new features every few weeks.

        (yes, a successor is planned, but it will be a huge amount of work)

      • patwolf 5 hours ago

        I kind of miss the days where building a mobile app was just plopping giant widgets on a screen, and we didn't need giant figma files and design languages.

        I don't, however, miss dealing with the 300ms click delay.

        • whstl 3 hours ago

          What bothers me more is that those giant Figma files don't have anything special about the design anymore. Very often they're just using some uncanny-valley version of Material Design. Companies spend a lot of time reinventing almost the exact same wheel for almost no benefit at all. So much wasted potential.

      • moolcool 5 hours ago

        Take me back

    • zoover2020 5 hours ago

      I still see the fake, 2010 era mobile banners bases on my device' user agent

    • starfezzy 5 hours ago

      No.

  • nmstoker 5 hours ago

    Authentic in so far as there's no back button and using it in Android backs you out of the whole site!

    • aziaziazi 4 hours ago

      Tap on the button line. AFAIK thereā€™s no such a think as back button in iOS. Apps can display one from the SDK but donā€™t if no need. Going to the homescreen is done by swiping from bottom on iOS. This site doesnā€™t handle swipe and use the bottom bar visual indicator as a home button like in the oldā€™ days. As a long time user I find it evident but totally get that itā€™s not obvious for those not accustomed

    • radicality an hour ago

      I normally use iOS, but recently got a Pixel as a secondary phone. Whenever I try to use the Pixel and swipe ā€œbackā€ or ā€œforwardā€ (left and right), often times something I wasnā€™t expecting happens, I think my mental model is missing/incorrect of what ā€œbackā€ is on Android.

    • ThatMedicIsASpy 5 hours ago

      I don't even know how to go back on ios so I am stuck on firefox.

      • esskay 4 hours ago

        Fun anecdote, firefox on iOS is still broken years after its launch.

        If you play a video in horizontal mode, then go back to horizontal mode the bottom bar vanishes and never comes back, meaning to actually manage tabs you have to keep your iphone horizontal.

  • jaegerpicker 2 hours ago

    Interesting bug: if you swipe on screen with the mouse button pressed and slide of screen to release the mouse button the on screen swipe action stays attached to the mouse cursor. Only sort of a bug because it's only because it runs in a web page vs on an actual phone. Still would be interested in how to fix that in general.

    Overall it looks cool, I'm a native mobile app guy so I'm always skeptical about mobile web. This doesn't change that for me but I can see growth in the web platform for mobile.

    • wruza an hour ago

      Itā€™s a common ui bug in all software, happens due to release event firing outside of controlling element. People donā€™t know about pointer grab, which should be used in drag operations, and frameworks donā€™t even inform nor encourage it. Modern ui/ux school.

  • roblh an hour ago

    There's a really specific behaviour that iOS has with its collapsible top bars that I've been trying off and on to nail with CSS for ages as a little puzzle, but for some reason it's always not quite right. As you scroll down or up, the bar remains perfectly in place and only starts moving up once it's fully revealed or down once it's fully gone. There should be a way to do it with `position: sticky` but whether you use some javascript or not, it's always slightly jerky or wrong, especially on safari. Apple really does pay attention to these little things in ways others don't.

    And then they go and release that recent photos app update and make me seriously want to leave their ecosystem completely.

    • radicality an hour ago

      I also dislike the updated Photos app, I think itā€™s because of lots of small things that add up. What you dislike?

      Largest one for me is probably playback behavior in full screen is strange. You start playing a video, it goes full screen, then you tap on it and it resizes to slightky smaller size.

  • reddalo 35 minutes ago

    It's impressive, but it's completely broken on Macs with a normal mouse connected and Firefox, because scrollbars appear everywhere and they break the layout.

  • wruza an hour ago

    Why does it stutter and flash black screen first time you open an ā€œappā€ or even switch tabs in e.g. clock app? Does it use react as a renderer?

  • oefrha 3 hours ago

    Nice, the most jarring difference to me is when you scroll up in Photos or Settings, the topmost area isnā€™t blurred.

  • Jackknife9 5 hours ago

    They really missed the opportunity to show a gorilla or something when you flip the camera.

  • deanc 5 hours ago

    I once did something like this for Nokia when their phones moved to Windows Phone. The devil is in the details, and 90% of the time was spent mimicking the animations and transitions.

  • mentalgear 4 hours ago

    Well done! This reminds me of my own recreation (11 years ago!) of the iOS 7 homescreen as a webapp! :P

  • hk1337 3 hours ago

    It even replicates how annoying it is to swipe with a mouse.

  • maxcruer 3 hours ago

    at least the calculator should work...

  • EugeneOZ 2 hours ago

    Font size in inputs should be strictly 1rem / 16px. Otherwise, theyā€™ll be zoomed in Safari iOS.

  • byyoung3 4 hours ago

    looks good. Main thing is the swipe gestures need some work

  • kookamamie 6 hours ago

    The icons look blurry.

    • aziaziazi 5 hours ago

      Device, OS and browser names (versions are even better) would probably help a lot the site author to fix it.

      Looks nice on iPhone 12 mini iOS 18.0.1 and iPhone SE iOS 15.8.3, both safari.

      • MrMid 5 hours ago

        On desktop Firefox (133) on Ubuntu (24.10) it does look blurry.

    • llm_nerd 3 hours ago

      The "screen" div has a transform scale attached, which on Chromium based browsers (Chrome, Edge, etc) leads to blurriness.

    • graup 5 hours ago

      Blurry for me too, Chrome on Mac OS on a non-retina external display.

    • mensetmanusman 4 hours ago

      Crystal clear for me - nice! ip16pm

  • davidavidavid 2 hours ago

    com

  • codefeenix 4 hours ago

    Here I was expecting to see emulated Cisco software