15 ms·
My primary concern with this is that different applications are inherently optimized for the platform on which they were originally designed. There are some app
by AdmiralAsshat 8y ago
My primary concern with this is that different applications are inherently optimized for the platform on which they were originally designed. There are some applications that have a very dense UI because there's simply alot of functionality that the program handles (think of a video editor, an IDE, etc). Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly, and I fear that in the name of making "everything work everywhere", we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms.
I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?"*
* Ruling out, of course, someone plugging their phone into external KVM.
- masklinn 8y ago> There are some applications that have a very dense UI because there's simply alot of functionality that the program handles (think of a video editor, an IDE, etc). Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly And beyond that, platforms have affordances which you should want to leverage. A smartphone has a very direct and tactile interaction model, but my computer pairs an extremely precise pointing mechanism with a good way to input oodles of text and chord shortcuts.
- fwip 8y ago>"Why in god's name would I want to run vim on my phone?" To be fair, I've used vim on my phone over SSH and it was actually a pretty good experience. Editing is a bit more deliberate of an affair than with a hardware keyboard, but still easier than trying to visually select text on the touchscreen, and no complex chorded keybindings to try to enter.
- effinjdent 8y agoYour phone has an escape key? Or did you rebind it?
- jimktrains2 8y agoI've done the same, and after a minute or two it makes sense. Especially in a situation where you're not doing a ton of editing, just a line here or there, it can be a life saver. A now-dead sibling asked about an escape key; on Android at least there are keyboards that have the meta buttons (no affiliation: https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard https://play.google.com/store/apps/details?id=org.pocketwork... is one example).
- jraph 8y agoTermux does provide an additional row of keys that can be customized to add missing arrows and other keys easily. https://wiki.termux.com/wiki/Touch_Keyboard https://wiki.termux.com/wiki/Touch_Keyboard I found vim is actually the most convenient editor to use on Android to edit code without hardware keyboard compared to any editor that I found on f-droid. And I don't use vim on a regular computer.
- JohnFen 8y agoI use it on my phone as well, but with a physical keyboard.
- tombert 8y agoI have the GPD Win that I bought a couple years ago, which is more or a less a Nintendo-DS-Sized computer running "real" Windows, and I love it. I can do programming on the train, even while standing up, as well as use all the tooling that I like, including Vim actually. The only limitation for me has honestly been Windows, since I'm more of a Unixey guy. Something that has always bothered me is that smartphones are basically supercomputers nowadays, at least compared to what we had in the 90's, but I feel incredibly limited in what I can actually do with my iPhone. I can't easily code stuff for the iPhone in Haskell, I can't open up multiple "tabs" of videos on the YouTube app, and even a lot of the apps that do get ported over end up having incredibly limited "mobile optimized" versions. I would absolutely love a phone that could let me run the "real" versions of apps when I need to. Ubuntu Touch was trying this, and I honestly don't think I'm unique in this desire.
- aliswe 8y agoThat is an amazing device, thanks for sharing!
- tombert 8y agoI think they released a new one with Linux pre-installed. I might look into that if I can sell my current one.
- wlesieutre 8y agoOooh very cool. I wish Apple still had Target Display Mode as a feature on their devices, it'd be great to toss this in a bag as an "I might need a real computer" concession and be able to use my iPad as an external display for it.
- Wowfunhappy 8y agofwiw, Target Display Mode is still a feature on new iMacs, they never killed it per se. Won't help you on your iPad, though.
- fiddlerwoaroof 8y agoI find that modal editing is a really good fit for Mobile keyboards: text manipulation (select, copy, cut, edit) is pretty hard on a touchscreen and being able to hit a couple keys to make the edit instead of fiddling with dragging out a range on screen makes a huge difference.
- jxdxbx 8y agoAndroid tablet apps have always sucked because Android was designed with the expectation that you can easily and automatically scale apps to different sizes. It turns out, you can--within particular size classes. And Android's ability to support lots of different phone screen sizes was a major advantage over iOS for a long time. But, Apple's requirement that iPad apps have separate, hand-tuned interfaces was also a huge advantage for iOS, since blown-up phone apps suck on tablets. So now we know that the right approach is adaptive designs, but within certain bounds. Both iOS and Android have this now (iOS is more adaptive, and Android supports custom tablet layouts), the problem for Android tablets being that it's not enforced or required. Anyway, all of this is to say that while platforms can and should do a lot of work to make it easier for developers to support multiple device classes, screen sizes, and so on, it will never be automatic.
- Tohquai7 8y agoIDEs and productivity tools often approximate a tile-based window managers where you can collapse all but the central tile (or conversely, put the central one in fullscreen) if you want the maximal real estate for the content instead of the auxiliary bars and then slide them in for a moment when you need them. This mode seems suited for mobile UIs, so that flexibility should get them pretty close to being convergent. There probably still need to be some adjustments to make it really usable on mobile, but a lot of the work has already been done.
- dmitriid 8y agoExcept... In IDEs you can have code side by side, and then a tool running in a third pane (let's say a debugger, or tests), and you have quick and convenient shortcuts to switch between these panes, and hidden panes, and other windows on desktop. Phones have none of that. And they really can't really provide them because of limited screen estate and touch being the only way to interact with it.
- derefr 8y agoHow about, instead of creating applications that are on all levels a compromise between the two, just create applications that work hard to decouple their UIs (view/presentation layer) from their business logic; and then, for each application, write a small touch UI, a large touch UI, and a desktop UI, as separate view layers, all living together in a monorepo. Or, in other words, do what any third-party app developer who ships apps for iOS+macOS from a single XCode project source does—but build your whole OS like that. As well, ideally, the view layer would be modular enough that it could be unloaded and reloaded at runtime, such that you'd be able to dock your phone to an external display and have all your running applications switch to their desktop UI view-layers without losing state.
- tracker1 8y agoThis is precisely why I really like react and redux. There are times I track the window size and use different components to render. The state logic stays the same.
- criddell 8y agoIf you are writing an IDE, it seems foolish to spend time on a small touch UI that will be used by almost nobody. If you can't do something well, don't do.
- zelos 8y agoVim is on iOS, at least ;-) https://itunes.apple.com/us/app/vim/id492668168?mt=8 https://itunes.apple.com/us/app/vim/id492668168?mt=8
- jancsika 8y ago> Trying to slim down those applications to make them reactive so that they will scale onto a phone or tablet just seems silly, and I fear that in the name of making "everything work everywhere", we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms. Which are the Linux GUIs that currently "work beautifully" on the desktop? > I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?" You couldn't just hook up a usb keyboard to the Purism phone?
- AdmiralAsshat 8y agoYou may have missed that part where I said "Ruling out, of course, someone plugging their phone into external KVM". My point was not someone simply running vim on their phone. My point was that if someone rewrote vim to be idiomatic within the smartphone UX (e.g. replacing keyboard motions with swipes and gestures), it would largely defeat the purpose of vim as a modal editor and render it simply as another generic text editor.
- uryga 8y ago> idiomatic within the smartphone UX (e.g. replacing keyboard motions with swipes and gestures) it would largely defeat the purpose of vim as a modal editor i'm not convinced that's true... you're right that presently most touch interactions are very "direct" (i.e. an object will move exactly like you drag it, much like using a mouse). but that doesn't rule out more "abstract" (i.e. vim-like) methods of touch input, we just haven't seen them yet. "10 fingers on a keyboard" will always be more expressive than two thumbs on a screen for input like this because it offers more bandwidth and isn't limited by screen real estate, but i feel there's still a lot to explore w.r.t. touch gestures, even if they end up as keyboard shortcuts on steroids. one example of a good "abstract" gesture is what Paper 53 (an iPad drawing app) did (does?) for undo: put one finger down, drag another finger around it in a compasses-like motion; counter-clockwise to undo, clockwise to redo, and the further you turn, the more "steps" it moves. felt really intuitive and way better than tapping an undo button!
- sdedovic 8y agoThis reminds me of a part of the Akka documentation about distributing your application across multiple machines: > The key for enabling this is to go from remote to local by way of optimization instead of trying to go from local to remote by way of generalization. [1] I think its analogous to this mobile/desktop "purist" OS. Specialize, don't generalize. [1] - https://doc.akka.io/docs/akka/current/general/remoting.html#distributed-by-default https://doc.akka.io/docs/akka/current/general/remoting.html#...
- rcthompson 8y agoI guess we have to ask whether having a single OS running on phones and PCs means that every application written for that OS absolutely needs to be designed to run on both, or whether it's acceptable for an app launched on a phone to just say "sorry, you need a bigger screen" and quit. In other words, is it acceptable to write non-convergent apps for a convergent OS?
- criddell 8y agoI think that would be perfectly acceptable.
- MrMember 8y agoThere is the approach Samsung is taking with LinuxOnDex. My Note9 runs Android but I can plug it into a monitor, mouse, and keyboard and boot up a Linux environment. It's still a bit rough since it runs in a container on top of Android but it works surprisingly well.
- pjmlp 8y agoHow are the updates?
- mostlysimilar 8y ago> we're going to compromise a bunch of apps that worked beautifully on one platform in favor of making them work adequately on several platforms. This is already what I feel has happened to the web. Modern web design has so heavily optimized for responsive scaling to a small touch screen that we end up with hobbled interfaces on desktops.
- moomin 8y agosigh Yes. I want to be able to seamlessly move stuff between my phone, laptop, TV, stereo, car. For that, I really need open standards, not "convergence". I also don't want a UI on my desktop that's compromised by the restrictions of working on a PlayStation.
- molotovbliss 8y agoEventually it sound be the device I carry around is the main device, everything else should strictly be for input/output. I hop in a rental car the DIN just mirrors the screen & input adapted. But... https://xkcd.com/927/ https://xkcd.com/927/
- molotovbliss 8y agoSound=should
- bhauer 8y agoSome folks, myself included, reel at the conventional wisdom that a small screen necessarily means reduced functionality. While I agree that it can be difficult to design information-dense UIs for small displays or provide navigability to a large feature set, I strongly applaud efforts to unify computing and work through these challenges. I very much want all of my computing devices to be unified. In fact, I want a model where I have one computing device and multiple views ("terminals" if you wish) [1]. But a consistent experience as Purism is pitching, and which Microsoft attempted with Windows 8 + Windows Phone 8, are viable first steps. There is learning to do here and it's great to see people taking on the challenge. > I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?" Sure, but if they find it useful, fun, or just plain cool, I applaud it. I want more desktop-class computing capabilities on my phone-sized device and I routinely find myself deferring important actions until I can get in front of a "real computer." Many things are just too challenging or limited on today's mobile operating systems. Even with "convergence," as Purism calls it, there will still be cases where I simply want to use a larger screen, so I'll defer until I can dock the device and use some large form-factor I/O devices. But with the stance Purism is taking, I would no longer experience the frustration of software limiting me even when I am willing to endure the limitations of my hardware. [1] http://tiamat.tsotech.com/pao http://tiamat.tsotech.com/pao
- abruzzi 8y agoTo me the biggest hinderance is no the small screen, but the touch UI. Think of something simple like text editing. Because the UI has to differentiate simple taps and everything else, there is an inbuilt delay between the simple tap, and the more functional tap-and-hold. But since there is only one tap and hold, then it becomes tap-and-hold-and-select-action-from-menu-then-complete-action. Thats how I think of the simple action of selecting some text. Something the keyboard or mouse both accomplish much faster. I don't use my phone for much of anything but calling and bored web browsing anymore, but I'd genuinely love for my iPad to be more functionally useful, but the issue above is similar to a lot of other interaction limitations. I really can't imagine using any mobile app on my desktop, and I can't imagine using any of my desktop apps on mobile (admittedly the desktop apps I use are on the more complex side things.)
- peller 8y agoExactly what you're describing already happened when the netbook fad took hold some years ago. It's crazy obvious on Gnome but KDE apps suffered too, and the defaults to this day are still shit (optimized for form factors 2% of people use). I feel like the solution is not necessarily to make one app do it all, but to embrace something more akin to a client-server architecture - one "app" with multiple UIs talking over the same API to the same backend logic.
- aaaaaaaaaaab 8y agoThis “client-server architecture” sounds eerily similar to plain old MVC/MVP/MVVM... Decoupling the UI from the business logic is not exactly a new concept.
- peller 8y agoAgreed, and that's kind of the point - this shouldn't be a problem to begin with, aside from the fact that "everybody" prefers to write their own shit from scratch :)
- jlg23 8y agoThe idea is not about having the same apps but the same environment. Convergence also means selection of default applications for the target device or, if apps are actually this configurable, selection of appropriate compile time flags.
- dahfizz 8y agoYou're cherry picking the few counter examples. Many apps do already maintain code for multiple platforms, and many more want to but are resource constrained. Having one codebase work everywhere is going to be beneficial to a large number of projects. If your only concern is how an IDE would look on your phone, then don't run an IDE on your phone.
- cbhl 8y agoThat ship has already sailed. Google redesigned all their desktop UIs to work with touchscreens in 2012, at the expense of mouse-and-keyboard users. Microsoft's Ribbon UI for Office, and Fluent UI for Windows 10 were both designed for touch first. Hell, even Ubuntu's Unity made huge compromises on Desktop in the name of convergence, even though no significant fraction of users ended up running Ubuntu on phones. The original designer vision was for UI to adjust depending on the form factor of the user's device. What we got instead is "upscaled phone UIs everywhere", because programmers like to be DRY and reuse code. This is literally the tree swing cartoon.
- JohnFen 8y ago"Touch first" seems to invariably mean "terrible to use on a desktop".
- peller 8y agoThe design constraints of the "input devices" are invariably different. The keyboard and mouse are "precise", while fingers are not. This manifests itself exactly like you see it :(
- anthonybullard 8y agoJust as an aside, almost all Google apps have at least a serviceable keyboard control layer that you can find by pressing '?'. This has helped my productivity using say Gmail tremendously.
- opan 8y agoI've used both vim and emacs from my phone pretty extensively via termux.
- AnIdiotOnTheNet 8y agoI'm actually becoming convinced that the right approach is pretty much the opposite and we should be making GUIs that are composable. If you think about it, no one knows the user's use case better than they themselves do. So who is in a better position to determine what functionality is most important to have on their tiny phone screen? Which components need to be bigger and more prominent or smaller and less prominent according to their workflow? Etc. In other words, the GUI isn't optimized for anything by the developer, but the user can make it optimal for themselves.
- notonmywatch 8y agoBut users don't want to be UI designers. I could see a case for an AI that watches the user use the app for a few weeks and automatically designs a UI for them based on their needs. But in general, users don't want to have to do work on top of the work they already do. It's the same reason that despite DVDs having multiple angles for years, and 360° video being easily renderable, almost nobody uses these features. I don't want to direct the movie while I'm watching it!
- AnIdiotOnTheNet 8y agoUsers of casual consumption applications don't, that's true. I can't see myself caring to be either. But if they use a tool consistently, they often are driven to customize it for their needs if they can. The first class of application probably won't run in to any issues with just designing for a smartphone UI and not bothering with anything else.
- dredmorbius 8y agoGive them sane defaults, so they don't have to be, but get out of the way of the small, but significant and productive, minority who want and need this.
- pjmlp 8y agoThat minority better be big enough to pay additional development costs.
- grawprog 8y ago>I mean, if someone said, "I've successfully ported Vim to Android!", my first thought would be, "Why in god's name would I want to run vim on my phone?"* Vim is available on android through termux. I've used it to write a few things. I actually used it to wrote an app to access my city's transit api because I wasn't a fan of the available ones. With the right keyboard installed it's actually not too bad. Best programming editor i've actually found available on android.
- nothal 8y agoAt that point why not pull out a laptop? Are you programming on a tablet?
- blotter_paper 8y agoI'm also a termux user. My main use case is sshing into remote servers, I keep tmux sessions open and attach from my laptop or phone depending on what is most convenient/useful in the moment. I spend more time attached with my laptop than my phone, but sometimes I have an idea for something I want to do quickly without taking the time to boot up my laptop, or I don't have my laptop with me. It's not the ideal productivity tool, but it's hella convenient if you can train your fingers to dance around the soft keys. I have relatively big hands, and I manage to do it -- I've gotten noticably faster over the last couple years, but not on par with my laptop WPM obviously. I'm on a 5.5 inch screen, portrait format, with the full-qwerty Hacker's Keyboard app (source is on github).
- grawprog 8y agoNo, my phone. I'll admit, the idea of writing anything more than a couple hundred lines is ridiculous. But, for a small script to pull some data from a website it's not too bad. My main reasoning was, I use the bus when i'm out and about, I don't carry a laptop with me most of the time, I was unhappy with the way the bus times were displayed in the available apps, so I wrote it on my phone at work when I had a bit of time. Most of the other things were just playing around with the limited access to the android api termux gives you. I actually prefer SL4A for android scripting, but it's been dead for years. It granted access to more of androids api than termux does though.
- swiley 8y agoI personally prefer keyboard driven UIs on my phone because all the UI elements are always in the same place. On smartphone native apps all the buttons are always piping up and sliding over each other, when you eventually hit one accidentally and it triggers some blocking or irreversible action it’s super frustrating. It’s so bad that I honestly think I have a smaller error rate with the touchscreen keyboard than touchscreen GUIs.
- gcbw2 8y agoheh. I actually take notes with vim on my phone. It's convenient if you have a hardware keyboard.
- larkeith 8y ago> "Why in god's name would I want to run vim on my phone?" With a Bluetooth keyboard, Vim over SSH is actually a pretty fantastic editor on mobile devices - lots of real estate, fully customizable, and none of those awful "features" that get added to mobile apps. It's really convenient to be able to just connect to my server over LTE and keep working from most anywhere. I do agree with your point, however - apps designed to make use of a full computer's space will rarely work well on a phone screen, and the great majority of design for mobile is already atrocious even on its native platform.
- JakeTyo 8y agoI tried to make the same argument against using Electron. Easier deployment across a range of platforms at the cost platform optimization.