Make Mobile Application With React Native (Full Function)

Aphichan Chaiyutthasart
Witsawa Corporation
2 min readMar 21, 2021

วันนี้ มาเพิ่ม skill ให้ทีม dev

เราก็เลยจะมาสร้าง mobile application ด้วย react native และผองเพื่อนกัน

เพื่อลองใช้ library ที่อยากลองกัน

แล้วผองเพื่อนมีอะไรบ้างหละ ?

ได้แก่

  1. redux — state management
  2. react-navigation — navigation
  3. facebook sdk — เราจะใช้ facebook login
  4. firebase — ก็มีหลาย service เดี๋ยวจะใช้ firestore ในการเป็นตัวเก็บข้อมูลกัน
  5. google analytics — เอาไว้ติดตามว่า user ใช้งาน app เราอย่างไรบ้าง น่าจะเชื่อมผ่าน firebase analytics
  6. deeplink, universal link — link สำหรับเปิด app
  7. unit test — jest test function and

ใครอยากไปส่อง code ก่อนดูได้ใน Github Repository

ak1103dev/react-native-todolist-2021 (github.com)

แต่มีเฉพาะ config ของ android เนื่องจากเวลาน้อยนะครับ

  1. เริ่มจาก init project react native ด้วย react-native cli ก่อนเลย

Getting Started · React Native

2. มา setup Redux ด้วย Redux Toolkit (เป็นท่าที่คล้าย Rematch ที่เป็น Redux framework เลย)

Quick Start | Redux Toolkit (redux-toolkit.js.org)

// src/components/Counter.js เอาไว้ลองว่า redux ใช้งานได้import React from 'react';
import {View, Button, Text} from 'react-native';
import {useSelector, useDispatch} from 'react-redux';
import {decrement, increment, incrementByAmount} from '../store/models/counter';
const Counter = () => {
const count = useSelector(state => state.counter.value);
const dispatch = useDispatch();
return (
<View>
<Button title="Increment" onPress={() => dispatch(increment())} />
<Text>{count}</Text>
<Button title="Decrement" onPress={() => dispatch(decrement())} />
<Button
title="IncrementBy4"
onPress={() => dispatch(incrementByAmount(4))}
/>
</View>
);
};
export default Counter;

สำหรับ side effect ใช้ createAsyncThunk ตามนี้ Usage Guide | Redux Toolkit (redux-toolkit.js.org)

3. มาต่อด้วยการ set navigation เพื่อทำ app ที่มีหลายหน้า

Getting started | React Navigation

4. setup Facebook SDK ด้วยการ install lib แล้วก็ไป create app ที่ https://developers.facebook.com

facebook/react-native-fbsdk: A React Native wrapper around the Facebook SDKs for Android and iOS. Provides access to Facebook login, sharing, graph requests, app events etc. (github.com)

5. setup Firebase

React Native Firebase | React Native Firebase (rnfirebase.io)

setup Firestore

Cloud Firestore | React Native Firebase (rnfirebase.io)

6. setup Firebase Analytics

Analytics | React Native Firebase (rnfirebase.io)

setup screen tracking in react navigation

Screen tracking for analytics | React Navigation

7. setup deeplink

Deep linking | React Navigation

config link

Configuring links | React Navigation

setup Universal Link

https://medium.com/@aofleejay/%E0%B8%9A%E0%B8%B1%E0%B8%99%E0%B8%97%E0%B8%B6%E0%B8%[…]-android-app-links-%E0%B8%9A%E0%B8%99-react-native-b867ca254bdb

8. jest มีอยู่ตอน init react native แล้ว แค่ต้องเขียน script test ใน directory __test__ ลองดูตัวอย่างใน repo ได้

gitmoji คือ git commit ที่มี emoji บอก type of commit อันนี้แถม

carloscuesta/gitmoji: An emoji guide for your commit messages. 😜 (github.com)

เป็นวันที่ได้ประสบการณ์ที่ดีอีกหนึ่งวัน (:

Code ให้สนุกนะครับ

--

--