Listen On:

Meet your hosts,

three of the most

exhilarating

thrilling

brilliant

remarkable

mind-blowing

insightful

astounding

captivating

React Native experts around.

Jamon Holmgren

Co-Founder & CTO

Jamon is Co-Founder and CTO of Infinite Red and one of the most recognizable voices in the React Native community. You may have seen him speak at various conferences around the world, but most know him from where he is just as likely to nerd out about React Native as he is to show pictures of his tractor. He lives in southwest Washington state with his family, plays recreational hockey as a goalie, and has a new granddaughter!

Robin Heinze

Director of Engineering

Robin, the Director of Engineering at Infinite Red, leads our team of senior-level React Native engineers. She’s guided numerous high-profile clients on their journey to the App Store and is just as known for her engineering knowledge as her seemingly endless collection of “mom jokes” on the show. She lives near Portland, Oregon with her family and enjoys knitting and Formula One.

Mazen Chami

Senior Software Engineer

Mazen’s smooth bass voice rounds out the trifecta of React Native Radio hosts. He’s one of the leading senior software engineers on the Infinite Red team. He’s spoken at tech conferences around the world, is on the React Native core release team, and is also our lead React Native workshop instructor. He lives in Durham, NC, and uses his former professional soccer (“football”) skills to play goalie for a local team.

Recent episodes

RNR 147: Libraries vs Omakase

In this episode of React Native Radio the panel discusses the different approaches frameworks have for building stack. The panel takes a moment to define the two major approaches, libraries and batteries included. They list various frameworks and discuss where they lie on the scale of libraries to omakase. Frameworks like React and React Native are the panels examples of a libraries approach framework. Developers pick and choose libraries to build their stack, React is basically just a UI library. They use Ruby on Rails as the example of an omakase approach; about 80% of the stack is chosen for you. The pros and cons of each approach are considered. The panel shares their experiences picking libraries for their React and React Native apps and describe some of the challenges. Along with the freedom and flexibility given to the developer with a libraries approach, there is also the stress of keeping up with the latest libraries and tools. The beauty of this approach is the diversity and decentralization. The omakase approach relieves the stress of keeping up with the latest libraries because it chooses them for you. There is safety in numbers, meaning the libraries chosen by omakase frameworks will always be supported. Also, substitutions are still possible. This approach can also be helpful for beginners, giving them training wheels and room to learn without too much responsibility. The panel discusses when each approach is helpful. They share their experiences with each approach and with frameworks that lie somewhere on that spectrum. The panel shares their preferences. The needs for conventions and standards are considered. The panel shares options for an omakase approach for React. Panelists Charles Max Wood Josh Justice Christopher Reyes Sponsors Infinite Red G2i CacheFly Links Ignite Rails Doctrine Ember.js https://nativebase.io/kitchen-sink-app https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Josh Justice: Frozen II redux-thunk Christopher Reyes: JSJ 246 GraphQL and Apollo with Uri Goldshtein Artsy Omakase Charles Max Wood: The Bishop's Wife Miracle on 34th Street How the Grinch Stole Christmas

December 24, 2019
40:23
E
144
RNR 146: React Native Radio at RxJS Live

In this episode of React Native Radio Charles Max Wood does interviews at RxJS Live. His first interview is with Ben Lesh, a core team member of RxJS. Ben has been working on RxJS for the last four years. In his talk, he shares the future of RxJs, the timeline for versions 7 and 8. With Charles, he discusses his work on RxJS and the adoption of RxJS. Next, Charles interviews Sam Julien and Kim Maida. They gave a talk together covering the common problems developers have when learning RxJS. In the talk, they share tips for those learning RxJS. Charles wonders what inspired them to give this talk. Both share experiences where they encouraged someone to use RxJS but the learning curve was to steep. They discuss the future of RxJS adoptions and resources. Finally, Charles interviews Kim alone about her second talk about RxJS and state management. She explains to Charles that many state management libraries are built on RxJS and that it is possible to roll out your own state management solution with RxJS. They discuss why there are so many different state management libraries. Kim shares advice for those looking to roll out their own solutions. Panelists Charles Max Wood Guests Ben Lesch Sam Julien Kim Maida Sponsors Infinite Red G2i CacheFly Links https://twitter.com/benlesh http://www.samjulien.com/ https://twitter.com/samjulien https://twitter.com/KimMaida https://www.rxjs.live/ https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio

December 17, 2019
28:18
E
143
RNR 145: The Five Approaches to Using React Native

In this episode of React Native Radio the panel discusses Josh Justice’s blog post outlining four approaches to using React Native and a fifth approach he has heard about since publishing the post. Josh summarizes the post and explains how knowing the benefits of each approach can minimize the downsides of using React Native that scare people away from using it. Understanding each approach can also help you decide which approach would work best for your company. The first approach and the recommend approach recommended by React Native is Expo. Josh explains what Expo is and how it simplifies React Native for those starting out. The panel shares their experiences with Expo and considers the benefits of using it. They list many of the tools that Expo has right of the box and praise the simplicity of setting up and using for developers unfamiliar with native development tools. The next approach to using React Native is React Native CLI. React Native CLI is the default approach to using React Native. This approach does require some knowledge of Xcode and android studio. It is the best option if you need to use some native integration not included in Expo. The panel shares recommendations for learning and the use of React Native CLI. The next approach is inserting React Native into an existing native app. Josh explains how this is done and the benefits of doing so gradually. The panel considers why this approach might be used. Josh shares some challenges he saw when using this approach. The panel briefly discusses the approach Josh does not mention in his post, Expo Kit. The final approach from the blog post and the most complex is using React Native in an independent component library. The panel considers the benefits of this approach including the isolation of the React Native code and freeing up native developers. Reusing code is discussed including how this approach can be used to save time and be used for testing. The episode ends as the panel gives recommendations for native developers wanting to get into React Native or bring React Native to their companies. React Native has a very helpful and tightknit community and the panel invites anyone struggling or wanting to know more about React Native to reach out to the community. Panelists Charles Max Wood Josh Justice Narendra Shetty Christopher Reyes Sponsors Infinite Red G2i CacheFly Links Four Approaches to React Native Big Nerd Ranch guides for iOS and Android ExpoKit React Native Community CLI Reactiflux https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Josh Justice: GitHub Actions GitHub Packages (Package Registry) Exploring JS Deep JavaScript Foundations Christopher Reyes: Ignite cli reactotron

December 10, 2019
67:56
E
142
RNR 143: The Roles of QA and Development

In this episode of React Native Radio the panel considers the roles of QA and development teams. Charles Max Wood and Josh Justice share their backgrounds in QA and development, this gives them a unique perspective, having seen it from both sides. They begin by discussing and defining some terms. Charles explains that most terms are defined more by an organization than the industry. The panel discusses testing tools like Cypress and Detox, explaining their uses and value. They define black box and gray box testing and consider the benefits of each testing type. Josh explains the value of manual testing and how that value may never be lost. They consider the strategy of relying on users to find bugs. They compare testing mobile and web development. They consider how the roles of QA and development overlap and the best ways to define the roles of each team. Charles recommends each organization sit down and clearly define these roles. Josh recommends clearly outlining where CI and CD come into play. They consider the common relationship issues found between QA and development, including animosity and an “us vs. them” mentality. Charles and Josh explain the value of working together and communicating with each other. They give advice on how to work together and improve relationships between QA and development. Panelists Charles Max Wood Josh Justice Sponsors Infinite Red G2i CacheFly Links The MaxCoders Guide To Finding Your Dream Developer Job https://github.com/wix/Detox Appium https://www.cypress.io/ https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Charles Max Wood: Holiday Inn White Christmas The MaxCoders Guide To Finding Your Dream Developer Job Josh Justice: Code review Slack

November 26, 2019
60:49
E
140
RNR 142: Battling Bugs with James Smith

In this episode of React Native Radio Charles Max Wood interviews James Smith, the co-founder, and CEO of Bugsnag. James gives Bugsnag’s background and explains what makes it different than other bug-finding tools. He shares statistics on how much bugs cost. Developers spend on average 17.3 hrs per week dealing with bad code, 85 billion dollars in GDP dollars are lost to bad code every year and most customers leave an app after two crashes, harming your brand. Chuck and James consider when and why customers leave reviews. They consider how reviews help in finding and fixing bugs. They discuss how helpful it would be if they could communicate with unhappy customers to help them find bugs. James explains how Bugsnag can help with this by replicating user interactions to find what steps led to a bug. James explains what to once all the data has been gathered and the best processes for actually fixing the bugs. This process stems on establishing ownership and identifying priority bugs. Although QAs and QEs are getting more common, James recommends empowering the engineering team to fix bugs. Chuck and James consider the idea of a bug sheriff, a rotating position who holds the responsibility of determining priorities and ownership. They consider how these processes could lower the number of bugs and teach developers to better handle bugs. James explains that “zero bugs” is an impossible goal because there will always be more bugs, the hope is to stay on top of them so the team can reach new velocity. Performance bugs are considered and James explains how these can be measured and improved each release. Panelists Charles Max Wood Guest James Smith Sponsors Infinite Red G2i CacheFly Links https://stripe.com/reports/developer-coefficient-2018 Buckaroo https://square.github.io/leakcanary/ https://www.bugsnag.com/ https://twitter.com/loopj?lang=en https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Charles Max Wood: The MaxCoders Guide To Finding Your Dream Developer Job It's A Wonderful Life Mr. Krueger's Christmas James Smith: DroidCon Links Awakening

November 19, 2019
57:18
E
138
RNR 141: EEON Mitch Masia

In this episode of React Native Radio, panelists Josh Justice and Charles Max Wood interview Mitch Masia. He is a software engineer from Chicago and works with all things JavaScript, React, React Native, Node, and is currently working on a project to create a financial research platform. The product is called EEON. It is inspired by the lack of apps for people to easily research and make informed financial decisions when it comes to investing with all the amazing zero commission trading apps out there. They are looking to expand upon the information available within those apps to be able to give a rating system, real time visualizations, and data on financial statements. They discuss how this app is constructed and Mitch mentions how great Redis Pub/Sub is for real time functionality. He talks about how difficult it has been to work with multiple services and that recently he has condensed some of those services. React Native with Expo is what he is currently using on his frontend. Right now, iOS is the focus, but android will be following soon thereafter. Mitch acknowledges that most of this already is online, but there is a lack of resources specifically for apps and the panelists agree that how great it is to have an app specifically meant for what they want to do on a web browser. The panelists discuss how the project was started with Expo and the many templates and preset configurations that are available and they compare it to Rails for React Native. Mitch states that the build process is the biggest benefit with Expo among many others. They go on to talk about the different services that Mitch is using for his frontend and backend and what he has used in the past. Mitch talks about how to create a seamless dev experience and his intentionality with constants and consistent build and release process. He uses a library called Semantic Release to release software quicker and more efficiently with an automated system. Redis has been a huge asset for Mitch and has used it as a cache, pub/sub mechanism, and loves the API they expose. Next, the panelists talk about the visualization of data and how Mitch does it. The design has followed an iOS feel with large text and lots of white space. For the charting he used a web view with React Native echarts wrapper, and it has done an exceptional job and Mitch praises the developers who worked on it. The panelists question Mitch about GraphQL and its automated updating of the cache. He responds with options of optimistic updates and automatic updates and that he uses the latter. Mitch goes into some of the difficulties with implementing the automatic updates, but they’ve been able to get around it to provide a seamless experience. They next talk about difficulties with animation and that Mitch ended up using a library called React Native Pose that gives a spring like automation. This leads into a discussion about favorite React Native libraries and Mitch talks about React Native Typography which has a lot of prebuilt styles with default weights and sizes which helps the app feel a lot more Native. For forms they have used Formik and React Final Form. Next, the panelists talk about testing and how Mitch uses the testing diamond, which is to write few end to end tests, a lot of integration tests, and few unit tests. Charles Max Wood used unit testing in the past, but as he has entered the business side, he does more end to end tests because of its importance with client retention. The panelists discuss more about EEON and how Mitch wants to make the data that the app provides to the user be given in a heat map form to make it more navigable and within certain parameters that the user sets. He uses React Native Snap Carousel with heat maps nested within it to create a very nice-looking UI (see EEON for visual). Next, the panel talks about collaborating with the app and how the app will be funded. Mitch talks about how the app will have a generous number of free features but will be funded with premium subscriptions to access all of the information. With regards to collaboration, Mitch says the biggest win has been GraphQL and its graphical data explorer and React Native Expo. Mitch talks about how energizing and fun it is to be greenfielding a project and that they are currently testing with financial experts to create this app. Panelists Josh Justice Charles Max Wood Guest Mitch Masia Sponsors Infinite Red CacheFly Ruby Rogues iPhreaks Links Mitch Masia - GitHub Mitch Masia - Blog EEON Mitch Masia - Slides Expo React Native Typography React Native Snap Carousel React Native Popmotion Redis Pub/Sub RNR on Facebook RNR on Twitter Picks Josh Justice MobX Twitter Charles Max Wood St. George Marathon CES Mitch Masia Ant Design GraphQL Shield Can it be done in React Native? YouTube videos Raquetball

October 29, 2019
54:14
E
137
RNR 140: Best Practices with Zain Sajjad

In this episode of React Native Radio Josh Justice interviews Zain Sajjad. Zain leads the team of frontend developers at Peekaboo Guru. They use React on their web interfaces and React Native on their mobile interfaces. Zain and Josh discuss some of the work Zain is doing and overviews his recent blog post outlining best practices for React developers. Zain explains how smooth the transition was to React Native coming from React. They had a good knowledge of how React worked from their web applications which made learning React Native easy. Zain shares why they chose React Native, they wanted a quality frontend and a lot of code reusability across platforms. Josh and Zain consider some of the other benefits of using React and React Native, including maintaining the same mental model and libraries. Zain discusses their recent update and the Hermes engine. He explains how it makes apps more performant and with better execution. Josh and Zain discuss how they measure performance. Zain shares the tools they use at Peekaboo Guru and their goals in making the whole app more performant not just one aspect of the app. Navigation is the next topic they discuss. Zain explains how his team tried both React Native Navigation and React Navigation. He compares the tool, explaining why he would choose React Navigation for most applications. Zain shares the improvements that have been made to React Navigation in the past couple of years. They are currently using React Native Navigation which was better for their application at the time in order to maintain performance on low-end android phones. Zain explains how low-end android phones can affect performance and how they test for low-end phones. Josh and Zain move on to discuss Zain’s blog article outlining best practices for react developers. Josh considers how difficult it must have been to pinpoint best practices for React, with its unique approach to programming. Zain explains that these best practices are best for those unfamiliar with React but can benefit everyone. Josh shares some of his own advice for developers new to React. Mainly, don’t be discouraged by the lack of structure, learn patterns that work from more experienced developers and don’t be afraid to experiment. The first practice explained in the blog article is Container and Presentation components. Zain explains that this is one key factor in keeping applications simple and scalable. It stems from cognitive condense, by separating and containing things, developers can focus on one thing at a time. Zain explains the best way to do this. He and Josh consider the benefits of using this in React and React Native. Next, Zain explains some React Architecture best practices. He tells Josh its all about having good constraints available and being flexible as you build. Josh considers how this changes the way he builds his applications, being more fluid with his files based on the needs of the application. Another best practice discussed is called React Wrapper Component Minimized. While working with large scale React apps developers tend to use a lot of third-party libraries. The best practice Zain describes is to wrap the library in a component, this allows you to use the library but also to switch it out more easily in the future if you find a better library. You don’t have to do this with every library just the ones that are used everywhere in your app so you can easily switch it out. Josh explains the power of this practice. Uniformity Across React Components, this best practice makes components easier to read and adapt. Zain explains how implementing this best practice in his team saved the a lot of time. He and Josh consider how consistency could benefit a team of any size. Zain and Josh finish up by touching on the last few best practices. Testing React components, how linting your code can help you avoid problems that may occur once your code is executed. Portability of code and keeping it usable for other platforms. Making React testing less annoying and deploying React Apps using CI/CD tools, for which Zain and Josh share resources. Panelists Josh Justice Guest Zain Sajjad Sponsors Infinite Red Adventures in Angular Adventures in Blockchain CacheFly Links RRU 080: Navigating React Navigation with Zain Sajjad React Best Practices: Maintaining Large Scale Projects Comparing Mobile Machine Learning Frameworks https://peekaboo.guru/ Hermes Prepack Plop JS Firebase Performance React Native Navigation React Navigation React Navigation 5.0 Building resilient frontend architecture - Monica Lent The Universal Architecture React Native Testing Library Detox E2E testing CircleCI https://twitter.com/zsajjad93 https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Josh Justice: Thank you Meetup Organizers! Poké Bar

October 22, 2019
45:11
E
136
RNR 139: Upgrade Helper with Lucas Bento

In this week’s episode of React Native Radio Charles Max Wood interview Lucas Bento. Lucas has been working with React Native for around four years. He helped create and maintains Upgrade Helper. Upgrade Helper helps React Native developers when an automatic upgrade fails. In this episode, they talk about Upgrade Helper, React Native Doctor and open sourcing software. Upgrading React Native can be awful. Lucas explains how this process has become easier and now most problems happen with developers who are new to React Native. They are still working on ways to make upgrading more smooth. Charles shares his plans to build a mobile DevChat application with React Native. He asks Lucas for advice on how to update the template app he purchased in the past to help with this project. Lucas explains that it depends on what version the app is currently using. He recommends not skipping versions when updating, to run the upgrade command and check the app for errors. The panel discusses the common problems seen when upgrading versions. The most common problems comes from integration with libraries. When the app uses a react native library there are fewer problems with recent releases, as the library maintainers have time to make any changes before the release. Libraries from outside maintainers may lag as they have to play catch up after the release. Lucas explains how Upgrade Helper works. It is a web interface that shows tutorials, comments and other content that help developers upgrade their applications. They tell Upgrade Helper what version they are currently using and what version they would like to use. Upgrade helper shows the changelogs for the version jumps, major changes that were made between versions, along with a guide that walks you through the upgrades. Upgrade helper has a couple more things coming soon. Lucas is really excited about implementing a dark mode. They are also launching a discussion forum for people to discuss the different versions, sharing problems and solutions. Lucas explains how he got involved in this project. After seeing something similar in the angular project, Lucas, Pablo Discobar and Lorenzo Sciandra decided to build Upgrade Helper for React Native. Now they maintain it together. Lucas shares how much he enjoys working on this project and finding solutions to these messy upgrade problems. He shares his first experience running into these problems and explains that they do get easier the longer you deal with them. Charles asks how upgrading works with native dependencies. Lucas explains that currently when you run the upgrade command it does not check the native dependencies, it is very minimal and barebones. Developers can check the changelogs and make the necessary changes after. This is one reason that upgrading can be so difficult. The React Native Community does want to build a tool in the future that will automatically upgrade native dependencies. Lucas explains that they have a lot of exciting ideas for React Native but not enough time to work on them. Charles commiserates, explaining how time is a precious commodity when volunteers are running the show. Lucas and Charles discuss resources and recommendations for help upgrading. Lucas tells listeners to look out for Upgrade Support, the discussion forum. He explains that there are a lot of upgrading tutorials for React Native If there is anyone out there who likes creating posts on upgrading React Native Lucas invites them to reach out, he would gladly put them up on the forum. The panel talks briefly about React Native Doctor. React Native Doctor is an interactive CLI that checks apps for problems and then fixes them. Lucas explains what Doctor will check and how it works. If it can’t fix a problem on its own, it logs a message on the UI explaining how the engineer can fix the problem. Lucas explains how this will be very helpful when upgrading versions as well. The episode ends with a discussion on open source contributions. Lucas explains how developers can get involved in these projects and the React Native Community. He and Charles tell everyone not to be afraid to contribute, they are all volunteers. Open source is for everyone and a place where developers can learn new things. Lucas shares what he has learned since working in opensource. They discuss the spectrum of attitudes towards open source, either everything from “I open source everything” all the way to “I don’t open source at all”. They encourage everyone to honor the individual decisions of fellow developers and avoid shaming those they disagree with. Panelists Charles Max Wood Guest Lucas Bento Sponsors Infinite Red Views on Vue G2i CacheFly Links https://github.com/lucasbento https://twitter.com/lbentosilva https://www.facebook.com/ReactNativeRadio/ https://twitter.com/R_N_Radio Picks Charles Max Wood: Memberpress https://www.membershipacademy.com?aff=cmaxw https://www.learndash.com Maxcoders.io Lucas Bento: Upgrade Helper React Native Doctor Avengers: Endgame

October 15, 2019
41:32
E
135

Obsessed with RNR?
So is the React Native community!

Photo of Gant Laborde and Mark Rickert hugging at a retreat.Photo of Todd Werth laughing during an online team game. Other members of the team are in the background.Photo of team members Jed Bartausky and Carlin Isaacson at a team dinner.Photo of Darin Wilson sitting at a table listening to a presentation

Ready to get started with us? Chat with our team over zoom

There’s no perfect time to get started. Whether you have a formal proposal or a few napkin sketches, we’re always happy to chat about your project at any stage of the process.

Schedule a call