One of the most common pieces of advice given to new developers is “Build. Build. Build.” Build something. Build anything. You’ll learn far more by building. This is superb advice. Building projects from scratch, rather than following tutorial after tutorial, will lead to a far more thorough understanding of the technologies you’re working with. A natural question then follows, ‘What should I build?’ Many professional developers will instinctively react with, “A Todo List app”.
It’s understandable why up and coming devs will find this answer less than thrilling. ‘A Todo List? I want to build the next Facebook, Twitter, Netflix, etc. Checklists are boring.’ Like a novice musician who’s told to continuously practice scales, without ever being told why they’re important, this exercise can seem deflating. Let’s shed some light on why everyone is telling you to build this project.
What You’ll Learn From this Project (CRUD)
In building a Todo List app, you will learn the core concepts of modern app development. These requirements are so common, we’ve created an acronym for them - CRUD.
CRUD
-
Create
-
Read
-
Update
-
Delete
Let’s briefly go over how your Todo List app will address these.
Create
Every app needs to be able to accept, and properly handle, user input. When a user of our app adds an item to their checklist, we must be able to listen to that event, and store the data they’ve given us. This data must persist somewhere, so that it can at some point be read.
Read
The ability to read our data is imperative so that we can display the data that we’ve created to our user. The user must be able to visualize and interact with their data, otherwise our app isn’t serving its purpose.
Update
When a user has completed a list item, they’re going to want a way to express that. This is where we implement functionality to allow our user to check off an item, or mark it as complete. This is updating data that already exists. When we initially added the item, it was incomplete, now we’ve modified it to show otherwise.
Delete
Once we’ve checked off enough list items, it would be nice if we could remove them to make room for future todos. Our app must possess the ability to remove this data. That way, when the data is read again, it will no longer be displayed to our user.
A good Todo List app will cover all of these key concepts and serve as excellent foundational knowledge for when you begin to build larger apps in the future.
What does this have to do with me building the next Twitter?
At the end of the day, the Twitters, Amazons, Netflix's of the world, are all giant elaborate todo lists. We create data when we add an item to our carts on Amazon. We update data when we “like” a Tweet. When we remove something from our Netflix queue, we delete that data.
The way these applications handle and process that data at such scale will obviously be more complex than our first checklist app, but the core concepts remain the same. We must understand first principles before we can add complexity.
As in most pursuits, the fundamentals are typically not where the most fun and excitement lies, but we need a solid foundation to build upon if we want to achieve greatness. The Todo List app is a critical first step in learning to code, and will serve you immensely in your pursuit to build the next killer app.