Joining an internal project is an exciting step in my journey as a software developer. It gives me an opportunity to move beyond learning concepts and start working on a real project with other developers.
Recently, I joined an internal project called Wapi, where I was assigned to work on the mobile frontend. This was an opportunity for me to explore mobile development, understand an existing codebase, and learn how to prepare my development environment before writing new features.
In this article, I share how I started exploring the project, the tools I set up, the challenges I encountered, and what I learned along the way.
Getting Started with Wapi
My first step was to understand the project structure and identify what was already available in the repository.
Rather than immediately writing code, I wanted to understand how the project was organized, which technologies it used, and how the mobile frontend would communicate with the backend.
I explored the repository, checked the existing files, and reviewed the available documentation to understand the project's requirements.
I also checked the backend to understand how it worked and which endpoints the mobile application would need to use. The backend was already responding locally, which gave me a starting point for understanding how the frontend and backend would connect.
Some of the important areas I needed to understand included:
- User registration and login.
- Communication between the frontend and backend.
- The structure of the existing mobile application.
- The tools and dependencies required to run the project.
This taught me an important lesson: before contributing to an existing project, take time to understand what is already there.
Setting Up My Mobile Development Environment
After exploring the project, my next task was to prepare my development environment.
The project uses React Native for mobile development, with Expo tooling in its development workflow. I needed to check the installed tools and make sure the project dependencies were available.
I started by checking my Node.js and npm versions:
node --version
npm --version
Initially, I was using an older version of Node.js. Some of the project's dependencies required a newer version, so I updated my Node.js environment.
I then checked whether the package manager and project dependencies were available.
For projects using Expo, I also needed to understand how Expo starts the development server and helps developers run and test mobile applications.
These checks helped me learn that setting up a project involves more than downloading its source code. The correct runtime, package manager, dependencies, and project configuration all matter.
Understanding the React Native Toolkit
One of the things I explored was the React Native ecosystem and the tools used to develop mobile applications.
React Native allows developers to build mobile applications using JavaScript or TypeScript and React concepts. Instead of building the entire application separately in native Android and iOS languages, developers can use React Native components to create mobile interfaces.
Expo provides additional tools that simplify the development process, including running the application and testing it during development.
Some of the concepts I started exploring were:
- Components: Reusable building blocks for mobile interfaces.
- Props and state: Ways to pass information to components and manage changing data.
- Navigation: Moving between screens such as Home, Profile, and Login.
- API integration: Connecting the mobile interface to the backend.
- Dependencies: Libraries and tools the project needs to run.
I realized that mobile development is not only about designing screens. It also involves understanding application structure, data flow, navigation, and communication with backend services.
The Challenges I Encountered
Like many developers working with an unfamiliar codebase, I encountered setup issues along the way.
One of the challenges was dealing with Node.js version compatibility. The installed version was older than the version required by some of the project's dependencies.
I also encountered an issue when trying to start the application with Expo. The development tool could not determine the project's Expo SDK version because the Expo package was not installed in the project I was trying to run.
These errors reminded me of the importance of checking the project's package.json, reading error messages carefully, and confirming that I am working in the correct project directory.
Instead of treating the errors as reasons to give up, I used them as opportunities to understand how development tools and project dependencies work.
I learned to approach troubleshooting step by step:
- Read the error message carefully.
- Check the installed versions of the required tools.
- Inspect the project's configuration files.
- Verify that the required dependencies are installed.
- Try running the application again after correcting the issue.
This approach helped me become more confident in troubleshooting development environments.
What I Have Learned So Far
Working on Wapi has helped me appreciate the importance of preparation when joining an existing software project.
So far, my focus has been on understanding the codebase, checking the backend, preparing the mobile development environment, and exploring the React Native and Expo workflow.
I have also learned that frontend development requires collaboration with backend developers. A mobile interface may look correct, but features such as registration and login also depend on the API, request format, authentication flow, and server responses.
This experience is helping me develop a more systematic approach to learning new technologies and contributing to team projects.
What Comes Next?
My next goal is to become more familiar with the existing mobile screens and understand how the different parts of the application fit together.
I want to work towards implementing and connecting the mobile interface to the available backend endpoints, testing the user flows, and contributing useful features to the Wapi project.
I also look forward to learning from other developers, asking questions when I get stuck, and improving through practical experience.
Final Thoughts
Joining Wapi has been another step forward in my software development journey. Being assigned to the mobile frontend has encouraged me to explore a new area of development, work with an existing codebase, and learn how to troubleshoot environment issues.
I am learning that becoming a better developer is not just about writing code. It is also about understanding systems, investigating problems, learning from errors, and working with others to build something useful.
This is only the beginning of my mobile development journey, and I am looking forward to sharing more of my progress as I continue working on Wapi.
Have you ever joined a project that used a technology you were still learning? How did you approach the setup and learning process? I would love to hear your experience in the comments.
Top comments (0)