Development of Hybrid mobile apps – React Native

November 28, 2019
Andrei Ionescu

In a time of tremendous mobility and accessibility we all find a great support in the awesome devices that we call mobile phones and which are turning more and more powerful. Systems are connected and applications must share features regardless of the device they are accessed from. During the present article we shall have a look at the mobile app development options to address the increasing demand on the market.

Hybrid applications

A hybrid application is a piece of software that uses both platform specific (native) code and non-native code (usually HTML5/Javascript). This is accomplished by wrapping the web content within an instance of system’s webview renderer, then the whole suite is packed in an installable kit. The content can either be delivered via http or bundled within the app, especially if it is desired to obtain offline functionality.

Hybrid applications are used primarily in mobile app development, where differences between the two major operating systems used in present, Google’s Android and iOS from Apple, increase initial development investment almost twofold, and make maintaining difficult. Android native apps are written using Java, while iOS developers have a choice between Objective-C and Swift. Either way, development for both platforms takes a very wide set of skills. The hybrid approach gained a large popularity in recent years, now representing close to 50% of new mobile app releases, since they offer the great advantage of having a common codebase regardless of targeted platforms, removing the risk of platform specific issues.

Reasons why a hybrid mobile app is a good idea:

  • Built on web technology HTML/CSS/Javascript, making the transition for web developers very easy
  • Cheaper and faster development
  • Easier maintenance
  • Common codebase for all platforms
  • Easier to control user interactions as opposed to an web app, where the user can also modify the URL from the browser address bar to manipulate states and access out-of-flow destinations
  • Access to platform native APIs, being able to use all functionalities of the device (camera, storage, data, hardware controls)

Why you might want to reconsider and not use a hybrid app:

  • Slower than native, the wrapper adding some overhead
  • Dependent on the third party framework picked as the wrapper
  • Not fully integratable with the OS, may affect interractibility
  • Can’t easily reproduce native app look and feel
  • Customisation for each platform would remove the benefit of common codebase

Popular hybrid mobile app frameworks:

  • React Native

Developed by Facebook, Open-source, Reusable Components. Used in: Facebook mobile app, Instagram, Skype, Discord, Pinterest, Uber Eats

  • Ionic

Open Source SDK, able to integrate native device plugins

  • Framework 7

No external dependency, Lots of UI elements and widgets.

  • PhoneGap

From the team behind Apache Cordova, the Adobe PhoneGap framework is an open source distribution of Cordova. Offers native functionality, can be extended with native plug-ins.

  • Onsen UI

Open source, compatible with AngularJS, Angular2+, VueJS, React. powerful CLI, versatile, flexible.

A closer look at React Native

React Native stands out in the pack of hybrid app frameworks, bringing the promise of converting the Javascript code into native instructions, thus minimising overhead brought by the wrapper of web content. It also provides the possibility of incorporating complete native components if needed. Taking things even one step further (away from the hybrid approach), the so called code ejection feature completely takes apart the wrapper, giving complete access to the inner workings of the app.

Developing in React Native isn’t much different from developing in the regular React framework for web. It uses same reusable component based structure written with JSX, an extension to Javascript ES6 standard developed with React, which enables embedding HTML code into script files, bringing template and control functions together in the same place. It is recommended to use Expo, a free and open source toolchain built around React Native to help with everything from project initialisation, to hot reloading changes live into the compiled app and delivering over-the-air updates to app content. Expo comes with some caveats though. It takes over the native layer of the app, making it impossible to include custom native modules beyond the React Native APIs and components that are available in the Expo client app. So of your app needs inclusion of some third party SDK, and there’s no hook provided for it by the Expo client, the only option is code ejection and abandoning the advantages brought by Expo in the first place.
React Native is also compatible with state containers like Redux and Mobx. State containers act like stores for control properties of components, facilitating communication and event handling.

Conclusion

In conclusion, in a world where the mobile market is in continuous expansion, the need of mobile apps has never been greater, but maintaining said apps, never been more difficult. With Google and Apple racing each other to bring the newest and greatest in the palm of your hand, software must keep pace. Developing once for both platforms is a strong advantage to keep up with the requirements, and hybrid mobile apps are just the tool for the job. Long gone are the days of simple single page applications, and React Native, Expo and Redux is the best choice of tech-stack to accommodate for the increasing complexity of apps, as proved in part by the impressive number of big companies that chose the same solution for the billions of customers that use their mobile apps.

Do you want to enhance your operations with a mobile app? Let’s talk about it!

Intro

In this era of rush and unintended superficiality, the COVID-19 pandemic came as a call for silence, introspection, isolation and care for those in need.If there is something nobody told us though, is that this mix of introspection and isolation (that sounds more like the perfect recipe for a high price meditation retreat), may be sometimes surrounded by a cloud of feelings. Ironically, right now, the sense of community is awakened more by the isolation than by the physical closeness that we've been experiencing before. Our reality transformed itself so much that some days we wonder if it's some SF stuff or if this is really happening.This calling of our community and the need to keep sharing moments with one another determined us to start a journal.

"What the journal should do?" you may ask.
We invited everyone to write, anonymously or not, how this pandemic and social distance are making them feel. It can be the humor behind one's morning rush to catch their commute only realizing that they're only half-dressed and that for a while their office will be the kitchen or the sense of solitude that lays beside a quiet night while watching one of their favorite plays online. All being said, we encouraged everybody to share and keep the Journal alive.
We will be updating it daily, so if someone's not quite ready for the sharing part, they can still feel the community's daily vibe just checking it.

As we all know, "#weMindEachOther" is a state of mind, not a place.

Day 1 (30.03)

Ioan Anton

Started 5th week in insolation and despite the examples of other countries that we (Romania) are with 1 month back of the ones that have a large number of casualties and problems, I am getting armed with hope, optimistic thoughts (as much as possible) and a large number of activities that are keeping me engaged and ease my time passing in isolation.

Mars

Today I am struggling to see also the positive side for the coronavirus crisis and find meaning in all that is happening right now. It reminds me about the important things in life - family, health, relationships (including a very good relationship with myself). It is like someone is making an experiment to teach us a lesson, maybe that lesson that was perfectly summerized by The Little Price in "It is only with the heart that one can see rightly; what is essential is invisible to the eye."

A.

As no trouble comes only by itself...today my mouses' battery died.

Gold

The first week was kind of like a bubble - happy to be home with my loved ones. The second week was hard, dark and fearful. Now I'm more connected with my truth, being it happy or hard, than I was in a long time. It makes me feel complete. It makes me...well, me.

Ioana

How fun it is to try to avoid the other video calls from the house and find a spare room :)

Day 2 (31.03)

Mars

Why am I so sensible to the weather outside, if my life is entirely inside these weeks? A little ray of sunshine coming through my window will instantly change my mood #iWantMySpringBack

Ioan Anton

This was my last day in a project that i spent almost 3 years. It was a great experience for me so today I needed to spend some time to leave some knowledge that I accumulated in order that my colleagues have some information on different parts of the project that I worked on.

Jane Doe

I think they call them "does" because of all the hit and runs, which is a bit sad if you think about it. What happened to Bambi? First of all, great idea - the whole "write down your thoughts" thing. Reminds me of one of the greatest and at the same time most horrible teachers I ever had. I remember him by one thing, and one thing alone, namely - Postmodernist literature class, the time when I learnt that you don't read Faulkner to understand what he wants to say (that's the deal with all the crap in Latin), you just read Faulkner, period. And there's this guy, mid-50s, unmarried, frustrated teacher, asking a bunch of 20 year olds, in 2017, if any of them keep a diary. Hilarious, right, but the way he put it - "Do any of you ever take a moment to think about what you do, what you feel? Do you have any idea why you do what you do, why you feel how you feel?" I mean, hilarious, right? Who has time for that? That's one of the best ways I cope with leaving the house just for dark chocolate and not knowing how long until I get to see my parents and my brother - take a bite out of the good old madeleine.

Gold

This day was so blue! But also full of work and accomplishments. So I could call it a winner.

S.

Day #21 in isolation - Today it was nice... birds singing, children playing, sun was shining... Thanks God for that bottle of Chardonnay forgotten on the bottom shelf! <3

A.

Pinky day today ~ My mouse battery came alive! Kidding, it's a new one and now life's better. AND I didn`t check the news today!

Maria

My morning office/kitchen window reveals the back door of a local store. People come and go bringing supplies I go and buy once a week. I seldom feel some kind of envy on the people free to walk the streets then I remember how fortunate I am to be able to protect my family and myself by working from the comfort of my home. Stay home, stay safe, stay sane and stay thankful.

Domnul C

This is the 21st day in auto-isolation. All the days are following this pattern: eat -> work -> eat -> work -> exercise -> eat(+alcohol) -> relaxation(2 h max) -> sleep I will come back with an update if/when something will change. Observation: I'm glad that 2 forms of salutation will disappear (at least for a while): cheek kissing and handshake

Day 3 (1.04)

M.

Last night I received some amazing news - my best friend just got into remission and he is close to beat cancer for the second (!) time. If it wouldn't have been this social distancing, probably I would have been in Timisoara right now to celebrate it together. I really needed these good news.

Mars

Today was a good day because I am (slowly) connecting to the new reality, while continuing to be connected to the same me. To be able to make jokes and not take myself too serious feels refreshing. What other better proof that we can not controll everything in life than this coronavirus crisis? But if I let fear to be dominant, I will miss the excitment of the unknown. Always said that I love surprises, now is the time to prove it. I choose to have faith in the collective "us", in humankind. Without being a religious person, I choose to believe.

Domnul C

See Day2

Teapot

Two days ago I read an article saying that what we're feeling now, during these times, is grief - we are grieving the loss of our life as it used to be. As a result, the process we are going through is similar to grieving - there are 5 phases: Denial - "This virus won't affect me", Anger - " Why is this happening?", Bargaining - "Ok, if I stay inside for two weeks, then can I have my life back?", Depression - "This will never be over, things won't ever be the same, I am suffering so much", and finally - Acceptance - "This is the situation now and I have to make the best of it. Things WILL get better". Today, after already passing the first three phases and spending almost a week in the fourth, I think I have finally started my path towards Acceptance. I'm not yet there, I'm still sad a lot, and maybe I won't ever fully be there, but the feeling of acceptance and content is starting to grow, I feel it. I'm starting to think more positively, to see the silver linings of this situation clearer, and who knows, maybe by the time this is over, I'll see life in a brighter light. Maybe we all will. Stay safe, stay sane :)

Ioan Anton

First day in new project, excited to work with new and old colleagues that I crossed path with. New challenges awaits, new business requirements to understand, new projects figure out how to open them...about this does anyone know why this damn 'npm install' command doesn't work on front-end project?

S.

Day #22 in isolation - my dog is upset that I’m working to much, I have to take more breaks and play more with him. The makeup game is still strong, I won’t give up and I will wakeup every morning really early and have the same routine, my mental health is important. I wonder how much time will pass until my Ikea order will arrive and where I can find some new vinyls cause I played so much the ones that I already have, Dean Martin is still my favorite. Maybe I should order more wine and cook more.

Gold

Today I thought a lot about diversity. That's what I miss most. I miss humans. I miss authenticity. I miss vibes. I miss places. That is how I used to learn about things...world, people. I used to observe everybody and learn, and love. I learned to love them all, differently, just how they needed it. Now I'm stuck in this apartment. But that's how I can love people now, isn't it? Protecting them, staying home.

Day 4 (2.04)

Gold

Today I fell in love with being alive. Today I got to take a walk outside. A needed one 'cause the dog was out of food. Today I wondered what is it about humans that makes us appreciate the things/places/people just after they are not ours anymore.Today I felt the sun while walking and felt like it was the first time. Today I saw people, random people, normal people with different eyes. Today I learned to be grateful for everything and anything in particular. Today I learned to feel the feelings being them heavy or uplifting. 'Cause if we are feeling them it means that they are supposed to be there, right? Today, between my home and the vet, I felt that weird combo of pure sense of freedom and paranoia that I used to feel when I was skipping classes in high school. I was so happy to be out but couldn't get rid of that "we're gonna catch you". Today was a good day.

Mars

Today was a good day because I am (slowly) connecting to the new reality, while continuing to be connected to the same me. To be able to make jokes and not take myself too serious feels refreshing. What other better proof that we can not controll everything in life than this coronavirus crisis? But if I let fear to be dominant, I will miss the excitment of the unknown. Always said that I love surprises, now is the time to prove it. I choose to have faith in the collective "us", in humankind. Without being a religious person, I choose to believe.

Domnul C

The order that contains 3 bottles of sanitary alcohol was delivered to me. Now, I can disinfect objects more often. I ate baked chicken. I like chicken. I'm still undecided if I will drink palinca or wine this evening. I like both.

Maria

The sun today was absolutely beautiful. It gave me a lot of energy to make it between the video calls running all day and the fights between my two little ninjas. Another day healthy checked - thankfully sanity is still checked also. We are still humans just in a smaller universe.

B.W

Day 17 of quarantine: I went to Mega Image for some bread and water and when I came back I waited 30 minutes in front of the door just to feel like I was at Apollo again.

A.

I`ve just realized that I skipped Day 3 :( Oh well, it was a rough day and I couldn`t focus as much as I wanted. The news that a close relative may have Covid19 it scares me and I am trying to be optimistic and positive - she needs all the good vibes Today was a bit better, I was productive and I did enjoy my colleagues'jokes - Yey! Everything will be ok, I know that!

Day 5-7 (3.04-5.04)

Domnul C

I'm thinking to isolate the ventilation hole from my bathroom. If the cigarette smoke can enter through there, I guess the virus also can. During the weekend, I want to exercise and watch "The Platform" on Netflix.

A.

Today I have a baaaad headache! Some say that it`s all because the chemicals we breath in this period of Covid19...they spray it everywhere; but what I think...it`s because I stress too much. Happy it`s Friday...hurraaaayy! Mhm no, the stress is still here. Oh well, I`ll get used to it. PS: my cousin is feeling better <3

B.W

Day 26 of quarantine: I bought "Eugenia" to feel like I'm at Mindit again. Eugenia is the best thing ever!!!!

Mars

From no cooking one month ago to 5 dishes on Sunday: soup, muffins, asparagus, banana bread and chicken with smashed potatoes. Obviously, I am an "All or nothing" type of person. Note to myself: take care of what you start getting into! I have bought only 5 bottles of wine...

Gold

I'm always thinking about my greatest dream - to become an astronaut. Obviously I'm not anything close to an astronaut. But I like to think that one of the Universes in the Multiverse has a me that lives this dream. To know the space, to see it, to live it.

Day 8 (6.04)

AI

Early March was the wrong time to delay getting a haircut...

Orezculapte

Dear Journal, This is my first entry... I have so many thoughts that I could write here, but I'll try to keep it short. Today seemed to be a pretty productive day, even though I woke up really late 'cause I couldn't sleep and I am sneeeezing sooo bad, probably allergy (grrr spring). I am really happy that I also managed to help some colleagues - I think this is one of the things I like the most: helping others/the team, offering them support. Even though I've been pretty stressed in the past weeks, today I remembered the old me and how much it matters when working remote, your attitude. If you have a different tone, if you put a certain smiley face, if you type something which can be interpreted wrongly, It can drastically change a discussion. Be careful with that and give only positive vibes - it helps you and others. But anyway, I still have some other stuff to do, 3 more actions on my to do list, but I'll resume later - the advantage of working remotely. xoxo

Domnul C

My main purpose for this week is to find an available delivery interval on a retailer website to place a big order which will include all the things I need for this month. May the force be with me!

A.

This weekend was a lazy one...I did `almost` nothing! Should I be worried? Neeeh... but I think I`m losing my energy and I have to do something to regain it. Also.... I would like to ask "Domnul C.", how was the "The Platform" movie? Is it worth it?

Day 9 (7.04)

AI

Worst part is that i JUST bought a subway monthly pass before going in isolation.

Orezculapte

Meetings. Meetings. Meetings.
A day full of meetings - some would say it is not a productive day. But actually, we have closed some opened points, opened new ones and also changed the scenery speaking and spending few hours with different people, which is gold during these times.
But anyway... yes - meetings if they are productive, are really useful and definitely help more than an email in some cases.

Domnul C

1st attempt for placing an order failed. Next attempt will take place today at midnight.
I enjoyed "The Platform" movie, it describes very well the human behavior and it somehow fits with the times we live now.

Gold

Today I spent way to much time watching french chefs ...chefing.
Also, I wonder why do we feel this need of partnership? Why are we so eager to use the "us" word?

TALK TO THE TEAM

ASK US SOMETHING OR JUST SAY HELLO, WE'RE HERE.
CONTACT MINDIT PEOPLE