100 Days of Code - Day 0
Tags: 100daysofcode, reactnative, webdev, codelog
Published: 2022-08-09 20:13:15

I've got ADHD, so the better I can plan my life out ahead of time, the more successful I will be. This post is gonna be a bit of a vague plan for the next few weeks, but at the very least, I have some sort of template for how the 100 days of code is going to go. Additionally, if something were to go wrong, at least I can say exactly where and what went wrong, and it will allow me to tweak things so that things don't go wrong in the future.

In the programming world at least, it's super easy to get overwhelmed. There's so much to learn and there are new updates and features coming out every day it seems. All this pesky updating of your internal systems means that it's super easy to forget just why you got into coding, or at least why I got into coding. It's fun!

So, in the interest of continuing to have fun, while also getting to learn something new, I am going to attempt the #100DaysOfCode challenge. Starting today, I will spend time every day for the next 100 days learning the ins and outs of React Native.

This post is going to lay out my current situation and battleplan. The first step in sticking to a plan is to make the plan in the first place, so here's how I plan on completing the 100 Days of React Native. To give credit where due, this agenda is pretty much directly taken from [100 Days of Swift](https://www.hackingwithswift.com/100). As I'm already familiar with the principles behind JavaScript, React, and TypeScript, I'll be jumping in with specifics about React Native.

## The Gameplan

## Tips

Because I like to hold myself accountable, I'm going to use this dev journal as a reminder to myself on keeping everything in perspective.

1. **It's a marathon, not a sprint.**
2. **Don't fall prey to shiny object syndrome**
3. **Don't lone wolf it.**
4. **Use the consolidation days.**

## Days 1-12: Introduction to React Native

The first 12 days of React Native are going to be a gentle warmup. I anticipate having an easy time adapting from React to React Native, so these will be easy days for me.

- Day 1 - Core Components
- Day 2 - Handling Input
- Day 3 - Using a ScrollView
- Day 4 - Using List Views
- Day 5 - Platform Specific Code
- Day 6 - Design
- Day 7 - Native Modules: iOS
- Day 8 - Native Components: iOS
- Day 9 - Native Modules: Android
- Day 10 - Native Components: Android
- Day 11 - TDD
- Day 12 - Wrap-Up Mini-Project Planning

## Days 13-15: Consolidation I

Since I've presumably managed to learn everything in these first 12 days, the next 3 are going to be spent building the Mini-Project I planned on day 12. This will allow me some much-needed review and consolidation of all of the knowledge I've gained.

## Days 16-22: Starting Development

This is where I'm going to start building real apps using the skills I've learned.

- Day 16 - Project 1, part one
- Day 17 - Project 1, part two
- Day 18 - Project 1, part three
- Day 19 - Project 2, part one
- Day 20 - Project 2, part two
- Day 21 - Project 2, part three
- Day 22 - Project 3

## Day 23: Consolidation II

I'll be writing a post on day 23 to assess how far I've come over the course of the previous 3-ish weeks.

- Day 23 - Milestone: Projects 1-3

## Days 24-31: Web Views, Input, and Auto Layout

The next three projects are designed to help me in developing user interfaces, and get experience with truly designing for Native apps.

- Day 24 - Project 4, part one
- Day 25 - Project 4, part two
- Day 26 - Project 4, part three
- Day 27 - Project 5, part one
- Day 28 - Project 5, part two
- Day 29 - Project 5, part three
- Day 30 - Project 6, part one
- Day 31 - Project 6, part two

## Day 32: Consolidation III

Once again, I'll be writing a retrospective about the past three projects to synthesize all that I've learned

- Day 32 - Milestone: Projects 4-6

## Days 33-40: Buttons, Touchables, and APIs

The next three projects will be focused on taking advantage of internet-based APIs as well as the fact that most mobile devices nowadays use touchscreens.

- Day 33 - Project 7, part one
- Day 34 - Project 7, part two
- Day 35 - Project 7, part three
- Day 36 - Project 8, part one
- Day 37 - Project 8, part two
- Day 38 - Project 8, part three
- Day 39 - Project 9, part one
- Day 40 - Project 9, part two

## Day 41: Consolidation IV

I've come a long way and at this point I've likely found out the sorts of limitations and advantages of Native development. I'm going to take this day to reflect on the last three projects, and also to plan for a final project that will be a synthesis of everything I learn over the 100 days.

- Day 41 - Milestone: Projects 7-9

## Days 42-49: A Whole New World

The next three projects will be focused on making grids, games, and saving user data

- Day 42 - Project 10, part one
- Day 43 - Project 10, part two
- Day 44 - Project 10, part three
- Day 45 - Project 11, part one
- Day 46 - Project 11, part two
- Day 47 - Project 11, part three
- Day 48 - Project 12, part one
- Day 49 - Project 12, part two

## Days 50-51: Consolidation V

Now that I've made it to the halfway point, I'll be reflecting and completing a little educational challenge.

- Day 50 - Milestone: Projects 10-12
- Day 51 - Expanding your horizons

## Days 52-58: Images and Animation

The next three projects will represent a move into richer user interfaces

- Day 52 - Project 13, part one
- Day 53 - Project 13, part two
- Day 54 - Project 13, part three
- Day 55 - Project 14, part one
- Day 56 - Project 14, part two
- Day 57 - Project 15, part one
- Day 58 - Project 15, part two

## Day 59: Consolidation VI

- Day 59 - Milestone: Projects 13-15

## Days 60-65: Maps and Bugs

In the next three projects I'll be tackling debugging and handling errors

- Day 60 - Project 16, part one
- Day 61 - Project 16, part two
- Day 62 - Project 17, part one
- Day 63 - Project 17, part two
- Day 64 - Project 18, part one
- Day 65 - Project 18, part two

## Day 66: Consolidation VII

- Day 66 - Milestone: Projects 16-18

## Days 67-73: Leveling Up

This will be two tough projects back to back, but in doing so I will learn about the amazing apps that can be built on Native frameworks

- Day 67 - Project 19, part one
- Day 68 - Project 19, part two
- Day 69 - Project 19, part three
- Day 70 - Project 20, part one
- Day 71 - Project 20, part two
- Day 72 - Project 21, part one
- Day 72 - Project 21, part two

## Day 74: Consolidation VIII

- Day 74 - Milestone: Projects 19-21

## Days 75-81: Accessing Data from Devices

- Day 75 - Project 22, part one
- Day 76 - Project 22, part two
- Day 77 - Project 23, part one
- Day 78 - Project 23, part two
- Day 79 - Project 23, part three
- Day 80 - Project 24, part one
- Day 81 - Project 24, part two

## Day 82: Consolidation IX

- Day 82 - Milestone: Projects 22-24

## Days 83-89: Enhancing React Native with Modules

- Day 83 - Project 25, part one
- Day 84 - Project 25, part two
- Day 85 - Project 26, part one
- Day 86 - Project 26, part two
- Day 87 - Project 26, part three
- Day 88 - Project 27, part one
- Day 89 - Project 27, part two

## Days 90-91: Consolidation X

- Day 90 - Milestone: Projects 25-27
- Day 91 - Final Project Planning

## Days 92-100: Final Project

In the final week or so of the 100 days, I will synthesize all that I've learned into a final project. I will document every aspect of the design and construction as I work on it.