Subscribe

Entries in monotouch (5)

Tuesday
02Feb2010

Why the iPad is relevant to developers

A lot has been said about the iPad in the week since Steve Jobs unveiled it to the world at the Yerba Buena Center for the Arts in San Francisco. The response has ranged from jubilation from those who consider the device a must have all the way down to disdain and utter contempt from those who were somehow hoping this companion device would be able to replace their laptops. While I understand both camps (and everyone in between), I’m not going to voice my allegiance to either opinion.  To be honest, I’m actually somewhere in the middle. I would much rather discuss how important this device is to the already thriving iPhone ecosystem and why you will want to develop for the iPad.

Without divulging any specific iPhone 3.2 SDK details (and thereby breaking my NDA), I can tell you that the new APIs and features present in the SDK are very exciting. Some of them are iPad specific and others will probably be available for iPhone development some time in the near future. If you have been doing any iPhone development, you are already familiar with the tools, languages, and concepts necessary to program for the iPad. From what was shown in the iPad event, it is clear that the applications that are possible for the iPad are much more robust than anything we have seen or created for the iPhone. The split pane and popup menus provide the ability to do a lot with the copious screen real estate the iPad offers. I don’t want to spend too much time talking about the SDK because I can’t do it justice without breaking the NDA. Just suffice it to say that if you haven’t looked at it yet, you really need to. It’s exciting.

As for the hardware, I think the story there is pretty phenomenal too.  The larger screen will allow developers to create applications that are much closer to desktop functionality than the much smaller iPhone screen currently allows.  The Apple A4 processor (which is apparently based on the same ARM Cortex A9 as the Nvidia Tegra chip) appears to be very snappy which should allow for a smooth user experience.  The accelerometer is there in full force and there are speakers and a built-in microphone.  There is GPS capability in the 3G models.  This opens the door for some fantastic GIS applications. 

One last thing that is easy to overlook from a developer’s perspective is the financial impact of this device.  The people that will buy this device will buy your applications if they add value to their iPad experience.  They had the funds to purchase the device at a minimum entry point of $499 so it is almost a given that they will be willing to plunk down some money on your well written apps.  It would be wise to not leave them hanging.

So, there’s my take on the new device.  I, for one, am beginning development on my first application and hope to have it ready by launch time.  I encourage all developers to follow suit.  We are what will make this device a must have.

Wednesday
11Nov2009

Announcement: Project Empty Tome

I am pleased to announce that top secret Project Empty Tome is officially under way.  I will provide more details as the project progresses but I am certain that this is something the entire MonoTouch community will benefit from.

I may call on a few of you in the community for help on this project and I look forward to your input when that time comes.  Stay tuned to this this blog (subscribe to the RSS feed!) for more updates as they become available. 

Tuesday
27Oct2009

Breaking News: MonoTouch 1.2 with debugging released! (screenshots)

Yes, you read that title correctly, MonoTouch 1.2 supports debugging in MonoDevelop!  I have known about this for a while and I’ve just been waiting for the opportunity to let all of you know this wonderful news.  It hasn’t been an easy secret to keep as it is definitely a game-changing feature for many of you that have been on the fence about whether or not to jump on the MonoTouch bandwagon.  Well, you can’t use lack of debugging as a reason to not justify the purchase any more.

The really cool thing about this debugging support is that it works on both the simulator and the device.  Since Apple does not directly allow third parties to participate in their debugging infrastructure, Geoff Norton and Michael Hutchinson, et al., had to do a lot of work to get this to work and they should be commended for their efforts.  Debugging MonoTouch requires the iPhone to communicate back to the computer.  From the upcoming documentation at http://monotouch.net/Documentation/Upcoming/Debugger:

The MonoTouch debugger is a soft-debugger, that means that the generated code and the Mono runtime cooperate with the MonoDevelop IDE to provide a debugging experience.  This is different than hard debuggers like GDB or MDB which control a program without the knowlege or cooperation from the debugged program.

For on device debugging, your iPhone needs to be on the same Wi-Fi network as your computer (yes, debugging over Wi-Fi…even Apple doesn’t completely allow this).  You should note that the debug build of your code will include the cooperative Mono runtime so the resulting program will be larger than a regular program. This is because the generated code has been instrumented to be debugged.   A debug build will also be slower than a regular release build so it should not be used for performance testing.

The team has put a lot of really hard work into this.  The result of this work is a truly native feeling debugging atmosphere that should be familiar to anyone who has used IDE debugging in the past.  You set a breakpoint on a line and when your code hits that breakpoint you can inspect local variables in the Locals window, see the Call Stack in the Call Stack window, and get on-hover information for variables in your code.  At the end of this post there are screenshots for you enjoyment (and salivation!).

I can really only summarize this release in one word: awesome.  Go check it out for yourself later today at http://monotouch.net and stop into the IRC channel at irc.gnome.org #monotouch and say thanks to the development team for this awesome feature.

Update: According to Miguel de Icaza, there will be a beta of MonoTouch 1.2 available later today.

Here are the screenshots I mentioned previously:

Test App LayoutBreakpoint setBreakpoint hit!Locals and Call StackHover over infoSuccessfully debugged!

Sunday
20Sep2009

Getting started with MonoTouch

MonoTouch is a new framework from Novell for creating iPhone applications using C#.  Since some of the concepts of developing for the iPhone platform will be foreign to the .NET developer, I thought it would be a good idea to create a screencast that eased them into the process.  Since a lot of .NET devs will be new to the Mac, I have tried to make as few assumptions as possible with regards to the your comfort level and proficiency with Mac OS X.

In this screencast, I will walk you through installing Mono (the open source cross platform .NET implementation), MonoDevelop (an IDE), and MonoTouch.  Once everything is installed, we will develop a "Hello iPhone" application.  Throughout the process of developing this application I will introduce you to core concepts of MonoTouch as well as familiarize you with Interface Builder (Apple's tool for creating iPhone interfaces).

Getting Started with MonoTouch : click to view screencast

I hope this screencast helps get you up and running creating awesome iPhone applications using C#!

Note: The link to the web client for the IRC channel is actually on the Community page, not the Support page at monotouch.net.

If this screencast helped you, consider "touching" is to promote it at MonoTouch.info by clicking the "Touch it" button below and "kicking" it to promote it at DotNetKicks.

Touch It

kick it on DotNetKicks.com

Friday
18Sep2009

UITabBarController - Xcode and MonoTouch

This two part screencast will walk through an example of creating a UITabBarController and adding a custom UITableViewController to it in both Xcode and MonoTouch.  I have tried to highlight the similarities and differences between the two frameworks/IDEs.

Having the option of creating iPhone applications in C# is intriguing and with the right project needs it could be a lifesaver.  While parts of the process are still a little rough around the edges, this is still an exciting project to follow/get involved with.

Part I: Creating the app in Xcode with Cocoa - click to watch

Part II: Creating the app in MonoDevelop with MonoTouch - click to watch

Also, here is the uitvc code template that was used to create the UITableViewController subclass: uitvc.template.xml  You will need to add this to ~/.config/MonoDevelop/templates/code (choose "Go to folder..." from the Finder menu and paste the directory to find it) and restart MonoDevelop. (Note: If you don't see templates/code in ~/.config/MonoDevelop, go to Preferences in MonoDevelop and click on Code Templates under Coding.  This should populate this directory.  You don't need to do anything else here, just close Preferences and follow the instructions above to add the file to the ~/.config/MonoDevelop/templates/code directory.)

UPDATE: I fixed the IntPtr constructor in the uitvc template.  It did not correctly pick up the name of the TableViewController subclass.  This new version should fix that.

If you have any questions, please visit http://monotouch.net.  Join the IRC at irc.gnome.org channel #monotouch.

Click the "kick it" link below to promote this story at DotNetKicks if you found this story helpful.

kick it on DotNetKicks.com