React Native is a framework that allows developers to use JavaScript to develop mobile apps on Elastos.  As mentioned, the team has just finished the alpha and they are waiting on CR approval and funding to finish the beta.

We had the chance to interview a couple of the members of the React Native team: Adem and Eric. Jacky, who worked on integrating Elastos Carrier, wasn’t available to answer questions.

What is your background, and how did you come to be part of the React Native project on Elastos?

Eric: My name is Eric and I have 3 years experience of blockchain development with 8 years background in software development.  I worked on several blockchain teams and worked as a core and GUI developer. I was more focused on GUI work about 30/70 core to GUI.  GUI work is stuff like the electron wallet, web wallet, mobile wallet, dApps, etc. I came to be part of the React Native team because I was looking for a new blockchain job and heard that Elastos was starting new project.  So I reached out to KP and did an interview with him and Clarence. They invited me on soon after.

Adem:  My name is Adem. I am an independent mobile app developer focused on projects related to blockchain technology. I started programming 10 years ago for my studies (bioinformatics), and I was mostly involved in big data analysis. At the moment, I’m the lead mobile developer at the QRL project and I’m in charge of the development of the mobile wallet (coming soon to the app stores) https://github.com/theQRL/mobile-wallet. I heard about the React Native Elastos project through a post from KP on the r/reactnative subreddit, and I took on the iOS part for the SPV wallet development.

How would you explain what React Native is?

Adem: The apps developed using RN become native to their devices.  These are not webapps. The code is written for the corresponding native components (for iOS and Android). Thankfully, the majority of the code can still be reused between iOS and Android. RN developers can also use most of the existing npm packages. If needed, some native code can be integrated as well. This is what we did as different components of the Elastos project were written in C or C++. The idea was to implement “bridges” using the native language of the platform (Objective-C for iOS and Java for Android) and therefore be able to call the native function directly from JavaScript.

Alpha is done, and “beta” is put on hold until it’s approved by the CR.  Could you explain what beta would entail, and why it should be suggested and approved by the CR community?

Adem: We successfully released the alpha version of the project that allows: creating a wallet, seeing the balance, seeing the list of recent transactions, and sending transactions (not yet available for iOS). We created different npm packaged for the different components (SPV, wallet, and carrier) as well as demo apps to showcase the use of the these packages. The idea for beta is to release a complete React Native framework containing all the required Elastos elements (SPV, carrier, p2p…) so that developers can use React Native to develop dApps using RN (JavaScript).

Is there any special insight you have on the value of working on React Native?

Adem: The React Native framework can bring a lot to Elastos as it will help developers create dApps much faster. React Native started as a “cheap and quick” alternative to native app developments, but this is not true anymore as big companies are also using React Native now. There’s no need to learn all the new native languages (Objective-C vs Swift for iOS, Java vs Kotlin for Android), just JavaScript. In addition, the available 300,000+ npmjs packages are always available to help developers.

Eric:  I agree with Adem. Right now, Javascript is widely used in software development. React.js is for web development. React Native for mobile development is now in-fashion in the IT industry because developers can produce useful, scalable, and easy-to-maintain applications. I believe that once React Native on Elastos is done, it would appeal to a lot of developers, and thus, more users.

What’s your honest insight on where progress still needs to be made, and what do you find most exciting about React Native integration on a practical level (an example that the average user would understand)?

Adem: The RN project relies a lot on the core Elastos code, and therefore the organization of the core repositories is very important.  Correct naming and explanation for every single repository in https://github.com/elastos makes it sometimes really difficult to understand what’s happening. The end-goal of the RN project is to release the RN framework containing all essential libraries needed to interact with the node.  Developers can easily download the framework and starting working immediately, no need to bother with underlying code. This will result in an increased number of dApps and a broader community reach.

Eric: Regarding RN project, it should be developed a lot more right now. Though the alpha was done which is a good way to demonstrate the proof of concept, in production, it has no value. It’s my opinion that RN project is really what should be worked on in the next stage of Elastos.  One thing that excites me? Working on alpha gave me some great experiences in team collaboration. The core team fixed bugs in the core codebase as soon as I reported them. Elastos clearly has a very strong team collaboration, which is incredibly important.

I would love to hear what’s next for all of you.  Is there more work you’d like to be part of? Or is there a new direction you’re taking, even if it’s outside Elastos?

Adem: As mentioned, I am already involved in the development of the mobile wallet for the QRL project. In addition, I’d love to release a functional mobile wallet for the Elastos project. I’m sad that we’ve had to “pause” the project after everything we’ve learned together. Thus, I am spending my own time to try to put things together and get something out–a very simple and proper looking mobile wallet for Elastos. I even made some designs for it in line with the new website’s design and styling guidelines.

Eric:  I am looking forward to continuing work on the RN project. I’ve worked on several blockchain teams, but I’ve never seen such an interesting and unique project so far. I am looking for another blockchain job right now but I am always ready for Elastos.

What are your opinions about the Cyber Republic?

Adem: I heard about the CR after starting this project. I really like the initiative and am looking forward to seeing it active. It seems to me that the Elastos Foundation is focused on the main code, the nodes, the explorer, the wallet… However, this is the base of every blockchain projects so the rest of the infrastructure (community, dapps, everyday usage) is also very important (maybe even more?) which is where the Cyber Republic plays an essential role.

Eric: I have no concerns. Every team has their strategies.

Would you like to see any type of special structure built on the Cyber Republic to increase awareness and funding for developers?  In your ideal world, where would funding go next?

Adem: I think the Cyber Republic should support anything that makes Elastos more accessible. In terms of development, this means dApps; the more dApps the better the community. Therefore, making dApp development easy should be a major priority. I know it might sound extreme, but one should even think of a WYSIWYG solution to build dApps.

WYSIWYG is an acronym for, “What You See Is What You Get.” WYSIWYG is a way of designing electronic documents so that content such as text and graphics is displayed on screen during editing in a way that corresponds exactly to its appearance when printed or displayed as a finished product. “

(https://www.tectite.com/tutorials/about-wysiwyg.php?WWWTECTITE=xivznebm)

Eric: RN project should be developed in the future.  I am waiting.

Is KP a vampire?  Does he ever sleep?

Adem: Hmmm… he knows too much about technology to be “just” a vampire. I believe that he is a cyborg controlled by a particularly advanced AI?.

Eric: KP is a good guy, he knows where we are and what we need to do technically. He creates a good environment for us developers. While we were working on the alpha, his communication with the core team was incredibly important and he solved our issues quickly so that we could continue working without hesitation. I like working with KP.

Feel free to leave a comment with your concerns, questions, and suggestions (or praises), for the Cyber Republic.

LEAVE A REPLY

Please enter your comment!
Please enter your name here