The repository contains the LoopBack Xamarin SDK, including the lb-xm
script that
creates a Xamarin client to call a LoopBack server backend API.
See also:
Run npm install
in shell.
After setup, to compile an SDK, make sure you have all the dependencies and run this command:
node lb-xm d:\someserver\server\server.js dll
Where the first parameter is the main application file of the Loopback server, and dll
is a DLL compilation flag.
To review the C# part of the generator (source code of lb-xm/bin/LBXamarinSDKGenerator.dll), look at the LBXamarinSDK.sln
solution.
To review simple example apps using a compiled SDK, see the folder "examples". This folder contains a LoopBack server and a Xamarin solution of an Android app using the SDK, and a second LoopBack server and a Visual Studio solution of a console application using the SDK.
To create a Xamarin client based on a LoopBack API:
- Go into
bin
- Create CS code for the SDK; for example:
node lb-xm d:\someserver\server\server.js
- Compile an SDK DLL; for example:
node lb-xm d:\someserver\server\server.js dll
- To ensure compatibility with Xamarin-Forms, add the flag 'forms', e.g.
node lb-xm d:\someserver\server\server.js forms
.
In addition the C# source files are in C# directory, accessed by LBXamarinSDK.sln
.
This contains the open-source of the C# part of the generator. This project's end result is LBXamarinSDKGenerator.dll
that
is placed automatically as a post-build event inside the bin
directory.
The C# project also contains testers for the lb-xm end result, for which we have the "test-server" folder, upon which the Testers act. The "examples" folder contains an example server and Xamarin solution of an App using a compiled SDK, and also a second example LoopBack server and a Visual Studio solution of a console application using the SDK. Last folder is "UnitTests", containing Testers for the project: it should get an input of the CS code generated by lb-xm.
The unit tests are in the C#\lb-xmTesters
folder.
It contains a Xamarin/Visual Studio testing solution on the test-server.
IMPORTANT: The Testing unit is an example of building tests for a server.
Classes in LBXamarinSDK.cs
are calibrated to work with the test server, and created specifically for that server.
You must recompile LBXamarinSDK.cs
when you change the server.
Install Server
- Go into test-server and run 'npm install' in terminal/shell
Visual Studio
NOTE: It is important to do the setup while the project is open.
- Open
lb-xmTesters.csproj
inC#\lb-xmTesters
. - Make sure you have NuGet installed:
- Tools-> Extensions and Updates.
- Select online on left tab.
- Search for NuGet Package manager.
- Make sure you have NUnit testing adapter installed; for instructions, see http://nunit.org/index.php?p=vsTestAdapter&r=2.6.3
Xamarin
No special setup is needed.
All platforms
- Go into
test-server
and enterslc run
. (NOTE: If the server was already run, close and run it again) Important Do this each time you run a test, as test change data in the server. - If you made changes to the test-server:
- Compile a new
LBXamatinSDK.cs
and replace the existing one (node lb-xm SERVERPATH
). - Make sure that the code corresponds to changes on expected test results
Visual Studio
- Open
lb-xmTesters.csproj
located inC#\lb-xmTesters
. - Choose Test -> Windows -> Test Explorer.
- The first time you run tests click Run All in the tab that opens.
For more information on NUnit, see http://nunit.org/index.php?p=vsTestAdapter&r=2.6.3.
Xamarin
- Open
LBXamarinSDK.sln
. - Right-click "lb-xmTesters" in the Solution Explorer -> run unit.
- Write a failing test of the desired feature in
lb-xmTest
. - Make changes to the SDK Generator C# project and/or test server and/or JS Code.
- Build the SDKGenerator C# project.
- Run
lb-xm
to create a CS file and put it into the Testers project. - Run test and check feature functionality.