A Deep Dive Into Infinite Red's Ignite for React Native Apps
|Richard Harris in Android Monday, June 20, 2016|
Facebook's React Native has been exploding in the mobile dev scene, but the onboarding process has always been a bit of a problem for some developers. We recently sat down with Gant Laborde, the Technical Lead at Infinite Red to chat about their new tool “Ignite”, which is a new generator for React Native apps.
ADM: Foundation first, why use React Native?
Laborde: We've created quite a few successful Open Source projects on various platforms, with thousands of users and stars, so it takes a lot to get our attention. We were blown away when Facebook jumped into the mobile scene and like everyone else, a bit hesitant.
So we did our homework, and we investigated React Native in detail. Like tens of thousands of other developers, we were happy with what we found and switched to React Native. Reusable mobile code can sometimes chip away at quality. For React Native, we saw that it didn't. We knew it was ideal for us to build Ignite!
ADM: What does Ignite bring to the table?
Laborde: There's simply a mountain of information out there, and Ignite succinctly clarifies it. Before we launched Version 1, people found the project and we had over 200 Github stars. We knew we were serving a need. With this open sourced project, the best practices, opinions, and evolution of React Native are distilled into friendly generators. We can now produce a stage for beginners and professionals alike!
ADM: Does it work on iOS and Android?
Laborde: Yes! We make sure that all features are tested in iOS and Android. So when you get started with Ignite, you're already developing cross-platform. This continues to be a major cornerstone of the project, and we enforce support on both platforms before any major updates.
With the announcement of Windows 10 support on the Universal Windows Platform (UWP), we'll be evaluating bringing a third requirement into the process, as long as it doesn't impair our existing platforms. Multi-platform adherence is key to the Ignite definition.
ADM: Will the library change?
Laborde: Yes. We don't want to rip the hypothetical rug out from under anyone, but software changes. We tend to document our paradigm shifts in great detail. It's the cost of being "Best Practice"; it changes as the technology changes. We generally stay up to date with the latest versions of all our dependencies, and these rarely cause issues, but every so often there's a game changer. If technology declares a new king, you bet the code will change to include it!
ADM: How often is the library updated?
Laborde: Maintenance happens often. One of the benefits of constantly using the project, or "Dogfooding it", is that we and the open source community quickly form ship updates. Making mobile applications is a turbulent world. Now, with that being said, we try to keep the developer experience from changing. Developers are like racecar drivers, we want to keep their head in the game, and leave the specifics to the pit crew.
ADM: When don't you use Ignite?
Laborde: If you're already deep into a mobile project, Ignite is not for you. Sure you could use our philosophies and research, but you'll have to hand-carry everything into your existing projects. We've really built around the concept that you have started your project with Ignite, and therefore you can grow within it. This helps keep our scope focused and clean. We've even taken work from some people, and had to port it over to Ignite, simply to update it. It wound up saving the client a lot of time in the end, but it's no minor task.
ADM: What's the goal/plan?
Laborde: We're really happy with version 1.0 being the Kitchen Sink of best practices, but as Bruce Lee said, "It's not the daily increase but daily decrease. Hack away at the unessential." We're going to work on simplicity.
For version 2.0 we're moving towards generators that work in composition. This will allow the default Ignite project to be lean, and it can grow as each project organically requires it to grow. We've already received a multitude of requests, and we plan on only adding them in generator form. Therefore, people utilizing the project can opt in if the request also fits their needs. It's going to be an exciting time! All the super powers, none of the mess.
Read more: https://infinite.red/ignite