Anyone used/using MonoTouch for ipad/iphone?
-
I am using MonoTouch on a Mac mini and have 8 apps in the store right now all using .NET instead of Obj-C. The GUI itself still uses Interface Builder but the MonoTouch team wrapped all of the classes in .NET ones that are pretty similar to using WinForms. There are things that you have to remember tho like instead of .Click you have .TouchedUpInside. Besides that it is pretty similar to normal .NET coding. For three of my apps I even took what I did on MonoTouch and moved it over to WP7 directly with no changes to have 3 apps in that market as well. The price is not cheap but I have made more than what I paid in less than a year.
Steve Maier
Steve Maier wrote:
For three of my apps I even took what I did on MonoTouch and moved it over to WP7 directly with no changes to have 3 apps in that market as well.
I assume the no changes part only referred to back end logic, and not the GUI...
3x12=36 2x12=24 1x12=12 0x12=18
-
Unfortunately, this isn't a learning effort, and I have a 40000 line app that I would need to port to objective C, which would take a pretty long time....
-
Steve Maier wrote:
For three of my apps I even took what I did on MonoTouch and moved it over to WP7 directly with no changes to have 3 apps in that market as well.
I assume the no changes part only referred to back end logic, and not the GUI...
3x12=36 2x12=24 1x12=12 0x12=18
Definately. The logic for the app did not change.
Steve Maier
-
I am thinking about doing a port of a c# winforms app I have over to the ipad/iphone using monotouch. Has anyone here used it, and if so, what impressions do you have? How much of the .NET framework is supported by it? How much and what rewriting did you have to make it work? I already have a Mac Mini and an Apple developer's account, so I should be all set from that standpoint.... Thanks!
For MonoTouch there also is an port of XNA called XNATouch so that you can directly use XNA code and run that on the iPhone. There are a few games released that use that already.
Steve Maier
-
I am using MonoTouch on a Mac mini and have 8 apps in the store right now all using .NET instead of Obj-C. The GUI itself still uses Interface Builder but the MonoTouch team wrapped all of the classes in .NET ones that are pretty similar to using WinForms. There are things that you have to remember tho like instead of .Click you have .TouchedUpInside. Besides that it is pretty similar to normal .NET coding. For three of my apps I even took what I did on MonoTouch and moved it over to WP7 directly with no changes to have 3 apps in that market as well. The price is not cheap but I have made more than what I paid in less than a year.
Steve Maier
Steve Maier wrote:
.TouchedUpInside
Erm... :~
-
I am using MonoTouch on a Mac mini and have 8 apps in the store right now all using .NET instead of Obj-C. The GUI itself still uses Interface Builder but the MonoTouch team wrapped all of the classes in .NET ones that are pretty similar to using WinForms. There are things that you have to remember tho like instead of .Click you have .TouchedUpInside. Besides that it is pretty similar to normal .NET coding. For three of my apps I even took what I did on MonoTouch and moved it over to WP7 directly with no changes to have 3 apps in that market as well. The price is not cheap but I have made more than what I paid in less than a year.
Steve Maier
Steve Maier wrote:
TouchedUpInside
Seriously? someone at apple thought that was a good event name?
Pete
-
Steve Maier wrote:
TouchedUpInside
Seriously? someone at apple thought that was a good event name?
Pete
.TouchUpInside .TouchUpOutside .TouchDownInside .TouchDownOutside Yea they really did not think these things thru when they named them. But given that in Obj-C it is abit harder to read it than compared to having it just on a . for the object with the parameters in the (), Apple might not have thought anything about it.
Steve Maier
-
That's why programming is more enjoyable on Windows Platforms, purely for the IDE.
Norm .net wrote:
programming is more enjoyable on Windows Platforms, purely for the IDE.
I like Windows not because of the IDE (in fact I almost never use it these days), but for the consistency and longevity of Win32 API. Windows is pretty much the only platform (well, besides Java, maybe) where you can have some confidence that your code would be able to compile and run ten years from now.
-
The IDE is MonoDevelop which is very similar to Visual Studio, just not as polished. It is the same UI that you would use to do mono work on a Mac or Linux. The IDE itself is not too bad but it has locked up on my more than once. I do like it better than XCode tho.
Steve Maier
-
I am thinking about doing a port of a c# winforms app I have over to the ipad/iphone using monotouch. Has anyone here used it, and if so, what impressions do you have? How much of the .NET framework is supported by it? How much and what rewriting did you have to make it work? I already have a Mac Mini and an Apple developer's account, so I should be all set from that standpoint.... Thanks!
I have been playing around with MonoTouch on and off for about half a year, and I am quite impressed. Although I haven't published any applications yet, one is on its way. The GUI is a bit different, and there can be some minor issues in regards to network reliability - but there's lots of resources on the net that can help you on your way. The biggest issue that I have found is that you get a minor performance penalty on a cold startup of your application (5+ secs. on an iPhone 3G) - although I think some of this can be fixed by following some of recommendations from Apple's iOS development guide and a splash screen also helps on the persived startup time. I strongly recommend the book "Professional iPhone Programming with MonoTouch and .NET/C#"[^] which has helped me alot getting started.
Need a 0 false positive SPAM filter? Try the free, industry leading spam filters from SPAMfighter
-
I am thinking about doing a port of a c# winforms app I have over to the ipad/iphone using monotouch. Has anyone here used it, and if so, what impressions do you have? How much of the .NET framework is supported by it? How much and what rewriting did you have to make it work? I already have a Mac Mini and an Apple developer's account, so I should be all set from that standpoint.... Thanks!
I was using it. Loved it at first, put one app into the app store (ifindz), but now totally abandoned it for titanium appcelerator. Reason: mt is too buggy, too unstable. Especially - gc, anonymous methods. It crushes inside binaries, and it's impossible to debug, because presence of the debugger totally changes dynamics of the execution which caused the problem. Also, startup time is noticeably slow, binaries are fat (it carries the whole .net with it) On the positive, though: it is as close to iOS sdk as anything can be, it is complete port. When making decision about moving to titanium, 2 things made the choice easy: -- JavaScript as a language; -- now I can alter my native apps just like web pages - on the fly, at any time. Can't beat it, especially considerin app store's approval process. As a result - my app written in titanium (iwakeapp) has been finished in a fraction of time it took me to fight through mt. Hope it helps. Good luck.
-
I am thinking about doing a port of a c# winforms app I have over to the ipad/iphone using monotouch. Has anyone here used it, and if so, what impressions do you have? How much of the .NET framework is supported by it? How much and what rewriting did you have to make it work? I already have a Mac Mini and an Apple developer's account, so I should be all set from that standpoint.... Thanks!
I ported a Windows 6/6.5 app over to iPhone using MonoTouch a couple of months back. It was very interesting because of the way it forced me to think differently. My windows mobile app was in reality a desktop app shrunk down to fit a mobile if I was honest. Having to do it the iPhone way with its different UI brought me out of my tunnel vision and taught me that my code layer separation was not as good as I thought it was. There was only one book available (but very good : Mc Clure, Bowling et al) so you had to go and hunt through the forums for examples. I could not get to grips with the UI designer so went back to basics and did everything in code, which was a change. Having got to grips with how the screen navigation works (form to form) the rest was pretty straight forward. Looking back I think I mostly struggled with the provisioning side (was doing an enterprise deployment ang getting the certificates to work was somewhat of a chore). I was also forced to buy some Objective C books to try and get to grips with some of the background concepts as there was no real explanation anywhere of of some concepts. That was interesting but I am not going to take it any further. The C# thing works very well on MonoTouch (The IDE is Ok, not the best, but easily good enough) so do not feel the need to go down the Obj-C route. 40,000 lines of code does seem a bit large, but I am not real pro on this. 1 app really does not give me as good basis to pontificate from, but my initial reaction was to flinch a bit. I was under the impression that most of the framework was ported over save the run time dynamic creation stuff because IOS doesn't handle the JIT compilation stuff. So my impression was good, thoroughly enjoyed the experience and will do it again very shortly I hope. A bit rambling but I hope this helps
-
Someone made a dll to let you use Visual Studio to compile against but to build the final version I think you still need a Mac. I am not sure you can debug or even see the code running using vs. It is just as simple to use MonoDevelop since it is the Mac version of SharpDevelop .
Steve Maier
-
Steve Maier wrote:
TouchedUpInside
Seriously? someone at apple thought that was a good event name?
Pete
So some Apple employee thought my previous post deserved a 1 vote. Why? None of the event names that Steve has listed even include an "iP..." in the name. Not very Apple of you!
Pete
-
I am thinking about doing a port of a c# winforms app I have over to the ipad/iphone using monotouch. Has anyone here used it, and if so, what impressions do you have? How much of the .NET framework is supported by it? How much and what rewriting did you have to make it work? I already have a Mac Mini and an Apple developer's account, so I should be all set from that standpoint.... Thanks!
If the app is anything game-like, I would recommend Unity3d. It's a 3d engine (you can implement 2d gui's - though not in a clean way) that supports monotouch. It builds to multiple target environments including iOS. I recently published an iPad app using Unity (Fish Swarm)
-
Someone made a dll to let you use Visual Studio to compile against but to build the final version I think you still need a Mac. I am not sure you can debug or even see the code running using vs. It is just as simple to use MonoDevelop since it is the Mac version of SharpDevelop .
Steve Maier
-
Unfortunately, this isn't a learning effort, and I have a 40000 line app that I would need to port to objective C, which would take a pretty long time....
Coming from the perspective of one who targets .NET and Mono with a WinForms app... it works, mostly. The UI itself doesn't render nearly the same under Mono. Close, but not the same. Not really unexpected... but. I've even had to change the way I lay things out in Windows to appease Mono on occasion. Seems like it was a TableLayoutPanel that caused me trouble. In a few spots I've also had to write some code paths specifically for Mono because it just doesn't work like the .NET runtime. Not a huge deal. If you're experience is anything like mine then you shouldn't have too much trouble converting your application under the assumption that MonoTouch has a completely different control set and the UI will need reworked anyway.
-
Steve Maier wrote:
.TouchedUpInside
Erm... :~
Yeah, my thoughts exactly. . .I kind of snickered on that one. Coding could be kind of fun and funny at times on this platform. . . . ..with a button (not sure if this event is available for one, but work with me..) named "She" .. .you'd have She.TouchedUpInside() The can of worms is now open, discuss! :-)