Retiring React Native for Rust - Viktor Charypar - React Native London - August 2023

Поделиться
HTML-код
  • Опубликовано: 12 июн 2024
  • Viktor Charypar - Technical Director of Red Badger - Retiring React Native in Favour of Rust
    Tech Director Victor discusses the frustration with available options for building cross-platform apps in 2023 and explores the idea of retiring React Native in favor of Rust. He shares his experiment and perspective, comparing the trade-offs and challenges in achieving a native feel in React Native apps. Victor introduces Rust, highlighting its benefits and potential to improve the current state of app development. He introduces "Crux," an experimental headless app development framework, showcasing its structure and advantages in simplifying testing and portability. Victor invites viewers to try Crux and provide feedback for further development.
    For more details and to try Crux, visit the GitHub repository: github.com/redbadger/crux
    If you found this video informative, don't forget to give it a like and subscribe for more tech insights and updates. Your feedback and thoughts are highly appreciated!
    [00:00:00] Intro
    [00:00:20] Retiring React Native in favour of Rust? Comparison
    [00:02:07] About me
    [00:02:42] 1. React Native
    [00:06:38] 2. Rust
    [00:08:32] Running Rust
    [00:09:07] Rust Tooling
    [00:10:06] Automated Testing
    [00:10:59] UI Centric Architecture
    [00:12:09] Bed of Nails
    [00:13:09] Is there a better architecture? 1. Behaviour.
    [00:14:17] Effects
    [00:15:08] UI Layout
    [00:16:16] Crux
    [00:17:47] Demo
    [00:26:51] Summary
    [00:27:43] Q&A
    _________________________________________________________________
    About Pusher Sessions:
    We're bringing the meetup to you. With Sessions, you can watch recordings of top-notch talks from developer meetups -- wherever and whenever you want.
    Meetups are a great way to learn from our peers and to keep up with the latest trends and technologies. As developers ourselves, we at Pusher wanted to bring this great content to more people... So we built Sessions. On Sessions, you can watch talks that interest you and subscribe to be notified when new content gets added.
    If you run a meetup and want to get involved, kindly get in touch.
    _________________________________________________________________
    About Pusher:
    Pusher is a hosted service with APIs, developer tools and open source libraries that greatly simplify integrating real-time functionality into web and mobile applications.
    Pusher will automatically scale when required, removing all the pain of setting up and maintaining a secure, real-time infrastructure.
    Pusher is already trusted to do so by thousands of developers and companies like GitHub, MailChimp, the Financial Times, Buffer and many more.
    Getting started takes just a few seconds: simply go to pusher.com and create a free account. Happy hacking!
  • НаукаНаука

Комментарии • 25

  • @mmannes
    @mmannes 8 месяцев назад +7

    I've just starting with Rust development, and I am no Android developer. Just delivered my first Crux+Android app this week, and it worked very well, seems promising. Reusing all your structs in the backend (Axum) is really a big win for me.

  • @ondrejrohon5696
    @ondrejrohon5696 7 месяцев назад +3

    Very interesting idea. Especially nowadays Figma can just export pretty decent UI layer. You just need to connect it.
    I have similar experience with TS, I cannot trust it completely and therefore it’s not as helpful as I would need.
    Also the pain of writing e2e tests is spot on.

  • @r2_rho
    @r2_rho 7 месяцев назад

    Seems like dioxus is a better abstraction for this use case

  • @raghplays7401
    @raghplays7401 7 месяцев назад +1

    This talk would have benefited from running it by a ReactNative/TypeScript dev first.
    There is a bunch of unimportant (and plain wrong) explanations about the state of tech.
    But this IS an interesting idea, and I would have loved a higher resolution view of the ACTUAL differences and unique aspects (both good and bad).

  • @maverickiy9366
    @maverickiy9366 8 месяцев назад

    Why there is no Xamarin as cross platform option ?

  • @dyunior
    @dyunior 8 месяцев назад +4

    You have actually video titlted "Why Airbnb was wrong to ditch React Native in 2018 - Mohammad Javad - RNL - August 2023" then this video.

  • @steav677
    @steav677 8 месяцев назад

    I think state and UI need to be close each other.
    splitting these is killing productivity IMO.
    But these maybe good use-cases, for example very complex states which needs to be exactly the same every platform.
    Nowadays, server-side functionality is hot topic. So handling state on server with crux could be also a good use-case.

  • @jhonyhndoea
    @jhonyhndoea 8 месяцев назад +1

    capacitor is much better than react native.

    • @wezter96
      @wezter96 8 месяцев назад +2

      In what ways? :)
      You can achieve both web and mobile with the same codebase with considerably better performance on the mobile side with React Native.
      Have you tried building a universal app using Solito, Tamagui and Expo Router?

    • @jhonyhndoea
      @jhonyhndoea 8 месяцев назад

      @@wezter96 react native is dependency hell. capacitor can use react or just plain vanilla javascript and writing native java/kotlin, objectiveC/Swift is a lot less nuanced and I dont need to rely on third party deprecated modules for features ever. I want less dependencies not more.
      I tried them all and capacitor is a clear winner for me in all fronts. Better development experience, no fighting with frameworks, works with every web tech. I dont need to eject config to modify native code. Writing capacitor plugins is very easy

    • @wezter96
      @wezter96 7 месяцев назад +1

      @@jhonyhndoea But it is not rendering any native components right?
      It's a webview that you can bridge with native aspects. There's not really anything you can use with Capacitor that you couldn't use within a React Native WebView right? So you lose out on native rendering, you lose out on performance and it's rendering a web application inside a mobile app pretty much right?

    • @jhonyhndoea
      @jhonyhndoea 7 месяцев назад

      @@wezter96 It is a webview, yes. But you don't loose out on native rendering if you make part of your UI with native code.
      For me, it was this seamless mixing of the two that works out because I don't want to write it all in JS.
      And also I don't wanna install NPM dependency to access native functionality, like with expo, I prefer to implement it.

    • @wezter96
      @wezter96 7 месяцев назад

      @@jhonyhndoea you can write as much native code as you want with Expo as well and it is using native rendering by default. Just make Expo modules or turbo modules for whatever native code you want to integrate on your own.
      So Yes you do lose out on native rendering with Capacitor because you have to build it all on your own and then it won't be using the webview or the web code for rendering at all so you will basically end up building a poor man's version of React Native 😅

  • @cathyaishu1179
    @cathyaishu1179 8 месяцев назад

    1st to comment and 2nd likes😊

  • @ThomazMartinez
    @ThomazMartinez 8 месяцев назад +2

    OMG moving to rust is horrible, really bad decision, much preferred if you chose Zig

    • @zzzyyyxxx
      @zzzyyyxxx 8 месяцев назад +14

      Zig doesn't solve issues like use after free, so what's the point? If C is a turd, then Zig is just polishing the turd, where as Rust actually solves these issues.

    • @ThomazMartinez
      @ThomazMartinez 8 месяцев назад

      @@zzzyyyxxx give me use case that this is an issue?

    • @verified_tinker1818
      @verified_tinker1818 8 месяцев назад +4

      Zig is great-from what I've heard, at embedded programming, it's nicer than Rust-but it's not as good at domain modeling, which is the main takeaway from this talk.

    • @zzzyyyxxx
      @zzzyyyxxx 8 месяцев назад +4

      @@ThomazMartinez basically every use case? Because I don't see any areas where you'd willingly want segfaults. And before you say something about manual memory management, Rust has that too via the unsafe block, if you really want to, but that is rare to use by its very nature.

    • @KhoaNguyen96
      @KhoaNguyen96 8 месяцев назад +2

      Zig is not even released yet, doesn't have proper documentation and basically no one uses Zig in prod, except the Zig compiler for cross compilation, not the language itself.
      :D Now that is a bad decision.