One Month Later

12/16/2014

It’s been a month since I’ve started working on my app, and a little more than two months since I started programming in Objective-C. Every time I think about it, it feels kind of crazy how much I’ve come since then.

While I gained a broad knowledge of iOS development learning from the textbook in the first month, I really solidified that understanding by constantly practicing the concepts while working on my app in the past month.

A month ago I wasn’t even comfortable transitioning between view controllers. Passing data between view controllers was an even bigger challenge for me, one that often required going back to my textbook or looking for a solution on Stackoverflow. Now when I want to do the same thing? Easy, throw in a protocol declaration and implement the delegate methods. This might now take me maybe a few minutes to do when it used to take me hours of research and implementation just a month ago.

I’ve become really comfortable creating my own custom UIViews to insert into other views, and even more so with frame animations. It’s really given me the confidence to try out UI tricks that I wouldn’t have thought I could pull off in the past.

Core Data was one part of iOS development that stumped me for a really long time when I first learned it. It took me almost 3 days of hours on hours of trying to wrap my brain around saving and accessing one of my entities. I actually spent one whole day just getting an NSPredicate to work with a database search. While I’m still pretty far from being good with Core Data, in the last month I’ve moved on to making a slightly more complex database with several entities and relationships in my app.

Speaking of my app, it’s getting closer to what it should look like as a final product. The main functions and backend storage have actually all been finished, and the only things left to do is the data presentation. This last part has actually been stumping me for the last week or so, and I’ve been putting most of my time into thinking of ways to present the data collected by the app. In addition, I’ve also been working on adapting code from an open source calendar to make a custom calendar view for my app. It’s been a new kind of challenge to pick apart code written by other developers, and I’ve learned a few good code practices from them.

Even though my app is mostly finished, I’m guessing it’s going to be at least another month (if not more) before I’m ready to submit it to the app store. Figuring out an effective data dashboard is going to be tricky, though I’m going to do a little bit of reading on it from a book I recently bought. After that, I’m most likely going to do a lot of testing on it if I can convince my friends to test for me (lol). Even after all of that, I’m definitely going to have to learn photoshop to make the app icon, splash screen and other images. There’s so much left to do and the more I work on my app, the more I’m convinced this is going to be a multi-month project. It’s a little scary to think of all the new things I’ll need to learn to finish this app, but I guess when you switch into the Computer Science field you’re always going to be learning something.

One of the important things I’ve learned from programming this last month is that it’s a good idea to pick a first project that’s challenging enough to push you in directions to learn new things, but also not too challenging that it would too hard to attempt for a beginner. If I end up finishing my current app, my next project is most likely going to be working with JSON data and the League of Legends API; I had an idea a few days ago that I’m really excited to try out!

Written on December 15, 2014