An app to connect individuals over similar interests.
This app had many names: Rally, Lighthouse, Beacon, etc. And it had about twice as many iterations and redesigns. This was my first dive into serious software development and was a critical point in my journey as programmer.
Feel free to skip
So, another social media app. Haven't we had enough of those? That was actually one of my biggest and why I was ashamed to talk about it. This project was a continuation of an idea I had in high-school. Way back then, I coded up my first website in PHP. It started from an idea I had in a shower. I was having one of those lonely depressing days we all get as teens once in a while. It was a hot summer day and I was stuck indoors with a desire to go surfing and to learn how to ride a motorcycle (no really, this was my actual thought process). But I was only 17 and none of my friends had a motorcycle nor did any of them express the desire to go surfing. So I was too young to go out there and do it myself and too broke for any alternatives. Well, what would have been cool? To have something like a big brother to teach me both of those things. But that meant meeting people. Whhooo probably didn't live anywhere in my vicinity. Now I could have probably gone on Craigslist back then and written up some ad about the whole idea, but I liked my kidneys. The other alternative was Facebook, which I can't remember now if I deleted my account then before or after this idea came up. Nonetheless, it felt like towards the end of my highschool days was when Facebook was on the decline for my generation and people mostly moved onto hotter apps at the time like Snapchat and Instagram. Even still, I don't think Facebook 'Groups' was a thing at the time, so that wouldn't have been an option. Still, the problem with all of these platforms for me was their underlying algorithms: they were designed to connect you with people you know and let you slowly branch out to people you 'may' know. Well, what if you don't want nor care about people in these circles? What if you wanted to connect to people way outside? What if like me, you wanted to befriend someone who can teach you to surf and ride motorcycles far away? Well that was the idea behind that website I made at the time (called OneGroup...yikes, sounded like a cult) and then again when I got into college. So the year was 2015, and although the iOS App Store has been active for quite some time, it felt like there was a newfound buzz in the air for mobile applications. Just a year prior, Apple released their new language for iOS development called Swift. Why is this all about Apple? Well, I had two devices at my disposal at the start of college: an old Macbook Air and my trusty iPhone 5S. So naturally, I gravitated towards working with tech I already had access to and could test builds on natively. So I had a faint desire to learn what all the excitement was about and no better time to learn than with the introduction of a shiny new language that promised a lower-barrier to entry than learning Objective-C. Just so happened at the time that Apple had a built-in app on the iPhone called iTunes U (RIP, 2021) and me being a broke college student, I decided to look there first to learn Swift. And the highest course I found on that platform was Paul Hegarty's CS193 course from Stanford. (It is funny how sometimes events like this just line up by chance in our lives) The rest as they say...is history.
When I set out to build this app, I knew nothing about iOS development. More specifically, I never had to build a program that interacted with the hardware on so many levels. This entire project was my learning curve and it lasted about 3 years, give or take, with various procrastination phases sprinkled throughout. Each time I learned something new, I tried to add it to the project.
The app was originally laid out with XCode's Interface Builder and later when I learned about building dynamic layout changes with code, I switched to that. I tried to mimick the feel of the standard Apple App, as I felt this would result in the easiest onboarding for new users. A strong guiding stone on this journey was Apple's Human Interface Guidelines, a collection of principles for designing apps for Apple devices.
By extension, over the years I would strive to implement principles outside of design that Apple stressed, including security, accessibility and localization. I intended for this app to be used all over the world, so I approached the UI to be as flexible as possible when it came to implementing i18n localization. It was designed to be easily flipped for right-to-left languages and the UI was meant to dynamically expand and contract to play well with different languages and their encodings. This also paid off when implementing accessibility features as this allowed users with poor vision to be able to increase the size of the content without breaking the application.
Although when I set out to build this app I intended for it to become a published production-grade app, it instead wound up being a long learning experience and nothing more. There is always a possibility that one day I will return to it and remake it again with my new knowledge and experience and share it with the world. However, I feel my most recent project, Breakroom, is already becoming that. So this app and its code will forever remain in development hell as another project in my long list of C:/Desktop/random-project/random-project_5000_FINAL unreleased and unrealized creations.
And I hope it also explains my small list of existing projects. I never cared much to build calculator apps or some classroom based project to show off my skills. It has always been that a particular goal or vision in mind dictated how I went about my life. There is always an end goal 'build a small mobile app to let users all over the world connect over interests', and then I figure out the steps that I need to get there to make it happen.
And as Ray Bradbury said and Reid Hoffman later rephrased: "first you jump off the cliff and [then] you build your wings on the way down."
If you want to send me specific feedback, please do so on the Contact Page. Thank you!