The course registration screen glared back, its red and white pixels delivering a verdict I couldn’t accept. After nearly four years of meticulous planning, countless meetings with my advisor, and wrestling with Excel spreadsheets to map out my degree, my path to graduation came down to one, non-negotiable roadblock.
A night class. A required, three-hour-long night class on Software Development in Contemporary Languages.
It felt like a cosmic joke. All my careful scheduling had been undone by a single, inconvenient course offering. To complete my Management Information Systems (MIS) major—a goal I had dedicated a significant portion of my life to—I had to sacrifice my evenings to a class that didn’t align with my career aspirations. There had to be another way. This wasn’t just an inconvenience; it was a challenge. And I was determined to find a creative solution.
“Dr. Tanaka? My name is Thomas Frank. I was told you’re the person to talk to about arranging an independent study…”
Trading the Classroom for Code: Proposing an Independent Study
It’s a common reality in higher education: not every required course in a curriculum provides tangible value to every student. The night class I was facing was a perfect example. While valuable for some, its content was irrelevant to my specific goals. What I truly needed wasn’t another programming language; it was a practical, real-world project.
At the time, my blog, College Info Geek, was growing, but it had a major flaw: it was completely unoptimized for mobile devices. Readers had to pinch and zoom just to read an article, creating a clunky and frustrating user experience. My solution was to build a dedicated iPhone app to deliver my content in a clean, mobile-native format.
That’s when the two problems collided and created a single, elegant solution. Could I turn my plan to build an iPhone app into an independent study course? Could I earn college credit for a project I was already passionate about and, in the process, replace the mandatory night class?
After a few inquiries and a bit of paperwork, the idea moved from concept to reality. I had successfully pitched the project. My independent study was approved. The night class was off my schedule. Now, I just had one small task ahead of me: learn how to build an iPhone app from scratch.
My First Attempt at App Development (And Why It Failed)
How do you learn a new, complex skill? In a pre-internet world, the answer was simple: you go to a bookstore. Being a lover of physical books, I drove to the nearest Barnes & Noble and picked up a thick manual on iPhone development.
I spent the next few weeks attempting to absorb its contents, but my progress was virtually nonexistent. The book sat on my desk, a monument to good intentions but poor execution. My time was fragmented. I was deeply invested in learning Japanese, writing articles for the blog was a constant priority, and a dozen other commitments vied for my attention. The monumental task of building an entire app felt too abstract and overwhelming to tackle in short, unfocused bursts.
I needed a dramatic shift—a way to force myself to focus. That’s when my friend Alex sent me a link that would change the trajectory of my project: a website for an event called FinishUp Weekend.
“It’s like a Startup Weekend, but for actually finishing your projects!” I thought. This was the perfect catalyst. It offered a dedicated block of time, a new environment, and a community of like-minded people all focused on one thing: making tangible progress. Without a second thought, I booked a $600 flight to Austin, Texas.
Down to Silicon Hills: The Power of Immersion
Austin felt less like a city in Texas and more like a southern outpost of Silicon Valley. The air buzzed with entrepreneurial energy. Coffee shops were filled with developers and designers tapping away on MacBooks. It was the perfect environment to immerse myself in a tech project.
I was staying with my friend Alex, the same one who recommended the event. At just 19, Alex was already a success story, running a profitable WordPress theme business and having previously sold a blog for $20,000. Being around his focus and drive was infectious.
We spent the days leading up to the event exploring the city and working from cafes, a welcome escape from the Iowa winter. But the main event, the reason for my trip, was FinishUp Weekend.
The Breakthrough: Finding the Right Tools and Mentors
FinishUp Weekend wasn’t a conference in the traditional sense. There were no speakers or rigid schedules. When we arrived at the venue, Chicon Collective, a cool brick warehouse in a residential neighborhood, we found a space designed for one purpose: work. It was filled with tables, comfy couches, reliable Wi-Fi, and a community of writers, entrepreneurs, and developers all laser-focused on their own projects.
We met the organizer, Andy Keil, who encouraged us to find a spot and dive in. I explained my goal for the weekend: to finally make serious headway on my iPhone app. His response was immediate.
“You’re building an iPhone app? You have to talk to Josh.”
As if on cue, Josh Long appeared. Josh worked for Treehouse, an online learning platform specializing in video tutorials for tech skills. He told me that Treehouse had just launched a new video course on how to build a blog reader iPhone app. It was the exact project I was trying to create.
Suddenly, the path forward was clear. I had the dedicated time, the focused environment, and now, the perfect resource. I plugged in my headphones, opened my laptop, and for the first time, felt like my goal was within reach. We worked deep into the night, fueled by the collective energy of the room.
From Zero to “Crystal Ball”: My First iPhone App
The journey to building an iOS app starts with a few key steps. First, you need to download Apple’s development software, Xcode. Second, if you ever want to publish your app on the App Store, you need to purchase a $99 Apple Developer License, which I did right away to hold myself accountable.
With the setup complete, I logged into Treehouse. Since I had zero experience with Objective-C, the programming language used for iOS apps, I started with a beginner course: Build a Simple iPhone App. This project was a “Crystal Ball” app that would display a random fortune when the user shook the phone or tapped the screen.
Following the video tutorials, I learned the fundamentals of Xcode’s interface, Objective-C syntax, and the basic structure of an app. Within a few hours, I had a working application running on my phone. It was a simple app, but it was a massive victory. I had built something from nothing. I was no longer just reading about code; I was writing it.
Hitting a Wall: When Online Courses Aren’t Enough
Buoyed by my initial success, I moved on to the main event: the Build a Blog Reader iPhone App course. This tutorial taught me how to create a list view that could pull blog post titles from an external data source. I was making incredible progress until I hit a major snag: the course was incomplete. Treehouse hadn’t finished producing the videos, leaving the project half-finished.
By the time FinishUp Weekend concluded, I had a solid foundation but an unfinished app. Still, the event was a resounding success. I had learned more in 48 hours than I had in the previous month. After an after-party and a long goodbye, I headed to the airport, only to be delayed for two days by high winds and a blizzard back home. My journey was full of unexpected hurdles, both in code and in travel.
The JSON Saga: A Deep Dive into a Technical Hurdle
Back at my desk in Iowa, I tried to resume work on my blog reader app. The Treehouse tutorial used its own blog’s data feed, which was formatted in something called JSON (JavaScript Object Notation). In simple terms, JSON is a lightweight format for structuring and sending data, and it’s how my app would receive the list of blog posts from my website. When I swapped the Treehouse URL with my own, the app showed a blank screen.
I quickly discovered that WordPress doesn’t produce a JSON feed by default; you need a plugin. I found and installed the correct one, but it still didn’t work. The Treehouse team had used a custom function in their website’s code to format the JSON feed perfectly for their app—a crucial detail not mentioned in the videos. Undaunted, I found the course instructor, Amit Bijlani, on Twitter and asked if he would share the code snippet. He graciously did.
With the new code in place, it finally worked! My app was successfully pulling the titles from my blog. But this was where the progress stopped. With the tutorial unfinished and my own knowledge still limited, I couldn’t figure out how to make the titles clickable to show the full article. I had hit another wall.
Pivoting Your Project: Exploring Appcelerator and Responsive Design
Instead of giving up, I pivoted. I remembered someone at the weekend mentioning Appcelerator, a platform that lets you build mobile apps using standard web technologies like HTML, CSS, and JavaScript. This seemed like a promising alternative, as I was more familiar with those languages.
I managed to create a prototype that pulled in my blog posts and opened each article in a web view. It was functional, but it wasn’t the native app experience I had envisioned. I was stuck again, unable to parse the data for a true native display.
This led me to my final pivot. If I couldn’t bring my content to a native app, why not make my website itself perfectly mobile-friendly? I dove into learning the principles of responsive web design. I taught myself how to use CSS3 media queries, which allow a website’s layout to adapt dynamically to different screen sizes. As a test, I completely rebuilt my personal website to be fully responsive. It looked great on any device, from a wide desktop monitor to a small phone screen.
The Final Grade: What I Learned by Building (Almost) an App
Here, for now, the story of my app development journey ends. I never finished a polished, publishable iPhone app. However, the project was far from a failure.
I learned the fundamentals of Objective-C and Xcode. I successfully built a simple app from scratch. I troubleshooted complex technical issues involving data feeds and APIs. I explored alternative development platforms. And most importantly, I learned the valuable skill of responsive web design, which I could immediately apply to my blog.
So, what about the independent study? I passed. In fact, this very story, written as a detailed project report, served as my final paper. I had successfully replaced a required class with a challenging, self-directed project that taught me more about problem-solving, persistence, and practical skills than any traditional lecture ever could. The moral of the story is simple: if you’re faced with a requirement that doesn’t fit your goals, don’t be afraid to propose a better alternative. You might just learn more than you ever expected.