Hi, I’m Luo Zhu from @daning

This article was first published on luo Zhu’s official website

This article has been authorized to be exclusively used by the public account of the Nuggets Developer community, including but not limited to editing and marking original rights.

origin

It was the summer of 2018. After the company went to Chengdu to build a team in Zhengzhou at the end of June, Xiao Di, Teacher Xiao and I, nicknamed Xiao Meng at that time (hereinafter referred to as the three Senders) began to develop App with React Native. At that time, I was inexperienced in the development of small programs and public accounts. The only highlight was that I encapsulated WX-Promise-Pro and independently completed the full-stack development of a small program, while the other two colleagues were experienced backend leaders. An ios, vue, android, C#, Java, etc skill stack is full.

I don’t know. It was just medium anxiety. I don’t sleep well, I don’t sleep well, I don’t have a job and I’m worried about my dad nagging me.

They say what doesn’t crush you makes you. It was under great pressure that I plunged into the field of cross-end development, and more than two years passed. Moving on to the Nuggets, let’s talk about RN.

React Native introduction

The most common problem I ask about React Native is how to set up the React Native environment. I will patiently help you check it out (sometimes I will also ask you to check the official website carefully). At this time, I usually talk with them about the story that the three musketeers of us spent a whole working day to build the environment for the first time the fastest, and the slowest spent another weekend to check the problems because the computer environment was chaotic.

This is especially true of RN and Flutter. The cross is not friendly to both the native and the front end of the Flutter, so don’t ask whether the front end of the Flutter is suitable, the native is no more comfortable than you are.

A few reminders about the environment:

  • The Java JDK must be installed with the 1.8 series
  • Try to test on a real Android device
  • If you open a project with Android Studio, do not follow the prompts to upgrade Gradle
  • After RN 0.60 ios uses Cocoapod to manage project dependencies, which can get stuck if the connection speed is not good. Suggest don’t toss about, buy a ** also hungry deathless person

Talk about cross-end development

Cross-end Development is also called Hybrid Development. React Native, Flutter and Weex all belong to this category. Anything there is inevitably has its objective requirements exist, across the development compared with the traditional native development has its iteration cycle fast, can be applied to the released after hot update code, or even directly through the dynamic distributed service advantages, compared with Codava, H5 packaging this can solve the problem of 60 frames, performance better, more close to native.

At present, both the former and the former have businesses in various factory apps. It is well known that Idle Fish uses Flutter to write a lot of businesses. The three Musketeers mentioned above built their projects entirely with React Native, while the App I am working on now uses the original construction project to embed our core panel business. It is impossible to write all the device control panels in the App, and ios and Android platforms cannot dynamically deliver codes. However, React Native can implement the process of development panel -> package -> register to the cloud -> dynamically load corresponding business codes from the server. By the way, the group next door is also working on a multiterminal solution based on Flutter. Add doodles and you can make the best of both RN and Flutter developers.

What does RN development entail?

In my experience, if you have programming experience, it’s not that hard to get started quickly. The React syntax, the React Native built-in component, and the third component and API are all used to write the page.

But when it comes to controlling the architecture and development of the entire App, it’s a bit more demanding. React development requires the same capabilities as global state management, route management, and component encapsulation.

You might ask, can YOU do RN without native development? The answer is yes, one of the great benefits of cross-end solutions for front-end developers is the ability to use front-end technology to develop mobile applications. React Native has a number of packaged SDKS available, both officially and in the community, React-native SVG, react-native Camera, react-native video, react-native Sound, react-native Permissions, and so on. Of course, you might wonder, what if the community doesn’t have existing, or needs custom native functionality to get the business done? This is not so simple, but don’t worry, modern industrial society is about collaboration and fine division of labor, in Graffiti, we have a professional native development team to provide us with the underlying SDK business writing, but I also suggest that you should be able to write ios, Android bridge code, native configuration to understand, It helps to promote personal ability and scarcity. Trust me, it’s not complicated, and the problems you have can be solved by searching. Luo Zhu’s experience is also limited to mastering native configuration and packaging the native SDK to expose the interface to the JS layer. He has bought the ios course for a year, but he has not read it (really ashamed). For those interested in native SDK bridging, see introduction to native modules and create-React-native Module.

Talk about some of the things I do for the community

You may see me in the issues of react Native warehouse. It is also recommended that you go to Github to look at issues when you encounter any problems. A mature warehouse can find a solution in the issues.

  • Umi-plugin-react-native: Show react native Demo with Dumi powered by react-native web
  • React native quill-editor: react native quill Rich Text editor Wrapper
  • React-native form: React-native form project, this project has only been updated internally since I left office more than a year ago, most likely has been reconfigured by my colleagues, I keep saying that I need to implement the following using hooks, but I didn’t get the chance.
  • React-native Screenshots: Easy-to-use React Native screenshots and Listener system screenshots (ios, Android)
  • React-native Office-Viewer: Office Preview Plugin for React Native (support PNG, PDF,doc, XLS, TXT…)
  • React-native Template-SISHU: 👾 Clean and minimalist React native Template for a quick start with TypeScript.
  • React native Qiniu: Qiniu React Native SDK,A pure javascript implementation
  • React-native float-ball: 🏀 floatBall with PanResponder 🏈
  • Gracefully develop React Native applications with TypeScript
  • React-navigation 5.x best practice
  • React Native project architecture aspects
  • React Native Integration CodePush guide
  • Use defaultProps in React Native TypeScript projects
  • Use defaultProps in React Native TypeScript projects
  • Touch your hand with the React Native rich text editor package
  • The React Native debugging best practice | bullish essay in the New Year

Talk about the benefits of the position

To be fair, React Native, including Flutter, has fewer jobs than Web front-end development, but that doesn’t mean it’s not worth the investment. Compared to Web development, cross-side development requires more skills and is harder to get started. But generally mastered it, the corresponding salary treatment is also very attractive.

The Doodle cross-end team is hiring a lot

Doodle Intelligence is the world’s leading IoT cloud platform that connects the intelligent needs of brands, Oems, developers and chain retailers to provide one-stop PaaS level ai IoT solutions. And covers hardware development tools, global cloud, intelligent business platform development three aspects, from technology to marketing channels to provide comprehensive ecological empowerment, to create the world’s leading IoT cloud platform.

Cross-end team is looking for RN, Flutter, small program and other development positions. If you are interested, please add yang_jun_ning to help provide resume consulting and internal promotion services.

This article is participating in the Nuggets March campaign, click on the details of the campaign