Nazar

Image processing to identify e-devices

Could you introduce your app in a few sentences?

There are many situations where we have different electronic components and devices which we have no knowledge about.

Nazar allows the user to take a picture using the camera or fetch image from gallery to identify the component with the predicted percentage ratio, thus using image processing and algorithms to segment them after detection.
It was developed not for commercial purpose but as a university project and also in order to get further knowledge about native integration with JS.

The next to-dos on the roadmap for the app are:

  • Using real time processing (not available with JS, so need to integrate with native support)
  • Removing the Clarifai API and integrating own model being trained in AWS Sagemaker

The current build is using Clarifai API for image processing, thus users can identify non-electronic components too and a model is being trained and will be implemented in future builds along with getting feeds from server for details about the multiple segmented components.

The application will be open-sourced as soon as the model finishes training.

What made you decide to use/switch to React Native?

I never loved Java my whole life and neither has she tried to understand me. And JS has been my first love, so I have run from Angular to Ionic to a whole bunch of other hybrid app frameworks, and React Native has been the one which has been the most suitable for cross-platform development for me till now, unless a new one emerges to the surface. But the major factor was loving the ecosystem as soon as I got to it along with the marketplace for growth, which is why I have been using React Native for a year or so.

How did you transition to React Native?

I recommend looking to my blog post.
It not only shows my graph from a geek to a professional, but also all the course recommendations from my side.

Have your tried other cross platform technologies before using React Native?

Cordova, Phonegap, Ionic and maybe every hyped HTML5 framework,
But none ever gave me the performance I wanted, not implying React Native is the best, but seriously it is quite good and more importantly stable. I am yet to face any kind of performance degradation but React Native being constantly upgraded certainly makes it a pain to cope with its pace.

How has adopting React Native affected developer productivity?

Being a person transitioning from a designer + web developer to app developer, and with the MIT license I have certainly seeen imrovements with React Native. And what a relief it is to not have to build apps for different platforms React native sets up cross-platform development so I don't have to code for each platform and then attempt to making them have same layout. This is why RN allowed people like me to work. React Native might not be perfect, but there is nothing better available.

Which tools, libraries and frameworks are part of your development process with React Native?

Arch Linux with VS-Code, which is why my app is only available for Android.
Extensions: React Native Tools , React-Native Snippets , Prettier, CodePush
Device run instead of SDK-build using Vysor

Never used Expo but nativity from scratch is what I prefer. The most used ones are:

react-native-navigation

react-native-firebase

react-native-splashscreen

react-native-elements

react-native-vector-icons

What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?

Tyler Mcginnis — Modern JS + React + Native
Mobile App Development With React Native by CS50
The Complete React Native and Redux Course
Further

I just enjoy reading blogs, thus enjoy Medium articles; they are tons of fun with lots to learn and have a low time investment. Also I'm a regular viewer of r/reactnative, where there are tons of new improvements with builds from different people.

What are some things that you don’t like about React Native or that need to be improved?

Proptypes, they need to get it right. Also make redux a little more understable, is it to much to ask? I spent most of my time understanding it. And native support. Else, it's great. I will be trying Flutter next and then will be able to visualize how much RN actually lacks.

Anything else you would like to mention?

Learning only comes if you try to share, the more you share, the more you can analyze where you lack. So most of my projects are open source and in github and also run a
Youtube Channel.