Most of us programmers and software engineers are indeed always trying to learn more programming languages , pick up new tools etc. That is the way I came across ruby as well. Prior to it I was a happy java guy.
After few months working full time on ruby and ruby on rails building awesome stuffs with it. I finally realized why ruby was known as a language developed for programmers happiness.
Some of the noticeable advantages of Ruby on Rails I realized immediately were
- The speed of development.
- Best development practices like Representational State Transfer(REST) concepts, Don’t Repeat Yourself(DRY) concepts, Convention Over Configuration(COC) concepts, Model View Controller(MVC) concepts,
- Plenty of fully tested ruby Gems already being used in thousands of rails powered websites
- Testing tools inbuilt with frameworks other popular available testing gems like RSpec, Factory, Capybara, Database Cleaner,
- Easy websockets integration through Actioncable to incorporate real time features,
- CSRF protection by default,
- SQL injection protection in bundled ActiveRecord by default,
- Database Migration functionality
- Integration of Email, Jobs, Internationalization support
- Easy way to create API for application using –api flag
- Awesome guides and huge community
There is no doubt that Ruby on rails is most popular framework there are some things I want to see improved on Ruby on rails.
- RoR code tends to do too much “magic.”
- Maintainability is not a great strength of the framework and the very weak typing of the language also makes the code increasingly difficult to maintain over time.
- Shortage of flexibility: As RoR being opinionated framework what I struggle with most of the time was needed to adjust RoR based on products needs as RoR comes with hard dependencies and modules.
- Rails development is not as easy in windows environment as it is on linux and Mac.
- Rails callbacks are good but I struggle with must of the time understanding and debugging as it makes things unexpected violating SRP.
Having been familiar with the Es6 was a good start to try the new taste of React.js and Â I started learning React and some fundamental concepts like components, states and props and how component communicates with each other through props and what benefit do one get using redux and other state management framework in large applications. Learning React was the turning point for me to learn React native as React native uses the same concepts, same lifecycle methods as React and focus on better UI using predefined Components.
So if you are moving to react native I suggest one to learn React although it is not necessary. Some of my suggestions for getting better at React native are:
- Learning the flexbox layout as react native uses flexbox layout.
- Learning the react navigation to handle the navigation
- Learning how to make HTTP request or XMLHttpRequests.
If you are looking for a good team to help build a mobile app. Do get in touch with our team here
Some further References: