https://github.com/spongebobsun/reactnative-tl-dr
ReactNative - Too Long; Don't Read.
https://github.com/spongebobsun/reactnative-tl-dr
react-native
Last synced: about 2 months ago
JSON representation
ReactNative - Too Long; Don't Read.
- Host: GitHub
- URL: https://github.com/spongebobsun/reactnative-tl-dr
- Owner: SpongeBobSun
- Created: 2018-02-05T11:03:29.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-12T07:08:34.000Z (over 8 years ago)
- Last Synced: 2025-03-14T05:11:14.807Z (over 1 year ago)
- Topics: react-native
- Homepage: https://spongebobsun.gitbooks.io/reactnative-too-long-don-t-read/
- Size: 638 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ReactNative - Too Long Don't Read
After using `ReactNative` in company projects for about one year, I've decided to write something about it. There are a lot of documents talking about pros and cons of `ReactNative` so l will not do that. Summarize in one word - `ReactNative` is awesome.
I'll write down the important part and bread crumbs about how `ReactNative` works in this document. Starting with `AppDelegate` of a simple project and we will go through the initialization part of `ReactNative` , `NativeModules` and how JavaScript code and native code connected. Along with how does `ReactNative` using `JavaScriptCore`, how does a native UI component get drew and other interesting parts.
The reason why this document is called 'Too Long Don't Read' is I will summarize contents in a chapter to a figure or a bullet list. Then I'll put it on the beginning of each chapter entitled `TL;DR`.
The `TL;DR` part will provide a quick reference if you want to go through chapters quickly.
## Who this document is for.
This document is for those who already played with `ReactNative`, or made their own app using `ReactNative` and are curious about:
* How does this part of `ReactNative` works?
* What's under the hood?
Also this document is based on `ReactNative` version '0.52.0' and **iOS **platform. Although some code written in cpp are used by both iOS and Android but I will **not **go through any Java code.
## Who this document is not for.
If you are a Android developer and wish to read about plenty Java code in `ReactNative` - this is not for you, **currently**. I've planed to add Android part in this document but I will focus on iOS for now.
If you want to learn how to make apps using `ReactNative` - this is not your cup of tea. I'll assume readers have a solid \( well not that solid maybe \) background of using `ReactNative` to make apps.
## How this document is organized.
This document will start with how `ReactNative` initializing itself \( like other lousy documents for some frameworks \). Then it will go through the communication part between JavaScript code and native code. Also `NativeModule` will be introduced during this.
Then it's other parts that matters in `ReactNative` such as `UIManager` , renderer etc.
## Conventions.
Lots of code will be pasted in this document. Some important conventions is about comments - so you won't mix my comments and original comments.
* Line comments start with '...' is written by me.
> //...Some important thing is going to happen in below block
* Block comments contains 'Bob's note:' is written by me.
```
/**
* Bob's note:
* Dispatch some task in some queue
*/
```
* Line comment start with '...' and without any explanations means I've delete some code to make code block more clear for reading.
> //...
## Status of this document.
### **This document is still working in progress!**
See chapter `Todos` for status.