-
Java Programming Support
Overview: As a first step to extend support to other programming languages, we would like to facilitate Java development within the Ecere IDE. Compiling a Java file should launch the 'javac' compiler, and building a libraries should archive all compiled modules using 'jar'. The IDE should also support launching the executable. It should also be possible to build, update and use native modules written in C, eC or C++ together with the Java code (JNI libraries), although the task of generating JNI bindings for eC would be separate.
Any further integration that could be done, such as reporting call stacks, source locations on exceptions would also be greatly valuable.
It should also be possible to build Java Android applications with the IDE, though the Android specific portions would be covered in the next 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)
- Familiarity with Java
Difficulty: Easy
Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
Additional Mentor: Réjean Loyer <redj@ecere.com> -
Automate creation of APK
Overview: At the moment, a user must manually install all Android tools, build the Ecere project for the Android platform, set up a number of post-build steps to produce and APK and sign it (as explained on this page). This can be a daunting task for someone wanting to get going right away building Android applications. We would like to automate this process under an easy Android development mode.
Android platform tools and compilers should be automatically detected from the Global Settings/Compilers options. Links to download the latest Android SDK and NDK should also be featured.
It would be useful to automatically set up Android resources (e.g. app icons) and options for the Android Manifest from a user-friendly interface.
On the first time building an application with for an Android target, libraries such as the Ecere library and its dependencies not already built as part of the Android NDK should automatically be built for the target. Sources should be fetched from our github repositories, with potential options as to which version to use.
APK packages would be built automatically by including all required libraries in the packages and figuring out proper build rules to invoke 'aapt package'. Packages should be signed with an automatically generated Debug Android key in debug mode, or using their own key for release mode. A friendly user interface should should simplify generating a key, interfacing with jarsigner (also with auto-detection, and links to install the JDK including it).
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)
- Familiarity with Android
- Familiarity with the internal details of an Android packages (APK)
Difficulty: Medium
Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
Additional Mentor: Réjean Loyer <redj@ecere.com> -
Support Debugging Android application
Overview: It is currently not possible to debug applications running on Android other than by outputting things to the LogCat and inspecting the output. This in turn makes debugging and building applications directly for Android a lot more difficult. The ability to step through debug Android applications would also be of great value, and should be possible by running gdbserver on the device. This would also require running a special version of gdb on the desktop as well. We already some remote GDB debugging support (target remote) in the IDE for Valgrind integration support.
It would also be useful to integrate the LogCat feature in an IDE panel, with support for filters (e.g. filtering your application output, arbitrary app ID, severity levels).
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)
- Familiarity with Android development
- Familiarity with GDB and remote debugging
Difficulty: Hard
Lead Mentor: Jérôme St-Louis <jerome@ecere.com>
Additional Mentor: Réjean Loyer <redj@ecere.com>