Welcome to our comprehensive guide on creating a To-Do List application using React Native!
React Native, a powerful framework developed by Facebook, allows you to build cross-platform mobile applications using the familiar syntax of React. In this tutorial, we’ll cover essential React Native concepts, including components, state management, and basic styling. By the end of this guide, you’ll have a fully functional Todo List app ready for your mobile device.
Prerequisites
Before we start building our Todo List app, ensure you have the following prerequisites in place:
- Basic knowledge of JavaScript and React concepts.
- Node.js and npm installed on your computer.
- Expo CLI globally installed in your machine using
npm install -g expo-cli. - A code editor like Visual Studio Code.
- A mobile device with the Expo Go app installed for testing.
Step 1: Set Up the Project
Our first task is to set up the React Native project using Expo. Open your terminal and execute the following commands:
1) Create a React Native App
2) Navigate to the Project Directory
3) Start the Development Server
This will generate a new React-Native project named “todo-app” and launch the development server.
Step 2: Create the App Component
Now, let’s create the App component, the entry point to our Todo List application.
Step 3: Create the TodoList Component
In this step, we’ll create the TodoList component, which will manage the list of tasks and handle task-related functionality.
Explanation:
- Import Required Modules: We start by importing the necessary modules for our
TodoListcomponent. - Define TodoList Component: We declare the
TodoListfunctional component, our central component for managing the todo list. - State Hooks: Using the
useStatehook, we initialize two state variables:tasksto manage the list of tasks, andtextto handle the input text for adding new tasks. Thetasksstate is initially set with two example tasks. - Function to Add Task: The
addTaskfunction creates a new task object with a unique ID, the input text, and completion status set to false. It then updates thetasksstate by adding the new task and resets the input text. - Function to Delete Task: The
deleteTaskfunction removes a task with a given ID from thetasksstate using thefiltermethod. - Function to Toggle Task Completion: The
toggleCompletedfunction toggles the completion status of a task with a given ID. It uses themapmethod to create a new array of tasks with the targeted task's completion status flipped. - Render TodoList Component: The
TodoListcomponent renders the list of tasks using themapmethod, passing each task to theTodoItemcomponent. It also includes aTextInputfor entering new tasks and aButtonto trigger theaddTaskfunction.
Step 4: Create the TodoItem Component
In this step, we’ll create the TodoItem component, which represents an individual task in our Todo List.
Explanation:
- CheckBox: The
CheckBoxcomponent represents the completion status of the task. Its value is determined by the task's completion status, andonValueChangetriggers thetoggleCompletedfunction when the checkbox is interacted with. - Text with Styling: The
Textcomponent displays the task text. The styling includes a line-through decoration if the task is completed. - Delete Button: The
Buttoncomponent provides a delete button with an "X" label. Pressing the button triggers thedeleteTaskfunction.
Step 5: Styling
To enhance the visual appeal of your Todo List, let’s apply some basic styling. In your project, create a file named styles.css and add the following styles:
Now, let’s import the styles.css in your TodoItem.js file to apply the styles locally:
Explanation:
.todo-item: Applies a flex layout to each todo item, aligns items horizontally with space between, and adds some padding, border, and border-radius for a neat appearance..todo-item-text: Allows the text to take up the remaining space, adds right margin, and changes text color..completed: Adds a line-through decoration and changes text color for completed tasks..delete-button: Styles the delete button with a red background, white text, padding, and border-radius. It also provides a cursor pointer for interaction.
That’s a wrap! Congratulations on building your own Todo List app using React Native. Throughout this guide, you’ve grasped the ins and outs of React Native components, state management, hooks, props, event handling, and spiced things up with a touch of styling. Now, let’s reflect on what you’ve achieved and think about what’s next.
Final Thoughts
Building a To-Do List app is just the tip of the iceberg in your React Native journey. With the solid foundation you’ve laid down, it’s time to think about where to go from here. Consider adding features like task editing, drag-and-drop reordering, or diving into backend integration to take your app to the next level.
And hey, why stop there? If you’re up for a challenge, explore real-time chat and social features to make your app more interactive. Take a peek at what Social+ Chat SDK and Social+ SDK have to offer — it might just be the missing piece for your next big project. Also, If you discover that a ready-made solution for chat, social, and live-streaming aligns with your business goals, don’t hesitate to kickstart things by contacting Social+!
As you continue coding and learning, remember that every line of code is a step forward. So, keep at it, explore new horizons, and embrace the exciting world of React Native development. Cheers to your coding journey!

