chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Chicken Scheme for mobile devices?


From: Kristian Lein-Mathisen
Subject: Re: [Chicken-users] Chicken Scheme for mobile devices?
Date: Thu, 15 Nov 2012 16:13:09 +0100


Helllo mobile Chickeners! 

I'm so glad there is interest in running Chicken on mobile platforms. This is what I've been working on for the past few months, starting chicken-android and cocoscheme. I only have experience with Android, so I can't speak for other platforms.

My chicken-android project is intended to help embedding Chicken into your Android app. It does this by providing GNU Makefiles so that you can "easily" add Chicken as a dependency to your exisiting NDK module, like this. I say "easily" because it's still a pain with paths and you'll never get a sensible error message with the NDK build chain (e.g. you'll get "cannot find chicken.h" instead of "cannot find module path for chicken"). It also has an extra find-extension unit which allows you to load other chicken modules like (use matchable) by prefixing "lib" as is mandatory with the NDK. 

But to answer your question Stephen, the NDK handles chicken-generated .c files well. I've essentially done exactly what you did for iOS: add those .c files to the build-sources. But I too want something prettier!

The cocoscheme project is a playable demo with a network repl available on Google Play, I brought it up on this mailing list here. I'm using Cocos2Dx. All my projects so far have exclusively relied on OpenGL ES and other game-like frameworks to deal with user-interaction, so I don't know about using Chicken for more general apps.

I have a few thoughts on problem (1) in Kevin's terminology: making it build/run on a mobile platform. Problem (2), to create bindings, I think should be a completely isolated (and bigger) project.

I think Stephen makes a very valid point: A separate csc for building mobile components would be very tricky. It would have to hook up to NDK's gcc and that's not pretty, nor officially supported (I think). However, a csc-like tool that generates buildfiles for the different architectures is something I think would work well like Stephen explains.

In my cocoscheme project, for example, I'm using a few eggs. There a lot of copy-paste like you can see here. It should be possible to generate makefiles for this automatically, at least for the most basic eggs. Maybe we could even look at the .setup file for an egg and make a .mk file based on that. I suspect this could be handled in a similar manner on iOS?

I would love to have a "project.scm" file describing dependencies etc and have template- and build-files automatically built based on that. .c files would be re-generated automatically when they are older than their .scm owners so the ndk wouldn't recompile everything every time like it does now. And it should place all messy build-files into a single directory (maybe hidden) so I'm not constantly confused as to what to commit and what to not. Here's my dream:

$ chicken-mobile new hello-world
$ cd hello-world
$ chicken-mobile build android && ant debug && adb install bin/hello-world-debug.apk
$ chicken-mobile build ios && xcode-magically-install bin/hello-world.ipa

K.


On Thu, Nov 15, 2012 at 3:11 PM, Arne Eilermann <address@hidden> wrote:
Hi there,

first of all I'd like to introduce myself, because this is my first posting on this list and it's kinda not mine at all. :-)
The last years ruby was my everyday programming language and it still is. But my new job at bevuta and a few people around this company brought me to chicken, which I'm now learning.

My company just chose me to be some kind of a chicken communication minion, so the rest of this mail is more like bevuta speaking to you.

A few words on the company: The bevuta IT GmbH is a software company based in cologne, Germany. We are like 10 Geeks in an office to which Moritz Heidkamp – you may know him – in 2010 brought chicken. We did a few smaller project in chicken but now the first bigger one knocks on our door.

This project involves the development of a framework to create cross platform GUI applications in chicken on Android and iOS. The bindings for JNI to access Android's API is mostly done. The next step will be doing something like that for iOS. With this bindings we want to create an abstraction layer to get a common interface.
All of this is part of a bigger commercial and proprietary contract work, but the emerging framework shall be released to the community.

We already got some experiences with chicken on mobile devices. In 2011 we did some OpenGL stuff on Android and iOS. Moritz was significantly involved in this. It was mostly experimenting, but it did quite well.

If anybody of you is interested to join, feel free. We would be glad.

Kind regards,
Arne



_______________________________________________
Chicken-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users


reply via email to

[Prev in Thread] Current Thread [Next in Thread]