Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MrMister111

macrumors 68040
Original poster
Jan 28, 2009
3,897
381
UK
I have an idea for a simple app and would like to see where it takes me, be great to eventually see it in the app store one day (I know it would cost £100 but just the personal achievement would be great!).

So as I'm a complete beginner, I have an iMac and iPad Pro so wondering which is best for a complete novice.

Not exactly sure what swift playgrounds does and if it allows you to actually program and write an app?

Or dive in with XCode or try the iPad app Codea?

Thanks
 
Last edited:
You need a Mac and Xcode. The swift playground is just a quick way to get some code running with the results on screen so it's a nice way to start out.

I had a quick look at Codea but I can't put in the time to fully understand it.

With all the others apps you need to use (for graphics, icons, data files etc) a Mac must be better.

You will still have to work with the app store and go through all the hoops that entails so I recommend that you use the tools everyone else is using unless to simply can't get a Mac and just want a bit of coding fun. As you have an iMac, assuming it's a modern-ish one you are good to go and Xcode is free so you can get going now.
 
Learn to program first (any programming language). Trying to develop an app before you can even write simple programs to (for instance) input data, add some numbers is a very steep learning curve.
 
  • Like
Reactions: millerj123
It's not a brand new iMac but runs latest Sierra. 2012 think.

I thought actually having an app to aim to, even a very very simple one, was the way to go? As in you see something happening with the code as such?

I haven't looked at Codea much but looks complicated. I was hoping as an iPad app it would be simple but still looks complicated. Maybe this whole thing is to much for me....
 
I recommend you take a look at swift playgrounds on the iPad. It introduces you to some of the most basic programming concepts that you will need to develop a successful application of any kind. Other than that, take a look at hackingwithswift, that website has something like 30 beginner tutorials. Again, if you don’t have some basic understanding of programming then most of it will look foreign and confusing.
 
Maybe this whole thing is to much for me....

Maybe it is, maybe it isn't. You won't know until you try.

I think it helps to have in mind an actual app that you want, as you said. Especially if it's an app nobody else is doing to your satisfaction or if it's an app nobody else is doing at all. Which was the case for me.
 
When I used to teach beginning programmers, I would tell them they should plan to write at least 10 other programs before they started writing the program they were thinking of writing. The reason for this is simple: practice. Those 10 other programs are practice programs, where you learn how things really work, what to do, what not to do, and also learn critical skills like decomposition (breaking things down), composition (building things up from smaller parts), and debugging (finding and changing the parts where reality doesn't match expectations). There's an old adage in programming: Plan to throw one away, you will anyway.

I have had students who insisted that they didn't need to wrote those 10 other programs. They often became frustrated when they encountered situations where a solution was needed but they didn't have the skills or knowledge to know how to make it (simple example: the linked-list data structure). They were also frustrated because they would repeatedly revisit, fix, and revise earlier parts of their Ultimate Program, because those parts were written when they were unskilled. Either the design was terrible, the logic was flawed, or it was riddled with bugs (buffer overflows being a common one; yeah, it's C). Constantly repairing the same work to fix errors of ignorance is demoralizing. Sisyphus was a programmer.

By the way, even after you become decently skilled and with years of experience, you'll still find you're revising old code you wrote, fixing flawed logic, and finding bugs. You do get better at avoiding stupid or obvious mistakes, but there are still plenty of advanced or subtle mistakes to make. The universe of Getting It Wrong is larger than the universe of Getting It Right.

An analogy I used to use is that no one starts out driving cars by entering the Indy 500. Heck, you don't even start by entering a street race. You first have to learn how the pedals work, how to shift (if you're using a manual), and how steering works at different speeds. That doesn't mean that having a goal of eventually racing is misplaced, it just means you've got lots of training and practice to go through to get there.
 
When I used to teach beginning programmers, I would tell them they should plan to write at least 10 other programs before they started writing the program they were thinking of writing. The reason for this is simple: practice. Those 10 other programs are practice programs, where you learn how things really work, what to do, what not to do, and also learn critical skills like decomposition (breaking things down), composition (building things up from smaller parts), and debugging (finding and changing the parts where reality doesn't match expectations). There's an old adage in programming: Plan to throw one away, you will anyway.

I have had students who insisted that they didn't need to wrote those 10 other programs. They often became frustrated when they encountered situations where a solution was needed but they didn't have the skills or knowledge to know how to make it (simple example: the linked-list data structure). They were also frustrated because they would repeatedly revisit, fix, and revise earlier parts of their Ultimate Program, because those parts were written when they were unskilled. Either the design was terrible, the logic was flawed, or it was riddled with bugs (buffer overflows being a common one; yeah, it's C). Constantly repairing the same work to fix errors of ignorance is demoralizing. Sisyphus was a programmer.

By the way, even after you become decently skilled and with years of experience, you'll still find you're revising old code you wrote, fixing flawed logic, and finding bugs. You do get better at avoiding stupid or obvious mistakes, but there are still plenty of advanced or subtle mistakes to make. The universe of Getting It Wrong is larger than the universe of Getting It Right.

An analogy I used to use is that no one starts out driving cars by entering the Indy 500. Heck, you don't even start by entering a street race. You first have to learn how the pedals work, how to shift (if you're using a manual), and how steering works at different speeds. That doesn't mean that having a goal of eventually racing is misplaced, it just means you've got lots of training and practice to go through to get there.

Very well said, chown. Very well said. Hats off.
 
I've written a few apps with a friend and published them in the App Store. Neither of us had any serious programming experience (both with backgrounds in economics and philosophy), but we just jumped into Xcode and played around until we figured it out. Swift is fairly intuitive. I found watching YouTube tutorials which built complete apps very helpful at first, as it teaches you the rough process. Then dig and find the specific bits you need.

I wouldn't call myself a programmer at all, but we cofounded a very small LLP to publish the apps and we've accumulated total downloads in the hundreds of thousands with no marketing budget. It doesn't make much money but the personal achievement was enough on its own. Has given me something to talk about in job interviews!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.