I am a beginner with citrus, i would like to know
1) What is the difference is between Java DSL designer and Java DSL runner
2) To create a test suite you can use junit testRunner and use citrus inside test cases as a library?
3) To test the GUI of a non-web application, the tool to use is Cucumber Integrated with Citrus?
1) designer collects all test action information first and then executes the whole test case after that construction phase. runner will execute the test actions immediately as they are built with Java DSL fluent API. with designer you will not be able to execute custom Java code in between the test actions unless you put your custom code in a test action wrapper, too. runner requires slightly different syntax for the fluent API with convenient usage of Java 8 lambda expressions.
2) Citrus provides a JUnit4 runner implementation that you can use for comfortable integration with Citrus. This gives you automatic configuration of Citrus with before suite and after suite reporting. In case you can not use this JUnit4 runner for some reason you can also instantiate Citrus on your own before the tests. You may need to call the Citrus reporting generation manually then.
3) Non-web application testing is not covered by Citrus. Citrus has integration with Selenium that is for web-only usage. In case you want to test non-web GUI I can recommend Sakuli (https://github.com/ConSol/sakuli) as framework. There will be a Citrus to Sakuli integration coming someday. Can not tell you an exact schedule for this though.