Indeed a very broad question, but I'll give my input:
How similar are [React Native and React]?
Both rely on React components and their lifecycle, and they are written in the same language. However, React Native is JS that is being compiled to native code. Due to this limitation, HTML that is valid in React is not in React Native. Moreover, CSS has to be written in an all-JS style, and some style properties simply don't exist in native (eg display is either flex or none). Example:
// React
import React from 'react';
class MyComponent extends React.Component {
render() {
return (
<div style="background-color: red">
hello world
</div>
)
}
}
// React Native
import React from 'react';
import { Text } from 'react-native';
class MyComponent extends React.Component {
render() {
return (
<Text style={{backgroundColor: 'red'}}>
hello world
</Text>
)
}
}
Besides that, there are a lot of React stuff that you can reuse in React Native, like react-redux and the likes.
Most interface-oriented libraries simply won't work in React Native, because DOM manipulations are different. It is not always feasible to fully transition from React to React-Native, and sometimes it requires a surprising amount of rewriting on a bunch of little annoying things (no display: block in Native, remember? 😜)
Can you even integrate a Django/Django-REST backend into a React Native frontend?
It's more complicated.
React Native produces standalone applications, so it doesn't need any server to serve it.
For the whole interacting with an API stuff, you'll still be able to serve your API on some server and access it from your React Native app. No worries there (but beware of
CORS).
If you only want to port your app from React to React Native, that's the end of it. But keep in mind: React Native produces standalone applications, you can use that to make React Native make its own HTTP requests without the need for an API that passes some calls! Also, it can locally store data, so there might be some back-end calls (login, profile info retrieval, etc) that can be saved! That might include some refactoring, but you'll build a faster and cheaper application.
There are still many things to be said, but without any further details on your app structure, it's hard to give more advices and details about porting the app. Hope it helped!