Hi Jules!

Just a quick question to see if you’re planning on porting Juce to the iPhone?

That would be very cool. :slight_smile:


That would indeed be cool. First, I need to port the mac stuff to all use cocoa instead of carbon, and then it probably wouldn’t be too hard to port to iphone.

On that note, I did my first few bits of objective-c programming this week… jeez, what a nightmare of a language! I’m starting to kind of see why it’s designed that way, but it’s pretty impenetrable stuff.

Hi Jules,

Well, I’m here to help!

The reason I’m interested is that I’ve created my own cross-platform 2d layer over the past 6 months or so, that allows me to target various mobile devices that require pointer and/or keypad driven 2d UIs. I can now build mobile-focused apps that sit on top of sdl, directdraw, win32 … and juce. :slight_smile: I’ve just started work on the iPhone port (presumably through Apple’s Open GL ES implementation for iPhone).

Anyways: if there were a Juce port to iphone, I could use the juce adaptor for my layer to avoid creating my own layer! And, of course, that would then make it really easy to bring noatikl and liptikl across to the iPhone; I love the UIs I can create with Juce, and of course the noatikl and liptikl UIs are written with Juce, I can’t envisage running them under anything other than Juce. :slight_smile:

Anyways, let me know!

Yes, it is horrible!!! I had to do some last year when creating an embedded browser component for noatikl (that we ended-up not using). It was the only way to talk to a particular part of Apple’s apis…!

I guess their using obj-c isn’t too different to Microsoft’s move to C# … :slight_smile: Anything these companies can to do make their developers focus on their respective platforms…! C++ is of course the only route for those of us trying to write code that runs on lots of platforms.

All the best! :slight_smile:


Yeah, I actually threw up my first time. I can’t tell for sure if it was from something I ate or getting naucious looking at the Obj-C code, but both me and my wife ate the same thing at the time, and she was all fine, so I’m pretty sure that couldn’t have been the reason… anyway… these days I just don’t like the syntax… but I can hold the food.

Edit: Sorry, just felt for some fun for my 200:th post. I second the iPhone porting part, if ok, I’ll try contributing to that end.

Actually, it didn’t take more than a few days to port tMixtikl to iPhone.

This involved my having to re-implement some of my code in .mm files for the Cocoa wrappers. Most of my code was untouched.

I also had to write a new graphics adaptor layer for my framework; and the iPhone/Quartz graphics library is a real mess - ugh! And an audio adaptor, of course.

Oh, and the well documented issues about iPhone sandbox and other stuff in the SDK license which hugely restrict what sort of application you can actually write!


I’d thought that since iPhone is on Cocoa it’d be quite easy to port the windowing parts (so you wouldn’t have to touch LowLevelGraphicsSoftwareRenderer), and isn’t it CoreAudio on iPhone too?

So you mean you’ve done a Quartz LowLevelGraphicsContext impl? :o

Hi guys, happy newyear!

This topic is extremely interesting to me these days… I know zilch about Cocoa and Objective-C, but would still like to develope apps for iPhone. So are there any news on this front…?

  • A

No news just yet. There are still a couple of carbon bits (like font rendering) that I need to sort out before trying an iphone port…

Allright… Good to hear it is in the works though. I would like to help out, but with my knowledge of Cocoa and iPhone, it is probably better if I don’t…


Hi all,
I just wanna know if someone achieved to compile a juce based for iphone. And if it is the case, what is the process to do that.



What about a Juce plug-in compiled as an Audio Unit?

I downloaded the iPhone SDK and apparently you can only use the Audio Units that come built into the iPhone. These include a format converter, iPod EQ, 3D mixer, multichannel mixer, and a couple of varieties of I/O units. These are programmed in C, not Objective-C. 3rd party audio units can only be used in apps that run under the desktop Mac OSX.

Hi, sorry so slow in replying!

I’d thought that since iPhone is on Cocoa it’d be quite easy to port the windowing parts (so you wouldn’t have to touch LowLevelGraphicsSoftwareRenderer), and isn’t it CoreAudio on iPhone too?

So you mean you’ve done a Quartz LowLevelGraphicsContext impl? :o[/quote]

The Mixtikl UI is a widget-based user interface, where I’ve written the entire widget API to be platform neutral. This widget layer sits on top of a virtualised 2d graphics drawing layer which has a low-level adapter at the lowest level to do platform-specific things like drawing lines, blitting etc.

So depending on platform, my low-level graphics adaptor sits on an appropriate technology:

  • Windows/Mac - Juce
  • iPhone - UIKit/Quartz
  • Windows Mobile - Windows GDI

My 2d graphics layer I guess does quite a lot of what Juce does, but with a different architecture. Of course, using Juce for Mixtikl means that I don’t have the hassle of writing separate adaptor layers for Win/Mac :slight_smile: and Juce is just great for constructing apps that are cross-platform win/mac, such as Noatikl and Liptikl. Mixtikl however is madly cross-platform :slight_smile: so required a different approach. NB Juce also made it quite easy for Mixtikl to have plug-in variants (VST/AU) for both Win and Mac, as well as standalone win/mac versions.

HTH - and congrats as always to Jules!


Any idea when/if JUCE will run on the iPhone?

Strange you should mention that - I just spent a few hours yesterday getting the non-UI bits to run on there, which was pretty easy, and will post something to do that shortly.

The UI is a bit more involved, but it’s something I’m tinkering with at the moment…

Just a clarification, can an application having Carbon calls in it run on iphone?

Nope. It’s all cocoa.

Ahhhhh. Thanks Jules.
That means I have to to polish my cocoa skills again.

Not once I get juce running on it!

I am waiting for it. :slight_smile: