Hey guys, I know that I’ve been pretty much silent for the last couple of weeks. I’ve been almost completely heads down inside of a number of projects both personal and work related and some mixed between the two … you all know how it goes sometimes. Nevertheless, things have been really going really well and I’ve been learning a whole lot.
Working in a start-up can be extremely challenging but it’s also usually a valuable learning experience, if you can see it that way. It’s not like I’ve not led teams before, or worked on challenging projects, but I feel like working in the digital media space is quite interesting. It has given me a new perspective on how the technology that engineers produce can be used.
To ensure that this post does not descend into a blab fest, here are a couple of interesting things that I’ve run into over the past couple of weeks either on my own or via friends and colleagues.
Android ported to C# – http://blog.xamarin.com/2012/05/01/android-in-c-sharp/ – This one certainly made me take notice, not just because I have experience with .NET coding, but also because of the on-going Google vs. Oracle trial around the big G’s use of Java in their Android platform.
This is also super interesting to be because my research show time and time again that many of the applications on the Android platform suffer from performance problems. I’ve always attributed this to a combination of a development framework and methodology does not really force / enforce efficient UI (user interface) development, at least when programming in languages like Java on the Android Platform. I’m not sure that I’m entirely wrong here, but I’ve pretty much confirmed that one of the problems on the platform is in fact Google’s implementation of the Java VM on the Android platform, the Dalvik VM. This is a core component of the Android platform, but is also very young compared to other Java VMs out there. In comparison, there were some videos that I ran into that spoke about this fact very openly and demonstrated the difference between the performance of apps written in Java, C++ and on Mono. Java (or rather the Dalvik based Java Runtime) lagged behind significantly.
MonoTouch – http://xamarin.com/ (same company as above. I’ve had my eye on Ximian/Xamarin for some time. For those of you that don’t know they are the company that implemented a version of the .NET and Silverlight runtimes on the Linux Platform. For a long time I thought that (and it seemed to be confirmed in a this YouTube video – http://www.youtube.com/watch?v=uS_9nwdzfzM – be warned … this video is really long and very technical) the Mono implementation of .NET trailed the Microsoft implementation by about 1 year. I was pleasantly surprised recently when digging more deeply into their work, that these guys are (1) releasing some features ahead of Microsoft and (2) Really digging into the Android space. I’m not sure that I have to spell out the implications here, but give it a look see. I plan to do a separate post of both the above item and this one at some later point. I.e. when I can get the XobotOS to compile properly under Mono.
To the point though, MonoTouch seems to be an excellent alternative for writing applications that target both iOS and Android unlike other cross-platform frameworks, this puppy generates native assemblies and share 99% of the code. Quite an impressive feat … but as I said before, I still need to get my hands dirty here.
I did promise that I was going to keep this short 🙂 – so finally —
Cross-Platform Mobile Development Frameworks – I had started seeking out and writing down the different platforms that I encountered in this search … trust me, there are quite a bit out there… but then a colleague sent me this super useful wiki link that had already done all this work for me. You should check it out if you haven’t already – http://en.wikipedia.org/wiki/Mobile_development
I must say though, that from my personal explorations in using tools platforms like PhoneGap then building applications natively on a Windows Phone device directly, there is no comparison for certain tasks. So far, I’m leaning towards Cross-Platform for your MVP (minimum viable product) but as soon as you’ve worked out your business model and understand your customer’s needs, I suggest that you invest in a native app.
Okay … that’s all for now. Did a ton of other things in the last couple of weeks that I’ll talk about later. For now … Have a good one. Happy hacking!