
Professional C# and F# IDE for the iPad - shanselman
http://praeclarum.org/post/147003028753/continuous-c-and-f-ide-for-the-ipad
======
memsom
Okay - sitting at work, looking at Visual Studio 2015, this was an instabuy. I
already bought Pythinista and Codea (not that I have an iPad to run the latter
on anymore) so, I'm happy to do on device development. But giving me C# in my
hand? Wow...

So - verdict? Here is the one minute review:

Pro: The app does what it says. The code completion is there, the suggestions
are sound. Creating apps is pretty simple, though you can also create scripts.
It isn't doing anything funky - it is just straight up C#. The extra
characters given above the keyboard are sufficient. Nothing overly bad is
grabbing me outside of my Cons below. I feel like it was a sound purchase, and
I'm happy to support the developer!

Con: On the iPhone the screen layout is getting in the way a little. The code
completion window was hidden under the keyboard when I tried to do something
less trivial than a simple script. Writing the most basic console app failed
with a NullReferenceException:

... var r = Console.ReadLine(); Console.WriteLine(r); ...

It seems like the console isn't 2 way? This even works in LinqPad, so I'm not
going insane - it's valid code.

Overall, I think it is a neat little tool. Fairly polished, but it needs to be
tweaked over the next few months to improve some of the features.

~~~
melling
How's the F# IDE? Learning F# is on my shortlist.

~~~
memsom
I don't do F#, so I'm not qualified to comment.

~~~
davidgrenier
Learn it in a week:
[http://fsharpforfunandprofit.com/](http://fsharpforfunandprofit.com/)

Make a comment.

~~~
pc86
I'd rather have someone with real experience comment than someone who has done
a few tutorials over the course of a week.

Edit: That being said, F#FFAP is a fantastic resource.

------
moonshinefe
Do many people use tablets for development? If someone uses them for
development I'd be interested in hearing how well that's worked out.

I think I might just be getting old, but it sounds like a terrible experience
trying to code something on a touch screen (and non-desktop OS). But I'd
imagine younger folks are very fast at typing on said touch screens these
days, so maybe that mitigates some of it?

~~~
piaste
Bluetooth keyboards are pretty popular nowadays. Leave them in the bag when
you're just reading or emailing (which is most of the time), take them out
only when you need to write a lot.

~~~
smacktoward
I still miss the old Stowaway keyboard:
[http://danbricklin.com/log/stowaway.htm](http://danbricklin.com/log/stowaway.htm)

It would be awesome to have the same keyboard, but updated for modern devices.
There's lots of cheap Bluetooth keyboards out there these days, but I've never
seen one as mechanically elegant and nice to type on as the Stowaway was.

~~~
mikestew
I still cling to mine, though the keys are a bit sticky these days. Haven't
used it in a few years because it's not suited to (as you say) modern devices.
But there doesn't seem to be any substitute, and I'm stumped as to why. If I
can keyboard cases for an iPad for $25, I imagine the hard Bluetooth problems
aren't so hard anymore, so it's a matter of making the hardware. But if
someone thought there was money in it...

------
yedpodtrzitko
I don't know about other people, but for me programming includes some
googling, checking documentation, switching to terminal... basically a lot of
alt-tabbing (and some copy-pasting). Can't imagine myself doing this
comfortably on a tablet.

~~~
jasonkester
Imagine a tool that did all of that for you.

Everything about your code, the libraries and APIs you're using, their
documentation, function signatures, return types and codes, all a simple
keystroke away, without having to so much as glance away from the line of code
you're on.

And your code sneakily compiling itself in the background and reporting back
anything that could potentially raise itself as an issue, run-time or compile
time, presenting it all in the form of little red squigglies and gutter icons.

Imagine writing an entire feature without ever having to alt-tab anywhere
other than the end product (browser, app, whatever), and never needing to
google anything at all. It'd be pretty cool, right?

That's an IDE. This guy built one that lets you do all that stuff on a tablet.

~~~
d0lph
Still have to google some (maybe a bit less), but, agreed.

------
benbristow
If you're looking for a tablet that's also useful for programming, why would
you pick up an iPad? Surely getting something like the Microsoft Surface which
is a fully featured x86 machine with a keyboard is a better option?

~~~
rubber_duck
Also if you're looking for a tablet you can do some work on but aren't sure
about spending 500-1k$ there are plenty of cheap (100-200$ range) Atom based
8-10'' Chinese tablets running windows 10 with like 4GB ram which should be
enough to do basics (example [http://www.onda-tablet.com/onda-
obook-10-tablet.html](http://www.onda-tablet.com/onda-obook-10-tablet.html)).

Not even close in specs to things like MS surface but then again I wouldn't
really care if I broke/lost it and I doubt I would use a tablet as my primary
work machine anyway.

~~~
Yhippa
Have you used one of those devices before? This is _exactly_ what I was
looking for about two years ago but gave up because I could only find devices
with one or two GB of RAM. This is very tempting and the Ones looks nice.

~~~
rubber_duck
I've used an older model, stuff like touch precision make it noticeable that
it's a cheap device (usable but noticeably worse). As you said the 2 GB is too
low for serious use (basically any multi tasking and off we go to swap, also
32 GB of storage is really low and SD card is slow).

Will probably get some 4gb version before my next vacation, but you should
definitely google reviews before getting one I have no idea if they have
serious problems they were just the first one I remembered for cheap win 10
tablets when I looked in to them two years back.

------
Nelkins
The author of this app, Frank Krueger[1], also gave an interesting talk
recently on using functional programming for mobile apps[2].

[1] [http://praeclarum.org/](http://praeclarum.org/) [2]
[https://vimeo.com/171996394](https://vimeo.com/171996394)

~~~
DanielBMarkham
This was a good video. Thanks for the link. Explains how FP/F# architecturally
fits into an iOS app situation. Several of his points were easy wins -- much
better learning them now than having to re-create them through refactoring
later.

------
tempodox
> Real work, in my world, means programming.

Yup. The iDevices are Apple's products and one should think that integration
is in their self-interest. Instead, they're being restrictive, prohibitive,
unhelpful and let us wait for a product like this to enable what should have
been possible from day one. In that light, this app is a well-deserved slap in
Apple's face. I've never had contact with the C# / F# ecosystem but this might
possibly lure me in.

------
CJKinni
> I hate waiting for compilation and deployment so I designed Continuous to
> minimize those steps. It does this by eagerly compiling your code - never
> waiting for you to tell it when to start. It runs your code as soon as those
> compiles complete successfully and displays the results of that execution
> right next to your code. Now you can focus on the code and the results of
> that code instead of being distracted by all the silly machinery of a
> compiler and IDE.

I haven't bought it yet, but can you turn this off? I'm curious about battery
usage statistics with and without this feature. One of my favorite aspects of
my iPad is its battery life. If this significantly reduces it, I'd be quite
sad.

(Though I do suppose the battery drain would depend on the frequency of
changes and size of your codebase.)

~~~
praeclarum
Yes three is absolutely a toggle switch. C# and F# are mostly tolerant of this
style of programming. But if you like writing "while" and "for" loops then the
eager execution can really hurt. Also, if you do a lot of CPU or net intensive
stuff then it's also a good time to turn "auto run" off.

------
portoalet
@praeclarum how much more effort is needed if you use C# (instead of F#) to
build Continuous IDE ? Which bits of F# really helped you in building this
first release?

and also, awesome job on the App, bought it yesterday :) Everything works as
advertised, although my Ipad is a bit old, so a bit laggy in compiling the
scripts.

------
chris0x00
Doesn't this violate iPhone SDK Agreement section 3.3.2, or has that changed?

~~~
memsom
Pythonista has been doing this for years now. Codea has also been allowing you
you develop on device.

~~~
paulmd
The problem isn't developing on device, it's importing code/dependencies.
Apple doesn't want apps that can download and run arbitrary binaries from the
internet. My understanding is that they have interpreted this broadly in the
past as basically "any code that the end-user didn't type by themselves or
hasn't been vetted by the app's author".

Again, my understanding is that this has historically thrown a huge
monkeywrench into builds and dependency-resolution, for example you cannot
include something like Maven. However, apparently this is OK (presumably as
long as you stick to the official DotNet library set).

Stuff like git is really in a grey area. Apple won't officially approve it
themselves, but they have approved some scripting tools for which people have
implemented git.

~~~
memsom
Well, having just got a runtime error, I can tell you why it doesn't violate
anything - it is running as an interpreter on device.

------
mercurysmessage
Personally, I could never use a tablet for development. When I work I'm
sitting down anyway, and I like the flexibility of a full OS and having 3
monitors.

~~~
halfnhalf
You walk around with three monitors?

~~~
mercurysmessage
No, but I work from one location or another. Laptops are pretty easy to carry.

------
bluesign
This is really amazing, but I still can't stop to think why there is no good
text editor (with plugins like ST or atom) on IOS or Android

------
forrestthewoods
How does source control work with this?

~~~
njloof
Dropbox etc.

Git integration would be awesome. I tried a few of the top Git iPad apps and
none of them support sending a file to the app from Continuous.

~~~
praeclarum
This is a priority for the next update - git just ended up being a lot of work
and got cut for the initial release.

