Hacker News new | past | comments | ask | show | jobs | submit login
Professional C# and F# IDE for the iPad (praeclarum.org)
178 points by shanselman on July 7, 2016 | hide | past | favorite | 72 comments



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.


Okay - managed to make a simple UI Xamarin Forms script.. label, button with a single click event. It wasn't hideous to make and it did work. I don't know Xamarin Forms all that well, but for prototyping this could be very nice. The IDE isn't quite there as I found more often that not, the pop up hints and help are obscured by the keyboard on my iPhone 6. I'm sure on an iPad this is much slicker.

Here's a big issue though - if I develop some "cool app", how do I then transfer it to a desktop for compilation and distribution? That seems like it should be an option, but I haven't found the magic mechanism yet.


If you develop a cool app and want to distribute it on the App Store, then you will indeed have to transfer it to a Mac and recompile it there using Xamarin's free product. This is a mix of limitations of Continuous (doesn't have an ARM compiler included) plus a limitation of Apple (you need a Mac per their rules).


What is the best way to file bug reports?

In the sketch demo I'm getting "TargetException Non-static method requites a target" when I click the "share" button.


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


LINQPad is really nice for this. You get intellisense and an integrated debugger if you pony up for the license.


I worked hard to make sure F# got equal support to C# - semantic highlighting, code completion, all that. The only real difference is the F# builds are a bit slower than C#.


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


Learn it in a week: http://fsharpforfunandprofit.com/

Make a comment.


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.


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?


As a reasonably "younger folk", on-screen keyboards are still dreadful. You could attach a bluetooth keyboard or use an OTG cable (or use a USB-C keyboard if you can manage to find any :P), but at that point you're just back to having a really awful laptop.

The Transformers were an interesting concept that could have made it viable, it's too bad that they switched to Windows...


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.


I still miss the old Stowaway keyboard: 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.


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...


This is the key for me. I have a first generation iPad and a bluetooth keyboard. The only apps that I really use are Prompt (an SSH app from Panic), Pocket, and iBooks. It is an old iPad, but perfectly usable as a terminal, and I can spend all day in emacs with battery power left over to read articles on the way home.


Which Bluetooth keyboard do you use?


I use the Apple mini one. Good battery life and I'm happy enough with the feel.


You're right the experience isn't great, that doesn't stop people trying though. There are many mobile IDEs too that try all sorts of different layouts, but they are all an exercise in frustration at the end of the day. I think really it can never work, but it's interesting to see things like this, if only to verify the problem.


Attaching a keyboard and then SSHing to a computer having full developer environment works OK.


Yet why would you want to do that instead of working on a laptop?


Because an iPad mini fits in my purse and can be pulled out on the subway to fool around with F#.


Funnily, I assumed the ipad Pro was the target for such tools.


Yeah, that's what his blog post said, so for him and other .Net on iOS devs (Xamarin), makes total sense there.

For the rest of us, casual .Net coding on the go :)


Because an ipad mini is much lighter and works 4 weeks in standby, connected to wifi, and probably a good 10-15 hours of actual use? It's my device of choice when going on business trips now, despite the fact that I have a macbook air.


I don't have a laptop.


I'm a fast typist on both physical and virtual keyboards, and I would never code or do any other kind of serious typing on a tablet, my wrists would go AWOL in minutes.


I do some hobbyist Prolog programming in Textastic on an iPad mini. I can do it in my lazy boy and ftp the file to my desktop for testing when I get to that point. It's perfect for doing little puzzler programs where you spend much much more time thinking before you ever try to run the program. Helps that Prolog has a really minimal syntax, though I wouldn't try to do so something serious in it.


I have been testing out the iPad for development work and it's working out ok so far. I do have a separate keyboard and an ipad support and I mostly work on remote machines using server auditor ssh app. One advantage is the separation of screen from the keyboard so I can have the screen at eye level and the keyboard at elbow level. Less strain on the neck. A mini desktop like environment. Oh and I am 39 :)


I use my iPad Pro with keyboard to SSH into a Mac and use vim or Coda to develop.

Better battery life than most laptops and built-in SIM card means I can work almost anywhere. Plus I also get to draw sketches whenever I want (both UI designs and for fun). And I really like iPads.


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.


Believe it or not, you can alt-tab on an iPad now if you have a keyboard hooked up. https://www.subtraction.com/wp-content/uploads/2015/06/2015-...

And while iOS won't give you a local terminal, remote servers are in reach with a pretty nice SSH client: https://panic.com/prompt/

Text selection on a touchscreen still sucks compared to a mouse, unfortunately.

Still, if an IDE can hit most/all of your needs, I can see iOS working pretty well as a programming environment. Apple's Swift Playgrounds in iOS 10 feels like a first step toward them bringing Xcode over.


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.


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


At least on an iPad Pro, I have found the split view with Safari docked to the right to be very adequate (actually, good) as the app contains lots of links to online docs.


Doesn't cmd-tab work to switch apps on the iPad now? And ctrl-tab works in ios Safari to switch tabs. Looks like your (and my) workflow would be fine.

http://9to5mac.com/2015/11/20/ipad-keyboard-shortcuts-cheat-...


If you plug a keyboard in an iPad, you can alt+tab and you'll see this : http://i.stack.imgur.com/O40Fy.jpg

It works the same as on Windows or Mac (not so sure).

edit : I was scooped ! Let me add something : The exact same thing works on Android.


This would be perfect for some last minute coding in bed though. If it supports split-view, then you can use your browser/terminal alongside it.


How about 2 tablets?


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?


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).

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.


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.


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.


Yeah these work well for things like nodejs development windows 10 getting full ubuntu bash will make these little 4 gig devices more useful for command line development. Big ides such as visual studio and android studio will struggle to run on these devices though.


Actually VS is not that much of a memory hog unless you're talking huge projects but storage space could be an issue with VS install (that model has 64GB). I would probably just use VS code and probably wouldn't try to do big C++ project compilation/dev :D


Do you think I could install Ubuntu on that?


Not sure about that particular model but I know people did it with other Atom models, still the usual Linux on obscure hardware problems are there - unsupported WiFi/sound/etc.


because you can write/try ios app (without recompilation, live too!), using Native iOS Libraries (UIKit, SceneKit, SpriteKit, Foundation, CoreImage) and .NET with xamarin (Xamarin.Forms, mscorlib, System.Core, FSharp.Core).

see the website http://continuous.codes/ , it deserve a slow scroll.


For me its the pixel c i find aide is better than the giant clunky android studio. Yeah you could slowly run android studio on a surface but ive actually been productive on the android on device ide with the pixel c.


Battery life. The iPad will give you a solid 10 hours of work and the surface will die after about 4-5.


Do you really need a super long battery life when you are sitting down and working?


If you are mobile and don't want to look for a power outlet, you do.


i'm looking for a tablet and i don't want keyboard. I wouldn't mind doing a little programming, to work on a small piece of code, for example.

I'll just copy to my ipad clipboard and paste the code to my Mac when i want to work for hours.


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/ [2] https://vimeo.com/171996394


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.


> 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.


> 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.)


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.


@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.


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


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


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.


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.


That was only targeted at Flash.


Can anyone even answer your question without breaking the dev license?


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.


You walk around with three monitors?


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


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


How does source control work with this?


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.


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




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: