As is clear from its own name, AFRYCA is a framework for the analysis of consensus processes. The development of a framework implies making important decisions in its design that make its architecture may initially be a bit confusing if you have not worked with similar applications.
However, after a brief knowledge of the basics on which the tool is built, it is easy to understand the great advantages that its architecture offers to carry out usually expensive tasks such as extensions, modifications or adaptations.
Any user who takes some time to analyze the fundamentals of AFRYCA will find that:
- You can add new functionality to the application without having to modify the existing code.
- You can develop custom applications using AFRYCA functionality.
- You can use parts of the features offered by AFRYCA to create new tools.
- You can use almost any algorithm from the application's scripting environment.
Therefore, from the team we encourage you to know the basics and can benefit from all the power of the framework.
AFRYCA has been developed as an Eclipse RCP application of the E4 branch and most of the knowledge that will need to be acquired will be related to these tools.
AFRYCA Development Environment
Below is a brief reference guide which, from the AFRYCA team, we believe will be useful for a quick assimilation of the necessary fundaments.
As an Eclipse RCP application, AFRYCA is a Java application, so logically it will be necessary to know how to work with this programming language. Almost certainly, Java can be said to be the best-known and most widely used programming language, making it possible to find thousands of free resources in a simple way in all kinds of formats. Therefore, from the AFRYCA team we invite you to search for the most appropriate material for each type of user.
However, those users who have no experience, can leave if they wish from any of the books outlined in the following link.
Eclipse RCP applications are applications that use a component architecture, each of the components used in the application being named Eclipse Plug-in or simply plugin. Eclipse plugins are closely related to the OSGi specification, and some concepts of OSGi are widely used in E4. Therefore, and although not strictly necessary, it is advisable to acquire a knowledge of the OSGi specification before starting to work with Eclipse RCP.
- OSGi and Equinox: Creating Highly Modular Java Systems (Eclipse Series) (Jeff McAffer, Paul VanderLey, Smon Archer) - https://www.amazon.es/dp/B0037RDPFK
Most of the knowledge that will need to be acquired will be related to the development of plugins for Eclipse. Currently, almost all resources available to learn how to develop Eclipse plugins focus on the 3.X branch, AFRYCA being a framework developed using the E4 branch. However, the vast majority of the concepts used in the 3.X branch are still applicable to the E4 branch, which in essence what it does is an adaptation of the concepts to the new development paradigms (dependency injection, CSS design , Declarative services, etc.). Therefore, any material that addresses the development of Eclipse plugins from its version 3.X will be totally valid to acquire the necessary knowledge.
- Eclipse Plug-ins (Dan Rubel, Eric Clayberg) - https://www.safaribooksonline.com/library/view/eclipse-plug-ins-third/9780321574435/
- Eclipse 4 Plug-in Development by Example Beginner's Guide (Alex Blewitt) - https://www.safaribooksonline.com/library/view/eclipse-4-plug-in/9781782160328/
Although AFRYCA is an Eclipse RCP tool, the acquisition of concepts related to this technology will be only a small part of the learning process, because in essence, an Eclipse RCP application is an application developed from a set of Eclipse plugins organized from a Particular way. At this point, it is advisable to use only resources focused on the development of Eclipse RCP applications in the E4 branch, as the differences are significant with respect to the previous versions.
- Eclipse Rich Client Platform (Lars Vogel, Mike Milinkovich) - https://www.amazon.es/gp/product/B00XL4KI3Q/