iPhone development

Programming, for all ages and all languages.
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: iPhone development

Post by NickJohnson »

Is it possible to just write/port a different OS (possibly Android?) to the iPhone hardware, so you don't have to abide by Apple's interfaces? I know that some people have figured out a way to dual boot Linux on the iPhone, and that it's just a regular ARM with some shiny addons. If you did that, do you think it would violate your service contract? :lol:
User avatar
Brynet-Inc
Member
Member
Posts: 2426
Joined: Tue Oct 17, 2006 9:29 pm
Libera.chat IRC: brynet
Location: Canada
Contact:

Re: iPhone development

Post by Brynet-Inc »

It's possible, but Apple won't help you do it.. hardware documentation will be hard to come by as well.

Here is an attempt to create a port of Linux, it seems they have a proof of concept boot loader available.

http://www.iphonelinux.org/index.php/Main_Page
Image
Twitter: @canadianbryan. Award by smcerm, I stole it. Original was larger.
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: iPhone development

Post by NickJohnson »

Sounds like a challenge 8) .

However, not one I have time for. So I guess I'm adding ARM to my "architectures-to-port-to-once-Khaos/x86-is-done" list. I'll get to that in a year or so... maybe by then well documented Android based smartphones will have taken over the market. [-o<
OrOS
Member
Member
Posts: 143
Joined: Sat Sep 08, 2007 11:26 pm
Location: Canada

Re: iPhone development

Post by OrOS »

You can use any language the supports the cdecl calling convention with Cocoa/Obj-C. Obj-C IS C, with fluff (essentially smalltalk)
You simply need to initialize and wrap some things (C++ is lovely here) to get it up and kicking.

What you need:
  • The library: System/Library/Frameworks/Cocoa.framework/Cocoa
  • Call BOOL NSApplicationLoad(void) before using anything else in the framework
  • Implement the Obj-C 2.0 Runtime (You likely will only need the sel_* and objc_get* functions to do basic things)
  • Learn the object messaging format (Easy peazy)
  • Convert the Obj-C function declarations found in the Cocoa frameworks to your language, and have at it.
Post Reply