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 <https://github.com/kristianlm/chicken-android> and
cocoscheme <https://github.com/Adellica/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<https://github.com/Adellica/cocoscheme/blob/master/proj.android/jni/Android.mk#L20>.
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<https://github.com/kristianlm/chicken-android/blob/master/jni/find-extension.scm>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<https://github.com/kristianlm/chicken-android/blob/master/chicken.mk>.
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<http://lists.nongnu.org/archive/html/chicken-users/2012-11/msg00008.html>.
I'm using Cocos2Dx <http://www.cocos2d-x.org/>. 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<https://github.com/Adellica/cocoscheme/blob/master/proj.android/jni/Android.mk>.
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 <eilerm...@lavabit.com>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
> Chicken-users@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to