Platform Support - Ideas for Google Summer of Code





Platform Support

As we're trying to establish ourselves as a leading cross-platform SDK, we would like to improve our platform support, especially on mobile platforms and the web. We do not yet feature iOS support which would be a major plus. We would like to provide easy access to mobile-specific features of the Android platform through our Ecere API. If such features are available on other platforms such as iOS, we should present them in a uniform API.
  • Android Location Information (GPS)

    Overview: We would like to provide an API for querying the GPS information of the device.

    This may not yet be supported by the NDK, and will likely require the use of JNI calls to interact with Java objects.

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Familiarity interacting with Java objects from the JNI
    Expected results: Support for querying and receiving updates of the user location from the GPS on Android platforms from within Ecere applications.

    Difficulty: Easy

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • Android Accelerometer, Compass and Gyroscope

    Overview: We would like to provide support to the various sensors information available on Android in a uniform API. Among them the accelerometer, compass and gyroscope would be very useful. The NDK provides access to these sensors through the android/sensor.h header, and a number of samples shows how to access them.

    Other sensors such as heart rate, humidity, temperature would be interesting as well, but the NDK does not seem to include the constant definitions for them. (Though with the proper values, they may be easily accessible since the struct declare related members).

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Familiarity with the Android NDK
    Expected results: Support for the accelerometer, compass, gyroscope and possibly other sensors on Android platforms from within Ecere applications.

    Difficulty: Easy

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • Android Camera

    Overview: We would like to provide an API to query the camera, the result of which should probably be returned in a Bitmap object. The Bitmap could already be allocated to avoid continuous reallocation for continuous feeds.

    As the NDK does not seem to provide an API for the Camera, this will likely require the use of JNI calls to interact with Java objects.

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Familiarity interacting with Java objects from the JNI
    Expected results: Support for the Android camera on Android platforms form within Ecere applications.

    Difficulty: Easy

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • Android Soft-Keyboard

    Overview: The Android soft-keyboard should be made visible when the user activates an input field where text may be entered. We should also probably provide an API for the developer to bring up the soft keyboard programmatically.

    This will likely require the use of JNI calls to interact with Java objects, as it is not exposed from the NDK.

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Familiarity interacting with Java objects from the JNI
    Expected results: Automatically bringing up the soft-keyboard when required to fill in a text text and adjusting the window layout accordingly. Support for programmatically bringing up the soft-keyboard.

    Difficulty: Easy

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • Native OS X Interface (Cocoa)

    Overview: Implementing a Cocoa interface driver to run natively on OS X. This would enable Ecere applications to run on OS X without requiring the X11.app. Improving integration with the Mac OS X, following Apple's development guidelines as much as is possible with our cross-platform toolkit aiming for a consistent look and feel on all platforms. At the moment we only have a skeleton driver implementation with stubs, with some handwritten Objective-C bindings so as to make calls to Cocoa.

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Cocoa
    • Objective-C
    Expected results: Better integrated native OS X support without X11.app.

    Difficulty: Medium

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • iOS Support

    Overview: We would like to support iOS as a target platform. This task would likely leverage from the previous task on Cocoa support, as Cocoa Touch is a related API.

    Support for multi-touch should be implemented, and support the various sensors available on iOS as well (though this may be done in a separate task).

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • Cocoa
    • Objective-C
    • iOS development
    Expected results: Support for iOS as a target platform.

    Difficulty: Medium

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>

  • NativeClient Support

    Overview: We're hoping to support deploying Ecere applications to the NativeClient (and/or PNaCl) platform. NativeClient has the advantage of running the code natively, which we expect would give better performance than the JavaScript code generated by Emscripten (with which we've already had some success running Ecere applications in a web browser).

    The task would consist in writing an interface driver for Ecere applications to integrate with the NativeClient platform and experimenting with the platform.

    Skills Required:

    • Familiarity with basic object oriented programming concepts
    • Familiarity with eC, C or another language in the C family (e.g. C++, C#, Java)
    Other relevant/useful skills:
    • NativeClient, PNaCl
    Expected results: Support for running Ecere applications in browsers through NativeClient and/or PNaCl.

    Difficulty: Medium

    Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
    Additional Mentor: Réjean Loyer <redj@ecere.com>



Copyright © 2017 Ecere Corporation. All rights reserved. | Design by FreeCSSTemplates.org.