If you are working with Haskell and making iPhone apps, or if you intend to soon, please fill in your info below. By helping each other out, we can work more productively and have more fun.
|Name||Contact info||Haskell-fu (0-5)||iPhone-fu (0-5)||Have (to share)||Need||Intended iPhone apps|
|Conal Elliott||Home, blog, wiki user, Twitter, Facebook, Linkedin, IRC: conal||5||0||Functional graphics & GUI, misc Haskell libs, design skills||iPhone basics, Haskell-to-iPhone compiler||Interactive graphics toys|
|Chris Eidhof||Home, Tupil, wiki user, Twitter, Linkedin, IRC: chr1s||4||3||iPhone experience, web programming experience, dependent types experience||Haskell-to-iPhone compiler (either as DSL or GHC Core -> iPhone)||Navigation-based apps (think of things like iTunes, Facebook, etc.), Games (maybe using a combination of FRP and something like arrowlets)|
|Daniel Peebles||Home, Twitter||3||4||Extensive iPhone platform knowledge||GHC cross-compiling to ARM Mach-O||Nothing in particular yet|
|John Meacham||Home, blog||-||-||Working Haskell to iPhone compiler (jhc)||Testers and Feedback to make cross compilation smoother. HOC integration with jhc.||Symbolic Algebra Application, Equation Editor|
|Eelco Lempsink||Home, Tupil, wiki user, Twitter, Linkedin, IRC: eelco||4||3||iPhone and web experience||Haskell-to-iPhone with (Cocoa Touch) API intergration||Nothing in particular, looking for a good Haskell use-case :)|
|Bernd Brassel||Home,art2guide||5||4||Haskell experience, iPhone developer||iPhone embedding into Haskell, good programmers||audio-visual guiding systems|
|Martin Kudlvasr||not exactly home,LinkedIn, irc: trin_cz, xmpp: email@example.com||3||0||year of haskell experience in OpenGL and project euler||iPhone basics, Haskell-to-iPhone compiler||fascinated by reactive, game development|
|Sebastiaan Visser||Projects, wiki user, Twitter||4||0||Some experience/ideas about building EDSLs.||Deep EDSL Haskell-to-ObjectiveC, high-level to target GUI/animation.||Nothing in particular yet. Want to have objective C backend for this EDSL.|
|Manuel Chakravarty||Home, blog, wiki user, Twitter, LinkedIn, IRC: Chilli||5||2||Haskell EDSL & compiler know how; Objective-C and Cocoa Touch basics||Haskell tools for iphone dev||games & productivity apps|
|Ryan Trinkle||wiki user, Twitter, Facebook, LinkedIn, IRC/AIM: RyanT5000||4||3||GHC iPhone compilation (working, to be contributed to GHC soon)||Smart people||Games|
|Stephen Blackheath||wiki user, IRC: blackh, email||4||2||Working with Ryan Trinkle to release GHC iPhone compilation||Games|
|Simon Marlow||wiki user, Twitter, IRC: JaffaCake||5||0||Happy to help with GHC porting issues: ask on #ghc|
There are at least two ways to use Haskell to make iPhone apps. One is having a Haskell-to-iPhone compiler, which would probably cross-compile from another host environment (probably Mac OS X). Another way is to write Haskell programs that generate iPhone-compatible code when run (rather than when compiled), based on an embedded DSL, similarly to Compiling Embedded Languages.
- Free iPhone ideas (blog by Chris Eidhof)
- HOC Haskell to Objective-C binding
- Reactive DSL currently with JS backend. We might be working on Objective-C backend during Hack-ɸ.
- Stanford course: iPhone Application Programming, with online notes, code, and lecture video.
- Haskell Objective-C FFI proposal (work-in-progress)
3 GHC as a cross compiler
Now that GHC can be used as a cross compiler again we should document what is left in getting GHC to compile apps for the iPhone.
- Can the RTS be ported to the iPhone?
- How much work is this?
- iPhone OS is mostly a vanilla OS X, running on ARM. Syscall numbers, the object format, and the kinds of things that are available on it are all pretty much the same as OS X. The main difference is the architecture. Word size etc. are mostly the same as other platforms that are already supported, so I don't think much more is needed for an unregistered built, at least.
- How much work is this?
- Do apps have to be signed in some way?
- Yes, unless you're on a jailbroken platform. On Mac OS 10.5 and up, there is a program called codesign that takes an identity (with an associated private key) and signs the provided binary. Although I don't think the source for this program is publicly available, what it actually does is reasonably simple and could be ported to multiple platforms quite easily (especially given the macho library on hackage).
4 Jhc as a cross compiler
Jhc has full support for cross compiling to the iPhone. Information on how to do so is in the jhc manual under Cross Compilation. Basically, you just add the following to your ~/.jhc/targets.ini
[iphone] cc=arm-apple-darwin-gcc merge=le32
and then invoke jhc with the --cross and -miphone options.
5 Other ways to stay in touch
Chat with us on the #haskell-iphone IRC channel on freenode. Does anyone know how to set up channel logging?