[HN Gopher] Building all of our new mobile apps using React Native ___________________________________________________________________ Building all of our new mobile apps using React Native Author : arbhassan Score : 414 points Date : 2020-01-29 15:56 UTC (7 hours ago) (HTM) web link (engineering.shopify.com) (TXT) w3m dump (engineering.shopify.com) | The_rationalist wrote: | Why not ionic react? https://ionicframework.com/blog/announcing- | ionic-react/ | SlowRobotAhead wrote: | Subset of a subset would be the first reason I would come up | with. | aikah wrote: | > Why not ionic react? | https://ionicframework.com/blog/announcing-ionic-react/ | | React Native uses the Native Components of the platform for UI. | Thus Native. Ionic React is basically a web app, this is Ionic | with React instead of Angular. | | So basically React Native == use native GUI components. | | Ionic React = uses HTML/CSS in a webview embedded in a Native | App, just like Phone Gap/ Cordova, Ionic is just a framework on | top of HTML/CSS, React Native is not. | The_rationalist wrote: | Most react native apps have a custom UX but needs native | plugin access. This is the point of ionic react. | aikah wrote: | > Most react native apps have a custom UX but needs native | plugin access. This is the point of ionic react. | | No, most React Native apps use the Native platform UX, | that's the point of using React Native. As for plugin | access, well I don't see how Ionic React solves anything, | since a plugin by definition needs to be developed in the | native language of the platform (Java or Swift). | awinter-py wrote: | low quality of tooling in mobile has been a reality forever and | the vendors are not only unwilling to change, they've doubled | down on poo-flavored buildsystems that are impossible for the | community to fix | | this stuff is life or death, and also _impossible_ without giving | up on native: | | > React Native on both iOS and Android and shares 95% of the same | code | | > less crashes on iOS than our native iOS app | | > an Android version launched | | > team composed of mobile + non-mobile developers. | | ( _impossible_ on native because of the multi-day process | required to build an ios app for the first time) | | > The team also came up with this cool way to instantly test | work-in-progress pull requests. You simply scan a QR code from an | automated Github comment on your phone and the JavaScript bundle | is updated in your app | | code updating is illegal on the app store, but it's hard to kick | out shopify. this is a shot across the bow | trevyn wrote: | > _code updating is illegal on the app store_ | | This is not true, the restriction is to "download, install, or | execute code which introduces or changes features or | functionality of the app." | | (And, of course, internal users & builds can do whatever they | want.) | tannedNerd wrote: | "(impossible on native because of the multi-day process | required to build an ios app for the first time)" | | What??? how is it multiple days to build an app for the first | time? It takes minutes and if you are being pedantic by | including App Store review it tends to be under 24 hours for | new apps and under 6 hours for app updates now. Plus you can | distribute to your own team instantly through TestFlight. | awinter-py wrote: | installing the right version of xcode & getting required | libraries -- my experience may have been particularly bad | because of the ios 13 / swift 5.1 release, but the fact that | these tool versions are linked to the xcode version is the | root cause here | yagodragon wrote: | The web and its ecosystem are huge. The browser is essentially | the new OS and no matter how complex and quirky js, react and the | rest of the tools are, we're gonna stick with them for a long | time. Big technological advances like PWA's, WASM and rendering | engines like servo and webrender are only gonna shorten the gap | between native and web UI experiences. Look at what happened to | the desktop. Native UI development became a niche and even apps | like photoshop are now just websites(figma) or electron apps. | This is eventually gonna happen to mobile development as well. | There will be no need to create native apps for most cases and no | need to use those centralized app stores to "install" apps on | your device. | | That being said the web is not quite there yet and that's why | solutions like react-native and flutter exist. I don't believe | that react-native is the future. Many people have explained in | great detail why the idea and the execution behind RN are just | flawed and why it makes development hard and complex. Heck, it | doesn't even eliminate the need for native developers. React- | native is just a transitional tech we'll use until the web and | PWA's become good enough for 95% of the cases. The future of RN | is the Web. | | On the other hand, flutter and dart seem to solve all of the | problems we have with UI development. It's an amazing tech that | combines all the best ideas from QT, flash, java swing, delphi | and react-redux in one project that is completely free and open | source. It's what we've always dreamed existed in the UI world. | The development experience is great and designers seem to love it | as well. Despite its advantages, flutter is still a huge bet and | i can't see a world where everybody writes in Dart. | | If I had to make a guess, I'm still betting on the web in the | long run and hope flutter captures a small market share among | frustrated mobile/web devs and designers. I just can't see react- | native anywhere in between. | irjustin wrote: | I'm always scared of these headlines for companies who aren't | greenfield. | | Shopify is a perfect case for RN. Write once deploy both | platforms. The issue that gets glossed over is for existing apps | that have to do the data and abstraction layer on top of native | codes. It starts to become prohibitively expensive to maintain | the native, RN, and data layers unless you're willing to rewrite | the native side. | | Airbnb fell into this problem[0] and so did my old company. | | I love RN for what it is and can do, but big companies that hop | on and then are forced to hop off because of internal politics | makes it a difficult case for RN because then it becomes "look, | RN didn't work out for Airbnb or Shopify..." | | I hope for the best of luck and success to the RN engineers. | | [0] https://medium.com/airbnb-engineering/react-native-at- | airbnb... | wvenable wrote: | I don't understand why so many large companies use platform | abstractions. At a certain size you're big enough to have an iOS | team that develops natively in Swift/ObjC and an Android team | developing natively in Kotlin or Java. Developing directly for | the platform, with expertise in that platform, is a proven long | term bet. Screwing around with platform abstractions seems much | riskier. | | The situation is a lot different if you're a small organization | (or individual) and just don't have the resources for platform | specific experts. | Androider wrote: | Headcount is the biggest expense in almost all companies. | Larger companies also have larger and more complex apps, so | while a small company may have a small iOS development team, | large companies have massive iOS development teams. Massive | team * number of platforms = serious money. | | You also get into all kinds of platform and feature parity | issues. "Why can't we do X on Android but only on iOS?", "Well | because they're two different teams, with different PMs, | developers and release schedules. And please don't ask about | the web team, who are in <different city>". | | Using abstractions you can have one massive "core" team, and | several smaller platform expert teams. On the face of it, it | makes sense. | kerbs wrote: | Do you think AirBnB's headcount was smaller when they were | all-in on React Native? | | Do you think they had to go on a hiring spree because they | went back to native? | | I'm skeptical there is a correlation. | wvenable wrote: | But developer headcount doesn't scale to the size of the | installed base. Whether you have hundred-thousand users or a | million users, you don't need a larger development team. Once | you have a reasonable-sized team that can make the app, you | don't need any more developers, no matter how successful your | app is. | | Having different teams for different platforms might result | in a slightly larger headcount my point is that risk isn't | worth that meager benefit if you can afford it. You're still | going to need platform-specific knowledge, and then the | abstraction knowledge, and you're still deploying to multiple | platforms! | | You also don't need to let the technology choices drive the | team structure. You can share a huge number of resources | between iOS and Android including planning, management, | assets, etc. Sure you're building two different apps but you | don't need to keep those teams in different cities. | Androider wrote: | But the question was why large companies use platform | abstractions. Because they are large in headcount, by | definition. Because the apps are already large. Because | they _have_ massive platform specific teams, and they would | like not to. Because the teams are geographically spread | out, for a myriad of reasons. | | The large companies are what they are, and you cannot apply | the same type of thinking to their problems as if you were | designing the organization from scratch. There's problems | they have, and the team structure they would like to have, | and based on that the technology choice to favor | abstraction makes sense. | wvenable wrote: | Yes, many large companies seek technological solutions to | political problems. I've worked for dysfunctional | organizations; they want technology to provide the | decisions bottom-up because, for whatever reason, nobody | wants to make any hard calls. These projects fail because | you simply can't have success that way. | | If this is a political and organizational problem, then | this choice of technology is entirely not about the pros | and cons that have probably been debated to death in this | topic. I agree. I think you've added some really good | insight in this conversation. But I think that solution | is dumb. | | It's especially dumb for a software company because | software is their core competency. That's where they | should be spending their resources on. They should be | minimizing costs but not at the cost of their core | product. | Androider wrote: | I wouldn't class this as political problems. Is Facebook | having a gazillion developers on their app a political | problem, or necessary given what they want it to do? How | is replicating that for each platform a good solution, in | any sense (political or technical)? | | Tech companies core competencies are the service or | product that they provide. Making it N times for N | platforms is a hurdle that doesn't improve on the core, | it's a cost of the fragmented market. I'm arguing that it | makes perfect sense both technically and politically to | focus your vast majority of developers on your core, and | only having specialized platform teams were necessary as | a cost of doing business. How is developers re- | implementing every UI screen and feature across iOS and | Android helping Shopify customers sell more merch? | wvenable wrote: | > Is Facebook having a gazillion developers on their app | a political problem, or necessary given what they want it | to do? | | Yes. How is it not a political problem? It's not a | technological one. | | > How is replicating that for each platform a good | solution, in any sense (political or technical)? | | It doesn't change anything politically but | technologically platform abstractions are never 100%. You | always need an expert for each platform _anyway_ and by | targeting the abstraction rather than the platform you | 're just targeting a crappier experience for your end | users and often your developers as well. React Native is | not without it's issues. | | So what's the benefit? You're not saving expertise. Even | sharing code isn't that important -- once decisions have | been made, features planned out in detail, server APIs | created, the actual platform specific code is a pretty | small part overall. You still have to test on each | platform individually. Fix platform specific bugs even in | non-platform specific code. And you're not creating a | dependency on a 3rd party that you don't control. | | > How is developers re-implementing every UI screen and | feature across iOS and Android helping Shopify customers | sell more merch? | | How is it not? I mean the argument here is that there is | a huge savings to justify the risk but I don't think | that's true. | wvenable wrote: | > Because they have massive platform specific teams, and | they would like not to. | | I'm somewhat shocked at the size of some of the mobile | app development teams at some of these companies. There's | no way they need that many developers. What are 100's of | developers doing on a single app for a single platform? | How is there enough work for that many people? The | overhead must be unbelievable. | | I can't imagine that adding a platform abstraction is | going to fundamentally change the headcount if your | headcount is already ridiculous. It just doesn't remove | _that_ much effort. | Androider wrote: | The Facebook app is like Microsoft Word. Everyone only | uses 20%, but it's a different 20% for each. The app is a | hojillion megabytes, and serves literally billions of | users. There's features in there that addresses some | specific niche in Africa for "only" 50 million users, | that some sub-team of a sub-team is tasked with | maintaining. | wvenable wrote: | Microsoft doesn't use an abstraction to create Word for | Mac OS. They have shared code, yes. But they are | different products with different user interfaces to | match their respective platforms. I'm not sure why mobile | is so different that one needs a platform abstraction if | you've already got a bazillion developers working on the | product. | | Of course, Facebook does benefit by owning that | abstraction making it exactly what they need. For | everyone else, the risk is a bit different. | Androider wrote: | Microsoft has been building Word on Windows since the | 80's, so it's never going to be re-written. I'm not that | familiar with the Mac version of Word, but I find the Mac | Excel version lacking compared to its Windows | counterpart. | | For Word and Excel for iOS and Android they use... React | Native [1]. | | [1] https://blog.appfigures.com/microsoft-goes-all-in-on- | react-n... | horsawlarway wrote: | As someone leading a team that does releases to clients, | this is a pretty naive take. | | As you scale you get quite a few constraints that require | additional manpower | | 1. Scaling generally means revenue, which means more | internal teams pumping out more business products/features. | | Those features often need some sort of mobile integration. | So you not only have your planned features, you have the | features other teams would like you to work on. | | The larger the company, the more requests like this you | get. Feature velocity MATTERS. | | 2. As you scale you almost always have to rework your | backend to _some_ extent to keep up with load /feature | growth. This means existing features are at risk of using | deprecated & older APIs/Tools and need attention in order | to keep working and allow scaling. | | 3. By the time you're scaling into the millions, you're | almost certainly acquiring enterprise users. You can skate | by in the individual/small/medium business with some pretty | glaring bugs (things like 2% of all android users see | crashes at startup). This wiggle rooms goes away when you | start working with enterprise customers (or at least gets | considerably tighter). It's an inconvenience when your 15 | person org has that one phone that doesn't work right. It's | a showstopper when the 10,000 seat org has 600+ users who | can't use the product. | | Those are just a few of the differences that happen at | scale. | | ---- | | Long story short, you're not really wrong from a technical | side - A small dev team can absolutely make a small & | focused app and manage to scale. | | You're just glossing over the politics of working in an org | that's successfully scaling. | | It turns out being able to get additional employees that | don't need extensive mobile experience and can just crank | out features is a huge pressure release. It lets that | original tiny dev team (the folks who could write a fine | native app without any issue) focus on bigger/harder | problems. | throw_m239339 wrote: | > I don't understand why so many large companies use platform | abstractions | | Even large companies can be cheap. Hiring developers is a | complicated and costly process. But I'd wager that using a | solution that the company or a middle manager X,Y,Z didn't vet | before can also be a complicated a costly process. Plenty of | language X shops refuse to use language Y for political | reasons. | ysavir wrote: | > I don't understand why so many large companies use platform | abstractions. At a certain size you're big enough to have an | iOS team that develops natively in Swift/ObjC and an Android | team developing natively in Kotlin or Java. | | Because whoever made the decision to move to an abstraction | gets to highlight "eliminated redundancies and saved the | company $XMM/year" in their next performance review/resume. | garrettlarson wrote: | > As a contrast, none of the Top 10 most valuable Y Combinator | companies use Java; largely considered the battle tested | enterprise language. | | I'm not sure what this is based on, but Airbnb uses Java pretty | extensively. | ronlobo wrote: | Curious to hear more about their deep dive into Native, Flutter | and React Native as possible technology choices. | | Hopefully, React Native is not a nosedive ;) | k__ wrote: | Flutter and React-Native are different directions, I think. | | For higly customized UIs (think Ableton Live, Photoshop, Excel, | etc.), I'd say use Flutter, because of the non-native | rendering, it will look the same everywhere. Otherwise use | React-Native. | oakesm9 wrote: | Exactly this. They are very different systems. | | Flutter renders onto a "canvas" and has a completely custom | implementation of "native-like" views for each platform. They | need to reimplement everything about platform views from | scratch. | | React Native lets the native OS render actual native views, | but lays them out and controls their properties using | Javascript. You get the native behaviours "for free", but you | do sometimes end up in the lowest common denominator | position. | k__ wrote: | Yes. The common denominator isn't as low as one might | expect. I'd guess at least 90% of all apps could be easily | done with React-Native. | SlowRobotAhead wrote: | Sure. But what if the entire world doesn't want to learn | JavaScript? What if you don't already know HTML, CSS, and | JS? RN makes ZERO sense at that point. | | As a C developer, man, Flutter looks pretty damn logical! | oakesm9 wrote: | If it makes more sense, then go for it. | | With all of these platform abstractions you just need to | understand the trade-offs they're making. | k__ wrote: | https://mobile.twitter.com/LinguaBrowse/status/1220695261 | 246... | hopia wrote: | In my experience Flutter is not any less productive than RN | is, I'd prefer the former in every case now. | k__ wrote: | https://mobile.twitter.com/LinguaBrowse/status/122069526124 | 6... | hopia wrote: | The last time I was using React Native even text input | was broken on Android. It made any app using it basically | unusable. Android profiler didn't work either, opening it | crashed the runtime. | | Flutter has its bugs but they're certainly not that | fundamental issues. | k__ wrote: | Sounds like the opposite to me. | | A bug in React Native and fundamental issues in Flutter. | hopia wrote: | I don't follow. What I outlined were fundamental issues | with RN, not with Flutter. | k__ wrote: | What you outlined sounded like a bug, the Twitter link I | posted covered some fundamental Flutter issues. | topherPedersen wrote: | As a solo/indie developer I love React-Native. Attempting to | develop for Android and iOS at the same time is absolutely | daunting. Maybe someone out there can do it, but it was simply | too much for my brain to handle. But with React-Native I don't | have to worry about any of that. I just write code and it doesn't | matter what device people happen to be using. | fredgrott wrote: | Hahaha ahaahah | | gee what happens when Android Fuchsia hits oem devices this year? | CES surprise coming.. | Androider wrote: | In the unlikely event that Fuchsia ever makes it out without | being strangled by the rest of the Android organization, or | someone high-up waking up and taking a look at it (eye of | mordor style)... absolutely nothing? For the next 5-10 years at | least as Android devices are slowly replaced in the marketplace | with Fuchsia through device turnover rates alone. You think | Android version upgrade stats are abysmal today? And you want | to replace the whole base OS? Good luck with that. | deltron3030 wrote: | Strange that they didn't mention hiring as a reason, it's maybe | even the main one. React is for the frontend what PHP was for | backends in the 2000s, that's what most frontend devs know. | Svelte would be a better fitting comparison to Rails in 2004. | sandGorgon wrote: | I think one of the coolest things that Shopify is doing is this: | | _We're sponsoring Software Mansion and Krzysztof Magiera (co- | founder of React Native for Android) in their open source efforts | around React Native._ | | and | | _We are working with Discord to accelerate the open sourcing of | FastList for React Native (a library which only renders list | items that are in the viewport) and optimizing for Android._ | | Basically RecyclerView for React Native. | LeoNatan25 wrote: | Without synchronous view layout, it's not really possible to | have a truly recycling view without many warts. We've (Wix) | been hacking at this for years, and it's not possible. You | either block the UI or view flash for the user if fast enough | scrolling is performed. | | Facebook engineering promised synchronous layout will come at | some point, which will open the door to that. | rhodysurf wrote: | Theyve said Fabric comes out probably mid 2020 I think, which | I am hopeful for | liampronan wrote: | Is Wix moving away from React Native at this point? | LeoNatan25 wrote: | No | jiofih wrote: | I'm really eager to hear how they deal with data in their RN | apps. To me that's always the place where the most complexity and | bugs lay hidden. | burnJS wrote: | I guess I'm old, but I can't believe that many people shop on | their phones. You have limited screen space and your ability to | input data efficiently is limited. It just seems like a really | poor medium for researching a purchase. Guess I'm a dinosaur. | neurostimulant wrote: | Many online marketplace give discount when you purchase via | their mobile apps. Kinda make sense as they can harvest a lot | more data from installed app (compared to web) and spam push | notifications daily to drive up sales, so they push hard to | make people shop from their mobile apps instead of desktop web | store. | TulliusCicero wrote: | I shop on my phone, mostly Amazon. Probably not for | serious/expensive purchases, but there's tons of things that | don't qualify for that. | | I buy a lot of kids' books, for example, I just look at the | cover and description, read some reviews, and pull the trigger. | Lots of little electronics too, like cables/adapters. | yoshimiagava wrote: | This is amazing team for spotiteam and all users! Congrats! | wdb wrote: | I am always wondering what the difference is between writing | three differents targets, iOS, Android and Web using RN (even | Flutter is a better choice imho). | | Basically you want to share the business logic between them. You | still need to spend time to write UIs for iOS and Android which | following interaction paradigms of the platform. | | Personally, I can't stand iOS apps that look like Android. | | Currently, I am happily working on a project where I write all | the business logic in Swift and share between the web app | (WebAssembly) and the iOS and Android app. The only bit that I | customise is the UI part. I quite enjoy this approach. | | (I have to admit for me writing native mobile app in | JavaScript/TypeScript feels wrong. Guess, I don't like that | language enough) | arbhassan wrote: | Meanwhile Shopify's CEO. [1] | | [1]https://mobile.twitter.com/tobi/status/1222551057798090752 | sixstringtheory wrote: | Oof, not classy. I think every developer has had the experience | where you think you're so close to the finish, just one more | thing... and then hours, days, weeks have gone by. How can he | be so sure they're going to strike it big? | | This is a pictographic sunk cost fallacy. | sergiotapia wrote: | We're moving away from react native at Papa. Too brittle, too | cumborsome to iterate with, feels slow and every build required a | prayer and small sacrifice to Cthulhu. | | We're using Ionic 4 now with capacitor, the dev workflow is much | better, literally testing on the browser with autoreloads when | code changes. Couldn't be simpler. So far I like it a lot. We're | using React so it's just like writing a SPA, only Ionic has a ton | of UI elements out of the box like tab navigation. | 22byebye wrote: | << Flutter vs React Native: A detailed Comparison 1. Performance | Mapping down the performance is the best way to find the ideal | framework for mobile app development. Flutter is ahead when it | comes to performance among other frameworks is due to Dart. Dart | code is compiled to native machine code. And also the JavaScript | layer is helpful when integrating with native components and | eliminates the JavaScript bridge. | | React native offers exceptional performance for developers while | developing an application in a native environment. But developers | sometimes face issues while running the hybrid application | architecture. On the other hand, Flutter allows developers to | reuse the existing code. Flutter is in the leads in performance | in comparison to React Native which uses JavaScript Bridge. >> | | Source: https://dev.to/agiratech/flutter-vs-react-native-what-to- | cho... | gargs wrote: | Translation: we don't see mobile experiences driving our growth. | ziftface wrote: | Why is that an equivalent statement? | LeoNatan25 wrote: | If mobile was important enough for them, they would have | invested in proper mobile development. Clearly it is not. | gargs wrote: | Companies invest in growth areas. Mobile experiences are | driven largely by interactive native elements using the | latest platform specific API. | ppeetteerr wrote: | I'm surprised no one is mentioning this: | | "At the beginning of 2019, we did a 6-week experiment on our | flagship Point of Sale (POS) app to see if it would be a good | candidate for a rewrite in React Native. We learned a lot, | including that our retail merchants expect almost 2x the | responsiveness in our POS due to the muscle memory of using our | app while also talking to customers. | | In order to best serve our retail merchants and learn about React | Native in a physical retail setting, we decided to build out the | new POS natively for iOS and use React Native for Android." | | So it's okay to build Android and less important apps using RN, | but their flagship iOS POSS is off limits? | AgloeDreams wrote: | Isn't the vast majority of their POS systems iOS based? The | base iPad is rather fast. Why not just target your market | directly and max out performance? Meanwhile the vast majority | of their Android POS systems use what, lower end Kindles and | such? They know they can't get perfect experience there but | they don't want a bad one where it counts. They know their | market. | Despegar wrote: | That really just says it all doesn't it? It's basically an | admission that the use of cross-platform frameworks is worse | for customers/users, but they're going to ignore that to | optimize for their own software engineering org. | sibeliuss wrote: | Build RN app on Android, if it's successful then do a light | port to iOS and decommission native team. | | Seems like a fantastic experiment IMO. | apl002 wrote: | you act like whatever something is right now is the same in | the future. It's quite possible they see RN as the future for | all products and easing there way into things. Maybe they are | struggling to find Java/Kotlin devs and have a surplus of | Swift devs. So no, that does not really just say it all. | sandofsky wrote: | > Maybe they are struggling to find Java/Kotlin devs and | have a surplus of Swift devs. | | Based on AirBnB's experience, now you need to find React | Native devs _in addition to_ Java devs. | sb8244 wrote: | I assume it's easier to find a handful of skilled Android | developers rather than staffing an entire engineering org | with them. | | From my experience with RN, you do need to get into the | native bits, but most of the development will be not | native. So the number of skilled native device engineers | required should be less. | raydev wrote: | I can see, if you were a billion dollar company, how | you'd have an Android infra team to bridge those | performance-intensive items, with the UI team doing all | their work in RN. | | So you can't be a startup/small shop if you want to do | this well. | raydev wrote: | I think you're touching on something extremely important | here. IME, anecdotally, not backed up by data: experienced | native Android devs are getting harder and harder to find. | | The ones I've known personally hated it so much they moved | to backend or full stack jobs. | chrisco255 wrote: | All this says to me is that they wanted to limit their risk | exposure by doing an experiment on Android while maintaining | native on iOS. Why is that hard to comprehend? Their move to | RN this year should underscore the success of that | experiment. | zapzupnz wrote: | The thing is, you can rephrase: | | > by doing an experiment on Android while maintaining | native on iOS | | as: | | > by throwing their Android users under the bus | | It may be a cynical take but it's not an invalid one to | take when the thrust of the rest of the paragraph comes | down to "the native app's performance is so good, we | couldn't dream of changing it". | chrisco255 wrote: | I don't know if you read the article or not but the title | is very clearly: "React Native is the Future of Mobile at | Shopify". So the Android experiment was successful. | ericlewis wrote: | Also, ios is "easy" when it comes to doing react-native. | So by doing the hard one first, they have a lot more | confidence in the rest. | calcifer wrote: | > Why is that hard to comprehend? | | Probably because that's not what the article says. | jaxn wrote: | This is how I read it too. They can then run the RN app on | iOS too (with some modifications I'm sure). Seems like a | smart strategy. And that the jury is still out. | Touche wrote: | Right, but it doesn't really optimize for their engineering | team either since the only reason to use something like React | Native is the ability to do both platforms at once. | nilkn wrote: | Is that not a tremendous optimization for the team? It | probably cuts the team size in half (or, seen another way, | doubles its size for free), and it unifies of a lot of the | mobile and web stacks behind similar languages and tools, | which in turn would allow some unification in the hiring | and recruiting pipelines. | Touche wrote: | It's an optimization they aren't using, React Native is | only being used for Android. | nilkn wrote: | Do they not clearly intend to use it for both in the | future? They didn't go back and rewrite all existing | apps, and they did an experiment with Android to validate | the approach. | kyriakos wrote: | Really depends on their priorities and customer base. We | developed a react native android app and users seem to be happy | with it. Would native be smoother? Maybe.. | MuffinFlavored wrote: | Why couldn't they help contribute to/optimize React Native to | be faster? | Despegar wrote: | Apple really needs to start using the stick more with respect to | the inferior-to-native cross-platform frameworks. I hope that's | the strategy after SwiftUI matures. | fmakunbound wrote: | Good for you Shopify, but I fully expect you'll switch to some | new hotness in a year or two. | mleonhard wrote: | > The first is a tooling team that helps with engineering setup, | integration and deployment. The second is a foundations team that | focuses on SDKs, code reuse and open source. | | They have a whole team to set up tooling for React Native. I | wasted many days trying to do this work on my own. | | They also have a whole team for evaluating 3rd-party libraries | that provide functionality missing from React Native, such as | letting the user hide the keyboard on iOS. I wasted weeks on this | and finally gave up on React Native and switched to Flutter. | | I think React Native needs some attention from user-focused PMs | and engineers before it is ready for adoption by small teams. | tr33house wrote: | How has flutter compared? | xeonoex wrote: | Not OP, but I've tried all of the big SPA frameworks (not | specifically react native though) and I decided to use | flutter for a non-trivial side project and I don't ever want | to touch the big SPA frameworks ever again. Flutter is also | fast, pretty lightweight, and good on battery. It feels | native on iOS and Android. I have little Android development | experience (side project years ago) and no iOS experience. | | It's easy to setup, install, and it just works. I develop on | Windows and Mac with a .NET Core backend and communicating | via GRPC. Deploying the backend to a CentOS server. No issues | running anything on Windows, Mac, or Linux, surprisingly. | Whenever I have to use node, everything randomly breaks when | switching environments. (Maybe I'm just bad with node/webpack | and all that, but there is way too much I have to know to | just build something). | Thorentis wrote: | I'm considering using Flutter (instead of Ionic which Ive | been using for mobile up till now). | | In terms of Node breaking when switch platforms - are you | syncing the node_modules folder between machines somehow? | Don't do that. Doing "npm install" will sometimes install | binaries specific to a platform that won't work across | them. Put node_modules in your.gitignore, and sync between | machines using version control rather than something like | Dropbox. I used to just put the whole project in Dropbox | but ran into too any issues between Mac/Windows. | xeonoex wrote: | Yeah, I used git and ignored node_modules. Honestly, most | of the problems are related to Windows. Whenever I try to | use anything geared towards web dev, there are just more | issues on Windows. Tons of dependencies that change all | the time doesn't help. Most of the web dev industry is on | Linux or Mac. It's not all related to Windows though. | Just updating packages/frameworks is scary. Setting up | Jekyll was tough, even on WSL. I've opened issues on | projects, and they would update the project to say that | Windows is not supported (though IDK if node was the | issue there). I bought a Macbook solely to deploy iOS | apps, but it is way easier to develop anything related to | web on it. | | Again, this is coming from someone who doesn't do web dev | full time, so I'd probably resolve issues faster if I | did, but for my side projects, it's too much maintenance. | I just want to be productive if I have an hour or so a | day. Flutter lets me do that. I write code, code runs on | Android and iOS. It's easy. No react/vue/angular, | webpack, bootstrap, scss, typescript definition files, or | other 'magic' to worry about. | mleonhard wrote: | I am satisfied with Flutter. My app is almost ready for beta | testing: | | https://www.cozydate.com | mahgnous wrote: | So they decided to join what the rest of the world has already | been doing for years? Why announce that? | mahgnous wrote: | So they decided to do what the rest of the world has already been | doing for years? Why announce that? | OzzyB wrote: | Shopify should stick to making ecommerce sites and leave the | mobile engineering evangelical space to those who's businesses | are dependent on mobile and have the necessary experience. | | In short, the future isn't React Native, unless you have a time | machine that will allow you to go back and rewrite it. | Hates_ wrote: | So even though they develop apps that have millions of | downloads or that businesses rely on for their in-store point | of sales, you don't consider Shopify qualified to speak on | mobile development? | OzzyB wrote: | No, I don't consider an established tech company with | "millions of downloads that businesses rely on" choosing a | webstack devkit for their mobile development serious. | canistr wrote: | "In order to best serve our retail merchants and learn about | React Native in a physical retail setting, we decided to build | out the new POS natively for iOS and use React Native for | Android." | | Unbelievable, really. The previous paragraph literally mentions | the importance of performance. | | _facepalm_ | wdb wrote: | Why do they use RN for Android but not for iOS? | chadlavi wrote: | the example react native code they give in this image would error | out: | https://cdn.shopify.com/s/files/1/0779/4361/files/ReactJSvsR... | | Text has to be in a <Text> | harrisonjackson wrote: | You cannot see the imports. | | import {Text as View} from 'react-native'; | | All good! | chadlavi wrote: | this is truly evil | bil7 wrote: | oh no, how will anyone understand the graphic now? | ericlewis wrote: | they changed it I think to be more incorrect, you can't put | text in a View. | stickydink wrote: | It seems they fixed it! | | https://cdn.shopify.com/s/files/1/0779/4361/files/React_Nati... | jammygit wrote: | Why do they begin justifying by talking about 70% of buyers using | mobile? Completely off topic | SlowRobotAhead wrote: | Isn't that them starting by declaring that mobile is really | important to them so they didn't take this choice lightly? | mellosouls wrote: | This is an interesting read and may be the full story, and a | completely justified strategy. | | But at the risk of sounding cynical, I'd be interested in any | political motivations - if he's a new VP, it wouldn't have been | unheard of for unnecessary swashbuckling Transformation Projects | to be kicked off under the new regime for no obvious reason. | | Complete conjecture, I have no inside knowledge, just have seen | this happen time and time again. | brailsafe wrote: | It happens all the time. At a large corporate place I was | working frontend at, our dpmt manager spent almost no time with | the teams and all time concerned with outout metrics. When his | boss looked to be retiring and the prospect came up to get his | job, he started a new year by--seemingly with no knowledge of | how things were working--by shuffling all the teams based on | how he thought people should be organized. He then kicked off | two or three major tight deadline high budget projects with | those new teams, and proceeded to take a vacation. Needless to | say there was a lot of turnover, I got terminated, projects | failed, and he got his promotion somehow. | mellosouls wrote: | Yep. I'm more than a little sceptical these days when these | big projects are announced - especially with new managers. | Nextgrid wrote: | Airbnb said the same back in the day. Guess what happened then? | https://medium.com/airbnb-engineering/sunsetting-react-nativ... | mambodog wrote: | it's almost like different companies make different tradeoffs | based on different organisational needs and priorities | hota_mazi wrote: | And in a couple of years, "Why we are moving away from React | Native at Shopify". | | Not slamming React Native but the sensationalistic headline. | Anyone with a bit of experience in software should know better | than making this kind of silly proclamation about the future of | your software stack. | wpietri wrote: | Sadly, this sort of public PR campaign is surely related to an | internal PR campaign. Often followed by a declaration of | Totally Amazing Success, shortly after which the person who led | the campaign will use the victory to move to a higher position, | possibly at a new company. | otaviokz wrote: | Saw it happening a few times in my 12 year of industry. I | suppose it's specifically common in companies that use social | media (and other media) presence as a recruitment boosting | tool. | | Twice the "leader" of the "Totally Amazing Success" left the | company to "be totally amazing" somewhere else. In both cases | the team was made mostly of very young engineers, the level | of amazingness was strongly overestimated. It was also | declared very early, before the "novelty" of the "new thing" | faded, and also before the downsides appeared while | maintaining the product. | ryandrake wrote: | RDD: Resume-Driven Development | | You often see this kind of stack rank of developer | priorities: | | 1. What's good for my career | | 2. What makes my boss look good | | 3. What is convenient for the development team | | 4. What is good for the company | | ... | | 99. What's good for users | seanalltogether wrote: | The company I've been contracting for lasted just over a year | on react native before heading back to native. Even though the | product was still a prototype, we were spending way too much | time updating libraries and trying to decipher all the breaking | dependencies. Some easy, some very cryptic. | | On a side note, I'm not a big fan of people shoehorning | stateless web development patterns into application | environments that support stateful development. The solutions | appropriate for development inside a web page are often not | helpful inside an application binary. | sschueller wrote: | I have not seen one good app for android that has been written | in react native. Can anyone show me one that doesn't suck in | performance? | solarkraft wrote: | I'm pretty okay with the Spotify app nowadays. It used to be | worse, I think, now I'm rather annoyed by the not that great | UI/UX design (everything is way too large, I don't see shit, | man). | jchw wrote: | From my understanding, it does exist in popular Android apps, | but usually for larger apps its used for only parts of the | app and not the entire app. | | Discord is an interesting case. They were using React Native | for iOS and not Android. In their defense, this probably | makes sense since substantial code sharing could be achieved | between their desktop/web app and their iPhone app with this | approach. | chrisco255 wrote: | Instagram. | deminature wrote: | Instagram has very limited parts of the application written | in RN, like 'Edit Profile'. [1] | | The vast majority of the app is implemented natively. | | [1] https://instagram-engineering.com/react-native-at- | instagram-... | chrisco255 wrote: | That article is 3 years old, but it mentions "Photos Of | view", "Post Promote", "Save Posts", "Checkpoints", | "Comment Moderation", "Lead Gen Ads", "Push Notification | Settings", and "SMS Captcha Checkpoint". At any rate, I'm | curious to see how this has evolved over the past 3 years | and I remain impressed with their seamless integration of | RN and native. | rhodysurf wrote: | My app is incredibly simple but its performance is good. | HopeWaves on the play store. | jarnagin wrote: | Seems consistent with your comment, IMO, given that "the | future" is by definition something which never arrives. | | It's much less exciting, however, to say "React Native Is | What's Next at Shopify". | elicash wrote: | I don't think anybody read the headline and assumed that no | other technology would ever be used at Shopify. | chrisan wrote: | Man first thing I thought of. | | Seems like if you try to proclaim the future you end up eating | your words | skinnyasianboi wrote: | My first thought was the Airbnb article "React Native at | Airbnb" https://medium.com/airbnb-engineering/react-native- | at-airbnb... | liamcardenas wrote: | I understand how examples like this stick in people's | minds, however, just because one company decided not to | move forward with a technology doesn't mean that all | companies will do the same. | | Facebook has continued to use it, Microsoft has begun using | it heavily, Twitter uses it on the web[0], Discord has been | very happy with it -- and countless other examples. | | [0] https://github.com/necolas/react-native-web | [deleted] | newfeatureok wrote: | Honestly I think the future of mobile will just be... mobile | websites. | | What's missing until regular websites have parity with mobile | apps in functionality? | | - Accelerometer and all sensor support (some of these are already | supported on various browsers on various OSes) | | - Background support | | - Bluetooth | | - WiFi | | - Better notifications | | - etc. | | Sure there will always be a need for native, but 99% of apps | don't need any of that stuff, really. Though I suppose both Apple | and Google have an inherent interest to gatekeep. | | Looking at my own most used apps: | | - Messenger | | - Mail | | - White Noise | | - Teams | | - Google Maps | | Literally all of them could be implemented as responsive pages | with acceptable performance. There are a small number of | companies that don't bother with mobile apps, Craigslist being | the most notable of them until a few months ago. Part of the | issue though is that the app stores give you a lot of visibility | and to get that visibility you need to be in the app store. Sure | you can use a web view, but in some ways that's even worse than | just a responsive website because now you have to deal with the | abstraction of your site that is a WebView. Not to mention the | temptation to try for "best of both worlds". | rayiner wrote: | Users hate web apps, especially on mobile, and it has nothing | to do with functionality. Web apps on the App Store invariably | provoke angry screeds about how the look and feel is not right. | | Native apps are even more essential on mobile. On the desktop, | web apps just look weird and waste battery life. On mobile, | they _feel wrong._ That difference in feel provokes visceral | hatred. | WA wrote: | No. Designers and some devs hate web apps for minuscule | reasons your average user doesn't care about and doesn't | notice at all. | | If an app helps them to get a task done, it simply doesn't | matter if the thing is native or not. At least, if you use a | somewhat reasonable UI approach like Ionic. | namibj wrote: | > Users hate web apps, especially on mobile, and it has | nothing to do with functionality. Web apps on the App Store | invariably provoke angry screeds about how the look and feel | is not right. | | > Native apps are even more essential on mobile. On the | desktop, web apps just look weird and waste battery life. On | mobile, they feel wrong. That difference in feel provokes | visceral hatred. | | They don't have to waste battery life. This is mostly due to | poor coding/architecture, instead of "web". Especially with | WebGl and Wasm. | JamesSwift wrote: | Messenger, Mail, and Teams would be absolutely crippled without | background support and notifications. Maps would be somewhat | viable, and I'm not familiar with White Noise. | | Also, 'native parity' is a moving goalpost. At the point you | get support for all those things across all platforms, what | else has been added to native that you are now missing? | | This isn't even considering the fact that there is no incentive | for apple to play nicely without an anti-trust ruling against | them. | TheAdamAndChe wrote: | Progressive web apps can already receive notifications. | JamesSwift wrote: | iOS supports push notifications in a PWA context? Thats | news to me. | NickBusey wrote: | I was really impressed recently by Wealthfront's mobile site. | It's so good and fast, they don't even push you to download | their native app. You just don't need it when the website works | that well on mobile. | jakub_g wrote: | Monetization. Native apps provide app & in-app purchases | seamlessly integrated in the platform. Web payment solutions | are clumsy in comparison. Sure, there are new APIs that ask for | CC number, holder etc. to be prefilled but the friction is | still not at the same level IMO. | | You need to pay the cut to Apple/Google but in certain | scenarios it's preferable than asking for payment details. | scarface74 wrote: | Seeing that the only apps that make money for either Google or | Apple are mostly games with in app purchases, they wouldn't be | appropriate for web apps anyway. | pastor_elm wrote: | Shopify's growth model relies on bringing people into an app | dependent ecosystem. They're not looking to be a one app | company. They want users to locked into having many Shopify | apps. When people are using mobile sites, the sense of | dependency just isn't there. Not to mention it feels terribly | inconvenient and the tracking can be stymied. | xenihn wrote: | The fact that Facebook themselves will never be able to replace | their native iOS and Android apps with RN implementations says | it all imo. | apl002 wrote: | this is the dumbest take on here. You think that because | Facebook hasn't rewrote their apps in RN that RN must suck? | What kind of evaluation for software is that. | | They haven't rewrote in RN because it's unnecessary. Its not | worth the engineering resources. There is so many things on | the global product roadmap to build then rewrite something | that already exists and works fine. | | Like all software, RN is great for certain use cases. Just | because someone isn't using it for X doesn't mean it also | sucks for Y. | htormey wrote: | React Native is widely used in both Instagram and the main | Facebook app (market places). It's also used in a number of | other apps they make (oculus, ads manager). | EugeneOZ wrote: | It just says that web apps can't steal enough data from your | phone. | xenihn wrote: | But RN apps are not web apps...? | bonestamp2 wrote: | Tricky question. They start as web apps since they're | built with mostly web technologies, but then they're | compiled as native apps with native components and they | don't run in the browser. So, I'd lean towards "no" -- | they're not web apps at runtime. | robertoandred wrote: | React Native apps do not use web technologies. | bonestamp2 wrote: | I guess we can agree to disagree -- I consider JavaScript | a web technology. | solarkraft wrote: | That depends on what you include in your definition of | web technologies. React and Javascript at this point | mostly fall under mine. | john_alan wrote: | non-native never feels the same. fuck web apps. | rolltiide wrote: | I thought that native mobile would be out 4 years ago and not | much has changed, my only conclusion now is that I don't want | to do android/ios apps for startups, but I'll do it for large | organizations that are actually leveraging all the technology. | hotgeart wrote: | Ads and Exposure. | | Ads: Make a native app and a PWA, put a banner at the bottom. | You'll get more from the native app. | | Exposure: I made some stupid apps and without any SEO I get | 10K-50K installs, you can't get that with a PWA and Google | Search. | | I'm 100% for PWA because I can't take anymore monopole shit | from google play and his rules, but that's the reality. | rajasimon wrote: | I thought this too. You know recent TWA with PWA makes the | website accessible with anything on the system level. Like the | location and other information. | duxup wrote: | I just wish with PWAs ... there was some more love as far as | how they're handled. | | Last time I looked at them it was really wonky to install a | PWA from Chrome. | | Developer advocacy at the time from Google was big on PWAs, | but they were second class citizens everywhere in Google | land.... | untog wrote: | You can now wrap a PWA up as a TWA (Trusted Web Activity) | and publish it to the Play Store, which should make a huge | difference. | duxup wrote: | OH TIL that. That's good, showing up on the Play Store | was kinda random benchmark I was looking for. | pjmlp wrote: | They are first class on UWP since Microsoft decided to drop | WinJS in favour of PWAs. | | It is also one of the ways they are pushing for cross | platform development on their upcoming foldable devices | (Other being React Native and Xamarin, depending where one | is coming from). | duxup wrote: | Yeah I really liked MS's support that way. | ricketycricket wrote: | > What's missing until regular websites have parity with mobile | apps in functionality? | | The desire to build web apps instead of mobile apps. | | > Literally all of them could be implemented as responsive | pages with acceptable performance. | | Exactly. It's not a technical issue as much as an issue of | focus/interest. Unfortunately, this has been a losing battle | since 2008. | newfeatureok wrote: | > Exactly. It's not a technical issue as much as an issue of | focus/interest. Unfortunately, this has been a losing battle | since 2008. | | This is true, but there are a lot of features missing from a | responsive site that apps have. Of course, I'd argue that all | of the missing functionality can easily be added to Safari | and Chrome (to name the big two mobile browsers). | carierx1 wrote: | Running a UI within a virtual machine is the stupidest idea | ever. | pier25 wrote: | Another feature lacking in the mobile web are touch gestures. | | I'm facing this problem right now and the best option for | recognizing gestures seems to be HammerJS which adds 7.5kB | gzipped to your app. | | After that your app still needs to react kinetically (eg: the | image moves while dragging it to the left and then the view | transitions to the next image). It's a lot of code that needs | to be shipped in the JS bundle. | | BTW if you have a better solution than HammerJS please comment | here: | | https://news.ycombinator.com/item?id=22184079 | deepGem wrote: | I feel quite the opposite, most of the phone apps will likely | to be thick client variants of the web apps, given that the | hosts have so much power and storage available. Privacy | concerns are gonna force this model where almost every activity | having minimal network overhead. We are going back to the | desktop app era, is what I feel. | na85 wrote: | > We are going back to the desktop app era, is what I feel. | | Can't wait, to be honest. This era of everything as a service | is great for developer convenience but is incredibly user- | hostile in that it enables and encourages surveillance | capitalism and the erosion of privacy. | tempsy wrote: | No mobile website has match the performance of native though | [deleted] | scarface74 wrote: | Mail is the last thing I want as a web app. I don't use web | mail on my PC. I definitely wouldn't want to use it on my | phone. | | Maps is also much more responsive even on older phones than it | is on a web page on a modern PC. | phreack wrote: | It can't be overstated how many apps are absolutely dependent | on working push notifications (all chat for example) and can't | be replicated as websites. And that's not yet implemented for | iOS so we're all at Apple's mercy until it is, which may never | be. | pennaMan wrote: | Apple will never give in and implement webpush on mobile | safari because that would affect their precious app store. | How will they extort developers then? That's also the reason | mobile safari is so limited in other features. | scarface74 wrote: | You mean extort developers who are mostly publishing free | apps backed by services or advertising? | | How many apps do you use on a daily basis that you paid | money for, find notifications useful, and would have been | suitable as a web app? | [deleted] | jammygit wrote: | I can't stand push notifications, I disable them all except | for a couple (like signal). They are usually only part of the | app to manipulate you into using it constantly | Normal_gaussian wrote: | several applications require them to be useful. Security | events from my home cameras, messages from clients, timers, | email | | Anytime I'm using a peice of small business software I'd | probably like it to be able to give me notifications | beefield wrote: | Honestly curious and hopefully not rude, but how can you | concentrate on anything? Or does your work/life not | require you to concentrate ever/most of the time on | anything? | | (I have turned all but phone call and sms notifications | off on my phone. I will check my email/whatsapp when I | want and see notifications there as needed. If someone | has something urgent, they know how to call.) | Normal_gaussian wrote: | Simply, it doesn't affect me adversely at all. I think | you have a misunderstanding as to how many notifications | are generated. | | Today I received: | | * 3 reminders to eat | | * 1 security alert (delivery) | | * about two dozen instant messages between myself and | clients | | * a couple of dozen CI alerts | | * 3 emails | | Its easy to have different levels of notifications, and | filter message channels. I have less distraction now than | I had in an office by several orders of magnitude. | | Everything is either immediately relevant or very | important. The notifications I have make me more | effective. | servercobra wrote: | What kind of reminders to eat are you getting? Like | "don't forget to eat?" or "don't forget, this is your | plan for lunch"? | namibj wrote: | I'd assume some sort of "go eat now, it's time" scheme, | so he can stay in deep flow without neglecting his food | intake. | Joakal wrote: | Not grandparent but for me: | | 1) only certain notifications that are important have | unique sound, vibrate, etc. | | 2) other semi important notifications flash. Light is not | that bright to notice. | | 3) other notifications have numbers on app so there are | some despite not seeing any notifications. | | Result: I stopped checking every hour. It's actually been | an improvement for me to stay away from phone. | | I noticed that some apps abuse you for disabling | notifications and Viber is biggest example. I don't care | about holiday wishes or viber news but I need app to stay | in touch with some people. Sadly, I only check at most | once a fortnight because of this disabled notification | nagging. | thrwaway69 wrote: | This is exactly what I was thinking a while ago. Most apps | won't give you good notifications, just spam you so there | could be an app that lets you have some good notifications | instead of disabling them all through a filter. | | I never looked into whether this is possible to do on | android or iOS. I thought it might not be given the power | available to hijack all the notifications available. | dmix wrote: | What's your point? Do you think you represent most people? | Can you not just turn it off? | | Notifications have fine tuned controls on both iOS and | Android with schedule Do Not Disturb features and varying | levels of priority (iOS has 3 tiers). Plus per-app controls | to disable them from annoying apps, which in newer versions | of iOS prompt you before they turn on, making them opt-in. | | It's essential for communication apps (texting, email) and | useful for breaking news or a simple highlight of big news | on WSJ/NYT on your activity feed, so you don't need to open | either app to stay on top of big events if you're a news | junkie like me. | | I'd personally go as far as saying push-notifications + the | activity feed is very underrated feature of smart phones | and has become a core part of people's day-to-day lives | (which plenty of technologies can't say). | npo9 wrote: | > Do you think you represent most people? | | I've seen poor push notification quality increase | uninstall and churn rates. I think the lesson is that | many people are quickly annoyed with push notifications. | zapzupnz wrote: | I think that's inaccurate. There are plenty of push | notifications that don't annoy people, that are often the | primary basis for how people interact with certain apps | -- Facebook, Messenger, WhatsApp, Slack, Discord, etc. | | Let's not assume that all push notifications are cynical | attempts to get people engaged with the app or to push | DLC. For things like mail, messaging, and plenty of other | online services, push notifications are not just an | important interface to the app; they can be _the_ | interface. | buboard wrote: | Its true that tons of news sites ask for permission just | to spam you, or outright sell notifications to | advertisers. I think the web notif channel has already | been abused beyond repair. It may be time to redo the | concept from scratch | | Killer feature for email: add an email header that turns | an email to notification. Then email apps would push the | notification to the user, bypassing apple's block. | Websites already have the user's email, so no need for | more subscriptions. If gmail implemented this, it might | push for adoption | apl002 wrote: | I love push notifications. Its honestly how I stay up to | date on whatever is happening. I aint got time to scroll | through everything | agumonkey wrote: | are you the one exception that makes us all suffer from | notification induced FOMO ? :) | anderspitman wrote: | Honest question: is there some reason you can't use standard | web tech for push notifications? ie polling, WebSockets, etc? | DevoAKA wrote: | You can use polling or sockets when the browser is open; | the problem is showing those notifications on the phone's | lock screen or when you're in another app. | anderspitman wrote: | Oh duh. And it sounds like iOS doesn't support that for | PWAs yet? | jonny_eh wrote: | There's no reason why a web app can't work with push | notifications. Won't? ya. Can't? no. | Random_Person wrote: | The sites I build at work have proper push notifications. | This problem has already been solved. | berns wrote: | How did you solve the lack of push notifications on iOS? | xyby wrote: | For iOS, can't you just wrap your web application in a | thin native app layer that provides the push | functionality? | avip wrote: | You can, you just can't publish it on the appstore. | berns wrote: | From the app store guidelines: | | 4.2 Minimum Functionality | | Your app should include features, content, and UI that | elevate it beyond a repackaged website. If your app is | not particularly useful, unique, or "app-like," it | doesn't belong on the App Store. | nicoburns wrote: | Would push notification support not be exactly the kind | of feature that would qualify for this rule? In practice | there are hundreds of apps like this on the app store. | cma wrote: | Perhaps the main distinguishing app-like thing is | distracting notifications. | SlowRobotAhead wrote: | Right! I ran in to this when I wanted our app to "portal" | to the website and just move Bluetooth data along. Apple | thought about this and doesn't like it. | noir_lord wrote: | 4.3 We'll continue to get away with this until the EU | makes us stop. | psaux wrote: | They probably embedded the browser in a client. | rubyn00bie wrote: | I will never enable push notifications from websites. This | problem has not been solved. It also doesn't hold across | devices or if the browser isn't open. | Klathmon wrote: | While the web notification story on android is much better | than on iOS, it still has it's own share of issues. | | The biggest one that i've run into is how exact timing of | notifications is difficult. Sometimes notifications can be | delayed for hours and there's not really much you can do to | fix it, other times they will arrive minutes later. | | I previously worked on a PWA which had to be converted into a | thinly wrapped webview for Android because we needed | notifications to pop within seconds of their scheduled time, | and we just couldn't achieve that with web notifications at | the time. | lazyier wrote: | > Honestly I think the future of mobile will just be... mobile | websites. | | This. | | Having to install software on my phone to use a service is | cringy as hell and is a huge red flag for me. Like when trying | to order food from a restaurant or shop somewhere. | | It's almost always going to be a automatic no. I just don't | trust them. They always want permissions to access things on my | phone, which is just pure nonsense. | | It's going to take a while for businesses to realize that in | order to get a wide audience for the software they are paying | for the last thing they want to do is force people to jump | through hoops in order to use it. | | For every one of 'google maps' there is going to be ten | thousand other apps that simply have no benefit from being | 'native'. | seemack wrote: | I agree with the overall points, less so the pointless | vitriol. Installing software is cringey as hell now? | | The main issue here isn't native apps. It's the existing | framework for installing them. | | For instance, would it be that far-fetched to be able to open | an app in a single click? | | Current extended process: 1) Click link that takes me to app | store page 2) Find and click install button 3) wait 4) Click | "open app" button | | Streamlined process that accomplishes the same: 1) click link | 2) wait 3) app opens up (download/install hidden behind | spinner) | | Even if you have to add a pop-up in there to display | permission requests, it's still a much smoother experience. | | You'd have to worry about app sizes but that's a solveable | problem as well. | tadfisher wrote: | https://developer.android.com/topic/google-play-instant | Udik wrote: | > Installing software is cringey as hell now? | | When you know that the features you're interested in can be | made easily available by a simple web app. | seemack wrote: | Perhaps I'm misunderstanding the logic but doesn't that | mean using a fancy pen is "cringey as hell" since you can | just use a simple ballpoint pen? | | Sorry, it just seems unnecessarily negative to me. | VRay wrote: | It's like you ask someone if you can borrow their pen, | and they say "Sure, but only if I can rifle through your | wallet and attach this GPS tracker to you" | Udik wrote: | Yes, you are misunderstanding the logic. A normal web app | doesn't need to be installed, disappears each time you | close it, runs in a tight sandbox. Much better and | lighter than have an app installed. | | Besides, I do find fancy pens cringey, but that's another | story :) | avip wrote: | Offline is still a thing. | partiallypro wrote: | But website can be packed up and saved as PWAs, also "offline | sites" have been a thing since the 90s. | ojr wrote: | Other things missing: Contacts, Device Identifier, In-app | Purchases, and a trustworthy distribution platform with a large | base of affluent customers. | thespace12 wrote: | Actually the future of the application UI is React. | pier25 wrote: | > Honestly I think the future of mobile will just be... mobile | websites. | | Indeed. | | A lot of people still think that native is superior than web | but the problem is that most websites are bloated pieces of | crap. | | If anyone doubts this check the Missive email client on iOS | which was even featured by Apple on the AppStore and runs on | Cordova: | | https://medium.com/missive-app/our-dirty-little-secret-cross... | | (sorry for the Medium link) | _hl_ wrote: | > What's missing until regular websites have parity with mobile | apps in functionality? | | Performance. But we're beginning to approach performance parity | - not by the web becoming an faster, mind you, but by apps | becoming slower. It used to be only cheap/poor-quality apps | that felt like glorified web pages, but now even many high- | profile apps are just parts of a web stack embedded into an | app. | weberc2 wrote: | Absolutely this. Native apps are just so much smoother, and I | say this as someone who really wants the web to win, and who | used web apps almost exclusively because my 16GB iPhone 6 had | very little space for apps. Also, the quality of native apps | was much higher (e.g., Twitter feed doesn't abruptly jump all | over on mobile) although this could just be due to more | budget allocation into native apps for whatever reason. | gargs wrote: | Not just smoother, native apps done right are interactive | at the visual element level. | weberc2 wrote: | Can you elaborate on this? I'm not following. | sciprojguy wrote: | Native iOS developer here (10 years). Knowing how to | leverage UIKit and CoreAnimation properly can give a very | smooth UX. SwiftUI has significantly upped the ante on | iOS13 and future versions; it's reactive without the | middleware layers, and it lets you get your app done | (with live view previews) and not have to drag in a pant- | load of external frameworks. | axbytg wrote: | Agreed. Map performance especially on native is night and day | -- 60fps smooth scrolling even with React Native, vs choppy | shitiness on the web. | onion2k wrote: | You make a fair point but it's one about the current state of | apps rather than the future of apps. In the future phones | will be more powerful and apps will do mostly the same stuff. | In theory that should mean the apps will be faster. | kllrnohj wrote: | > In the future phones will be more powerful | | Single-core performance is largely topping out. The gains | are incremental at best. | | Mobile SoCs have gone incredibly multi-core incredibly | quickly (6-8 cores are common!). Meanwhile the web is | incredibly bad at handling that. JavaScript code still has | to fight with the GC for CPU time on the single thread they | both occupy. WebWorkers are incredibly heavy & limited. | | WebAssembly might have threads eventually (it's on their | roadmap), but then how long until that happens and will the | typical webapp ever even migrate to webasm? | | Meanwhile CSS & DOM performance continues to be poor, so | webapps are left in this awkward state of needing to re- | write part of the browser. | | Hardware isn't fixing any of this. It's been almost a | decade of hardware not fixing this at this point. | pjmlp wrote: | It depends pretty much on what the app is all about. | | CRUD mobile apps can be made pretty fast when not doing an | SPA bigger than Quake just for displaying text. | | SSR, pure CSS3, caching, server workers, mobile first, can go | a long way. | | Naturally there are other kind of apps where native wins | hands down, e.g. WebGL vs GL ES 3.2/Vulkan/Metal/DX. | yummybear wrote: | It certainly possible, but there is a lot of arcane | knowledge that goes in to the techniques listed. Native | apps, generally, has better performance "built in". | pjmlp wrote: | Arcane knowledge? That is pretty basic stuff for anyone | doing Web since the HTML 3 days. | | Have you ever done native Android, including using the | NDK? | | It is full of arcane knowledge, scattered about commit | comments, medium, G+ and Twitter posts from Android team | instead of being on developer.android.com, APIs | introduced in one IO are deprecated/replaced by the next | IO, OEMs (cough Samsung) that change AOSP behaviours,... | dmitriid wrote: | Yes. Web is full of arcane knowledge. Take virtual lists | for example: | https://news.ycombinator.com/item?id=22186827 | hellisothers wrote: | One thing I feel is overlooked in these discussions is WebView | UI performance isn't as good as native. You'll always notice a | difference scrolling a list natively vs on web. It just _feels_ | different, same goes for all the other micro-interactions if | pushing/popping views. | AgloeDreams wrote: | This. And if you compare it with the very best say, iOS has | to offer in touch interaction it's just different worlds. | Look at the multitasking and swipe interaction on an iPad pro | at 120Hz. You just can't even think of that world. | | I have a funny feeling that Apple's next big developer move | on the iPhone is to enable those types of smooth, cancelable | interactions out of the box in Xcode via new SwiftUI | components just for it. When they make it easy and clear, | people will use it and then the gap will widen. | alexashka wrote: | You're viewing it through the lens of a developer. | | The user wants the best experience. Because software costs 0$ | to distribute, the best user experience will always win out. | | The future of all software is faster, better software. Websites | are shitty, arcane technology - the opposite of the future. | rchaud wrote: | If a website is popular and does the basics well, it doesn't | matter how 'shitty' the technology is. | | Amazon.com has easily the most hideously designed product | pages out there. Because sellers can "customize" the product | page, you get their content (usually hero images with tiny | text) mixed in with text-only product details, "users also | bought" carousels, Q&A and Reviews all jammed together. | | And they're still doing better than most large ecommerce | stores (Walmart, Best Buy etc.) because the stuff that | matters (pricing, delivery time) is better than the | competition. | | Switching to the Amazon app doesn't fix any of these problems | because it's primarily a content and UX issue. | solarkraft wrote: | Of course if a store is just plain cheaper and over all | quality wise better, it it's not that important that it | looks hideous and abandoned. But to some people it matters. | And if two stores provide the same product at the same | price, I think I'll prefer the one that looks nicer. | | It doesn't decide everything, but it's pretty certainly a | factor (although Amazon must have determined that it's a | small one to them, as they are still micro-optimizing for | other page-related aspects like loading speed). | carierx1 wrote: | The web is truly a horrible user experience. Thankfully the | its dying and native apps will prosper. | hombre_fatal wrote: | I don't know, I get to use uBlock when I use web apps and I | have some control over the client even on my phone. Native | apps can basically do whatever they want and users are waking | up to this. | | I would like all of my applications to be sandboxed by a | browser I have control over. | EthanHeilman wrote: | >Literally all of them could be implemented as responsive pages | with acceptable performance. | | Speaking personally I like the division between highly | sandboxed websites (no GPS access, no notifications, etc...) | and trusted apps. | brlewis wrote: | This is only because the trust given to apps is insane. No | distinction between foreground GPS and background GPS? Sure, | I wouldn't want web sites to work that way either. But if | permissions were sane there would be no reason not to have | native apps and web apps ask for the same permissions in the | same way. | scarface74 wrote: | There has been a distinction between the two on iOS for at | least two years. | EthanHeilman wrote: | I don't ever want to give a website access to microphone | because someone could turn it on via an XSS. Websites on | the whole seem to be far more vulnerable than mobile apps | because: | | 1. their code is refreshed on every load, | | 2. their software is often updated on a daily if not hourly | basis, | | 3. they will often pull code from remote sources on every | page load, | | 4. they don't even have to pass the minimal review and code | signing of an app store, | | 5. and it is very likely that they are written in | javascript. | | I agree with your general point that better permissions | would improve the situation. For instance asking each time | it wants to use the microphone, rather than an approve once | model. | [deleted] | ohadron wrote: | Technically, and from user experience point of view, this makes | perfect sense. Native apps are rarely actually needed. | | However, Apple is making a huge pile of money out of app store | sales, and it has huge leverage as long as the 'app' model | lives on. They are strong enough to prevent this from | happening. | | Ever ask yourself why mobile iOS web doesn't support push | notifications like Android does? It's because that will be a | shift in the wrong direction from Apple's standpoint. | scarface74 wrote: | As I asked before, which apps have you paid for, that would | have been better as a web app, and that needed push | notifications? | reaperducer wrote: | _Honestly I think the future of mobile will just be... mobile | websites._ | | That was Steve Jobs' original vision for the iPhone. | | The difficulty was that once the App Store launched, people and | middle managers thought that if a company didn't have an "app," | it wasn't a real company. | | Now that the web has matured, there are not that many things | outside of games that require an app. But there are still many | people (including many in my own company) that think an "app" | adds credibility to a company, even if that app does less than | the web site. | solarkraft wrote: | > What's missing until regular websites have parity with mobile | apps in functionality? | | Performance. | | > Literally all of them could be implemented as responsive | pages with acceptable performance | | But not with great performance. A user feels the slight | stutters, glitches and slow-downs. | divbzero wrote: | Ten years ago Facebook fought this battle and lost. [1] [2] [3] | | [1]: https://www.facebook.com/notes/facebook-engineering/using- | ht... "Using HTML5 Today" | | [2]: | https://appleinsider.com/articles/12/09/11/facebook_admits_h... | "Facebook admits HTML5 not competitive with Cocoa Touch" | | [3]: https://techcrunch.com/2012/12/13/facebook-android-faster/ | "Facebook Speeds Up Android App By Ditching HTML5 And | Rebuilding It Natively Just Like The iOS Version" | | I have always rooted for mobile web apps, but the lack of | feature parity and distribution challenge ("Add to Home | Screen") puts them at a constant disadvantage and companies who | control mobile OS's have little incentive to change this. | carlosdp wrote: | In re: distribution challenge, PWAs can already be published | to the Google Play store. | marvindanig wrote: | Yeah, and those are called TWAs-as in Trusted Web | Activities. As much as I dislike Google in general, they | have been good at bringing web development and native apps | closer than ever. | koheripbal wrote: | It strikes me that, more than anything, it is the lack of an | efficient "Add to Home Screen" flow, that has doomed mobile | websites. | | ...and it's intentional. By having an app store, mobile OS | distributors know that they have control over a massive | revenue stream. | scarface74 wrote: | There has been an add to home screen shortcut on iOS since | day 1. | bostik wrote: | A good part of it is their absolutely _massive_ 30% cut. | The only reason they get away with it is that when Apple 's | app store first came out, most of the online casual | applications were games. Hosted by a few gargantuan | aggregators ( _cough_ newgrounds _cough_ ) who charged 70%+ | of the revenue for their ... service. | | Against a backdrop of above-criminal-rates extortion, 30% | must have looked like a bargain. | | To put these numbers in context, very good agents get 15%. | tombert wrote: | Forgive me a bit, since I haven't been on Newgrounds | since before the iPhone came out, but did Newgrounds ever | charge to host on their site? Did they allow you to | monetize your games? | grawprog wrote: | https://www.newgrounds.com/wiki/creator- | resources/monetizati... | scarface74 wrote: | Most of the money being made on the App Store is for in | app consumables from pay to win games. You'll have to | forgive me for not shedding a tear for them. I hope Apple | Arcade takes a huge chunk of their revenue. | | It's not indy developers trying to make a living. | | The other types of apps that use to make Apple a lot of | money are streaming services. But most of those are now | not allowing you to do in app purchases. | | I'm looking through all of my apps, and I only have two | or three that I actually paid money via in app purchases | and those were to turn off ads. | | All of the rest I had to buy subscriptions on the app | makers websites or buy content in the case of Amazon for | Kindle books. | dessant wrote: | Though we _should_ shed some tears for those who just try | to sell their apps and make a living, after already being | ripped off for expensive equipment and an annual | developer account fee. | | If Apple would care, it would be possible to charge a | smaller commission based on the app category, and to | vaive annual developer account fees for verified open | source developers. | rbrtl wrote: | Apple gear is no longer as comparatively expensive as it | used to be -- they aren't ripping you off, they have put | a lot of work into delivering different 'gear' to what's | available in the rest of the market. Shed a tear for | people who buy HP and need a new laptop every year or | two. I'm typing this on a 7-year old MacBook Pro, which | works better than the day I bought it. | | Hosting an app marketplace is not a free endeavour | either. They host infrastructure to facilitate all of | this, and they review app code in an attempt to prevent | malware being distributed by underhanded developers. | Maybe they could vary the price based on the use case, | but why should they? No one is compelled to publish on | the App Store, why complicate their business model to | give themselves more work for less money. | bsaul wrote: | As a developer of a pro app in a niche market trying to | make a living on the app store, i can tell you those 30% | are what prevents me from working full time on my app. | marvindanig wrote: | Oh, 100%! | | It is absolutely intentional that iOS Safari on iPhones | does not have support for fullscreen api, for example, | whereas both WatchOS (somewhat) and iPadOS do. Apple is | quite anti-competitive when it comes to letting web apps | utilize the full potential of modern web standards. | | And they often use "industry advocates" driven psy-op | tactics to manoeuvre public opinion such as the following: | | [1] https://stackoverflow.com/questions/49589861/is-there- | a-non-... | jollins wrote: | As you said yourself though, this was 10 years ago. | Steltek wrote: | Didn't Facebook also want native app access so they could | work around OS limits like background processing via shady | stuff like leaving the microphone on? I prefer webapps for | security reasons because of Facebook's checkered history with | native apps. | scarface74 wrote: | But what happens if Apple or Google gives web apps more of | the capabilities of native apps? | [deleted] | GrumpyNl wrote: | Why does everybody think they have to build at the scale of | Fb. Most of the apps will do perfectly fine when they are web | based. | reaperducer wrote: | _Ten years ago Facebook fought this battle and lost._ | | That was ten years ago. Phones and web sites have changed a | lot since 2010. | | If the battle was re-fought today, I'm not sure the winner | would be all that clear. | globuous wrote: | [2] is from 2012 though, almost a decade ago. The web has | come a long way since, and in five years to a decade could be | competitive. With wasm and webgpu and what not. And as of | today, i dont think the mobile web interfaces for fb and | messenger are particularly worse than their native | counterparts. They save me the notifications actually... | muxator wrote: | The web post-wasm could be a whole different beast from | what the web was originally supposed to be. | | Not that the current situation is idyllic, but I fear a | post-wasm web would be even more opaque and less | inspectable. | dmitriid wrote: | > The web has come a long way since, and in five years to a | decade could be competitive. | | The web is always 5 to 10 years away from being | competitive. | | Meanwhile Twitter struggled to implement such a trivial | thing as a virtual list on the web: | https://grumpy.website/post/0RQvmdNmN | | It took them almost a year after the resign to fix most of | these issues. While breaking or half-breaking functionality | for almost everything else. | | And that's for a website that's nothing but text and | pictures. I wouldn't he my breath waiting for web to be | competitive. | protonfish wrote: | It makes sense that a company with a business model based on | mining and selling personal data would not find mobile web to | be acceptable - too many privacy and security protections | that can be eschewed on native. For the same reasons, | consumers should choose HTML. | troquerre wrote: | The power of websites is that they run cross-platform. If your | website works on chrome on windows it'll work (for the most | part) on Firefox on Mac and safari on iOS. Apple is against | this philosophically because it doesn't take advantage of the | unique capabilities their devices provide. It's the same reason | why Apple stopped supporting flash | https://www.apple.com/hotnews/thoughts-on-flash/ | scarface74 wrote: | That's not true. | | Back in 2007, Adobe claimed that they could get Flash working | on the original iPhone if Apple had allowed them. | | When they finally got it to run on Android years later, it | required a 1Ghz processor and 1GB of RAM and it still barely | ran and was horrible on battery life. The original iPhone had | 128Mb of RAM and a 400Mhz processor. It wasn't until around | 2011 when there was an iPhone that met those specs. | | Adobe was always late delivering Flash on mobile from Android | phones and Palm phones. | | It was so bad, that the Motorola Xoom was advertised to be | able to browse the "real Internet" because it could support | Flash. At launch it didn't. Leaving it in the embarrassing | position that you couldn't browse the Xoom advertising page | that required Flash on a Xoom. | troquerre wrote: | Supporting all of Apple's functionality was one of the | reasons for not supporting Flash that Steve shared in his | post, but I think you're right that Adobe not being able to | get Flash working on iPhone was the main reason. Thanks for | the correction! | pier25 wrote: | This. | | I developed a number of Air mobile apps back in 2012-2014 | and all the blame is on Adobe. Flash was extremely | inefficient and Adobe didn't want to invest the necessary | resources to properly bring it to the mobile world. | | Adobe cancelled AS4 (aka Flash Next) which would have made | Air a very competitive crossplatform solution. They shifted | all its resources into HTML5 to throw a bone to the Flash | community and it was a complete failure. | | https://insights.stackoverflow.com/trends?tags=actionscript | -... | | Don't get me wrong, it probably made economical sense for | Adobe but it was a shame. | dnh44 wrote: | Also flash player on the Mac was terrible and consumed a | lot of energy. I'm not surprised Apple didn't want it on | iOS. | pier25 wrote: | Truth is even if Apple had wanted to bring it to iOS it | didn't really have a choice. Users would have blamed | Apple for the low battery time. | ridiculous_fish wrote: | Native controls can afford to be richer (in principal) because | knowledge transfers across apps. Websites do not enable such | transfer: there's too much of a culture of customizing | everything. On mobile the problem is somewhat less noticeable | because rich native interaction models haven't really emerged. | pier25 wrote: | Good point. | | In the mobile and desktop world devs are totally fine with | using native GUIs that ship with the OS (even encouraged to | do so) but in the web world projects are criticized for using | libraries like Bootstrap and devs and designers are expected | to reinvent the wheel every time. Also don't use a native | alert or you will condemned to hell. | kitsunesoba wrote: | Only if mobile web can jump the hurdle of feel. Even the best | mobile web apps still feel kinda clunky/laggy in subtle ways | that the average native app doesn't. | | It's actually pretty comparable to the situation with desktop | Linux where the gaps between the layers are subtly perceptible, | which leads to a sort of slipshod/duct tape impression that | isn't great. | wayne_skylar wrote: | This is the right answer. You've got the web paradigm of the | nav bar showing up when you scroll up (among other oddities). | I think it would be very easy to have a mobile browser | extension to show pages full screen in a special | interactivity mode to make most mobile apps work on the web. | partiallypro wrote: | A lot of native apps feel clunky because they are poorly | coded and thought out. As OP said, 90% of cases are where | companies don't need native apps, because they simply don't | require that performance level or permission set. | jszymborski wrote: | It's times like this where it becomes painfully clear that | FirefoxOS was (1) ahead of its time and (2) woefully poorly | managed. | pjmlp wrote: | Actually Symbian Web Runtime and WebOS were ahead of their | time. | wpietri wrote: | I'd believe you for some of those apps. But definitely not for | Google Maps. Even on their own OS and their own hardware, they | are clearly pushing performance limits for the Google Maps app. | And have been for years. | | I think you're definitely right about gatekeeping, though. | Apple's app store gross revenue is ~$50 billion/year. That's an | incredible incentive to make sure that web apps will never be | as good. | api wrote: | I'm convinced that the long-term future of all UI development | is web based, at least at the rendering layer. WASM may free us | from JavaScript. | goatlover wrote: | IS WASM canvas-based or HTML/CSS? Because canvas is not what | comes to mind when thinking in terms of Web UI. | api wrote: | WASM can access the DOM. Check out this: | | https://github.com/gopherjs/vecty | | Like React but in Go. Not quite mature yet but getting | there. | buboard wrote: | I m a web fanatic and use only the browser. My other apps are | dropbox and skype , a decibel meter and strava, so things that | cant exist on the web anyway. I use multiple gmail accounts so | webmail is better | | Since most content apps use browser links at some point it | doesn't even make sense to e.g. have a twitter app | | Now, i wish we could have a better api than web push | notifications though | cletus wrote: | Apps are dominant on web because, well, the web sucks. We can | gloss over this on desktop because of raw processing power but | still, layout if html is just plain terrible. | | Of course mobile processors will continue to improve but on | mobile you're making a trade off between performance and | battery life and battery life will probably never be not a | concern. | pier25 wrote: | The mobile web sucks because of ads and bloated websites not | because some inherent technological flaw. | privateSFacct wrote: | Look at your most used apps - none of them are "responsive | pages". That should tell you something. Folks who have tried | responsive pages haven't done that well. | | I am curious - what is the most popular responsive webpage on | iphone would people say? I'd like to check out the current | leader in this space. | aantix wrote: | Because once a company is invested in the native side, they | probably aren't going to look at greenfield solutions anytime | soon? | | If you're considering building a new app, a responsive site | with JS is definitely a contender. Take a look at the | performance numbers. | https://twitter.com/dhh/status/1174802413548474368 | | And they're only increasing, making it a more viable choice | with each year passing. | hopia wrote: | Google? | akmarinov wrote: | I use Facebook's as I don't want Facebook's grubby hands | using private APIs on my phone to get every bit of data they | can. At least the browser limits them. | edgyquant wrote: | Plus the facebook app eats battery life. IME my phone | battery lasts all day unless I install facebook: then it | lasts a few hours. | newfeatureok wrote: | None of my most used apps are responsive pages because Safari | neuters the functionality. | | - White Noise -> Safari can't play background sounds once | closed. | | - Messenger -> Notification trouble, not to mention Facebook | won't let you use the mobile version of Messenger without a | lot of effort. | | - Google Maps -> Close, but a lot of the functionality, like | reminders require notifications which isn't up-to-par with | just Safari | | - Teams -> See messenger. | j2bax wrote: | Apple does some fairly beautiful responsive webpages... | Albeit rather heavy! https://www.apple.com/apple-arcade/ | jayd16 wrote: | Whats the slack app written in? | philshem wrote: | Desktop apps are (in)famously Electron.js | | iOS is native: | https://twitter.com/SlackHQ/status/931599784137363459?s=20 | | Android is native, too (no source) | jamil7 wrote: | The iOS app is native UIKit I believe. | wpietri wrote: | I haven't tried it on iOS, but Twitter's web app is quite | good on Android/Firefox and Android/Chrome. Not quite as good | as native, and prone to developing lag if I don't | occasionally restart the browser. But surprisingly good. | | They talk about the process of building it here: | https://blog.twitter.com/engineering/en_us/topics/open- | sourc... | AgloeDreams wrote: | I tried it, it's pretty close honestly, but the performance | just feels off and it does weird stuff all the time. The | iOS app is just better. | distances wrote: | It's unusable on Firefox Focus though. Trying to expand | anything completely breaks scrolling on the page. | xeonoex wrote: | I hope not. I started using flutter recently and it is by far | the best development experience I've had creating anything with | a UI. Easy to install (even on windows), build, stateful hot | reload, and the code is easy to read and write. No | HTML/CSS/JavaScript. | | I know web devs probably don't agree, but HTML and CSS weren't | designed to build responsive, interactive applications, and all | that has to be done to make it work makes it a pain in the ass | to setup and develop. With stuff like WASM, Flutter, and | Blazor, I'm hoping we have viable alternatives to traditional | web development. | ENGNR wrote: | The biggest feature I'd like parity on for mobile web.... is | logins. | | As the tracking war rages, humble little login cookies are | becoming a casualty. For example if someone gets a | transactional email (say a new booking notification), opens it | on their iphone, it opens safari.... in a new context. No | login! So frustrating for them. You can send tokens with the | links, but they really need to have an expiry date on them, and | if the user forwards the email it risks exposing their whole | account. So now you have to start playing with an intermediate | 'sort of logged in but don't let them do anything too | dangerous' state | | And now browsers are using "AI" to magically work out which | cookies to delete. That's great, but.. can we not have an | explicit UX for the user to say hey, this is a login cookie, | I'm logged in because I want to see my data and be authorized | on this website every single time I come here (and an equally | special logout function that deletes it without trouble). | | I'm a pretty heavy user of mobile web and rarely use apps, but | logins for power users and tech impaired users is pretty much | the main reason we're looking at react-native too | JamesSwift wrote: | Theres native platform support for that now with shared login | context between browsers and apps. | | e.g. https://developer.apple.com/documentation/authentication | serv... | ENGNR wrote: | If I'm reading it right that's for if you control the app | though. They still lose login if they follow a link from a | mail client or slack app over to a mobile web app, which | wouldn't happen if they were going to an actual app | AgloeDreams wrote: | > acceptable performance | | Until your competitor shows up. I think you are honestly right | for the most cases, but the expectation on mobile, (esp. since | the OS is written in native and 120Hz screens are coming) is so | freaking high. The touch response rate expected is just going | to make hybrid and web apps just seem like trash to the average | consumer when compared directly with native apps. They just | don't do it and just don't feel right. | kllrnohj wrote: | > esp. since the OS is written in native and 120Hz screens | are coming | | High-refresh rate mobile displays already happened. There's | more 90Hz than 120Hz on the market at the moment. Typically | gamer-focused phones like the Asus ROG Phone or the Razer | Phone, but non-gamer-focused flagships are also now 90Hz like | the Pixel 4. | | And of course on the iOS side of the ecosystem some iPad | models already have 120hz displays, too. | hugey010 wrote: | I thought the cool thing to do was declare React Native dead for | your org, not the new hotness?!? | | I try to re-evaluate my opinion of the mobile ecosystem monthly, | and would love to know how people agree / disagree with my | rankings: | | 1. Just make a web page | | 2. Native iOS & Android | | 3. Flutter | | 4. Some ordering of remaining cross-platform tools depending on | requirements. (React Native, Vue Native, Xamarin, Ionic, | Titanium, PhoneGap, Kony...) | trevyn wrote: | Really depends on what you're making. | | Personally, I find RN much more productive than native iOS, for | the areas where it is applicable. The hot reload is quite | magical. | | Also, you can push JS updates without needing to update the app | in the store, which is a huge plus. | throw_m239339 wrote: | > 1. Just make a web page | | This is 100% reasonable for a lot of apps. I for instance uses | the web version of Gmail on my phone without any issue, and | Gmail is a complicated app. | | Trade-off: not easily discoverable in the store of the | platform, harder to test because of browser differences, might | not be as fast as a native app from a UI perspective. | | > 2. If your app involves persistant storage and functions that | are not supported by web browsers, or you need optimal | performance like games. | | Great performances, easy to stick to UI styles for each | platform, access to good quality tools for testing, no, leaky | abstraction. | | trade-off: unless you are using a language supported by all | platforms (C/C++), duplicate codebase for business logic. | | > 3. Flutter | | I don't know flutter because I don't know Dart. | | > 4. Some ordering of remaining cross-platform tools depending | on requirements. (React Native, Vue Native, Xamarin, Ionic, | Titanium, PhoneGap, Kony...) | | Phonegap and Ionic apps are essentially webapps. | | trade-off: for React Native likes: leaky abstractions which | leads to issues when not knowing the underlying platform, the | need to write "plugins" in the native language... | hugey010 wrote: | _I don 't know flutter because I don't know Dart._ | | I don't fully understand this opinion. Learning "new" things | can be difficult, but there's little "new" in dart compared | to other languages. Maybe you can elaborate? | | Installing required tools, setting up a project, including | debugger, is just damn easy (VSCode extension FTW). Also, any | prior experience in mobile using Kotlin, Swift, or JS, | translates well to Flutter and therefore Dart. Bonus | knowledge bridge for people with MVVM experience due to first | class async Streams API and third party RxDart (following | ReactiveX spec). | pjmlp wrote: | I have a different order: | | 1. Just make a web page (specially since many apps are just | pretty CRUD ones) | | 1.1 For certain devices WebGL/WebAssembly can eventually also | be an option | | 2. Native iOS & Android | | 3. Native iOS & Android with server side driven code for the | business logic (maybe even UI layouts) | | 4. Native iOS & Android for the views with C++ for business | logic | | 5. Your point .4 regarding cross-platform tools | | I don't have high hopes for Flutter, with Chrome and Android | teams also pushing for their own solutions, and its dependency | on Dart. | hugey010 wrote: | Totally agree with your 3 and 4. | | I've had, to my surprise, the most success with Flutter. | (I've built multiple React web apps and spent way longer | attempting React Native.) | jamil7 wrote: | Apollo Server and it's associated iOS and Android clients can | make your 3rd option really easy to pull off as it generates | your CRUD logic and model code. | jdmg94 wrote: | if only they could figure out their caching... | jdmg94 wrote: | who is using flutter for their product? something in the wild | (production) that has a real user base? | anon9001 wrote: | Shopify is right to use React Native. | | I build an app with React Native Web and we produce | Android/iOS/web from the same code base with 3 developers. | | No, it's not perfect. Yes, JS can be awkward and confusing. Yes, | a truly native app built by expert platform-specific developers | would be better. | | But I'm able to ship this product with less than half the team | size I would need for native development. JavaScript developers | are cheap to hire, and they don't need to know any | objc/swift/java/kotlin to build the product. | | Our product is consistent, because it's the same code across | platforms. The business people paying us to build the app are | thrilled at how quickly we can turn around features. | | We've been shipping this way for 2 years and I would strongly | recommend it to everyone. | | Also, before people jump in with "But RN is slow and bloated!", | it's actually not. The performance is just as good as truly | native and the binary is small. The real downside is having the | app not feel native, but only developers seem to notice. | Pragmatically, most apps are so bad that if your Android app has | an iOS look-and-feel nobody seems to care. | wdb wrote: | Don't know last time I tried React Native and wanted to use | some cool feature of iOS. I either had to write my own RN | plugin in Swift/ObjC or wait for someone else to do it. | neurostimulant wrote: | It's actually not too bad. You don't even have to put those | native code as a separate plugin. You can simply add the | native code directly to the generated ios/android project | like you do a native app. | misiti3780 wrote: | expo is taking care of this, not there yet, but getting | better every day. | npo9 wrote: | You say that like writing plugins is hard or undesirable. | freehunter wrote: | That's what I don't understand when people criticize | frameworks like React Native... "I didn't like that I had | to build 15% of the app in native code, so I ditched RN and | now have to write 100% of the app in native code, but twice | and in two different languages"? | tilolebo wrote: | React Native isn't the only abstraction out there. You | could use Flutter, Ionic or similar. | | Or do they have the same issue? | anon9001 wrote: | They all have the same issues, but RN has the largest | community. | davidwparker wrote: | Flutter has a larger number of "star" on Github. It also | has more issues and more pull requests. React Native has | 3x more followers on Reddit. So I guess it depends on | your definition of community. | harrisonjackson wrote: | Exactly - this is native code that would need to be written | either way, right? | seanalltogether wrote: | > JavaScript developers are cheap to hire, and they don't | need to know any objc/swift/java/kotlin to build the | product. | | OP is pretty much saying that. | rhodysurf wrote: | Thats a benefit of React Native though. Share as much code as | possible and write wrappers for the Native features you need | for your project. I really love the model. | kerbs wrote: | > with 3 developers | | There is a fairly large chasm between a small team and a | Shopify, AirBnB, or Udacity. These companies have dozens-if- | not-hundreds of developers piling on complexity. | | These companies don't necessarily feel the pain of building on | somebody else's sand on day 1 or day 100, but on day 1000. This | is what AirBnB and Udacity ultimately discovered. | nimrody wrote: | I'm sure Shopify has way more than 3 developers working on | their mobile apps. | | They can certainly afford to have separate teams doing web, iOS | and Android development and optimize for each environment. | crystaldev wrote: | > No, it's not perfect. Yes, JS can be awkward and confusing. | Yes, a truly native app built by expert platform-specific | developers would be better. | | This can't be understated. You can always tell when you've | opened a React-Native (or similar "portable") app. It always | feels like shit. | anon9001 wrote: | > It always feels like shit. | | Yeah, it does, to developers only. They're not the target | market. | | I used to lobby for my employer to care about the latest iOS | feature or fight over what the HIG advises is best practice. | | Unfortunately, most business would be perfectly happy if they | could have a designer draw a pretty looking app and have it | magically pop into existence. Platform features are an | afterthought, if a thought at all. I'm not thrilled with the | state of the app industry, but it is what it is. | | The really elegant solution is to have a passionate team of | platform-specific developers pushing the boundaries of what's | possible on a mobile device, constantly using the latest | features and profiling for battery usage and network usage. | Ideally a team that does this would be so proud of the code | that it becomes open source to serve as an exemplary model of | software engineering actualized. | | I know what's "right", but I also know what the market wants. | The market wants me to churn out cross-platform CRUD apps as | quickly and cheaply as possible. | ksec wrote: | >Pragmatically, most apps are so bad that if your Android app | has an iOS look-and-feel nobody seems to care. | | Yes, but I not so sure if it works the other way round. | baron816 wrote: | > JS can be awkward and confusing. | | > JavaScript developers are cheap to hire | | There's your problem. Go hire JS devs that know what they're | doing. | Scarbutt wrote: | Hiring good devs doesn't make JS less stupid, you have to | recur to third party stuff like lodash and | https://github.com/inspect-js to keep it tolerable. | anon9001 wrote: | My point is that it's not a problem. I can take someone fresh | out of bootcamp with a basic understanding of react | components and css and get them churning out code that works | on 3 platforms. | acpacp wrote: | Good luck with that kind of project. | bcrosby95 wrote: | There's plenty of niches that can do well off a model | like this. Not everyone has to be the next Google. | "Lifestyle" business can mean hundreds of millions in | revenue. Sometimes with just a handful of developers. And | profit margins way higher than any big tech company. | anon9001 wrote: | Thanks. I've had pretty good luck so far. I would not | want to be managing 3x the team size with 3 different | repos to build my crappy CRUD app. | | Keep in mind that I'm not trying to do anything | revolutionary here. I just work for a company that needs | apps on the major platforms with the least effort and | expense possible. | throwaway55554 wrote: | Is there an impact on battery vs true native? | merrvk wrote: | Pretty similar experience here. The rate at which we've been | able to get features out the door has doubled since we switch | from native. | fingerlocks wrote: | > they don't need to know any objc/swift/java/kotlin to build | the product. | | I have a hard time believing this, and I've been making apps on | both platforms for >10 years. And I _love_ react-native. My | latest day job is basically forking popular react-native | packages, often rewriting them in Swift, fixing numerous bugs, | and adding features specific for our company. | | And all this experience has taught me that in no way can you | expect anything but the most basic, ugly CRUD app from a JS | dev. I have tried many times to assign "just" the cross- | platform code to a javascript person and it never works. | | What do you do when there are native build errors? Xcode needs | to be upgraded, or parts of your RN modules are deprecated? | Gradle files need to be actively maintained. There are features | and UI behaviors that are difficult to grok without some | background on the individual platforms (e.g., push- | notifications). There's also _combinations_ of packages that | can break your app- "react-native-sound" and "react-native- | audio", the sound and microphone packages respectively, modify | the same singleton on iOS. Adjusting settings in one breaks the | behavior in the other! How could a JS dev possibly hope to | solve something like that? | anon9001 wrote: | I've only had to dive into the native code a handful of | times, but I do basically make an ugly CRUD app. Most apps | are ugly CRUD apps though. I haven't used the Shopify app, | but it probably falls into that category too. | | > What do you do when there are native build errors? | | I periodically do suffer through xcode upgrades, bad RN | module linking, gradle issues, etc, but it's a couple of days | of work every few months to say current. The JS devs don't | really have to think about this stuff for the daily work. I | think it's totally possible to get away with one person that | knows how to do the hard technical stuff when it crops up. | | That said, I don't build the most technically sophisticated | product. The vast majority of changes we make are for | design/marketing or for features that build on what we | already have. I think that's true of most apps. | | It's not for everything, and I'm glad Firefox (for example) | does do native Android development. I couldn't imagine that | working with React Native. But look at the apps on any random | phone and the ones that couldn't be made in RN is pretty | small. | fingerlocks wrote: | Having one dev that knows something about the native side | makes this very believable now. I haven't had the pleasure | to work on a basic CRUD app that didn't also have some A/V | or special file IO work. Your project sounds ideal for an | exclusive react-native JS team. | orange8 wrote: | > And all this experience has taught me that in no way can | you expect anything but the most basic, ugly CRUD app from a | JS dev. | | > I've been making apps on both platforms for >10 years. And | I love react-native | | Doesn't this make you a JS dev too? Or how exactly do you | define JS dev? | fingerlocks wrote: | "JS dev" is shorthand for "JS-only dev". | | I made Android apps in Java and iOS apps in ObjC/Swift for | many years. I still mostly write native code, but now I'm | writing native code in various react-native packages. | apl002 wrote: | All I can is, as a RN Developer, I love it. I love being able to | use 1 language for both app platforms. The RN community is | amazing. Many of the comments here talking about outdated | packages were likely burned by RNs early days when it was <0.40. | RN has come along way since then. Its been a while since I ran | into an issue updating packages or couldn't find a lib for | something I needed. There is also great resources when you want | to handroll something yourself. | | Migrating an existing native stack to RN might not be the answer, | but anyone looking to get their startup off the group should | consider RN. Its fast development and converting a React web dev | is super easy. | tannedNerd wrote: | And I as a mobile native developer for both android and iOS on | the other hand now know to skip talking with Shopify for future | jobs as I hate RN and the performance hits and non standard UI | it introduces. So we both win! | tekstar wrote: | The sad thing is, all* their tier 1 mobile apps are still | ios/android native and are not going to be rewritten, so they | still need native devs. But after this blog post native devs | will be a lot harder for them to find and hire. | | * except for POS for Android which apparently has been | rewritten, but not yet released, in RN. | BharathMG12 wrote: | We did multiple experiments on server driven UI for our mobile | apps. | | 1) Using native app - Sending layouts in JSON and using Flipkart | Proteus library in Android to render them. This only enables | appearance changes and not behaviors. So we really didn't server | driven LOGIC. | | 2) Using Flutter - Wrote the wrappers for Flutter widgets. Those | wrappers basically just converts JSON to Flutter widgets at run | time. And also enabled actions to be server driven. The complete | app was made server driven using this approach. The only problem | is, too much of abstraction in the client made the code base very | messy and hard to reason. | | 3) Using React native - The biggest selling point for using react | native is, codepush feature. We didn't have to write dumb client | wrappers which expects JSON from server. We can just write normal | JS code and deliver it to client devices without making app | update. This enables really rapid experimentation for product | features. We are currently developing this. | ChrisMarshallNY wrote: | I used to be a cross-platform framework skeptic _(Disclaimer: I | have written a LOT of cross-platform, low-level code over my | career)_. | | I am less of a skeptic, nowadays. I think that it makes good | business sense for most connected apps. Also, the quality and | stability of the frameworks has increased. | | It really stinks to spend two years training your team on a | framework, only to have said framework suddenly float to the top | of the tank, belly-up. React seems to have settled in for a long | stay. It's kicked its shoes off, and grabbed the remote. | | That said, it won't affect me. I tend to write stuff that | controls devices, so my code needs to be pretty "bare bones" | native. | tombert wrote: | I keep putting off learning React Native, largely because I don't | really do a lot with JS anymore. | | I know that there exists ClojureScript bindings to React- | Native...does anyone here have any experience working with them? | secondo wrote: | Arguably the biggest concern with React Native is that it is | controlled by a single entity, Facebook, and that they are not | one of the leading mobile platforms who from a business | perspective have strong incentives to ensure the future of their | respective app eco systems. | | Facebook's incentives with React Native are somewhat unclear. | This is a big, yet often unspoken, reason companies are vary of | depending on React Native for their mobile stacks. With more | large companies such as Microsoft, and now Shopify getting behind | React Native those incentives will have to please a larger group | and should become much more aligned with mobile developer | communities at large - and not just Facebook's desires. | | If Shopify manages to play an active role in the development of | React Native and expand the project beyond the sole control of | Facebook then React Native will become a much more viable option | for companies who for political reasons have refrained from using | the technology. | oakesm9 wrote: | It is no longer the case that Facebook is the only major | contributor to React Native. Facebook and Microsoft now just | started formalising their collaboration on the project with | monthly(ish) meetings[0]. Other large companies like Twitter | are using React Native Web (different than ReactJS) for their | main progressive web app[1]. | | Other large companies using React Native are: | | - JD.com | | - Skype | | - Uber | | - Tesla | | - Discord | | You do have a point about _control_ of the React Native project | though. That's still all with Facebook. The Github repo is | currently setup as a mirror of part of the internal Facebook | monorepo. Therefore, all pull requests need to be merged by a | Facebook employee before it becomes part of "core". This is | enough of a barrier that "non-core" part of React Native were | split out so they could be managed and released | independently[2]. It is also true that while other major | companies are _using_ React Native, they might not be actively | contributing. | | It would be good if Facebook put some proper structure around | React Native as an open source project, however, for now the | project is running along fine. | | [0] https://github.com/react-native-community/discussions-and- | pr... [1] https://mobile.twitter.com/ [2] | https://github.com/facebook/react-native/issues/23313 | | edited: not sure how to make this list correctly formatted | pjmlp wrote: | Microsoft should be on that list as well. | oakesm9 wrote: | I missed it off as I mentioned them in the paragraph above. | They seem to be investing more and more into React Native | with support for Windows and using it in Office. | pjmlp wrote: | It is a bit more than that. | | They are also supporting React Native for macOS, and most | of their teams that are in the C++ side of "C++ vs .NET" | eternal politics seem to want to go with React Native for | the managed layer. | malloreon wrote: | >>> Facebook's incentives with React Native are somewhat | unclear | | I always figured this conversation happened: | | 1: "We have all these engineers who write javascript but users | are switching to native apps. what do we do?" | | 2: "We could retrain them all." | | 1: "That would be expensive and time consuming." | | 2: "We could fire them all." | | 1: "Also expensive and time consuming." | | 2: "Wait, what if we made it so you could write native apps in | javascript?" | [deleted] | zarmin wrote: | 1: "Great idea. Which version of Electron should we use?" | ipsum2 wrote: | React is also controlled by Facebook, and yet is one of the | most popular Javascript frameworks. I don't see how React | Native would be any different. | malloreon wrote: | The second/third paragraphs of your comment could be | find/replaced Shopify for Airbnb from 2-3 years ago and fit | right in. | draw_down wrote: | It is interesting that React's detractors have seemingly | abandoned technical arguments, and now it's all about how evil | Facebook is. A while back, the argument was about how the | license for React was scary and evil and they would steal all | your patents, but they changed the license. So now I guess it | has to be just FB = evil | ameixaseca wrote: | React Native sounds like a mistimed bet now. Maybe 3-4 years ago, | but at this time? There are a number of better alternatives. | | I spent some time working on a RN project, and even though the | whole idea of declarative interface, state update, etc is | interesting, it is not exclusive of RN - and there is the whole | rest of the story: RN libraries are a mess and usually buggy, | there is virtually very little compatibility between native and | web, and.. have anyone ever tried updating a RN codebase? | | I remember we had to recreate the full project and copy the files | manually because everything was broken beyond any hope, this | after spending a full week trying to fix the build. | | For Shopify seem that even a PWA could fit, and would be much | more compatible, reliable, etc. | | By the way, one of their justification is "in-house know-how", | which I heard so many times before... This is usually how you | justify crappy decisions by using inferior technology and then | spending 2x the effort to try to fix it. I hope it doesn't happen | with them, but it does like like that's the way they are heading | to. | Androider wrote: | It's interesting how differently you can look at things. I | would consider the best time to start a React Native project to | be sometime next year, and after 1.0 ideally. | | It's exactly when you jump on the bleeding edge that you end up | with cuts and bruises. For every new shiny thing you'll be | trading your current known problems for a set of unknowns and | the inability to even Google-search for the solution. Let the | tinkerers do the bleeding, and only once they've buffed the | sharp parts can you as a company like Shopify start to bet on | it. | | It seems module and library handling was just revamped in React | Native (not a user myself yet, perhaps next year), so thank you | for your sacrifice. Developers picking up RN today will | hopefully have a smoother experience. | bfrog wrote: | Good luck, you'll need it | TheMagicHorsey wrote: | I wonder if Shopify did their homework and looked at Flutter. | Flutter seems to meet their objectives more than React Native | does. | | And as an added bonus, Flutter is easier to reason about, has | edit and continue, and is more performant. | | Perhaps the use of Dart instead of Javascript was a deal killer | though? | Androider wrote: | It would be pants-on-head insane for a company like Shopify to | go all-in on Flutter. Is Flutter going to be around 10 years | from now? Can Shopify support Flutter on their own if nobody | else is using it 10 years from now? I don't mean that | technically the license would allow them to, but can they in | practice field the manpower and skills to do so across all the | platforms they need. | SlowRobotAhead wrote: | I don't know much about RN or Flutter; but why is it "insane" | that flutter cant exist in 10 years but RN will still be | king? | | Why can't RN die within 10 years? Because it's been around | since 2013 vs 2017? Because you like one more than the other? | | I have concerns about Google's commitment to Dart/Flutter, | but I'm not sure one scenario is pants on head insane and the | other just fact. | Androider wrote: | React Native could very well fall out of favor in the next | 10 years, but the amount of companies using it today means | there is a sufficient base to share the maintenance burden | with, of which Shopify could potentially carry a large | amount because of the significant overlap with the rest of | their tech stack. If Google becomes disinterested in Dart, | could Shopify step up and maintain it? Seems unlikely, and | why on Earth would they want to, it's nowhere close to the | rest of their competencies? | | If for one technology you can extrapolate from today out to | the next several years at least, and the other's path is | effectively entirely opaque and at the whim of another | party, it's a company-killer level risk to bet on the | latter. Put it this way, if Google drops Dart/Flutter | tomorrow, Google will be just fine as they have very little | skin in the game so to speak. Technical reasons one way or | another are completely overshadowed by the business risks, | as the landscape is today (which will change over the | years, but Shopify is making their decision today). | SlowRobotAhead wrote: | Not to be TOO snarky but... I'm sure there are a whole | bunch of Angular 1.0 people who said the same thing. | | I'm not convinced it's a worse idea to guess lottery | numbers than to guess what will be successful languages. | To that point however, React isn't a language (or a | framework) it's a library. | | I would say Google has more to lose by dropping Dart and | Flutter as a language and frame work than Facebook | has/had by dropping React. | hopia wrote: | I don't see how it's any crazier than publicly declaring | React Native as their future like this. | stefano wrote: | With React Native, you're betting on a framework. With | Flutter, you're betting on both a framework and a new | language. Flutter also works on a much lower level than RN, | which means it would be harder for them to pick up the | development if the need should arise. | htormey wrote: | They talk about looking at flutter in the article. | SlowRobotAhead wrote: | They use the word once to say "we did a deep dive". It's | never mentioned again. | glisom wrote: | Good luck, lol | xyby wrote: | Is there a reason that the web is not a target of react native? | | It seems somewhat insane to have a cross platform approach and | leave out the biggest platform of all, the web. | | Or - looking at it the other way round - what approaches are | there to take a working pwa website and turn it into an app? What | advantages over such an approach can react native bring to the | table? | chadlavi wrote: | react-native-web exists: https://github.com/necolas/react- | native-web | hn_throwaway_99 wrote: | Maybe you've heard of ReactJS? | rpeden wrote: | It is, and it's even mentioned and linked to in the article. | harrisonjackson wrote: | There has been a large push to support web as a target in | react-native by expo. | | https://docs.expo.io/versions/latest/ | | Depending on the complexity of your app - expo is the best | place to start with react-native. Their managed workflows allow | you to write in 100% javascript w/ a lot of the native | libraries already linked an exposed in JS. If you need | something they haven't bundled already then you can eject and | have a good starting point. | | Expo web is still fairly new but they seem to have prioritized | it as highly as support for Android and iOS. | yesimahuman wrote: | The Ionic team recently released React support so you can build | a PWA using React and target iOS, Android, web, and electron. | Uses Capacitor under the hood for full native access. It's been | getting a lot of usage since the release: | https://ionicframework.com/blog/announcing-ionic-react/ | WorldMaker wrote: | Also you can use Capacitor with any PWA-style web application | without using any of the rest of the Ionic Framework. | https://capacitor.ionicframework.com/ | | It's currently the best maintained successor to | PhoneGap/Cordova. | sandGorgon wrote: | Anyone know where React Native stands in modern development - | especially when compared to Flutter and the upcoming Compose. | | All the native frameworks are also React inspired. | | I personally love the work done by Airbnb for its Android MvRx | framework. Again, React inspired | jamil7 wrote: | React and it's model are great. React Native on the other hand | is leaky, heavy and you'll spend a bunch of time fiddling with | packages, upgrading them, tracking down weird linking issues | and ultimately writing some Objective-C / Java code to debug / | glue / fix whatever native API you're dealing with. Thats only | from my experience though. I would much rather the Compose / | SwiftUI direction. | gnusty_gnurc wrote: | This is exactly my experience too. It's an absolute nightmare | juggling three package managers at once. | [deleted] | ksec wrote: | I wonder if that mean Rails will be moving to React Native as | well? | | DHH [1] said they will reveal a major new technical direction for | building web apps. | | [1] https://twitter.com/dhh/status/1214962255785119744 | Andrex wrote: | Why was the title changed? It differs from the original | article's, which I believed was the guideline. | KaoruAoiShiho wrote: | Can anyone from Shopify directly address the points brought up in | the Airbnb posts. | Androider wrote: | Shopify CEO expressed his thoughts on the matter quite | succinctly https://twitter.com/tobi/status/1222551057798090752 | KaoruAoiShiho wrote: | Cool, though I'd argue *too succinctly. Go into it please, | for the sake of the community. | dmamills wrote: | The Shopify CEO is going to be pretty disappointed when he | finds out all of those diamonds are actually just npm audit | fixes, dramatically out of date packages, and strange | platform specific behavior regardless of the "write once, run | everywhere" tagline. ___________________________________________________________________ (page generated 2020-01-29 23:00 UTC)