When to choose React Native for your application

React Native is the first robust cross-platform language for mobile that is gaining a lot of traction right now. There are plenty of applications in that take advantage of React – think giants like Facebook, Skype, Instagram, Tesla, and Airbnb. Mobile devices are all over the place, and you can be that users have installed many different apps on their smartphones. Is there any way your application could stand out? React Native could be your solution. Read on to find out what React Native is and why it might be the right choice for your mobile development project.


What is React Native?

To put it simply, React Native is a framework that allows building native mobile apps with the help of a battle-tested programming language, JavaScript. Without React Native, you'd first have to develop your mobile app using Java or Swift/Objective-C, depending on whether you wanted your app to work on Android or iOS. With React Native, you no longer have to make that choice. You can build a fully-functional app on both platforms in much less time and use a single coding language. React Native was created by Facebook to build its social platform. After a while, Facebook also released ReactJS for web development as open source. But when dealing with their mobile app, Facebook still encountered some challenges. For starters, developers had to maintain two codebases: one for iOS and one for Android. When implementing features in Swift on iOS, developers had to duplicate their work to implement the same features in Java on Android. With React Native, developers can write code in JavaScript and deploy it to both Android and iOS, avoiding all the issues that crop up with asynchronous app development.


Why choose React Native for your project?

React Native was for a long time seen as unfitting commercial requirements simply because it wasn't developed or supported enough to build native-like apps. But it's becoming more popular and gaining serious community support these days, making it easier for everyone to take advantage of it to write apps. So when is it a good idea to use React Native? React is an excellent solution if you already have frontend developers but no mobile developers, and you would like to create a simple application. However, avoid treating React as a substitute for mobile developers. To create an application, you'll still need the people who know the functionalities provided by the system offers and can use them correctly. React also comes in handy for applications that don't require a strong integration with the system. If you want to have a more integrated application, it's possible to insert native code to your codebase, but then you're performing an action that doesn't make sense in the cross-platform availability of React. One of the main advantages of React is the fast iteration of changes which works great when working on proof of concept projects. React allows redeploying changes onto devices very quickly without the need for standard rebuilding of the project. An important thing to consider when choosing between native and React is the fact that the framework's future as a third-party product is unclear. If your project is to last long and become the core of our business, and you don't have infinite financial resources for retraining and employment, native development is a smarter choice.


The takeaway

According to Statista, by 2020 mobile apps are going to generate $188.9 billion in global revenue through both app stores and in-app advertising. If you want to ride the mobile successfully, you need to pick the right development strategy for your mobile product. And that begins with choosing between native development and taking advantage of solutions like React Native. I hope this article helps you in making that choice. Have you got any questions about React Native? Leave a comment below; we're always looking forward to solving new challenges and puzzles in our mobile development projects.

PyData Warsaw 2017 – Our thoughts & impressions

A couple of weeks ago, a few members of our team had the pleasure to participate in PyData Warsaw 2017 held at the Copernicus Science Center in Warsaw on October 19-20, 2017. PyData conferences aim to connect users and developers of data analysis tools to meet, share ideas, and learn from one another. This event was the first one and it was already a huge success! The community plans to gather every year to discuss applications of Python tools (plus tools using R and Julia) and meet the challenges in data management, processing, analytics, and visualization. Here’s what this year’s PyData conference looked like.

Upon Arrival at PyData Warsaw 2017

PyData attracted over 300 participants, and it’s clear that the number was much higher than expected by the organizers - which is a great thing! The location was just excellent. The Copernicus Science Center is located in the central part of the city, but somehow you don’t feel that annoying city buzz - many people we talked to really liked the venue. A minor organizational glitch was the division of the auditorium space. The conference was divided into 3 streams, and 2 streams would always get something like 1/4 of the conference room. That’s why it was often hard for participants to find a seat in these streams.

Keynote Lectures

The first keynote speaker was Jarek Kuśmierek, a Senior Engineering Manager at Google. He talked about the current revolutions in data science, especially in machine learning. He used many examples to show how Google applies machine learning - for example, they used machine learning in the network that operates the ventilation system at their data centers, allowing for 40% of savings in energy use. PyData Warsaw He also presented Google’s API for machine learning. A developer who has never worked with machine learning before will be able to create an application that can recognize human speech or classify images automatically and tag them. All in all, it was hard not to agree with Jarek - we are right in the middle of this revolution. The second keynote lecture was by Radim Řehůřek, the creator of Gensim and machine learning consultant. Radim fascinating talk was about interpretable data models. As machine learning algorithms are becoming more popular and advanced, we are beginning to lose the understanding and control of them. We increasingly treat these algorithms like black boxes to which we just feed the data, and they give us a result, without us knowing exactly how the program arrived at that conclusion. A potential solution to that problem lies in building and using tools that help developers understand how a given neural network works like. We should also try to be more responsible about using machine learning and stop feeding algorithms with vast amounts of data without a second thought. Radim said we should try to come up with the result on our own first. He suggested that we tend to trust in machine learning a little too much today - and we couldn’t agree more.

Other Interesting Talks

In general, we saw a lot of talks about Natural Language Processing (NLP), and it's clear that there is much work still to be done in this area. We're talking primarily about the Slavic language family which includes fusional languages – contrary to English, languages like Polish or Russian have more complex rules and contain many ambiguities. They are also surrounded by a much smaller community and are hard to process. We learned about tools that could be useful in our projects at sunscrapers: word2vec, GloVe, fasttext, to name just a few. Here are 3 talks we found particularly interesting: Szymon Warda offered an interesting review of alternatives to databases and told us what type of databases are most useful for specific applications. Fun fact: Apache Accumulo is a database that was created for security purposes by none other than the NSA... Another interesting talk was given by Kornel Lewandowski who looked at personal data security in medical documentation. Analyzing medical documentation can be very productive - however, these documents often contain plenty of personal data that needs to be cleared before analysis. Kornel showed us various techniques for identifying personal data, for example regular expressions, dictionaries, rule-based methods, machine learning based named entity recognizers. We got a view of the entire workflow responsible for that type of function, as well as the architecture. The last talk that made a great impression on us was “Despicable machines: how computers can be assholes” by Maciek Gryka. As you can tell from the title, the talk was dedicated to a phenomenon known as the machine bias. Machine learning algorithms that analyze data about humans can easily learn behaviors that were not intended by developers. For example, there exists an algorithm that calculates the likelihood of committing a future crime that learned to take into account factors like skin color or facial expression. We don’t have an easy solution for this controversial issue yet, though interpretability might be one. To put it simply, models that serve to describe and judge humans need to be understandable to us. We should know exactly how they work and why they deliver specific results. With that knowledge, we will be able to modify these models to avoid machine bias. You can see Maciek’s talk on the topic here. Naturally, there were many more interesting presentations and we wish we could talk about them here. To get the idea, have a look at the schedule to see short descriptions and abstracts of all talks. PyData Warsaw 2017 was packed with inspiring talks that showed us all some pretty smart solutions and potential directions for the future. We wish to thank the organizers for making that happen - it’s great to be part of the PyData community! PyData Warsaw We had a blast and will surely be there next year, so see you at PyData Warsaw 2018!

DVCS workflows for teams (tech talk)

https://www.youtube.com/watch?v=Hj9OrZWaShc&t=1390s This presentation is a part of Sunscrapers’ weekly talks. Slides available here: http://www.slideshare.net/sunscrapers/dvcs-workflows-for-teams-bartek-rychlicki

Django ORM (tech talk)

https://www.youtube.com/watch?v=qDvUiu_HF3k&t=305s Marcin familiarized us with Django ORM. Slides available here: http://www.slideshare.net/sunscrapers/django-orm-marcin-markiewicz This presentation is a part of Sunscrapers’ weekly talks.

ReactJS – Comparison to AngularJS 2 (PL)

Watch Robert’s recent presentation about Angular2 framework and ReactJS library. This presentation is a part of Sunscrapers’ weekly talks.
https://www.youtube.com/watch?v=Xeea_rjpx48 Slides available here: http://www.slideshare.net/sunscrapers/introduction-to-reactjs-comparison-to-angularjs-2-robert-piko-pl

The complete list of our tech talks

Every Thursday at 4:30 p.m. our team gathers in a conference room to participate in a presentation prepared by one of us. The topic of the speech can concern tech (IT, project management) and soft skills (work culture, communication).
See the complete list of available presentations from our weekly tech talks!
We explain our idea in this post: Our work culture: weekly tech talks.
For a video of each talk, please click on the title below: 
  1. The quickest introduction to Julia (for Pythonistas) - Paweł Święcki
  2. Ansible Deployment Using Python 3 - Piotr Szpetkowski
  3. Storing Personal Names in Database - Piotr Szpetkowski
  4. Brand voice in social media - Paulina Czajkowska
  5. Where to put Business Logic in Django - Michał Nakoneczny
  6. Clean Architecture in Python (web) apps - Przemek Lewandowski
  7. Reactive programming - Jakub Włodaczyk 
  8.  Meta catch-ups - Łukasz Karwacki
  9.  Foundations of Foundation 6 - Jakub Włodaczyk 
  10.  Our work culture - Łukasz Karwacki
  11.  Interruptions at the team level - Łukasz Karwacki
  12.  Creating value for customers - Łukasz Karwacki
  13.  Design focused development - Przemek Lewandowski  
  14.  Going remote!
  15.  Main rules of web design - Dawid Domański 
  16.  Visitors tracking tools - Konrad Hałas
  17.  Quick guide to virtualization - Szymon Teżewski
  18.  Flat Design - Dawid Domański
  19.  Tmux and screen inception 
  20.  Aircraft spotting - Konrad Hałas
  21.  Scrum and XP from the Trenches - Przemek Lewandowski
  22.  Semantic HTML - Szymon Teżewski
  23.  The art of writing emails - Łukasz Karwacki 
  24.  Introduction to ReactJS - Comparison to AngularJS 2 - Robert Piękoś (pl)
  25.  DVCS Workflows for Teams - Bartek Rychlicki
  26.  Swift - Krzysztof Skarupa
  27.  Django ORM - Marcin Markiewicz
  28.  How to justify your recommendation - Łukasz Karwacki

Join our newsletter.