Skip to content

Commit

Permalink
Update readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
chrishonselaar committed Apr 30, 2013
1 parent d61699f commit ac42688
Showing 1 changed file with 25 additions and 11 deletions.
36 changes: 25 additions & 11 deletions readme.md
Expand Up @@ -4,17 +4,34 @@ A simple tool for [LIVE interactive development](https://github.com/chrishonsela

## Getting started
ProtoPad consists of a very small dll (ProtoPad Server) that you include with your app, and a live code scratchpad (ProtoPad Client) that you can use to code against your app in real-time. You can use a completely blank app or an existing app. The ProtoPad server can be activated with one very simple statement:
```csharp
ProtoPadServer.Create(this);
```
after which it will start listening for requests on your local network. When you fire up the ProtoPad Client, it will try to find a running app with ProtoPad Server active, and connect to it. That's it, now you can start coding live!
If you are familiar with [LinqPad](http://www.linqpad.net/), you will feel right at home. Use the editor to run any statements or even methods or entire classes on your device/simulator. They will execute immediately. You have full autocompletion functionality enabling you to easily discover the entire device coding framework.
You can also send entire assemblies (as long as they are Xamarin.Android/Xamarin.iOS compatible respectively), that you can then use from your code.
You can use the .Dump() extension method to inspect any object or value - again, in your running app! The results will be visualized in a nice collapsible tree format. Enumerable contents are presented in full, in a special compact format (currently limited to 1000 items max).
The .Dump() method works for Bitmaps/UIImages as well, and displays the image in the result pane.

Similar to LinqPad, use the dropdown in the toolbar to choose between modes of scripting: use 'C# Expression' to evaluate simple expressions/objects directly. You cannot use multiple statements in this mode and, and you should not end the line with a semicolon.
Use the default 'C# Statements' mode to enter one or multiple C# statements and run them together. You can use any valid C# statements.
Use 'C# Program' mode to enable writing functions and even classes.
When working connected to a mobile device or simulator, you can use the 'window' variable in your code to access the main application window directly. You can add and remove controls, add event handlers and generally do anything want within your app. You can even construct entire prototyped apps in this manner.
You can use the `.Dump()` extension method to inspect any object or value - again, in your running app! The results will be visualized in a nice collapsible tree format. Enumerable contents are presented in full, in a special compact format (currently limited to 1000 items max).
The `.Dump()` method works for Bitmaps/UIImages as well, and displays the image in the result pane.

When working connected to a mobile device or simulator, you can use the `window` variable in your code to access the main application window directly. You can add and remove controls, add event handlers and generally do anything want within your app. You can even construct entire prototyped apps in this manner.

Similar to LinqPad, use the dropdown in the toolbar to choose between modes of scripting:
* Use the default 'C# Statements' mode to enter one or multiple C# statements and run them together. You can use any valid C# statements.
* Use 'C# Expression' to evaluate simple expressions/objects directly. You cannot use multiple statements in this mode and you should not end the line with a semicolon.
* Use 'C# Program' mode to enable writing functions and even classes.

ProtoPad can be used independently from Visual Studio - it does not even have to be installed. All you need is the ProtoPad Client application (which can be XCopy deployed), and an Android or iOS app enabled for ProtoPad (just include the ready-to-use DLL's below, or include the projects from the source above).

## Downloads
Ready to use builds for Windows are available here:
* [ProtoPad Client]()
* [ProtoPad iOS Server DLL]()
* [ProtoPad Android Server DLL]()

Or just clone this GitHub project, it includes everything you need and sample apps.
Or you can download the ProtoPad client and assemblies to include in your iOS/Android app here: http://clearcode.nl/ProtoPad/client-pre-alpha.zip
Please check the Requirements section to ensure everything has been set up correctly.

## License/usage
Currently using an MIT license. You are free to use the code for any purpose, including commercial.
Expand All @@ -41,12 +58,9 @@ Refer to the Xamarin website for installation guides:
http://docs.xamarin.com/guides/ios/getting_started/installation/windows
http://docs.xamarin.com/guides/android/getting_started/installation/windows

* If you want to build ProtoPad Client from the source, you will also need a copy of the ActiPro SyntaxEditor for WPF control, and the ActiPro SyntaxEditor .Net Addon. You can download a free 100% functional evaluation version here: http://www.actiprosoftware.com/products/controls/wpf/syntaxeditor
* [Microsoft .Net 4.0 runtime](http://www.microsoft.com/en-us/download/details.aspx?id=17718)

## Installation
Just clone this GitHub project, it includes everything you need and sample apps.
Or you can download the ProtoPad client and assemblies to include in your iOS/Android app here: http://clearcode.nl/ProtoPad/client-pre-alpha.zip
Please check the Requirements section to ensure everything has been set up correctly.
* If you want to build ProtoPad Client from the source, you will also need a copy of the ActiPro SyntaxEditor for WPF control, and the ActiPro SyntaxEditor .Net Addon. You can download a free 100% functional evaluation version here: http://www.actiprosoftware.com/products/controls/wpf/syntaxeditor

## Troubleshooting
ProtoPad Client cannot find/connect to your ProtoPad Server-enabled app? Please try (temporarily) disabling your local firewall (on the Mac OS X build machine as well, for iOS), just to see if autodiscovery or data transfer might be hindered by this. Check out the source code to see which UDP/TCP ports are being used. You can override the main listening port on the app side by supplying it in the ProtoPadServer.Create call. Inspect the result of that function to find the IPAddress and port that are being used. You can use the "Manual IP" button in the ProtoPad client to connect to that address directly as well.
Expand Down

0 comments on commit ac42688

Please sign in to comment.