React Native and Django for Beginners
React Native and Django are popular, flexible, and powerful frameworks that operate well together. Here's an overview of what React Native and Django offer software developers.
6 October 2021
Today, most businesses use software as an important part of their operations irrespective of whether or not they operate in the technology domain. Consider the example of Facebook compared to conventional media outlets like The New York Times, BBC, and the Washington Post.
Facebook is a technology company known for its social media platforms such as WhatsApp and Instagram. It has used software, web, and mobile development since its foundation. Now, let’s turn to our non-technical examples. How do these companies use software to offer their services? Well, like Facebook, they provide all services through their mobile and web applications in addition to the traditional print media model.
This trend is visible across most other industries: the consumer market has pulled them into the tech domain, rather than the other way around.
In September 2015, Facebook made its cross-platform app development framework called “React Native” available for public use. From the start, applications developed using native languages and React Native had a demonstrably similar level of performance and a similar look and feel. The results also showed that 75% of React Native code could be used for both platforms – Android and iOS, and that it was easy to add platform-specific code on top of React Native. React Native has since become a dominant framework for mobile app development.
Django is yet another programming framework that lets you focus on the fun stuff – the purpose of your web application – while easing the pain of the repetitive bits. In doing so, it provides high-level abstractions of common web development patterns, shortcuts for frequent programming tasks, and clear conventions for how to solve problems.
With the evolution of technology, the majority of users have shifted from desktop to mobile. As customers lean towards mobile usage, applications and websites must also become user-friendly for mobile users. In this article, let us take a look at React Native and Django for mobile app development and understand them from the perspective of a beginner.
React Native is an open-source mobile application framework that is built on top of JavaScript. React Native was created by Facebook as a companion framework to React.js. It was designed to enable users to code a single application that works on both Android and iOS devices, but it has since been extended to support web and desktop applications as well.
React Native’s cross-platform compatibility enables far more efficient web development than coding independent apps for each platform. Though there is an ocean of JavaScript frameworks to choose from, React and React Native rank as two of the most popular options for developers.
React and React Native are used by various tech companies like Netflix, Facebook, Instagram, Skype, Facebook Ads, and Tesla.
Django is a powerful, free, and open-source web framework based on Python. Python is one of the leading server-side language used by developers. Programmers love to code in python because of its English-like syntax, limited lines of code, and versatility. Django is a framework of Python and is preferred by tech giants and businesses for its scalability, reliability, and easy-to-use structure.
Django follows the model-template-view architecture (MTV) and is ideal for the rapid software development life cycle as it follows the DRY (Don’t Repeat Yourself) approach. Django is in use by organizations such as Disqus, YouTube, Instagram, Spotify, and many more.
Moreover, the implementation of machine learning algorithms is relatively easy on a Django application as it is a Python-based framework. Another key reason to use Django is to simplify the management of large database-driven websites with its dynamic CRUD (Create, Read, Update, and Delete) interface.
React Native has several advantages over other JavaScript frameworks, including its companion library React. React Native provides consistently great results when it comes to UX (User Experience), UI (User Interface), and functionality of an application. The following are some advantages of using React Native in software development:
Django has a great collection of components needed for web development. The main aim of the Django framework is to create new components that do not exist in the code and follow the principle of DRY (Don’t Repeat Yourself). The following are some advantages of Django in software development:
React Native is primarily a frontend framework, and Django helps run the backend server-side code. Both have advantages over other frontend and backend frameworks, respectively. Both can be used for any type of development (Web, Android or iOS, and Hybrid).
Additionally, React Native is one of the best choices for creating single-page applications. For graph analysis or calculations, a REST API can be used between React Native and Django to run queries. Even machine learning algorithms can be implemented for calculations or manipulations of data on the frontend using the RADStack framework.
Django and React Native also make a great combination thanks to React Native and Django’s many helpful libraries. For an application to work correctly, the frontend (React Native) will have to interact with the backend (i.e. retrieve and store data). To create an interactive user screen, you must build an API (Application Programming Interface) on the backend, using the Django REST framework (DRF), one of many immensely useful Django libraries.
The following section shows a basic tutorial on how to start coding with these two frameworks.
Step 1: First you need to install node and watchman. To do so, run the following commands on the terminal, after installing Homebrew.
brew install node
brew install watchman
Step 2 : Installing an iOS Simulator in Xcode
To install a simulator, open Xcode> Preferences… and select the Components tab. Select a simulator with the corresponding version of iOS that you wish to use.
sudo gem install cocoapods
Step 3: Creating the project folder
npx react-native init AwesomeProject
Once you run the above command in the terminal, it will generate a project with a folder structure for iOS and android.
Step 4: Start the Metro JavaScript bundler.
npx react-native start
Step 5: Start the Application in iOS simulator
To do so, run the command below.
npx react-native run-ios
Setting up Django
Install python and pip and then run the following commands to install the corresponding packages.
pip install django
pip install djangorestframework
Step 1: Navigate to any folder that you want to use to create the Django project, open the command prompt, and enter the following command:
django-admin startproject Sample Project
Step 2: Navigate to the project folder and create a web app using the command below:
python manage.py startapp MyApp
Step 3: Open the settings.py
file and add the lines of code mentioned below, in the INSTALLED_APPS
section:
'rest_framework',
'MyApp',
Step 4: Open views.py
inside the MyApp
folder and add the lines of code mentioned below:
from django.shortcuts import render
from django.http import Http404
from rest_framework.views import APIView
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from django.http import JsonResponse
from django.core import serializers
from django.conf import settings
import json
# Create your views here.
@api_view (["POST"])
defIdealWeight(heightdata):
try:
height=json.loads(heightdata.body)
weight=str(height*10)
returnJsonResponse("Ideal weight should be:"+weight+" kg",safe=False)
exceptValueErrorase:
returnResponse(e.args[0],status.HTTP_400_BAD_REQUEST)
The IdealWeight(heightdate)
is the method that gets executed when an API call is made. It has a simple logic to calculate weight (=height*10). The line return JsonResponse(…)
will send the response back.
Step 5: Open urls.py
and add the lines of code mentioned below:
from django.conf.urls import url
from django.contrib import admin
from MyApp importviews
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^idealweight/',views.IdealWeight)
]
Step 6: We can start the API using the commands below, in the command prompt:
python manage.py runserver
The above instructions depict a basic setup for the Django project. We can also use more routes, functions, and middleware, to add more functionality to REST APIs.
Crowdbotics uses React Native and Django as its core product stack. This means that both custom from-scratch apps and apps built with the Crowdbotics App Builder enjoy the convenience and flexibility of React Native and Django.
Companies who are new to technology and looking to build custom software can contact Crowdbotics today to get their apps running on a rapid timeline and for a reasonable budget.