I have just decided that I should learn my first object-oriented language, Objective-C. Objective-C is for iOS and Mac development and it allows people to create beautiful products. I have a few ideas for apps, but I’m going to learn the language first. Plus, I have a computer in front of me and the ability to learn, so I have no excuse not to learn!
I am planning on learning by following some online tutorials.
I am watching some of the tutorials on Team Treehouse. If you visit their site, it is a paid membership, but I emailed them saying I’m a student wanting to learn and I got it free for 6 months (which is loads of time). I am also using the Stanford CS193p course on iTunes-U for some of the fundamentals. I took less than an hour to go through all of the Hello World stuff. I have made a few demo hello world apps, too. I think that is great progress so far. I understand all the very basics like when to use class methods and when to use instance methods. Also some stuff like NSLog’s and some of Objective-C’s syntax.
Even though I have school every day, I will try spend at least four/five hours a day every day (way more on the weekends!) and hopefully learn something awesome by then. :)
Today I learned a ton of stuff done in Objective-C. I learned how to deal with strings, Automatic Reference Counting, Strong qualifiers vs. weak ones like:
@property (nonatomic,strong/weak), instance variables, class variables (not so familiar with these yet…), and the X-Code StoryBoard!
I still haven’t even scratched the surface but I think I did pretty good so far! The team treehouse tutorials have helped me the most so far but they don’t have everything so I looked in the apple documentation and it’s great! I am also spending lots of time on StackOverflow but I’m trying to figure things out myself rather than to rely on other people’s answers. Also, I have built a simple prediction app where I can ask a question and it randomly generates an answer. It isn’t much, but I think I’m grasping the Objective-C syntax although I do think it is a bit rigid.
I am thinking of building a simple but problem-solving project after I get a good amount of knowledge on Objective-C so that I can dive right in! I have a few ideas about the app I should build but I’m not sure if the app will be easy or extremely hard to build.
Learned a lot of new stuff in Obj-C like Web-Views (inserting html, loading a html or pdf page, or loading an actual website) and making a Safari type application with forward and back buttons.
I have been watching a lot of videos and doing a lot of quizzes and homework they give. One really good thing about TeamTreehouse is that it makes you pass all of your quizzes before they let you move on, so if you don’t pass, you either have to re-watch the video (the stuff they ask on the quiz/test is always in the video) or post in their forums. But the quizzes are easy. Another good thing is that their videos are only like 7 minutes long (they have a lot of videos, though) so I don’t fall asleep (the Stanford cs193p videos I watch are like 1+ hours long and I usually stay up until about 12-2am learning and coding).
This is what I plan on learning next:
- More about Web Views
- Core Data
I am still thinking of ideas for an app that I can make and isn’t too complex.
Today, I learned a lot about Web Views and I built a replica of the mobile safari app. My app has simple back and forward buttons and a google page where you can search. It’s a really simple version of mobile Safari. Also learned a lot about StoryBoard (such as the interface, segues, linkers, and other such stuff)
I also finally thought of a project I want to build that is simple enough but is useful. I might write a post about it when it is finished. If I do, I will post the link.
“How many times have you had an idea that is great but you forget? I do a lot. This is an app where you can write down all you ideas before you forget them. Ranging from an idea about a recipe to a super-genius invention idea. Whatever it is, you won’t forget, because now you have this app!” I still have to learn along the way. I have to learn about Core Data and a bunch of UI (user interface) stuff before it is fully done, but I will just make a functional version first.
The project itself isn’t very hard, but I still have to learn. I’m super excited Check back soon for more about my experience on how this project goes (if I successfully make it, or it miserably fails).
I built a lot of stuff in the app. I learned the core data stuff for iOS development and I built a simple version that allows the user to write down their ideas with a simple + (add) sign on the top corner on the main view. The app allows them to save their ideas after writing them. Then, they have a table view with their idea displaying. I also added a simple rating system where the user can rate their idea, but it needs a lot of work to be nearly useful. Before you ask, there are bugs on this app, but its getting there.
It still needs a ton of work. I’ll make the rating system efficient, add some facebook and twitter sharing features if the user wants to share their idea (like if they have a new recipe they want to share), delete buttons for bad ideas, custom UI, and I’ll also probably make some money off it (sell it for 99cents?). I might even add autosave features (depending on if I can get around to it).
Got a ton more stuff done with my app. I have a name for it: Ideya. I figured out how to build a rating system. I have also spent a lot of time on photoshop making the graphics for my app. I am still trying to develop a unique icon for the app.
I will post the icons on the next post I do.
The app still needs a ton of work. It isn’t the best turnout, but it will be, once I add the graphics to the actual app.
On the to-do list, still:
Simple sharing buttons using the new iOS 6 Facebook integration and the Twitter integration (twitter integration was released iOS 5). I still need to add delete buttons for bad ideas. I need to implement custom UI and graphics I want to make some money off it. (might as well..) I probably won’t add autosave features (maybe).
My goal is to finish this app by day 7 (tomorrow).
Woohoo! Ideya is now done! Well, at least for now, it is functional and it looks pretty good, too.
Today I accomplished:
An awesome icon to go with the app! An improved rating system. A simple arrowed tutorial to help them figure the app out. An email share button. A LOT of bug fixes. A more polished UI (significantly better!).
That’s it really. It probably took me less than fifteen total hours spent building the actual app, and definitely less than fifty hours total including actually learning Objective-C from scratch (with no prior object-oriented programming knowledge). Not too bad. Although I would like to mention that I have not yet even explored 1/8 of the language, so I plan on building a lot more things in order to fully grasp the language. But these 7 days were at least a nice segue into learning and using the language.
I hope to use Objective-C to build more cool apps for iOS :-).