React Native Radio

RNR 215 - React Native: iOS Native Components

Episode Summary

Jon Major, Mazen, and Jamon continue last episode’s theme and do an overview of what’s involved with building iOS native components and hooking them up to the JavaScript side of React Native.

Episode Notes

This episode brought to you by Infinite Red! Infinite Red is a premier React Native design and development agency located in the USA. With five years of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter), Infinite Red is the best choice for your next React Native app.

Helpful Links:

Connect With Us!

Episode Transcription

Todd Werth:

Welcome back to React Native radio podcast.

 

Todd Werth:

Brought to you by Unfunny Bunny, half the price of unpleasant pheasant.

 

Todd Werth:

Episode 215 React Native iOS native components.

 

Jamon Holmgren:

So I had this dream last night and I actually don't get dreams very often and not vivid ones that I remember anyway. But I had this dream last night where I looked outside on our back patio and there was like a giant, like a very large mountain lion back there. And we do have mountain lions around, you know, so it was somewhat realistic and it had our cat in its mouth. You know this is like, and I was like freaking out and I somehow scared it away. I don't think I opened the door.

 

Jamon Holmgren:

I was a little too scared of the thing. Cause it was huge and it ran off and it left the cat. So I grabbed the cat, brought it inside and I was like tending to it and it was, it was very hurt. And then I turned and look outside and my, my 8-year old daughter and my 16-year old son are outside in the yard, just kind of like walking around. I'm like very like mad at them. Like, Hey, don't, you know, there are mountain lions around that are attacking, you know, in my dream right. And so I was just like, my heart was going and my adrenaline was up and everything. And that's how I woke up. So I woke up like in this heightened state.

 

Mazen Chami:

Do you sleep with like a apple watch or a Fitbit?

 

Jamon Holmgren:

No, I don't, but I bet it would have, it would have really got up. That would have been really interesting. So I wake up and I'm like, oh, it was just a dream. Okay. And I go outside into the living room and I'm getting my girls, including the eight year old ready. And then my eight-year-old, just casually mentions " Dad there was a coyote in our yard when I woke up, so I went outside and I shoot it away". Oh, I'm like, "what, what do you mean? Like you went outside" and she's like, "Yeah, yeah. It ran away. As soon as I opened the door". I was like okay

 

Mazen Chami:

Wow

 

Jamon Holmgren:

She is fearless.

 

Mazen Chami:

And your dream was pretty, you know, spot on.

 

Jamon Holmgren:

I know it was a coyote, not a mountain lion, but.

 

Mazen Chami:

Yeah.

 

Jamon Holmgren:

I mean, it was a wild animal and my fearless daughter just no big deal. Yeah, I shooed it away.

 

Mazen Chami:

Wow.

 

Jamon Holmgren:

So I'm keeping a very close eye as I look out the window here, as we're recording this podcast, looking for signs of wildlife, I guess.

 

Jamon Holmgren:

Speaking of large cats though, and you were saying that tiger king is coming back, like season two.

 

Mazen Chami:

Yeah, Netflix tweeted about two hours ago that season two, will be back later this year. So hopefully we get to find out what happened to Carol Baskin's Husband.

 

Jamon Holmgren:

See now I didn't even watch season one, but I even know a lot of who she is and that she supposedly, maybe killed her husband and all this stuff. So is it a good show?

 

Jon Major Condon:

It Is.

 

Mazen Chami:

Yeah, unfortunately it is. I feel like it shouldn't be, but I mean, I actually went pretty long without knowing that it was real until I started hearing more and more about it in the news. I was like, wait, wait, wait.

 

Jamon Holmgren:

Yeah.

 

Mazen Chami:

Because it's just that ridiculous. So

 

Jamon Holmgren:

The characters feel like, like caricatures.

 

Mazen Chami:

Yeah. Yeah, definitely. But I am curious if they're going to continue, like in present day or if it's going to be more past tense, like it was before.

 

Jon Major Condon:

Yeah. I wish they released the trailer. It was just a picture of, I forget his name, the main character tiger king himself in jail speaking. So I can only assume that yes, it's present day and probably picked up where I left off. Cause I feel like I've seen them in the news a lot recent, since the show came out. So who knows there might've been, it was probably a lot of content to cover there.

 

Mazen Chami:

Wow.

 

Jamon Holmgren:

Yeah. Very wild. I don't know. Like, it is kind of interesting to me to watch, but then at the same time, I'm like, I don't know, like there's something that I'm resisting. I'm resisting watching it for, just because it feels like it's almost too tailored to like capture your interest. You know,

 

Mazen Chami:

I was the same way.

 

Jamon Holmgren:

Same here

 

Jon Major Condon:

My wife and I were like, no, this can be a good show. After like 10 minutes in episode one, we were like, we wanted to watch the whole thing.

 

Jamon Holmgren:

Oh, that's funny.

 

Jon Major Condon:

Yeah. It's definitely one of those shows where it was released, I guess, with low, who knows what the expectation was, but I just captivated and [inaudible 00:04:42]

 

Jamon Holmgren:

Well, maybe I'll have to watch it with, I don't know if my eight-year-old would like it. Probably not a show for her. Anyway, I am Jamon Holmgren, your host friendly CTO and apparently quite frightened of wildlife host of this podcast, which will be about technology at some point here, CTO of infinite red and I am joined by my deluxe co-hosts Jon Major and Mazen. I don't know if you've upgraded or something, but you're now deluxe. Jon Major Condon is a senior software engineer here at infinite red. He lives in Janesville, Wisconsin. He's also the editor in chief of the React Native newsletter. What's up Jon Major?

 

Jon Major Condon:

Not too much hearing the word deluxe though, makes me think of a cheeseburger, but yeah, I'm doing pretty good yesterday. I channeled my inner Roy Kent and I coached kids soccer. No F bombs were dropped, but that was fun.

 

Jamon Holmgren:

That's awesome. Coach soccer.

 

Jon Major Condon:

No, I did coach soccer, but yes, not with that bravado.

 

Jamon Holmgren:

So I apparently am the only host here who's not a soccer coach. The other host here is Mazen Chami. He is a soccer coach, former pro soccer player and a current senior React Native engineer here at Infinite Red. What's going on Mazen?

 

Jon Major Condon:

Not much it's getting colder out here.

 

Jamon Holmgren:

Yeah,

 

Jon Major Condon:

In Durham.

 

Jamon Holmgren:

Today's supposed to be actually one of our last nice days of the year, so I'm actually going to go swimming at some point today and then probably have to shut down the pool next week.

 

Jon Major Condon:

No

 

Jamon Holmgren:

Yeah, that's always a little sad. This episode is sponsored by Infinite Red, Infinite Red is a premier React Native design and development agency located fully remote in the U.S and Canada. If you're looking for react native expertise in your next React Native project hit us up. You can learn more on our website, Infinite.red/reactnative and don't forget to mention that you heard about us through the React Native radio podcast, and also imagine working with this awesome team.

 

Jamon Holmgren:

If you are a senior React Native engineer who coaches, kids soccer and is located in the U.S and Canada, apparently that's now a requirement, right? Coaching kids soccer, I guess Yeah.

 

Jon Major Condon:

Yeah. Let's make it that way. Yeah.

 

Jamon Holmgren:

Let's make it that way. Okay go to careers.Infinite.red we may or may not have a question about that on the forum. Let's get into the topic for today. The topic is React Native iOS, native components and first off, I'd recommend that if you, the listener haven't listened to React Native radio 214, which is the Android version of this, go do that because there's a lot of sort of like overlapping concepts that we're not going to rehash on this episode. You should listen to the Android one first and then come back and listen to this. It's basically a dependency of this episode, if you don't and then you're like, Hey, you didn't talk about this. Well that's because it was in the previous episode and you can certainly get a lot out of this episode without that but like that's just my recommendation. Go listen to two 14 first. It will also hopefully be a shorter episode because we are only talking about the iOS specific concepts here so hopefully it'll be shorter if we can get me to shut up anyway,

 

Jon Major Condon:

I'll try.

 

Jamon Holmgren:

It's a difficult job.

 

Jon Major Condon:

Jamon. Jamon.

 

Jamon Holmgren:

See I already liked [inaudible 00:08:04] it's just impossible. I can't even get me to shut up. All right. So let's start off talking about, I guess like when you go to write an iOS Native component, you're writing it in either objective C or Swift. So those are the two languages objective C has been around for ever. I want to say it was invented in like 1984 or something like that. I mean, this is basically objective C is basically a layer. It's a super set of C very much like C plus plus was, is, but objective C was like a different take on that and it was based on smalltalk, which is another language out there, very old language and objective C was primarily kind of brought in through next, when Steve jobs went to next and like built the next step operating system, it was brought in.

 

Jamon Holmgren:

In fact, we still see remnants of that when you see things like NSString, NS stands for next step. So that is a kind of a remnant from back in the early nineties. So objectivist has been around a very long time and I think 2016 or 2015 apple came out with Swift and that was a huge deal. So we can now work with Swift, which is very much like Kotlin, in fact, they were developed at pretty much the same time and ended up with a very similar syntax. They're actually based on the same languages. It's kind of eerie how close they are. It's almost feels like maybe the two companies should have gotten together and said, Hey, let's find a common language. You know, let's just make the same. I don't know.Yeah, exactly like Google and Apple, aren't going to get together and do that. So Mazen and you've worked on kind of setting up Swift on the iOS side. How was your kind of experience around that?

 

Mazen Chami:

Definitely much easier than converting Java to Kotlin. This had less steps. It was quicker. And dare I say, easier to read in comparison to objective C. So I do remember doing some objective C work in the past and just finding it a very high burden to read the files and kind of follow the file structure. Because if you know, if you're familiar with objective C, you have the dot H and the dot M files.

 

Jamon Holmgren:

The header file and the implementation file.

 

Mazen Chami:

Yeah and those files are essentially now gone for a dot Swift file, which makes it easier to read. Now you do have the multi-layer ones where you have like a view manager and then your view dot Swift files so it was definitely a much easier conversion, easier to read. I felt like Swift as a language is also very user-friendly in its completion so kind of going back to the last episode, x code does a good job of giving you documentation and auto-fill for your files.

 

Jamon Holmgren:

Yeah, that's kind of in my experience as well and would you say, you know, Swift has a better language then objective C then overall.

 

Mazen Chami:

Overall, yes. I haven't done much research into digging as far as performance goes

 

Jamon Holmgren:

Right.

 

Mazen Chami:

Into the two, but as far as user experience and developer experience at the end of the day, yes I would say Swift is a better language and I know if I'm not mistaken, Apple has a lot of documentation and books. I think that will come auto like installed on your iOS device and your MacBook in like the books app already so kind of Apple already gives all the resources that you need to learn the language, which is great

 

Jamon Holmgren:

When I was learning objective C in 2011, 2010, 2011, actually yeah I think it was in that range. I was reading on ibook, you know, their programming, their Cocoa pods touch guide, and then also, which is like all the APIs and then also the objective C guide and so that was, that was very handy back then and it sounds like they're continuing the tradition with Swift now.

 

Mazen Chami:

Yeah definitely.

 

Jamon Holmgren:

but which is better for React Native. So this is kind of a more focused question for this.

 

Mazen Chami:

Yeah, React Native comes already with objective C so similar to Android, you're going to have to go in and do the legwork yourself to convert everything over so I mentioned it a little bit earlier you'd get rid of your H file and M-files the main ones let me say it by main they're usually like RN or RCT prefix, something after that. So you'd still have to go through that legwork now it's much less than Android, android was a lot of different steps. This one's much easier, you're just getting rid of those. You do need, if I'm not mistaken, one dot H file so one header file that does pretty much like you're bridging from swift to React Native or JavaScript in this case so, much easier you know, you're talking about one file, whether that's a text view, image view, like you did in React Native Live, Jamon.

 

Mazen Chami:

So definitely not as high as a burden to get there. Now, is it worth it in the long run if you are familiar with Swift? Absolutely. Now under the hood, it still is objective C. So you are essentially writing in Swift, but you are converting it over to objective C on compile time I believe that's what happened. So you can still link objective C libraries and objective C code so is it worth it? At the end of the day, you're not really converting the project hundred percent to Swift but if you feel like writing in Swift would be easier then I think it's not as a high burden as it would be to convert to Kotlin. For sure.

 

Jamon Holmgren:

From what I understand the core team inside Facebook has no real plans to convert the React Native code base on the iOS side over to Swift so that's going to always play a part here. I mean, you know, never say never, but that's sort of where we are right now and so, yeah, I mean, I guess that's always a thing is like, you know, is it worth it to kind of go outside of what, what the, the framework itself is using? Maybe if you're writing a lot of it, then it maybe makes sense to kind of move to swift but yeah, another idea that I had was maybe we could move, make ignite, support it by default. So if you spin up a brand new ignite app, you know, not using expo, but like using the, the bear workflow, then at that point, you know, maybe if it's already set up for you, then that would make it much easier. You know, like Kotlin is already set up and Swift's already set up and then you can just drop in and start writing.

 

Mazen Chami:

I also think if, you know, we're always looking at stack overflow in different blog posts and tutorials to give us hints when we're stuck. I don't, I haven't seen any Swift ones out there. So if you're digging into Native code to do, whether it's an image view or even something a little more robust into like a module, I doubt you will find a Swift version to kind of give you a tutorial and help you on it. You will most definitely find an objective C one out there.

 

Jon Major Condon:

All right so I'm hearing that iOS is easier than Android when it comes to writing in Swift versus Kotlin does the same exist then with objective C versus Java.

 

Mazen Chami:

So yeah, to answer your question, Jon Major, definitely easier and less work to write [inaudible 00:14:47] iOS component than it would be an Android. I see here Jamon has some notes when he did a React Native live iOS had 116 lines while Android had 183 lines change. So just under a hundred lines difference. So essentially much less and you are going, like we mentioned earlier, a little better of a developer experience in developing in Swift right?

 

Jamon Holmgren:

Yeah that was definitely my case in that the lines of code is a little bit squirrely because, you know, like you can kind of manipulate that by making very long lines of code rather than entering down and, you know, making them look nice but I think it matches with my experience overall was, you know, that just probably writing a little less code, I didn't find it to be like significantly different in terms of making functionality work. It was more around the tooling that I had problems, making sure everything like, it just took so much longer in to get everything compiling and working but once I had it working, then the actual, like adding an animation was equally easy on both of them. I wanted to make a little flip animation. It literally is just go look It up, find something on stack overflow, drop it in, modify it a little bit and it worked right out of the gate for both iOS and Android.

 

Mazen Chami:

I do know X code and iOS are working on like a live reload capability. I'm not very familiar with that. So I remember when I did some, I did a, what was that? I did a text view. So just something simple that says welcome. You're an insert name prop that's coming in from JavaScript. If I made a change, I could say, I want to change the welcome to hello. I'd have to, you know, kill my app, recompile and re-install like rebuild and then re like I said, reinstalls at that point also and that took a very long time just to change a little bit of tech, so I think we're spoiled in our React Native experience of that live reload. Essentially happening as soon as you click that save now X code and iOS does have library load. I'm not familiar with it. So that might be something that could, that, you know, that's out there to improve the performance, not familiar with it.

 

Jamon Holmgren:

Yeah. I think that's something we're used to with React native and of course, web having that library load, you know, kind of smooth experience and then when you have to like recompile every time when you make a native change that can get kind of annoying, like, why do I have to do this? You know, why do I have to wait so long? So impatient.

 

Jon Major Condon:

Yeah. React Native is pretty nice in that sense with React Native library load. So then what's involved with all this as a person who wants to come in, build an iOS native component what's involved?

 

Jamon Holmgren:

So obviously you're working with X code to start with X code is the IDE by Apple and it's gigantic. It's many gigabytes of download and then when you load it up, there's just so much to it. It's also like, it was kind of funny, cause like I had trouble finding the word rap, like setting [when I was doing React Native Live and then Jon Major messages me afterward and he's like, yeah, it's just right over here and he points to a section of the screen, like in a screenshot that I didn't even look at, but it was just a checkbox and what'd you call it Jon Major? Like where's Waldo or something.

 

Jon Major Condon:

Yeah, Where's Waldo. A good game of Where's Waldo

 

Jamon Holmgren:

Exactly. So it can be a little daunting. The interface is just like, you know, so much going on, but I will tell you, there is an amazing talk and I mean, amazing. This is something that I'm like basically I don't require that my developers do things very often, but this is basically as close to required viewing as possible. Okay.

 

Jon Major Condon:

I'll tell you, I did watch this.

 

Jamon Holmgren:

Yeah. What'd you think of it?

 

Jon Major Condon:

I thought it was great.

 

Jamon Holmgren:

I should probably mention what it is before I asked her that a question. Let me say that. 

 

Jon Major Condon:

Go right ahead. Go right ahead

 

Jamon Holmgren:

So, Orta Therox who was on the program actually, he was in episode 187. He's on the TypeScript team now, but he gave a talk at React Native EU 2019 conference that I was at as well and gave a talk at and he, I will link to it in the show notes, but he gave a talk about X code and the tooling. So yeah, you watched it a Jon major. What'd you think?

 

Jon Major Condon:

I thought it was great. This person has a lot of experience in a lot of different places. I believe he is still or was a maintainer of Cocoa pods, but yeah, so he talked a lot about X code tooling and I did not know half of what he was talking about before watching it. There's so much X code can do for you and I can't really begin to list all of it. There's just a lot that it can do for you.

 

Jamon Holmgren:

Yeah. It's amazing.

 

Mazen Chami:

I guess that makes sense. Now it makes more sense why it's such a big file and it takes you a day to download.

 

Jamon Holmgren:

Yeah.

 

Jon Major Condon:

Yeah.

 

Mazen Chami:

Yeah. It's a huge, I mean, obviously all apple, I mean, my assumption I think is that like Apple works on their own products in X code, so they, they make it as good as they can. So definitely go watch that talk and we'll link to it in the show notes, but then obviously you're also writing Swift or objective C code and then the, the docs for setting up the iOS native components in react native are pretty poor, not as bad as the Android ones. And I have talked to Rachel neighbors about improving those and maybe helping improve those, but they were a little difficult to, to kind of get through just because there's a lot of, kind of missing context and even a few wrong things, but you can get through it.

 

Mazen Chami:

Didn't take me near as long to get set up on that. You're also potentially using Cocoa Pods or even integrating and making your own cocoa pod. So there are, you know, pieces along with that, you can use those tools that we mentioned in the last one on the last episode to spin up, you know, third-party components or like external components that have native components. It's a little bit, I think more simple in terms of tooling than Android, but yeah, you still have, you still have some, like there's a, there's a learning curve for sure. So Jameson. Yeah. Can you share code between iOS and Android components? Yeah. So that's a great question. You can, so you generally would not share code native code. Like the native part will be totally kind of isolated from each other. You're going to have some code in the iOS folder.

 

Mazen Chami:

You're going to have some foot code in the Android folder and the two are not going to talk to each other. There's not going to be any requirements between the two. Maybe someone's done that, but highly unlikely where you are going to share code is on the JavaScript side. And really the entry point for both of them is a function called require native component. So require a native component. We'll bring in your, your view as a react native view. And then from there you can kind of like build like a wrapper around it. If you want, you can just pass it directly back to, you know, whatever's including it and just use it. Or you can build a wrapper on it, which is usually usually recommended. So you can add some TypeScript types. So you can, you know, kind of like maybe massage the data or whatever before you pass it through.

 

Mazen Chami:

And then the responsibility at that point is to make sure that your iOS and your Android APIs are the same name, the properties, the same name, the, the events, the St, or the event handlers the same. So as long as those things are the same, then you can kind of coordinate so that when you require it from that file, you know, the one that is importing required native component, you'll actually be able to just use one component then in your Java script. And it will automatically whatever platform you're in, run the iOS code or run the Android code. So really the sharing part is, is happening in JavaScript after you pull it in. I have a question for you.

 

Jon Major Condon:

So you've done quite a bit now with Native. Is there anything today with React Native that stands out that's missing, that you would use this experience to say facilitate building a component for?

 

Mazen Chami:

So I really wish that we didn't have to go through all the hoops. In fact, I wish that we could just drop our like drop a Swift file into our app folder and have it compile and include it just like you would normally, like if there was some way to do that, that would be amazing where your Swift file. And I'm saying Swift, not objective C, but you have a Swift file. It'd be fine with objective C too, but like drop a Swift file into your app folder anywhere you want could be co-located with your JavaScript, require it and it compiles it and links it and does all the fancy stuff itself so that you don't have to do that anymore. It's just built right in and that would be amazing and you could have your Kotlin file right next to your Swift file and they just work. That might be a little bit pie in the sky, but that would be amazing. That'd be so cool.

 

Jon Major Condon:

Right. Yeah, when I was watching the video from Orta, he actually mentioned how, I'm trying to remember what company I want to say it was artsy that he worked at, but someone had included a Swift file and that basically threw off a lot of things in terms of needing to create another build pipeline for Swift. But yeah I totally feel you.

 

Jamon Holmgren:

He was a fan of just using an objective C.

 

Jon Major Condon:

Yeah.

 

Jamon Holmgren:

So that would be one thing. Obviously the new architecture is going to, I think, change some things when we move into it, but I haven't done a deep dive into that yet. We will be when the new architecture is kind of fully out and we have some information about it, this podcast, as well as React Native Live on Twitch, which is my new streaming series on Twitch. Both of those are going to be doing a lot of kind of investigation into the new architecture and education on that. So make sure you subscribe and follow me on Twitch, because that's where you're going to be getting a lot of good data but yeah, I mean, that's, I can, I think those are kind of the two big things for me. I really wish it was easier to get started with native code and having it just be able to drop in would be amazing.

 

Jon Major Condon:

Do you think to improve the developer experience helps a lot kind of going back to library load?

 

Jamon Holmgren:

Yeah, totally.

 

Jon Major Condon:

So where's a good place that we could learn more information about our iOS Native components.

 

Jamon Holmgren:

I usually would say again, like I said, last time, I usually, I would say the docs, but those have some, there's some value there for sure and there's some interesting things they're probably going to get more. If you Google around, you can certainly watch my React Native Live broadcast. It was about a, I think about an hour and a half long, and you're going to learn a ton from that and we'll link to that in the show notes where I actually implement an iOS component, which matches the Android one that I did before in native code. I even like explain how objective C works a little bit so you're going to get a little objective C knowledge when you watch that.

 

Jon Major Condon:

It works much different than JavaScript with its dot notation. I was watching you and that was like one of the things that was really bothering me. I really wish that you could do the dot notation. Well, I guess you could, but it was just not.

 

Jamon Holmgren:

You can.

 

Jon Major Condon:

Yeah, yeah.

 

Jamon Holmgren:

For some calls, like some method calls you can, especially if they don't have the Influx OP or the Influx arguments where like, objective, see like small talk will kind of intersperse into its method, name, arguments inside the method name. So, you know, application and then inside of like, so it's the, the method name would be application did finish launching with options, right? It's a long name, but it goes application and then the variable application did finish launching with options and then options is at the end. So you get application and options as to arguments, but it's applications inside the method name it's like Influx there.

 

Jamon Holmgren:

So that is a little harder to use dot notation on and that's why they use the square brackets to kind of surround everything and say, this is a method call but if you just had like UI view dot knew, you could do that and it'll work because, you know, it's just a single name for that and maybe there's ways to do that otherwise, but it's not anything a medic most objective seed developers would really kind of be like, what are you doing? If you don't use square brackets to do a method call, it is more common for property.

 

Jon Major Condon:

and I highly recommend that React Native live episode. That one's a really good one.

 

Jamon Holmgren:

Thanks. Yeah, I felt good about that. It seemed like it really made a, it was, I was able to kind of like get through it in a way that was kind of cohesive and tight. That's not always the case. Sometimes I'll struggle for three hours, but, you know, I always enjoyed doing it. The other thing is we do have a react Native versus Native blog by Gant Laborde and Mazen has been helping with a part two for that.

 

Mazen Chami:

Yeah, the current one that's out there is Java and objective C creating a, well I'll call a welcome web manager, I'm sorry, a welcome view manager and then the current, the part to the Gant and I are working on is the same thing, but then just converting it to Collin and Swift and there will be a repo that can kind of show you the work that was done. Stay tuned on Twitter for them. I'm sure we're going to announce it on there once the blog is ready.

 

Jamon Holmgren:

Yeah and to be honest, I wish I had gone through Gant's blog posts instead of struggling with the official documents when I did my React Native Live, because you know, this it's Gantt. It's like, it's going to have a lot of cool stuff. So yeah, it's a great blog post and I'm glad that you're working on that follow-up because I think that was written in what, 2018 or something. So that one is starting to get a little outdated.

 

Mazen Chami:

All right. Nice and tight episode. We're going to go ahead and wrap up now. Where can people find you online? John major?

 

Jon Major Condon:

@jonmajorc.

 

Jamon Holmgren:

and Mazen?

 

Mazen Chami:

@mazenchami.

 

Jamon Holmgren:

You can find me @jamonholmgren and our React Native radio Twitter, which please do go follow it. I appreciate it when people do @ReactNativeRdio. As always thanks to our producer and editor, Todd Werth, our assistant editor and episode release coordinator, Jed Bart Husky, our social media coordinator, Missy Warren, and our designer, Justin Husky. Thanks to our sponsor Infinite Red check us at Infinite.red/reactnative. Special thanks to all of you for listening today. Hopefully this episode was helpful. Make sure to subscribe, send this over to someone who may be interested in learning more about iOS native programming in the context of react native reminder, the infinite red is hiring react native engineers. If you're senior, yet senior level react, native engineer located in the U.S Or Canada, go to careers.infinite.red. See you all next time.