Frequently Asked Questions

rawpixel-660359-unsplash.jpg
 

Q: What Is Skyve?

Skyve is a light-weight declarative approach to creating software - focused on capability (rather than functionality). Skyve combines and integrates a range of open-source libraries and is itself an open-source project.

Skyve assumes the most 'obvious' things people do with software - and automatically proposes layouts, actions, navigation, searching and security. This means, if you build with Skyve, you only need to concern yourself with what isn't obvious.

Whether you use a Skyve engine or not, a Skyve declaration is an effective, concise and technology independent way to declare the capabilities of a system.

The first Skyve engine has been implemented in Java. Instructions for creating your first project can be found on the [Getting Started][1] page.

Skyve open-source is sponsored and provided by Biz Hub Australia.


Q: What Is A Skyve Engine?

A Skyve engine is technology that can take a Skyve declaration and make it run as an application. A Skyve engine provides 'obvious' functionality like CRUD (Create, Read, Update, Delete) forms, menus, security, role-based access, lists, ad-hoc searching, indexed content and federated searching, reports, spatial & mapping, job scheduling …

A Skyve engine takes a specification of platform-independent models, and compiles these into platform-specific models. While there is currently only one Skyve engine (for Java EE), we’re hopeful there will soon be a range of engines which comply with the Skyve declaration standard, including for .NET.


Q: Is Skyve Any Use Without An Engine?

Yes, a Skyve declaration is a great way to declare the capabilities of a system in a technology independent way.

Because the Skyve declaration is independent of any specific technology, it is clearly delineated from any specific implementation code and can be re-used even though specific technology and libraries may change over time.


Q: How is Skyve so much cheaper than other large-scale software solutions?

Low-code applications can be built much faster and mainted more easily than traditional development approaches. This means less cost to you.

Skyve offers world leading value as a software engine and app development tool. Skyve is open-source and low-code, and offers ongoing training and support, with no vendor lock-in. That means that you won’t need to re-invest whenever your company changes; you’ll have all the tools you need to stay up to date.


Q: Is Skyve Model Driven Architecture?

While Skyve supports the specification of platform-independent models – Skyve is not like other MDA.

Skyve engines do not generate implementation code to be maintained in the usual way. With Skyve, developers only ever interact with the abstract Skyve declaration, not the generated code.

This means Skyve applications don’t get harder and more complex to round-trip and iterate over time the way traditional systems do. The Skyve declaration stays abstracted from specific technological concerns, allowing developers to continually iterate and round-trip throughout the entire life of the system.


Q: Is Skyve Just For Java?

The current Skyve implementation is written with a Java EE engine, but other Skyve engines may use other platforms. Skyve itself does not concern itself with specific technology.


Q: Why Use Skyve And Not Something Like Executable UML (xUML)?

Firstly, Skyve is not a replacement for UML, however creating a Skyve declaration is simple and so other formal methods (including the use of UML etc) while useful, can often be bypassed entirely.

The Skyve declaration covers a wide range of capability concerns including application menus, access roles, jobs as well as the domain model.

Often xUML suffers the same fate as other MDA approaches which tend to get harder and more complex to round-trip over time.

By contrast, the Skyve declaration only concerns itself with the non-obvious and so will generally be more succinct and simple than a specification which covers the full functionality.


Q: How Do I Start Skyving?

We’re currently in the process of producing a formal specification for the Skyve declaration standard.

For now, head to the Getting Started page and use the project creation wizard.


Q: What Do I Need To Know To Be Able To Start Skyving?

It's simple to start Skyving, but if you want to build an enterprise level system, you still need to have a solid understanding of how web applications work and how to build software.

What you won't need is detailed knowledge of specific technologies such as managing content, spatial, data layers, etc.

You also won't need anything other than a cursory knowledge of javascript and HTML – unless you want to build highly specific user interfaces.


Q: How Do I Contribute?

We welcome motivated developers who are interested in contributing to open source. We're on GitHub. See you there.


Q: What Databases Are Supported By Skyve?

We’re currently in the process of producing a formal specification for the Skyve declaration standard.

Skyve supports spatial concepts natively with MySQL, SQL Server and H2 – Oracle and Postgres coming soon.

Otherwise, pretty much anything supported by Hibernate should work.

To try support for other databases, you’ll need to put the dialect class into your project's .json configuration file.


Q: Do I Have To Use JBoss/Wildfly?

Skyve apps are standard Java EE apps and we’ve successfully deployed them with Weblogic and Tomcat, however out of the box, Skyve only uses data sources provided by Wildfly.

The project creator generated project comes with instructions for Wildfly. If you want to use something else, just set the appropriate app server specific deployment descriptors.


Q: Can I Run My App As A Service?

Yes, JBoss/Wildfly can run as a service. See the section in the Developer Guide for running a Skyve application on Wildfly in production.


Q: Why Is Skyve LGPL?

Skyve’s licencing is constrained because we not only link to other LGPL software, but also because we’ve had to do more than just incorporate other libraries and frameworks – we’ve also had to hack them to make them play nicely. This includes work on Hibernate to make it work for spatial concepts and to ensure that there is automatic type coercion where required.


Q: It looks like you're using Google Maps - What about licencing?

Skyve comes with the hooks in place for Google Maps API. Other mapping frameworks can be substituted, but there's some work to do.

If you want to use the Google Maps API in your application, you'll need to apply for an API key and enable billing - please also check how Google's licence terms apply to your application's use.


Q: ...So What's Next?

Whether or not we get any help, we’re intending some very exciting new capabilities in the near future.

2019 is going to be an exciting year.

Top of our list for this year is Skyve Foundry. Foundry marries ultra-rapid development with sophisticated collaboration between non-developer 'citizens', semi-technical analysists and hard-core developers. With Foundry, innovators can build and play in minutes, then collaborate with agile development teams to evolve and refine classy enterprise-scale solutions.

We're absolutely convinced our approach will make collaborative teams more efficient than other approaches. Stay tuned.

The other big ticket item for 2019 is to advance our work on generating React and React native applications directly from Skyve declarations. React has been rapidly adopted by the market and the ability to generate React apps that are ready to integrate with Skyve apps will significantly add to the range of UI-UX options available for Skyve developers.

You can check out our roadmap to see what we are planning.