Next Broadcast

Learn React Native by creating a Stardew Valley companion app!

chaiinchomp Code and Eng DK30 Spring 2021 1 1

Description

Mobile development has always been something I’ve been super fascinated with and wanted to get better at, and during a recent Stardew Valley playthrough I realized that while there are a lot of companion apps for the game out there, none of them have all the features that I want. So I decided to merge these two interests and make my first real venture into mobile development with a comprehensive Stardew Valley companion app! I won’t finish the whole app in 30 days, but I picked out several features that I think I can accomplish.

Recent Updates

chaiinchomp 4 years ago

Intro post

I wanted to give a little background info here to explain my plans & goals for the project.

I started my software dev career as a backend engineer, and while I enjoyed it a lot, I always felt limited with my capabilities since I couldn’t make an entire product end-to-end. I had an opportunity at my job to learn React, so over the last 2 years I’ve been working hard to learn it and transition to a full-stack engineer. My ultimate goal is to be able to create websites and apps for things that I love (like video games) that can produce enough income on the side for me to live on while I continue creating things I’m passionate about.

That’s a long way off - but I have already started on a number of things that will help me achieve that goal. Last fall I launched an open-source website for the game Old School Runescape that ended up with more than 20,000 unique users over two months. It was a ton of fun for me and reignited my passion for programming. I loved watching it grow through word-of-mouth and seeing people enjoying something that I made, which is something that corporate software development has never been able to do for me.

I want to continue that momentum and passion with a new project, but I had no idea what it might be until the other day when I fired up Stardew Valley for a new playthrough on the 1.5 update and realized that there was a hole in the market for a proper companion app with all the tracking features and info that people are looking for. There’s a lot of apps out there but none provided everything I wanted, and most are abandoned and not updated for the recent patches. I decided that making my own app would be a great way to get into mobile development (something I’ve always been fascinated with). I also want to use this as a proof-of-concept for how I can monetize my passion projects, and will be releasing the app with a free ad-supported version and a paid ad-free one.

I decided to go with React Native for a few reasons - namely that I already have built up a lot of experience with React, and it will be relatively easy to port the app to web afterwards. I’ve chosen to learn a few other technologies and frameworks along with this as well. I’ll be using Typescript for all my JS code, which I’ve experimented with and really enjoy so far and want to see how it’ll go in a full-scale project. I’ll also be using the Expo framework for developing the app, since it streamlines the process of writing React Native code quite a bit and should enable me to port the app to iOS without learning objective-C or swift.

Overall I think it’ll be a fun project and will help me build some new skillsets that I can continue to build on in the future!

The weekly goals that I set are likely to shift a lot as I go, but I picked out a few features for now that I think will be good to start with. I don’t expect to have a fully finished app by the end of this - but I will have made a really good starting point.

Estimated Timeframe

Mar 1st - Mar 31st

Week 1 Goal

  • Get my development environment set up and play around with some demo apps to get the hang of the basics
  • Work on my first feature: completion checklists for community center bundles, learned recipes, caught fish, shipped items, and so on. Use dummy data for now, real data can be filled in later.
  • Learn about storing user data to make the checklist state persistent

Week 2 Goal

  • Work on second feature: calendars for tracking townsfolk birthdays and other holidays/events
  • Create info cards to display data about the person or event when clicked on (such as which gifts they like, or what prizes are available at the event)

Week 3 Goal

  • Expand on info cards from last week and create a searchable database of game info (again dummy data is ok for now)
  • Includes things like: villager likes/dislikes, shop stock and prices, sell value of items, monster drop tables, fish locations and catch rates

Week 4 Goal

Add character tracker features:

  • Track what crops you have planted and show on a calendar when they will be ready for harvest
  • Make a daily chores checklist that the user can customize for what they plan to do each day (eg. “Talk to Penny”, “Forage at the beach”, and so on)
  • Add a button to “Go to next day” which resets the daily checklist

Tags

  • video games
  • stardew valley
  • mobile development
  • software development
  • react
  • personal development