Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

iOS

What do I need specifically to make an application similar to Vine?

Excuse my ignorance, but it's my first day here and I have zero experience in iOS programming. My question is, if I want to learn how to make an application similar to Vine (or any other similar application that uses notifications, recording a video and sharing/sending it). What should I do exactly, because I'm lost. Thanks!

8 Answers

Mike Baxter
Mike Baxter
4,442 Points

Awesome! It's great that you have that desire for understanding how the gears work behind things, and how to actually build things. A lot of times people have ideas they want to get out there, but they wind up trying to become programmers when they should be looking for people to build the product for them; their time could be better spent learning how to build a company and refine an idea.

If you're serious about the Vine thing (i.e., it's something you actually want to release rather than make just for fun), I would recommend you first go through the Business videos regarding copyright law to get a good idea of what you can and cannot do. Vine probably has a patent and some high-calibre lawyers. If you want to make it for fun, you can probably skip this step.

The next thing you'd want to do—if you want to build the thing from scratch—is start from either end of the thing. Do whichever one interests you the most.

iOS Development Take the iOS Development course. This might be the best starting place for you since you're already interested in iOS.

Web Service Development Make sure you understand the things in the How to Make a Website project, because you'll need a web interface for users to sign up. Then you'll probably want to go through the Ruby projects, though I think you can do this through the PHP track as well. (I might be wrong on that.)

Note that there are out-of-the-box services for either end of this, meaning you can find some company that makes apps for you, or on the other hand a company that handles the web service for you. The limitations depend on the company and what they offer. So you can build everything from scratch on your own, or figure out which parts to build on your own and which ones to adopt/purchase.

I hope that helps! Whatever you do, have fun and follow your interests!

Mike Baxter
Mike Baxter
4,442 Points

I should specify, the reason I mention Ruby over PHP is only because on Team Treehouse, the projects for Ruby are will get you to what you want to do (I'm pretty sure), whereas the PHP projects are more for building an online store. That doesn't mean one is better than the other, but in terms of learning through Team Treehouse, I think you'll find Ruby more suited to your purposes. There are a lot of things I wish the PHP course did in terms of projects.

Mike Baxter
Mike Baxter
4,442 Points

Ruby seems to be way more difficult to learn than PHP though, so I dunno. It depends on how adventurous you are! Probably start with iOS and see where that takes you.

Garrett Cox
Garrett Cox
4,797 Points

Great question, you first need to gage your knowledge and ability. The best thing you can do, having no iOS programming experience yet, is to follow the tutorials provided. They are great. You will learn a lot and enjoy it!

Once you are confident you can build the crystal ball app, blog reader app, and the self-destructing message app, those will give you a great foundation of many vital basics of programming iOS applications. After, I would recommend looking at source code on GitHub for similar apps. Parse.com has tutorials on how to make an instagram style app.

That's what I'm planning to do. I bookmarked Github and Parse.com. Thanks Garrett!

Mike Baxter
Mike Baxter
4,442 Points

Hi Ahmed,

That's a great goal to have! In my experience, I've learned a lot by trying to rebuild other apps. (Just watch out for copyright issues if you try to publish the app; I'm not sure what that entails.)

The thing you'll discover quickly is that there's a huge difference between what an iOS app can do and what a web service can do. Vine is both an app and a web service. A lot of my friends who tell me about their app ideas are really not asking for an app at all, they're asking for a web service; it's an entirely different animal.

Here's the difference: an iOS app does not by itself have the ability to allow users to communicate with one another through the app. (The exception is with Game Center apps, which must be used strictly for games.) You need a web service to do the communicating for you—that's in part what all these PHP and Ruby courses are for in Team Treehouse. A web service is, at its most basic, a computer (server) that is connected to the internet; you would tell the iOS app to connect to the server, and the server would have user accounts on it, it would host the videos that people upload, etc. A web service can be anything from a simple RSS blog that you get recent posts from, to a video service that hosts millions of videos. The catch is, the more users you have—and the more complex your service is—the more money it costs to run that service. You're basically paying a company to maintain the computer, the internet connection, to backup the data, distribute the data to different regions of the country/world for quick access, and so on. (It's really not a great idea to try to run things off your home computer.)

So an iOS app like you're describing has to be build on top of a web service. By itself the iOS app can't establish the necessary connection between phones/devices, and it can't maintain a database of all the user-submitted videos. There are a lot of different approaches to building that necessary web service, just as there are a lot of different approaches to building an iOS app.

I could go into more detail, but it would probably be way too much information to digest.

I suggest starting with the fundamentals of iOS development. Even with as much as I know about this sort of thing, I'm not sure I know enough to develop that kind of app. It would definitely be a lot of work. But I can tell you this: all those fundamentals become super important when you're trying to build a large scale app. I can't tell you how many times I keep going back to the fundamentals because I didn't learn them well enough.

Maybe a good question would be, what's your interest in app development? Do you like coding? Or do you want to get an idea out there?

Matthew Shettler
Matthew Shettler
8,819 Points

Well, if you don't know anything about developing for iOS, then starting on the iOS Development Track is a good place to start.

If you've got some programming background, or are just super keen to start messing around in XCode, you could maybe skip to the Crystal Ball app part of the track and then go back and do the basics.

On the other hand, if you're already pretty familiar with working in XCode and writing Objective-C, the fourth stage of the track should tell you what you need. Between the fist four stages of that track, and the reference materials included with XCode, and all the questions and answers on StackExchange, you should be able to figure out all you need to get your app going.

If all that seems just too intimidating, and you need a smoother entrance into programming, the Introduction to Programming course is a good place to get going.

It seems too intimidating indeed, but that's alright, I will start by following the basics. Thank you Matthew for you valuable input. Wish me luck!

Hey Mike! Thank you for your valuable input. I thought about what you said regarding how a website can play a crucial rule in developing your idea rather than an application. I have what it takes to come out with a good idea and working on the application's design, but I lack implementation which is the most important step. I want to build apps. I want to know how things work. I want to know the code responsible for generating a certain feature.

Awesome! Thank you so much Mike. I'm not intending to make a similar app to Vine. I was just curious about the tools developers use to make an application that offers the features Vine offers in order to have the same knowledge and maybe apply it later on a different idea.
I don't think that I'll go for a company and make them design/code an application for me, the process will require big amounts of money for sure. I also want to build something on my own, it's amazing how you can make awesome things with this kind of Knowledge. I will start by the instructions you gave regarding how to start and what to learn. Thank you for your help!

Mike Baxter
Mike Baxter
4,442 Points

Nice, Ahmed Hamdy ! I recommend you just stick with iOS development then if you're not trying to build a full-fledged app that has a web service background. You'll find it really rewarding to know something really well. And there are a lot of apps you can make without a web service; you just have to begin to understand at what point you need a web service. (Generally whenever you want one person's device to talk to another.) Best of luck!

Andrey Krylov
Andrey Krylov
4,052 Points

ahmed hamdi First of all try to exercise a "Self-Destructing Messaging App for the iPhone" and you will understand the principles of iOS programming. It was really useful to me - I had the same question in the beginning "what I have to know to do an app like Vine or Instagram". While you are doing you understand iOS more and more.