Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Currently at work I'm helping put together and create eLearning courses within Flash. Our senior programmers have knowledge of how to do this, Although - I would like to know how you could go from converting a eLearning course from Flash into a application for Mac and PC, looking similar to Garageband's music lessons?

  • What programming language was used to create Garageband on Mac?
  • What is the best way to create a application that will work on PC, Mac, iPhone, iPad, Touch etc, Rather then using flash and Actionscript to create online based applications, that will only work in a browser on Mac and PC?
  • Any further tips?

Thanks Josh

share|improve this question
add comment

4 Answers

Have you considered the Adobe Air or Flex SDKs? Since you're starting with a Flash app, it would make sense to go on to desktop-oriented Flash technologies.

That said...

  • Garage band, like most of Apple's applications, are written in Objective-C or Objective-C++ (which are strict supersets of C and C++ respectively; basically C and C++ with Smalltalk-like stuff bolted on)
  • The iOS devices offer only an Objective-C runtime, though some platforms like Flash can export to an iOS target. To target both PC and Mac otherwise, you would likely either write the majority of the application in either C or C++. Most people would use Cocoa for a native look on the Mac and MFC for a native look on Windows, but libraries like Qt do a good job of hiding all of that. Or, you could port your Flash app to Air or Flex and save a lot of time.
share|improve this answer
add comment

Many full featured Mac and iOS/iPhone/iPad apps are probably written in Objective C, ANSI C, and C++, since those are the programming languages that ship with Apple's own Xcode SDK developer tools. Audio code, such as inside Garageband, is most likely done in straight C.

You can do portable Mac, iOS and PC apps using a HTML5/Javascript wrapper.

share|improve this answer
add comment

If you're looking for a language that is quick to learn yet powerful enough to do what you need, I'd offer you to take a look at Runtime Revolution, or I think they call it LiveCode now (http://www.runrev.com/). It is multi-platform for PC, Mac, Linux, iOS as well as web apps, but it is a bit pricey and I myself have not upgraded since like version 3.5ish. It is a descendent/clone of the old HyperCard from Apple. I have seen elearning and other educational programs made with this language. At least give it a look to see if it will suit your needs.

share|improve this answer
add comment

If you want to create a portable app which anyway takes advantage of the native platforms capabilities I would suggest you split your program into modules, for instance according to a MVC pattern where the view part takes advantage of the platform and the rest you write in some portable language like C++ or C - since you mention you don't want to go the web way with your app.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.