send link to app

CSCS Native Scripting app for iPhone and iPad


4.8 ( 2608 ratings )
Education
Developer: Vassili Kaplan
Free
Current version: 1.1, last update: 4 years ago
First release : 15 Mar 2018
App size: 204.9 Mb

CSCS (Customized Scripting in C#) can now be used for native mobile development.

This App contains a CSCS interpreter that you can use to play around with CSCS. There are also a few pre-set examples.

You can create any CSCS scripting code in one tab, "Create", and then see the results in another tab, "Run".

How to use CSCS for mobile development is described at:

- https://msdn.microsoft.com/en-us/magazine/mt829272
- http://www.codemag.com/article/1711081
- https://www.smashingmagazine.com/2020/01/cscs-scripting-language-cross-platform-development/

A Syncfusion E-book describing CSCS:

- https://www.syncfusion.com/resources/techportal/details/ebooks/implementing-a-custom-language

Another Syncfusion E-book on how to use it for mobile development:

https://www.syncfusion.com/ebooks/writing_native_mobile_apps_in_a_functional_language_succinctly

The CSCS repository with the description of the language is at:
https://github.com/vassilych/cscs

The CSCS for mobile repository is at:
https://github.com/vassilych/mobile

This App itself was produced in CSCS. Here is the complete CSCS code:
=========================
AutoScale();
SetBackgroundColor("cyan");

AddOrSelectTab("Create", "test.png", "test2.png");

__locComboFiles = GetLocation("ROOT", "CENTER", "ROOT", "TOP", -100, 40);
AddCombobox(__locComboFiles, "__comboFiles", "center:white:clear", 350, 60);
__optionsComboFiles = {"Sandbox", "Hello, World!", "Ads", "Busy Indicators", "Unit Tests"};

AddWidgetData(__comboFiles, __optionsComboFiles, "", "center");
SetFontSize(__comboFiles, 13);
SetValue(__comboFiles, "text2", "Done");
SetValue(__comboFiles, "alignment", "center");
AddAction(__comboFiles, "comboFilesChanged");

__locRemoveKeyboard = GetLocation(__comboFiles, "RIGHT", __comboFiles, "CENTER", 10);
AddButton(__locRemoveKeyboard, "__buttonKeyboard", "Keyboard", 150, 60);
SetFontSize(__buttonKeyboard, 12);
AddAction(__buttonKeyboard, "hideKeyboard");

__locScriptView = GetLocation("ROOT", "CENTER", __comboFiles, "BOTTOM", 0, 10);
AddTextEditView(__locScriptView, "__textView", "", 600, 900);
SetFontSize(__textView, 14);

AddOrSelectTab("Run", "learn.png", "run_icon.png");


function hideKeyboard(sender, arg) {
ShowHideKeyboard(__textView, false);//!IsKeyboard(__textView));
}
function comboFilesChanged(sender, arg) {
row = GetValue(sender);
WriteConsole("Combo row=", row);
text = "";
if (row == 1) {
text = ReadFileAsString("sfhello.cscs");
} elif (row == 2) {
text = ReadFileAsString("ads.cscs");
} elif (row == 3) {
text = ReadFileAsString("busyIndicators.cscs");
} elif (row == 4) {
text = ReadFileAsString("unitTests.cscs");
}
SetText(__textView, text);
}

function tabSelected(sender, arg) {
tabId = int(arg);
if (tabId != 1) {
return;
}

script = GetText(__textView);
RemoveTabViews(1);
try {
Run(script);
} catch(exc) {
AlertDialog("CSCS", exc);
WriteConsole(exc);
}
}

OnTabSelected("tabSelected");
SelectTab(0);