Rami Elwan
Rami Elwan
  • Видео 10
  • Просмотров 4 058
Learn React Native iOS Turbo Modules by Building a Photo Picker with Swift
In this video you will learn how to create a photo picker native module for React Native using Turbo Modules for iOS using Swift.
Twitter: ElwanRami
Github: github.com/itsramiel
LinkedIn: www.linkedin.com/in/rami-elwan
00:00:00 - Intro
00:00:27 - Developing the iOS Turbo Module with Swift
00:55:39 - Outro
Просмотров: 104

Видео

How to Play Low-Latency Audio in React Native
Просмотров 9414 дней назад
Struggling with sound issues in your React Native app? In this video, I’ll guide you through react-native-audio-playback solving common audio challenges like: - Reducing latency for precise sound playback. - Playing multiple sounds simultaneously across iOS and Android. - Creating seamless, perfect sound loops. By the end of this tutorial, you’ll have a solid understanding of how to handle audi...
How is Redux better than Zustand?
Просмотров 3072 месяца назад
Both Redux and Zustand are excellent state management libraries. Each of them has their own Pros and Cons. However, one edge that Redux has that is not very obvious when comparing the two is "Cross Store Selection" Cross Store Selection refers to the ability of selecting state across different stores/slices while deriving a piece of state. This feature of redux is crucial for performance purpos...
React.Children API Explained!
Просмотров 1302 месяца назад
The React children props can take many different forms and working with it can sometimes be challenging especially when needing to manipulate the children prop. In this video I introduce you to the 5 functions that React.Children API exposes: React.Children.count React.Children.map React.Children.forEach React.Children.toArray React.Children.only Twitter: ElwanRami Github: github.co...
How to build a React Native C++ Turbo Module (Part 2 Android)
Просмотров 3955 месяцев назад
Hi guys! Today is a special video. I will be showing you how to create a react native c turbo module for Android. The beauty of this approach is that the module is purely C without having to invoke java/kotlin methods as a layer between js and c . Link to repo: github.com/itsramiel/react-native-cpp-turbo/tree/feat/android iOS part: ruclips.net/video/KURIqiCPbco/видео.html This is an upgrade to ...
How to build a React Native C++ Turbo Module (Part 1 iOS)
Просмотров 5245 месяцев назад
Hi guys! Today is a special video. I will be showing you how to create a react native c turbo module for iOS. The beauty of this approach is that the module is purely C without having to invoke objc methods as a layer between js and c . Link to repo: github.com/itsramiel/react-native-cpp-turbo/tree/feat/ios This is an upgrade to react native jsi modules which I showed in the previous two video:...
How to build a React Native C++ module with JSI (Part 2 Android)
Просмотров 2555 месяцев назад
What is up everyone! Today I am following up on the previous video of creating a React Native C module using JSI. In this video, we finish it up by implementing Android and making sure it works for the old and new arch. Here is the link to Part 1: ruclips.net/video/cyFPDoHxD8U/видео.html This module lets you write native code once and share it across platforms. You'll learn how to call function...
How to build a React Native C++ module with JSI (Part 1 iOS)
Просмотров 7075 месяцев назад
Hello Everyone!In today's video, I demonstrate how to harness the power of JSI to build a C React Native module. This module lets you write native code once and share it across platforms.You'll learn how to call functions that: Receive and return primitives Return arrays Return objects Return promises Accept callbacksEnjoy the tutorial! Link to repo: github.com/itsramiel/react-native-jsi-module...
React Native Android Turbo Modules
Просмотров 4925 месяцев назад
Hello everyone! In today's video, I'm building on the previous video and creating a turbo module for Android. You will learn how to: Implement functions with various return types. Create functions that return promises and accept callbacks. Ensure backward compatibility to work with both the old and new architecture. Previous video: ruclips.net/video/Xn1fzgRSHPo/видео.html Project Github: github...
React Native iOS Turbo Modules
Просмотров 1,1 тыс.5 месяцев назад
Hi RUclips, Welcome to my very first RUclips video!. In this video, I show you how to create a react native turbo module and package it inside a library. Specifically, I'll be focusing on the iOS side of turbo modules for this video. Here is the link the projects github url: github.com/itsramiel/react-native-showcase I am planning to make an Android version of this video, so if this sounds like...

Комментарии

  • @HarshitSharma-h7l
    @HarshitSharma-h7l 5 дней назад

    What if I want to add my own spm library and want to expose it to react. how can I do that.

    • @ramielwan48
      @ramielwan48 3 дня назад

      As far as I know spm is not supported but you can add pods using the podspec file

    • @HarshitSharma-h7l
      @HarshitSharma-h7l 3 дня назад

      @@ramielwan48 hi thanks for reply, But I wrote everything in objc in react library. my spm was completely in swift, I tried to import it in objc files in reactnative library. but my spm not able to create libs , it didn't have .xcodeproj file in it so, let me know if you have some solution on it, I don't even have a clue what I am doing in it. :)

  • @ericksonteixeira1197
    @ericksonteixeira1197 8 дней назад

    Is it possible to integrate a thirdparty on the module with this new arch??

  • @ilyxxxa4523
    @ilyxxxa4523 8 дней назад

    Thank you!!!❤

  • @VladyslavMartynov
    @VladyslavMartynov 9 дней назад

    Again really useful material for learning. Are you planning to make the same tutorial for Android with Turbo Modules?

    • @ramielwan48
      @ramielwan48 9 дней назад

      Thank you! I dont think so since I already had a kotlin Turbo Module video, though not a Photo Picker. I though perhaps something I didnt conver before like Fabric Native Components would be better than covering the same topic again. I did this because I didnt do one with Swift. Feel free to provide suggestions for future videos if you have any!

    • @VladyslavMartynov
      @VladyslavMartynov 6 дней назад

      @@ramielwan48Didn’t find any normal way to use swift native component being integrated with Fabric, seems like still obj-c is needed . But maybe it’s possible to init swift native component as an obj-c class like you did with iOS turbo module?

    • @ramielwan48
      @ramielwan48 6 дней назад

      I am investigating fabric components atm. If I come to anything worth sharing, will do!

  • @bakoj1993
    @bakoj1993 14 дней назад

    hello thanks for the tutorial. i followed it step by step, but i am facing an error i am not able to solve. before adding the changes below the build was successful. i added 2 functions public func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) { return; } var peripheralManager: CBPeripheralManager? = nil private func initBle(){ peripheralManager = CBPeripheralManager(delegate: self, queue: nil) } i started getting 3 errors is swift header Type argument 'CBPeripheralManager' must be a pointer (requires a '*') Type arguments cannot be applied to non-parameterized class 'NSObject' Unknown class name 'CBPeripheralManagerDelegate'; did you mean 'CBPeripheralManager'? are you able to help me solve these issue? i am stuck since the morning with no solution

    • @ramielwan48
      @ramielwan48 14 дней назад

      Hi, It is quite hard to understand and fix the issue from this comment. If you push your code to a repo then I can help you better.

    • @bakoj1993
      @bakoj1993 13 дней назад

      @@ramielwan48 thank you, i was able to fix my error finally. for some reason i had to add #import <CoreBluetooth/CoreBluetooth.h> to my BleAdvertise.h

    • @ramielwan48
      @ramielwan48 13 дней назад

      Yes you absolutely need to import the header files for classes you use 😅. Glad you got it working!

  • @wadeeraya8131
    @wadeeraya8131 17 дней назад

    great library to use 👍

    • @ramielwan48
      @ramielwan48 17 дней назад

      I think so too! Thank you Wadee!

  • @sahilverma_dev
    @sahilverma_dev 20 дней назад

    how can we make npm package for native modules

    • @ramielwan48
      @ramielwan48 20 дней назад

      You can simply run `yarn release`. The project is already setup to be released

    • @sahilverma_dev
      @sahilverma_dev 20 дней назад

      @@ramielwan48 thanks

  • @ilyxxxa4523
    @ilyxxxa4523 Месяц назад

    Is it possible to write turbo modules using swift instead of objective-c??

    • @ramielwan48
      @ramielwan48 29 дней назад

      Yes. I am planning to make a video about it!

    • @ilyxxxa4523
      @ilyxxxa4523 28 дней назад

      @@ramielwan48 thank you! I will wait it

  • @unev
    @unev Месяц назад

    Brilliant explanation! How would you include some 3rd party cpp library into your turbo module?

    • @ramielwan48
      @ramielwan48 Месяц назад

      Hi. Good question! I am honestly not aware of how dependencies are managed in the cpp world, but if I learn how to do that I will make a video about it!

  • @ForwardThinkers470
    @ForwardThinkers470 Месяц назад

    hi i need your help i want to print value from object in cpp code by android log function but it crash my code and Utf8() not convert jsi to std string const std::string addressValue = person.getProperty(rt, "address").asString(rt).utf8(rt); have any function to print detail log

  • @codewithbeto
    @codewithbeto Месяц назад

    What a great video! 🙏

    • @ramielwan48
      @ramielwan48 Месяц назад

      Hi Beto! I am a fan of your work too. Thanks for passing by and the nice comment!

    • @codewithbeto
      @codewithbeto Месяц назад

      @ awesome 👏 thank you :)

  • @dglalperen
    @dglalperen 2 месяца назад

    awesome video, as already said there are some smaller naming changes but i guess one can still get very good information out of this video :) Do you have some ressources to further dive into this topic ?

    • @ramielwan48
      @ramielwan48 Месяц назад

      Hi, yes unfortunately things are changing in react native, so an updated video maybe needed later. My suggestion to dig deeper in the docs in react native, source code, other people libraries.

  • @preetyattri3789
    @preetyattri3789 2 месяца назад

    While generaing example i got this error did not find any solution outside. anyone who faced this? ⠋ Generating example app error: unknown option '--npm' (Did you mean --pm?) node_modules/create-react-native-library/lib/utils/spawn.js:27 reject(new Error(stderr.trim()));

    • @ramielwan48
      @ramielwan48 2 месяца назад

      There was an issue with the create react native library package. Try again now

  • @jrbauerdev
    @jrbauerdev 2 месяца назад

    Tremendous value out of the gate. Thanks for this.

  • @OmarAbudeh
    @OmarAbudeh 2 месяца назад

    which node version are you using?

    • @ramielwan48
      @ramielwan48 2 месяца назад

      you mean on my local machine? 20.11.1

  • @mogorhom
    @mogorhom 2 месяца назад

    love your vidoes Rami! keep it up

    • @ramielwan48
      @ramielwan48 2 месяца назад

      Love your support and work Mo! 🙏

  • @whitestranger7
    @whitestranger7 2 месяца назад

    dude keep making videos about advanced react native topics like native implementation and everything. You're doing really good. Please do not stop =)

    • @ramielwan48
      @ramielwan48 2 месяца назад

      Hey!! Thank you for the feedback means a lot to know that they are helping you. I would like to make sure that I put quality content and info out there but I am planning to post something in the near future!

  •  2 месяца назад

    Very cool explanation! I'm currently learning and building a small c++ module for fun and just realised with your video I am using the "old way of writing c++ modules for RN?" 😄

    • @ramielwan48
      @ramielwan48 2 месяца назад

      Glad you found it useful and led you to the right path!

  • @WavelyDx
    @WavelyDx 2 месяца назад

    Great video! Is there a way I can directly contact you? Thank you

    • @ramielwan48
      @ramielwan48 2 месяца назад

      Hi, thank you! My twitter is in the description

  • @gauthamvijayan
    @gauthamvijayan 3 месяца назад

    Awesome content. Please increase the audio by using a mic. Otherwise its great.

  • @unluckyaf7673
    @unluckyaf7673 3 месяца назад

    what about react native windows? :(

    • @ramielwan48
      @ramielwan48 3 месяца назад

      unfortunately I have no experience with it

  • @tradersage2746
    @tradersage2746 3 месяца назад

    So how many languages do I need to know to write a jsi module. 🫠🫠😂😂 Kotlin/Java, objective-c/Swift, c++ and javascript. That's so convenient 😂😂

    • @ramielwan48
      @ramielwan48 3 месяца назад

      I feel you😂 I think c++ should be your last resort really, and java/obj c will hopefully be used less and less, and Swift, Kotlin will be the standard. So I guess TS, swift, and kotlin are all you need in the future

  • @tusharsalvi3189
    @tusharsalvi3189 3 месяца назад

    Detailed explanation. Thanks for just video, keep creating such content.

  • @yashvardhan9557
    @yashvardhan9557 3 месяца назад

    awesome video mate Thank you so much for this

  • @kushnirov
    @kushnirov 4 месяца назад

    thank you for such a nice explanation! It would be nice if you made a video about how to use new fabric components

    • @ramielwan48
      @ramielwan48 4 месяца назад

      I was thinking of doing something like that. Let me see if I can come up with a good example

    • @kushnirov
      @kushnirov 4 месяца назад

      what if you replicate some of the native components from react-native, such as text, buttons, and inputs? It will demonstrate how to forward values and callbacks

    • @ramielwan48
      @ramielwan48 4 месяца назад

      Yeah that one idea. Also I was thinking of something more interesting maybe a simple time picker? I am not sure I'll see. Also I am not very familiar with the Android dev when it comes to UI, so I will have to see

  • @charleschen4093
    @charleschen4093 4 месяца назад

    Btw, the name of the codegen directory has changed to "ReactCodegen" instead of "React-Codegen" in the video

    • @ramielwan48
      @ramielwan48 4 месяца назад

      Yes, it was changed with 0.75, pinning this in case someone comes across it. Thank you Charles!

  • @charleschen4093
    @charleschen4093 4 месяца назад

    Third video for me! Awesome, as always

  • @charleschen4093
    @charleschen4093 4 месяца назад

    Have watched the first turbo module video, the content is awesome! Thanks a lot :D

    • @ramielwan48
      @ramielwan48 4 месяца назад

      Glad you are enjoying it!

  • @charleschen4093
    @charleschen4093 4 месяца назад

    appreciate your content!

    • @ramielwan48
      @ramielwan48 4 месяца назад

      Appreciate your comment!

  • @mogorhom
    @mogorhom 5 месяцев назад

    liked and subscribed! thanks Rami

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      You're very welcome Mo 🙏

  • @alexyip4469
    @alexyip4469 5 месяцев назад

    Thanks! I wanna know is support to Expo?

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Yes, you just need a development build

    • @alexyip4469
      @alexyip4469 5 месяцев назад

      @@ramielwan48 Thanks! bro.I using development build.I need to pass the gif image uri to C++ for compression and return either Mat data or gif byte data to JS. Sounds like it could be done with JSI ?right?(I've finished the c++ code)

    • @alexyip4469
      @alexyip4469 5 месяцев назад

      ​@@ramielwan48 Thanks ! Then. I have other question. 【Can I using C++ to compress gif just using Expo (native module) without turbo module (JSI) ? 】 because i do made a native module.then i want to use swift code to use Object-C code.then Object-C code use C++ code. But i was get trouble. In expo project. My swift file (in Pods) is fail to import Object-C code because of the xxx-bridging-header.h is not in the same folder. this question make me have to use turbo module (JSI). I am the new.but I really want to know how to use C++ module in Expo before JSI🤣

  • @Gvantos0
    @Gvantos0 5 месяцев назад

    if you add some graphics for explain and switch to the face camera in some moment when you talk this will make your video 10X better thanks for good content ❤

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Appreciate the feedback. Will try it out in future vids

    • @Gvantos0
      @Gvantos0 5 месяцев назад

      ​@@ramielwan48❤ One more thing , Try to make short videos And then groub it to one long video

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      So do you mean like this video I can do it in smaller parts instead of all in one go? Why do you prefer it that way?

    • @Gvantos0
      @Gvantos0 5 месяцев назад

      @@ramielwan48 1 ) may be someone just want to see specific part 2 ) watch 5 videos every one 5 minutes long It will seem easier to the viewer than watching one 25-minute video Its all up to you if you wana do this or not

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Alright thanks for the feedback!

  • @SanjivKumar-jc6ys
    @SanjivKumar-jc6ys 5 месяцев назад

    useful☺

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Glad you found it this way!

  • @r_alisher
    @r_alisher 5 месяцев назад

    Thanks for the video it would be very helpful

  • @osamaaburabie5684
    @osamaaburabie5684 5 месяцев назад

    Thanks a lot man, very very helpful and unique content 🙏🏻🙏🏻

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Appreciate the kind words!

  • @oliverloops.
    @oliverloops. 5 месяцев назад

    Thanks for the context Rami, this is super informative ❤

  • @supriyomonndal6199
    @supriyomonndal6199 5 месяцев назад

    This is very good. Keep going

  • @wadeeraya8131
    @wadeeraya8131 5 месяцев назад

    clear explanation! thank you very much for this tutorial

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Happy you found it useful!!

  • @DigvijayGuptaofficialdk
    @DigvijayGuptaofficialdk 5 месяцев назад

    Use VS code instead of neo vim(nvim) , so we can better understand the file levels,

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Will give that a try

  • @DigvijayGuptaofficialdk
    @DigvijayGuptaofficialdk 5 месяцев назад

    From so long waiting for this, Thanks Man! looking for more content on your channel.

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Thanks man! Means a lot

  • @r_alisher
    @r_alisher 5 месяцев назад

    Thanks for the useful video, I hope your next videos about native views, it will be also useful.

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Happy it helped you

  • @huyphan377
    @huyphan377 5 месяцев назад

    Good content sir!!

  • @phamanhdung303
    @phamanhdung303 5 месяцев назад

    Thank you! That's so cool, bro, it will be perfect if you can give us a real example with a module that is really necessary to use the turbo module. e.g: custom Dynamic Island or handle Kits

    • @ramielwan48
      @ramielwan48 5 месяцев назад

      Thanks for the idea!

  • @wadeeraya8131
    @wadeeraya8131 5 месяцев назад

    Impressive!! Very informational video

  • @call_me_rusker
    @call_me_rusker 5 месяцев назад

    Cool knowledge