Personally, I'd prefer not to have a git client built into Continuous itself. I use an excellent app called Working Copy to do all my git on iOS. It's a very full featured git client. What Continuous would need to do is to implement the iOS8+ share pane extension so that it can send files to Working Copy (and Dropbox and any other app that's supports sharing) and vice versa. In fact, we might even be able to implement some of this ourselves. If you look at the "Sketches" demo project, the action/ share button in the corner is fully functional. We'd need to work out if there's a way for a Continuous project to read its own source code (or even better, the source code of other projects). I believe that the iOS share pane cannot handle multiple files, it can only send one file at a time. What Working Copy does is zip folders and repos into a single zip archive. So if we wanted to add more complete support for multi-file projects, we'd need to look at zip. But with the entire iOS SDK at our disposal, it should be possible.
For me (iOS 9) the share button in Sketch failed with an error on my iPhone 6S. TargetException Non-static method requites a target.
Unless Apple revise the rules, downloading code directly into the app in any way is probably not allowed. The excellent Codea (Lua) environment has skated along the edges of this with various app store rejections for years.
@memsom that's interesting, it works on my iPad Air1. Try commenting out the `PopoverPresentationController` line. On iPad, the action pane is a modal, and this is the line that tells it which button the hovering panel has to point to. On iPhones the panel just slides up from the bottom, so it doesn't need to know which button it points to. Though the error message makes it sound like it's not happy about that function being an anonymous closure. I know Swift and the iOS SDK, but I don't know Xamarin. In Swift, the pattern is usually `addTarget(target: AnyObject?, action: Selector, forControlEvents: UIControlEvents)`, where `target` refers to the instance that owns the `action` method (often its `self`). I guess this is a hold-over from Obj-C where functions are not first-class values? Could that be the "target" that your error message "Non-static method requites a target" refers to? @andydent this is true. But then for years the rule was no code-compilation, only interpreted languages like Lua and Python. The git app Working Copy has an "export to Codea" function, and Pythonista has a "run Python script" action pane extension, so I wonder whether the rules about this are changing?
Take a look into Working Copy: https://brax.tv/series/mobile-developer-toolbelt/commit-code-via-git-working-copy# Pretty much amazing
+1 Working Copy integration - this would make it really useful.
Just to clarify, we can currently push projects out of Continuous to Working Copy (and many other places) using the share sheet in Continuous, accessible by tapping the info button next to the project name. But getting code *in* to Continuous is currently a little harder. Time to look at the GitHub APIs I think...
@utsira yep, commenting out that line made it work as expected.
@memsom great, glad you got it working.
Being able to work with existing github repos is essential for this awesome app!!