Dmitrii’s ChooChoo App Takes on Public Transport
In the heart of 42 Wolfsburg, where students are encouraged to harness the power of hands-on learning, Dmitrii Grigorev has turned theory into application. His creation, the ChooChoo App, seeks to simplify the complexities of public transportation in Germany, marrying functionality with user-centric design, all born from the seeds of our project-based learning environment.
Dmitrii, originally from Kazan, Russia, has an intriguing background that spans various fields. He studied radio electronics at university for five years but chose not to pursue a diploma due to the military focus of his coursework. Instead, he worked in cinema as an editor and camera technician from 2015, then transitioned to freelance digital colorist, specializing in color correction for films, commercials, and music videos. In 2021, Dmitrii began learning programming at School21 (42 Kazan) and moved to Germany in 2022 when his wife, also a 42 student, found a job there, leading them both to transfer to 42 Wolfsburg.
At 42 Wolfsburg, we replace traditional lectures with a dynamic, project-based approach that immerses students in technology and problem-solving. This educational model encourages not just coding proficiency but a deeper engagement with real-world issues, preparing students to craft innovative solutions.
ChooChoo App Overview
Designed to enhance the experience of navigating public transport, ChooChoo stands out through its minimalist design, intuitive navigation, and thoughtful features like real-time journey tracking and day-part journey insights. Privacy is paramount, with all data securely stored on the device, reflecting Dmitrii’s commitment to user trust.
ChooChoo goes beyond typical route finders by offering a seamless, more intuitive user experience that makes public transit more accessible and less intimidating. It’s designed not only to improve how people travel but to support sustainable urban mobility.
Our Interview with Dmitrii
What sparked the idea for ChooChoo during your time at 42 Wolfsburg?
“My biggest hobby is coming up with ideas and developing projects, and mobile development suits me well for this hobby. During the Common Core curriculum at 42 Wolfsburg, I experimented with Android and web development but ultimately chose iOS, Swift, and SwiftUI for my projects. After completing the Common Core, during my Swifty-Companions 42 project, I realized that finding my first job might take some time. So, I decided to start a big iOS project to fill the gap and gain practical experience. I needed something simple yet problem-solving. While travelling frequently by train from Neuss to Wolfsburg, I noticed that the DB app was a bit overcomplicated, especially with the introduction of the 49-euro ticket. This inspired me to create my own transport app, primarily for educational purposes and personal use.”
How have your past experiences influenced ChooChoo’s design?
“My previous projects significantly influenced ChooChoo’s design. For instance, my first big project, ft_transcendence, taught me the importance of choosing the right architecture from the start to avoid suffering later. Additionally, I initially borrowed many modules from my Swifty-Companions project to build ChooChoo.”
What major challenges did you face while developing the app, and how did you overcome them?
“One of the biggest challenges was staying motivated over the 9 months of development, especially with uncertain results and feedback. Coping with perfectionism was another hurdle, as it was easy to spend an infinite amount of time polishing a feature to meet my quality standards. Moreover, developing clear, reusable, and readable code, particularly at the beginning of the project, was challenging.”
What technologies power ChooChoo, and why did you choose them?
“My dream is to become an iOS Engineer, so I chose Swift and SwiftUI as the base language and framework for ChooChoo. Additionally, I used Combine Feedback for a unidirectional architecture based on the Combine framework, CoreData for the local database, MapKit for maps, Async/await for concurrency, OSLog for logging, and TipKit for user tips.”
What personal insights have you gained from this project?
“One key insight is that I should have deployed the first MVP earlier than I did. This would have allowed me to gather feedback and iterate more quickly.”
What future plans do you have for ChooChoo?
“I have about 40 tickets in Jira for future development, including translating the app to German and adding new features. I also hope to potentially collaborate with DB or Hacon and transform all singletons into separate modules.”
What unexpected lesson did you learn through this project?
“I learned that learning German is much more important for getting a job in Germany than I initially thought.”
Any advice for fellow developers dreaming big?
“My advice is to work on problem-solving pet projects, as they are incredibly helpful for gaining initial development experience and addressing real-world problems. Most importantly, follow your dream!”
Dmitrii’s development of the ChooChoo app demonstrates the real-world application of 42 Wolfsburg’s educational model, which emphasizes project-based learning and problem-solving. This project not only offers a practical solution to an everyday issue but also serves as an example of how targeted education and persistence in application development can lead to significant, user-focused innovations. As ChooChoo evolves, it continues to reflect the potential for technology to improve public services effectively.
Dmitrii’s journey from identifying a problem to deploying a solution illustrates the transformative potential of combining coding skills with a clear focus on user needs, setting a path for future developers interested in making a concrete impact through technology.