Tag Archive | "iOS"

Using TestFlight SDK with MonoTouch

When developing applications getting reliable and good feedback and information from your testers is vital to the quality of the application you are creating. A great tool that can help you with this as an iOS developer is TestFlight.

If you are unfamiliar with TestFlight check their website for detailed information, but in short; it is the easiest way to distribute beta builds of your application to your testers. In addition to distribution TestFlight has an SDK that you can implement in your code to track  usage and states in your application. With the SDK you can also ask the user questions that is related to a checkpoint, or also ask for general feedback. This can be implemented per view or for the whole application. The TestFlight SDK also has a log feature where you can for instance in your error handling automatically upload exception messages. Global application crashes is automatically logged to TestFlight.

Getting the SDK to work when you are using Objective-C and Xcode is easy, but as a MonoTouch/iOS developer using MonoDevelop it is a bit more tricky, not much but a little bit. Following is a step by step guide  on how you can use I use it and find it useful.

The guide assume you already have MonoDevelop installed with MonoTouch. If you just want to test the version i have created to see the question and feedback windows you can download my sample app on here: http://testflightapp.com/install/1644edbe8988e1750d800e262288cbc2-MjE3MjQ3Mg/

You can also download the sample app source code from here.

1. MonoTouch bindings for TestFlight

The first thing you will need is the MonoTouch TestFlight binding library. Download that to you computer from http://tflig.ht/MA8ycg

2. TestFlight iOS SDK

Download the TestFlight SDK zip file to your computer from https://testflightapp.com/sdk/.

3. Create your TestFlight.dll library

When the download is complete, copy or move the zip file with the SDK to the “binding” folder inside the MonoTouch library you downloaded in the first step. then open a Terminal window and navigate to the same binding folder. Once there just run the command “make”.  The “make” command creates a TestFlight.dll file that you will use in your application.

4. MonoDevelop

Open or switch to MonoDevelop and create a new MonoTouch iPhone application and add a reference to the TestFlight.dll file you just created.

One that TestFlight uses is the uniqe device identifier (UDID).This has been deprecated as of iOS 5 so be sure to NOT include references to that in the version you plan to submit to the AppStore! But for  identifying devices in betatest it’s great! Some parts of TestFlight can also be used in live applications like the TestFight.Log(string message); feature, that you can use in case of errors in live applications, The feedback windows can also be useful if you haven’t created you own feedback system.  So, there’s only one way to have some code compile for release and some at other times and that is by using debug symbols like this

      // Some code to execute when the debug symbol is hit.
      // Other code to execute when the DEBUG symbol 
      // isn't present (for instance in RELEASE)

In my projects I always have at least three different configurations. Debug, Release and TestFlight. Debug I use while developing, Release for uploads to AppStore and TestFlight for uploads to TestFlight. To create a configuration for your app solution (that will apply to all projects in the solution) right-click on the solution and select options, then choose build -> Configurations. Add a configuration called TestFlight (or any other name you choose). If you have more than one project in your solution that the main app project depends on remember to set the configuration mapping too.

Secondly you need to configure the TestFlight Configuration. Right click on your project and choose Options. I always use the same configuration as for Debug since there’s no real difference except that I will upload this. There are two options you need to configure for the TestFlight configuration. under Build -> iPhone IPA Options you need to check the “Build ad-hoc/enterprice package (IPA), and create the debug symbol by going to Build -> Compiler and type “TESTFLIGHT;” without quotes. If you already use a DEBUG; symbol in your code you can append that here by typing “DEBUG;TESTFLIGHT;”, then all code that is marked for compiling while debug will also be compiled in the TestFlight build.

You can now use this in your code.

      // Some code to execute when the debug symbol is hit.
      // Other code to execute when the DEBUG symbol 
      // isn't present (for instance in RELEASE)

5. Development

The IDE is configured and you have the library, it’s time for implementation. This guide is how I have implemented it. It works and like this way of doing it, but I don’t know if it’s the best way or smartest way of implementing it so if anyone has suggestions for improvements I’ll be happy if you let me know.

The first thing I do is to Identify the device and start the TestFlight session by calling TakeOff. I do that in the Main.cs file.

static void Main (string[] args) {
      try {
         UIApplication.Main (args, null, "AppDelegate");
      catch(Exception ex) {
          TestFlight.Log("Unhandled Exception:" + ex.Message);
          // rethrow to resume normal action on unhandeled exceptions......
          // app crash...

So, here we use the TESTFLIGHT symbol to only use the UIDevice.CurrentDevice.UniqueIdentifier when we build for TestFlight. If this code is used in the release and uploaded to AppStore it will be rejected and we don’t want that. It is important to notice that if you use the SetDeviceIdentifier you can only distribute your app to testers defined as members in your TestFlight team. That means that you cannot distribute it to anonymous testers.

I have also surrounded the  load of AppDelegate with a Try/Catch to handle any errors that may bubble all the way up and crash my app. Things that I should have caught earlier in code. Now I at least have a mechanism to capture it and tell me and that is very useful.

Other methods we use in the TestFlight library is PassCheckpoint(string), Log(string) and OpenFeedbackView().

The PassCheckpoint method is used to tag events in your app that the user reaches. It could for instance be when a button is pressed or a view is loaded.

TestFlight.SubmitFeedback(string feedback)

This can be used in live apps to gather user feedback.
MonoDevelop has full support for direct upload of apps to TestFlight and have a good guide on how to do it here http://docs.xamarin.com/ios/tutorials/TestFlight_Support. Uploading to TestFlight is as easy as compiling.
How you use the TestFlight web site is an article for later so until then, play around and you’ll figure it out.


Use Facebook to Comment on this Post

Posted in Code, iOSComments (0)

Am I loosing faith?

Ever since I was invited by Microsoft (Norway) to Las Vegas and the unveiling of Windows Phone 7 at Mix in 2010 I’ve been super stoked about the new MS mobile os. It was new, it was (is) fun to use, and it has a great potential. Once a decent phone was available in Norway i jumped on a HTC Titan phone and I’ve almost never looked back to my iPhone days…

but… now, over two years later whats happening?

At Mix in Las Vegas 2010

Nothing is happening!

We are waiting for Windows 8! and we are waiting for Nokia (or any other vendor) to start manufacturing more phone models. For two years Microsoft has worked on convincing their huge mass of developers to “convert” or extend  to app development for Windows Phone 7. For what? to publish apps to a smart phone os with 2.2% global market share?

Some numbers; Windows Phone have had a drop from 2.6% in 1Q2011  to 2.2% in 1Q2012 according to IDC Worldwide Mobile Phone Tracker, 24. may, 2012. In the same timeframe Android went from 36.1% in 2011 to 59%. Apple and iOS from 18,3% in 2011 to 23 in 2012. This is global market share numbers. The Windows Phone numbers also include any Windows Mobile devices still being sold. I am not sure if these numbers also include all the industrial type rugged devices that (still) run Windows Mobile and/or Windows CE/Embedded. For Microsoft i hope not. In Norway the numbers are a bit different. Android is the biggest platform with about 50% of the market, iOS has between 40% – 45% and Windows Phone has reached about 5%.

With these numbers in mind, and as a technology advisor; What is my motivation to try to get clients and customers to pay Windows Phone app development? I have no idea! More and more lately I have advised customers to just wait with the Windows Phone app because there’s no real ecosystem for it. At least not in Norway yet. I still wonder when we’ll be able to use all the cool features they show off in the “Smoked by Windows Phone” campaign.

I have “defended” the Windows Phone market share earlier (and not long ago) because I believe that a drop in market share partially can be explained by lack of a variety of device models and that people who used to have Windows Mobile devices aren’t ready to “upgrade” to Windows Phone yet, They want to try something else first.

If it’s Windows 8 we’re waiting for that’s ok with me, but I am a bit puzzled that for the last two years the ONLY (almost) group Microsoft has promoted WP to is their developers. No campaigns (in Norway) aimed at the consumers that the developers needs as motivation for developing.  Me, I’m not worried, Android and iOS apps are easy to sell, they have the user mass. We can wait until sometime around spring 2013  or longer when people start adapting the Windows Phone 8 (if they do) we  already develop all our software with C#, MonoTouch and MonoDroid from Xamarin anyway so we’re ready for whenever Microsoft can provide some motivation for me to recommend my customers to invest time and money into Windows Phone.

On a personal note I can say that I really like Windows Phone no matter their early technological flaws. I believe that the world needs 3 major (equal) mobile platforms and I hope Microsoft succeed, but It’s not right for me to suggest or “sell” the idea to clients that they should invest in this early. There just isn’t a commercial market there yet.


Use Facebook to Comment on this Post

Posted in Technology, Windows PhoneComments (0)

App Test: Fun Clock Norwegian for iPad

A while ago I was asked if I wanted to try out, and write a review of the iPad application “Fun Clock. Learn to tell time in Norwegian“. In short, Fun Clock is a training game designed for children from the age of 4 to 10. The goal is to teach children to understand the clock and read the time. Luckily enough i have in my immediate family testers in the target audience, and put Hedda (5) and Sebastian (10) in charge of testing the game. If you want to read my norwegian review you can read that on mobilteknologi.no

First, a short promo video of the game:

From a technical point of view I think the user interface looks nice and works well. The Norwegian voice-over also works well and I think it sounds a bit like it’s Alex Rosén that has the lead voice over role (do not know if that ‘s correct or not). The only odd choice from the publisher in my opinion is that you MUST keep your iPad’en “up side down” for some reason. The game does not rotate as it should when you rotate the iPad.

The game also only use sound/voice as a means of communicating tasks in the game so you are totally dependent on sound. Bring headphones :)

The game itself is divided into 5 “levels” and in each level you can achieve from 1 to 3 stars according to how well you manage the different tasks in each level, this encourage the player to try again to get a better score, in a way that we are familiar with from games like Angry Birds. There is also some tutorial movie clips that will teach you more about the clock and time. There are 3 movies. One for hours, one for minutes and one for learning digital clocks. These movie clips are there to teach basic concepts of time.

Hedda (5) was impatient and wanted to play right away, so to get her to sit and watch the movie clip was a challenge.

Another important prerequisite for using this game is that you can count quite well, and I think it might be too much for some 4 or 5 year olds. For the youngest ones it might be a good idea to try together with an elder sibling or parent. You  as a parent  can play along with your kids and teach them the basics of time at the same time.

The first level task is to place the numbers and pointers on the dial correctly. A task that is quite easy, but require that you know the numbers from 1-12. Hedda ended up with 2 stars on her first try.

The second level is to set the time in whole and half hours. The first 4 tasks using a red and a purple ball. The dial shows “holes” for where to place the balls.These tasks Hedda did with no problem. The red ball is placed where the hour hand should be, and the purple ball is placed where the minute hand should point. Next up there is four tasks where you pick one of three clocks. Choose the correct watch based on what time you are told, here it soon became much more difficult for Hedda because she must be able understand the clock to do it. The movie clip does explain it, but it was hard to get the 5-year-old girl to both watch and learn :) The last four tasks on the level was there Hedda almost gave up because  according to a time you are told you must move both the long and short hand to the given time on the dial, we ended up with 0 stars in this task, so we took a second look at movie clips, but it was still difficult because the counting knowledge is still not at 100%

The third  level, you set the time quarter to and  quarter past and on the fourth level you set the time in 5 minutes intervals. The fifth is where you learn minutes and where you need to be able to count to 60. The levels follow the same template for tasks as for level 2,  but when you get to five minutes, and 1-minute you get more choices, which makes it even more difficult.

When you have completed all levels you are awarded a diploma. The diploma can be stored as an image and/or shared on Facebook. Curious since according to the user guidelines of Facebook none in the target audience for the game is allowed to own a Facebook profile…

Another nice feature is that the game have an option to reset if you wish. Either once or every time you start the game.

All in all I think it’s a good, educational game, but think that the ideal age for most will be around 6-8 years old. I also let my 10-year-old son Sebastian test the game, but both he and I soon discovered that he was too old for this. Hedda is still playing and think its great fun. Sometimes I help her a bit and she learns a bit more about the time every time she plays. She still doesn’t to watch movie clips :)

Mingoville’s game is available in the Apple AppStore for English , Danish , Swedish ,Norwegian , French and italian . There is also the English and Danish app for Android web board / phones in Google Play. More languages ​​are on the way so you can visit the game page for updates. The game also works on iPhone and Android smartphones, but I’ve only tested the iPad edition.

Use Facebook to Comment on this Post

Posted in AppsComments (0)

Top ten list, smartphone sales in Norway March 2012

Here’s the top ten most sold smartphones through NetCom for March 2012

Phone Mar 12 Feb 12 Jan 11 Platform
Samsung Galaxy S II 1 2 2 Android
Apple iPhone 4s 2 1 1 iOS
Apple iPhone 4 3 3 3 iOS
Nokia Lumia 800 4 4 - WP7
Samsung Galaxy 5 5 6 9 Android
Samsung Galaxy Xcover 6 8 8 Android
Sony Ericsson ARC S 7 5 - Android
Samsung Galaxy Note 8 - - Android
Samsung Galaxy Y 9 - - Android
HTC Sensation 10 - 4 Android
SE X10 Mini Pro - - 5 Android
Sony Ericsson Ray - - 10 Android
ZTE Blade - 9 6  Android
SE Experia Mini Pro - 7 -  Android
Sony Ericsson Active - 10 7  Android


We have a new winner! Samsung Galaxy S II and Android OS is now (through NetCom) the king of phones in Norway :) It is also interesting to see that the Galaxy Note is ranked at number 8. It is also cool to see that Nokia Lumia 800 and Windows Phone keeps its place as the fourth most sold phone in Norway. It is also clear that there is only three mobile device OS flavors!


Use Facebook to Comment on this Post

Posted in NewsComments (0)

Copying your device UDID from iTunes

The iOS device UDID identifier is a 40 digit and letter identifier that uniquely identifies your Apple iOS device. This is an identifier you’ll need if you plan to develop software, or take part in testing of software with your iPhone, iPod or iPad. If you think that long KID account numbers are hard, this will be even harder to type… Luckily you can copy it to your computer clipboard with some finger gymnastics

Here’s how:

  1. Plug your iOS device into your computer and launch iTunes.
  2. Select your device and go to the summary tab.
  3. Next to the image of your device you see its name, capacity, Software version and serial number.
  4. click on the serial number number and you cycle through the identifiers stored on the device. The items should be Serial number, Identifier (UDID), Celluar data number, IMEI (International Mobile Equipment Identity) and ICCID (Integrated Circuit Card Identifier)
  5. Cycle the numbers until you have the Identifier (UDID).
  6. Click the left mouse button on the UDID string.
  7. While holding the left mouse button down,  press cmd-C/ctrl-C on your keyboard.

You now have the identifier string in your clipboard and it can be pasted anywhere you need it.

Use Facebook to Comment on this Post

Posted in TechnologyComments (0)

Gule Sider (Yellow Pages) Norway on iPad

On 12. March Eniro released an iPad version of their yellow pages application.  I’ve always liked what Eniro/Gule Sider has done on mobile platforms, they was very early out with an app that used augmented reality in a useful way for the iPhone and now they have shown that they master the iPad also with this really well designed and sleek-looking app for the iPad. With a ton of POI’s, Aerial maps, hybrid maps, street view and sea maps you got a really powerful thing going. Check out the promo video (Norwegian commentary)

[yframe url=’http://www.youtube.com/watch?v=CacxzGsr5N4′]

A bonus feature is that you can also connect with your Facebook account and see where your friends checked in last. Below is some UI screen shots from the App Store

Street view on iPad with Gule Sider

Map and search result

I really like that POI quick search wheel! The whole app just feels good to use.




Use Facebook to Comment on this Post

Posted in AppsComments (0)

Could retina display on iPad be a really bad move?

I just read an article in Norwegian MacWorld that told me a couple of things that got me a bit “worried”. Both as a developer and a user of iPads… I don’t know if this is in-fact a real world problem yet, but Its something i need to look into. What struck me while reading was: Could adding a high res retina display to the iPad without adding more storage space be the baddest idea ever for the iPad?

I haven’t seen a lot of apps that is ready for Retina iPad 3 yet, but a few clues to the (possible) problem can be found with the existing Apple software that has been updated….

  • iPad  Keynote  app from Apple went from a 127MB download to a 327 MB download.
  • iPad Pages app from Apple  went from a 95MB download to a 269 MB download.
  • iPad Numbers app from Apple went from a 109 MB download to a 283 MB download.
I now that for instance for Keynote got  a few new features and bug fixes in that release as well, but it surely nothing that would justify 154.5% raise in file size?
And how big download would my next issue of Wired for iPad be……?
My 64GB iPad2 is almost already filled to its limits with apps, publications and music. Will it from now on only fit half of my app collection?
What should we call the apps that are retina ready? The name “HD” is already used  like {AppName}HD for iPad 1&2 apps, {AppName}ReallyHD?

Use Facebook to Comment on this Post

Posted in Commentary, iOSComments (1)

Top ten list, smartphone sales in Norway February 2012

A press release from norwegian carrier Netcom shows an interesting new “twist”.  The fourth most sold smartphone in Norway, based on sales volume is the Nokia Lumia 800 running Windows Phone.

Phone Feb 12 Jan 12 Dec 11 Platform
Apple iPhone 4s 1 1 1 iOS
Samsung Galaxy II 2 2 2 Android
Apple iPhone 4 3 3 3 iOS
Nokia Lumia 800 4 - - WP7
Sony Ericsson ARC S 5 9 9 Android
Samsung Galaxy 5 6 8 4 Android
SE Experia Mini Pro 7 - - Android
Samsung Galaxy Xcover 8 Android
ZTE Blade 9 6 5 Android
Sony Ericsson Active 10 7 8 Android
HTC Sensation - 4 6 Android
SE X10 Mini Pro - 5 10 Android
Sony Ericsson Ray - 10 7 Android

It is also interesting to notice how long ZTE Blade has stayed in the top ten list. I think it was introduced about a year ago, and peaked on the list as the second most sold smartphone in Norway through Netcom in April 2011. The HTC Sensation that left the top ten list in january has also been a stayer from its introduction in July 2011.

Use Facebook to Comment on this Post

Posted in TechnologyComments (0)

Powered by string, straight to failure

One of the major food brands in Norway launched a huge advertising campaign for their new and “tough”  sandwich spread. Embedded in the ads that is plastered all over Oslo city, on billboards and public transport they have 3D images that can be (or should I say could have been) seen through a specially developed AR (Augmented Reality) app for iPhones (and iPad) that uses technology from String.

Gilde AR poster found on the subway in Oslo

String is a quite cool technology by itself, but what the marketing department or consultant what thinking when they did this campaign is beyond me, so many faults has been made in this that it should become curricular for all advertising people dealing with technology based advertising.

Here’s a few of the main points:

  •  Creating a marketing campaign based on a technology that is only available on one mobile platform, iOS in a market divided almost equally in two (with Android in the lead) hardly doesn’t make common sense.. 

I know the demographic for the sandwich spread and iOS might at first glimpse somewhat match, but the well-educated 30-40s technology interested  male this is created for doesn’t know a lot about the technology they’re interested in, They’re just interested in how cool they look holding the gadget ;) According to NetCom  the top 4 list of sales in 2011 by mobile OS looks like this: 1: Android (54%), 2: iOS (40%), 3: Symbian (7%) 4: Windows Phone 7 (0,3%)

  • How do you find this app?

I was riding the subway with a colleague when we decided to commit “social suicide”  and see what was behind these ads. According to the self-proclaimed mobile guru :) Geir Sand Nilsen you commit social suicide (blog post here in norwegian, use Google translate) when someone sees you or catch you in the act of scanning a QR Code, I guess that also includes AR (Augmented Reality) app usage? Nevertheless we were tired of our social life and went with it… first… get the app… the poster said “Download the app GILDE AR” next to it was a black sticker that said “Available on the App Store” I took out my HTC Titan and started my app store application and searched for Gilde AR…. No matches… Oh.. wait.. App Store, who has the trade mark for that term? It’s Apple of course. Took out my iPad 2  and opened the app store and searched for Gilde AR… No matches…. WTF? I searched for the app with Google and found a link for it on the iTunes web store. “This app is designed for both iPhone and iPad”. Right…  My colleague had no more luck than me with his Android or iPhone 4 phone. The app could not be found. When I got home I downloaded the app through iTunes, but when i tried to sync it to the iPad it just said that it wasn’t designed for my iPad 2, it needed a device that had camera autofocus… Gilde.. you lost me now, no matter how eager I am to view your stunning 3D effects… I’m just lost…  Why didn’t you just include a QR Code with direct link to the app on the poster?? Would have made a lot more sense.

  • Asking users to download 26MB apps over 3G or Edge mobile networks is a no brainer

Come on? Did you really think that your advertising campaign was that interesting – so interesting in fact that I’d hang around it waiting for the download to finish? Or… just continue to ride the subway until the app was downloaded? (did I forget to mention that you more or less are offline while riding the sub in Oslo?)

These are just a few obvious errors done here by/for Gilde and it’s a bit sad because I think that the String technology is great and has a huge potential as long as it is used right. In the end i hope that It’s not technology that is to blame here for the faults of the implementors.  Better luck next time!

Use Facebook to Comment on this Post

Posted in Commentary, iOS, TechnologyComments (0)

Using your iOS device as your cash register

Some days ago I was lucky enough to be invited to be a part of a closed beta test group for the iZettle chip card reader for iOS. Today the small black card reader arrived in the mail and I am so looking forward to testing this.

For small business this little accessory can make a whole lot of difference, making your iPhone or iPad your portable cash register. No need to struggle with pennies selling merch at a gig, trading stuff in flea markets or any other “personal” business that  usually involves cash transactions. iZettle will make this a whole lot easier.

Will post updates later in the mean time check out the iZettle blog and website

Use Facebook to Comment on this Post

Posted in iOS, TechnologyComments (0)

A bright new future

This fall and winter is truly filled with joy for me! I’ve quit my job at Creuna as Chief Consultant Mobility tostart up my own company.

I’ve partnered up with a friend of mine that  did the same in his job, as CEO of Bonnier Media in Norway. Together we’ve started  Appaloosa AS. His expertise is his background in magazine publishing as journalist, editor and business development.

I have for a long time felt that It’s about time to do something on “my own”. That is what I am most comfortable with and enjoy most. I am not saying that working for others has been bad because it hasn’t. I’ve learned a lot and met a lot of people that has become friends, partners and customers, but still, it’s the “be your own boss, do your own thing” I’ve been missing,  and the fact that all I really have done, is trying to make money for some faceless share holders and board also played a role.

So, what will we do? Firstly with our deep “roots” in the publishing business we’ll take our knowledge of content, magazine publishing and technology and offer solutions for digital magazine publishing that doesn’t have a starting cost of $500k. There’s a framework for that, and you most probably have the design skills to do it your self. We’ll teach you about the framework and how to use it, tell you what our experience has thought us about design and layout of tablet content, and then if you need it create some custom code should you want or require it.

The second thing we will be doing is to develop applications for mobile devices, smart phones and tablets based on Android, iOS and Windows.  Android and iOS devices has more or less shared the smart phone and tablet market among themselves so any product provider and/or service provider needs to at least target those two platforms. Traditionally in most app development companies that means a development cost calculation that more or less looks like this “((hours for dev on first platform cost) x 2) – 10% = A lot of money and duplicate application code. If you later  find out that the new Windows Phone devices has taken a third of the market, you need to add the another 90%. In Appaloosa we have decided that it is the features of an application and its ecosystem requirements that decides what development environment to use, but we will as far as possible advice our customers to use cross-platform frameworks like PhoneGap or mono to develop their solutions to save both time and money when there is no technical reason not to use them. 95% of all applications that are being developed for tablets and smart phones will never  meet performance issues that justify the doubled or tripled development cost.

To learn more about the open source framework PhoneGap visit their website. mono is a different kind of framework that let’s you share back end code between platforms and then develop custom UI for each platform, that way you preserver the uniqueness of each platform – it’s user interface. To read more aboutMonoTouch for iOS and Mono for Android visit the Xamarin website.

For developers that want to check out mono I’ve linked to a NDC 2011 season by Jonas Follesø here.

I am really looking forward to spend more time doing development also, I’ve missed it.

Use Facebook to Comment on this Post

Posted in NewsComments (0)

Infographic iOS vs. Android users explained

Infographics are fun! This one tells what you most likely are leaning towards as a human being based on if you are sporting iOS or Android.


I found it at Hunch.

Use Facebook to Comment on this Post

Posted in FunComments (0)

Cross platform .NET mobile development

One of the highlights of this year NDC conference  was the talk Jonas Follesø gave about using .NET, MonoTouch and Mono for Android for developing  cross-platform applications for iPhone, Android and Windows Phone powered devices. He’ talked through these topics:

  1. Portable Class Libraries
  2. Linked Files
  3. The “Project Linker” tool
  4. VSMonoTouch to open MonoTouch projects in Visual Studio
  5. Pre-processor directives
  6. Abstract common functionality
  7. Leverage MVVM on all platforms
  8. Use pre-built abstractions such as MonoMobile.Extensions

In his blogpost  (http://jonas.follesoe.no/2011/07/22/cross-platform-mobile-ndc-2011/) you can watch the presentation as a Vimeo movie, and view the slides on slideshare.

Use Facebook to Comment on this Post

Posted in DevelopmentComments (6)

Mono, MonoTouch and Mono for Android back on track?

Looks like Miguel de Icaza and the team that was working with Mono, MonoTouch and Mono for Android finally has managed to get the products back on track after what looked like the EOF for the product line.

On the Xamarin site an announcement was made today about their business agreement with Novell/SuSE/The Attachmate Group that enables Xamarin toprovide support for all the existing MonoTouch, Mono for Android and Mono for Visual Studio customers. They have also obtained a perpetual license to all the intellectual property of Mono, MonoTouch, Mono for Android, Mono for Visual Studio and will continue updating and selling those products. Xamarin will be taking over the stewardship of the Mono open source community project. This includes the larger Mono ecosystem of applications that you are familiar with including MonoDevelop and the other Mono-centric in the Mono Organization at GitHub. Existing and future SUSE customers that use the Mono Enterprise products on their SLES and SLED systems will continue to receive great support backed by the engineering team at Xamarin.

Starting today, developers will be able to purchase MonoTouch and Mono for Android from the Xamarin store. Existing customers will be able to purchase upgrades.

The Xamarin announcement can be read here: http://blog.xamarin.com/2011/07/18/first-press-release/ and the Novell/SuSE announcement can be found here.

I am very happy and sends my congratulations to Miguel, Xamarin and the rest of the Mono development team(s) that made sure one of the best open source, and THE best mobile X-platform framework around didn’t just vanish and die.


Use Facebook to Comment on this Post

Posted in CommentaryComments (0)

Patent troll threatens developers that use in-app purchase features

Just read an article in ars technica that several US-based iOS app developers that use in-app purchase button features to get users to buy full feature versions of their apps have received legal threats of  patent infringement from a patent troll named Lodsys.

Just got hit by very worrying threat of patent infringement lawsuit for using in-app purchase in PCalc Lite. Legal docs arrived via fedex,” Thomson said on his Twitter account Friday morning. (Taken from ars technica)

Apple hasn’t responded at all (as usual) to these threats even tho it could potentially be very damaging to its developer eco-system and economy.  It would have been interesting to see someone battle this out in a court room.  As far as I’ve been able to figure out this is a “local” US thing, so it doesn’t look like it’ll hit anywhere outside the US, or eastern Texas for that matter i guess.

These threats should also rise some interest at the Google and Microsoft HQ with the potential to kneecap a large revenue stream for all the mobile OS vendors.

Funny enough there’s a state in the US that is well-known by patent trolling lawyers, and where they tend to hold their court. Marshall, in eastern Texas is the home of what is known as a federal court that often sides with the trolls. Read more about that in the Technology Review article “A Heaven for Patent Pirates

Link: Lodsys patent description


Use Facebook to Comment on this Post

Posted in CommentaryComments (0)

iOS to WP7 API mapping tool

On Tuesday April 26th it became even easier to be a Objective-C developer looking to port applications to the Windows Phone platform.

With The iOS API mapping tool, iPhone developers can grab their apps, pick out the iOS API calls, and quickly look up the equal classes, methods and notification events in WP7. A developer can search a given iOS API call and find the equivalent WP7 along with C# sample codes and API documentation for both platforms.

The code samples allow developers to quickly migrate short blobs of iOS code to the equivalent C# code. All WP7 API documentation are pulled in from the Silverlight, C# and XNA sources on MSDN.

From the navigation menu you can map features from the iOS 4.2 AddressBookUI, iAd, MessageUI, AssetLibrary, UIKit, CoreFoundation, CoreLocation, Foundation, CoreMotion, CFNetwork, GameKit and StoreKit. Check it out here.

Microsoft is also open for suggestions on how to make this an even better developer resource and  you can suggest your own, vote on suggestions and follow the feature roadmap here.

Use Facebook to Comment on this Post

Posted in ResourcesComments (0)

History repeats itself

It has been interesting to follow the tech news press lately. The glamour of Apple iProducts is beginning to fade and attentions is turend towards their competitors that not only have caought up with Apple in the mobile technology race, but many have also surpassed Apple by being more innovative and having superior hardware specs in their devices.

By that intro I am by no means saying that Apple is dead or doomed, It’s just that it sort of reminds me of  the PDA market 15 some years ago. In 1993 Apple was the first company to use the term Personal Digital Assistant. The launched their first PDA – the Newton MessagePad. The first ever electronic address book and calendar that used a stylus (pen) for entering text input. The Newton MessagePad was hip, cool and priced way beyond what most people could afford :) At the end of it’s life in 1998 the cool, hip and innovative was more or less outdated and made uncool by competitors with a lot more computing power and features. Being technologically outrun by competitors Apple left the PDA market and killed off the whole NewtonOS brand.

In 2007 Apple  introduced it’s very first Apple iPhone, with it’s unique iPhone OS, bringing never before seen usability and capabilities from a mobile phone. I was an instant success, everyone wanted one, and it was cool, hip and priced beyond what many people could afford. In 2011 the iPhone is under fierce competition, mostly with phones running AndroidOS from Google. The Android phones are from a tech spec point of view becoming way more advanced and have superior tech specs. More and more analyst’s are predicting the “age of apple” as a market leader is behind us .

In 2012 the lifespan of the iPhone has reached the same age as Newton had when it died. In 2012 Nokia will start to roll out their Windows Phone 7 devices and the Android devices will have become even more sophisticated.

How many more iPhones will come?


Use Facebook to Comment on this Post

Posted in iOS, TechnologyComments (1)

Different look and feel for Android and iPhone apps

I just found an article talking about the difference in UI on iPhone and Android phones at the Android Gripes blog called “Why do apps from the same company look worse on Android  than on iPhone?

From Android Gripes; Left: FB iPhone, right: FB Android

The examples show different apps, amongst them the iPhone and Android version of Facebook. The question asked at the end is more or less why is it so?

The answer to this questions lay in the point that when you design for iPhone you have a fixed screen aspect ratio you design apps for. It is a “controlled” environment and you know what phone user has, and it will look the same on all iPhone’s. For Android phones, UI designers must (for the most cases) take in count all the different versions of Android phones, with different form factors and screen resolutions when they design their interfaces.

Because of that, the interface then need to be designed more flexible and that comes with an extra cost of time/money and effort. Either you design different UI’s for different form factors and screen resolutions, or you create a UI that uses features that work 80% good on a lot of devices.

Use Facebook to Comment on this Post

Posted in DevelopmentComments (0)

Advice before you start mobile development projects

Last week I was hosting a early morning talk about how to succeed with mobile development projects. The target audience was product managers and service providers that need or want to take their business mobile. Through apps or a smartphone optimized website.

I’ve had a lot of really good feedback to that session and one of the key points, and most valuable advice from my talk was that it is becoming more and more important for the “soon-to-be” app owners to create apps for more than one platform.  Why? Let’s look at some numbers.

In Norway about 95% of the population has a mobile phone. It is split roughly 50/50 between simple/feature phone users and smartphone users. Of those that has a smartphone, based on numbers from StatCounter – there’s roughly 58% that uses iPhones and 23% that uses Android phones. Through the last twelve months Android has gained a 19% market share in Norway on smart phones. About 9% uses a Symbian OS based smartphone. That is the “big” three. There’s also speculations on how Microsoft and Windows Phone will do, Some analysts believe that Windows Phone will be bigger than iOS world wide by 2015.  I wouldn’t mind that, I think WP is a kick-ass OS and with Nokia spewing out devices from 2012 and on it’s bound to take a lot of market share i think.

From now on and forever I’ll take SymbianOS out of the smartphone equation. With a loss of about 10% market share the last twelve months, and being given the cold shoulder from Nokia, it won’t survive the smartphone race. It will however live in some way on feature phones.

That’s the device numbers. At the time being it is Android and iOS that “owns” the smartphone/tablet market in Norway, and that’s why it is logical to take our apps onto both platforms.

Back to the advice. You have your product and you have your plan to create both iPhone and Android apps. You define your application idea into requirements and specifications, and send it out to a few companies that you know, or find that do app development.

After a while you get a quote back on development cost and a proposed solution. You’ll most likely first see a price for the iPhone app, then a somewhat lower price for the Android app. The Android App development will  be priced around 2/3 of the iPhone app. The lower price for Android apps is explained by that you can reuse front-end design elements and some usability principles but the rest must be written for each platform.

Let’s say that the quote  for the iPhone app is about $100 000 USD for this example. If you got a $100 000 USD iPhone project, then the Android version will most likely be priced at around $70k – $75k USD. If you wanted to add Windows Phone support for all those new Nokia devices coming out, you add another $70k – $75k USD.  Totalling to about $250 000 USD for three platforms. That’s quite a lot of money. You’ll continue to pay $70k – $75k for each platform you want your app to run on for an eternity as long as you don’t know better.

How can you avoid this?  Ask them when you get your quote if their estimates are based on developing three separate applications or if they plan to use a multi platform framework for development. Make sure the developers you receive quotes from have told you why you cannot use a multi platform development framework!

Using a multi platform development framework can save you, maybe as much as 50% for each additional platform. so, instead of paying $70k – $75k you pay around $35k per additional platform.

There are two main reasons for not being told about multi platform development frameworks. First, creating three separate applications brings in a lot more money for the developing company than creating one single reusable application or codebase. The other reason why you weren’t told is plainly and simply something called “platform religion” amongst developers. Developers like their platform. In m0bile development with iOS and Android the “who’s coolest and best” is even more dividing. These two reasons are often disguised as “lack of performance” or “not having enough features”.

If your app is a game that rely on heavy 3D performance or need heavy hardware acceleration, or if you are developing an app based on features from pre-release of mobile OS’s you might just have to develop it using their native languages. But we’re not talking about these special cases here, we’re talking about the rest of the apps, the 95% “normal” apps you find in app stores and is most likely to be developed. There’s no measurable performance to be lost.

When it comes to features you have to look at your application and what it needs. Make sure you choose one that meet your needs. There will always be a cost with multi platform frameworks and that is that “bleeding edge” innovative new features on a phone maybe won’t be available through the selected framework from day one, but do you really need that? Is it worth the extra $100k that some feature might become available sometime that you find a use for? As said before, along with the total price, you also end up with three separate application code-bases, with their own separate list of bugs and maintainability issues. This can easily become three separate Gordian knots if you’re not keeping an eye on how the code is actually developed.

The Gordian knot can be avoided easily by employing developers that show good craftsmanship. Software development is craftsmanship, just as building houses  and there are good ones that know how to create the foundation and a house with straight corners, and others that build everything on clay.

My subjective advice when it comes to technological platforms follows in the trail on how I review any project, based on it’s needs.

First of all should it be an app or mobile optimized website? If it needs to be an app I review the requirements and specifications for that app. Both from an technical and marketing point of view. My first question would be if this can be developed with the use of PhoneGap?

PhoneGap is a open source framework where the code is developed in Javascript and JQuery and the user interface is defined and written using HTML and CSS. The flexibility of this free open source framework makes it ideal for any application that can live within the constraints of what is possible to achieve using web technology in it’s user interface. That more or less means a completely custom user interface with no recognizable UI components that lives on the platform running the application. A lot of great apps has been written using PhoneGap and you need to compare your requirements with the list of features available on the PhoneGap web. One thing is for sure, if you can use PhoneGap – you can potentially reach out to 6 different platforms for a very low price. The economic savings using PhoneGap can be huge and it will work for a lot of applications as long as you remember the constraints.

If you can’t use PhoneGap my next choice of platform would be to have a look at mono, the open source cross platform implementation of C# (.NET)  and the CLR, and it’s extensions MonoTouch and MonoDroid. The benefit of mono (meaning MonoTouch/MonoDroid) is that all code can be written in C# instead Java for Android and Objective-C for iOS. One language for both platforms. That mean that you can share libraries between them. A good developer and craftsman would easily be able to create software code and architecture that was reusable. You would then only need to recreate the user interface and the concrete implementation of the physical hardware on the two platforms. The beauty of mono is that the app (if you choose to) will look completely native as if written and designed specifically for iOS or Android. A third benefit of using mono and C# is that the same code can also be reused on Windows Phone devices (it will be big). 3 platforms – A single reusable codebase that will save you maybe as much as 50% off from the earlier price example in development cost and code maintenance.

If i were unable to use either PhoneGap or mono I would of course use native Objective-C or Android Java.

Jonas Follesø, Silverlight MVP and programming enthusiast has written a very good article that he calls “WP7, iOS & Android: Is .NET the platform to rule them all?

Answer is Yes!

Use Facebook to Comment on this Post

Posted in Commentary, DevelopmentComments (2)

More bucks from iOS dev. pockets to Apple accounting

Apple just released the latest version of their IDE (Integrated Development Environment), Xcode 4 through the Mac App Store app. I’ve been using the previous version for a while, and i had tried beta releases and was really looking forward to the release of Xcode 4. In features and usability it was like going from MacOS 9 to Mac osX or Windows 3.11 to Windows 95. Huge differences.

Sadly when i loaded up the app store i found Xcode 4 under the “top grossing” category and thought, WTF?  Apple now charges $4.99 from me to even start developing apps.. Not a lot of money, but is the philosophy of Apple to flog off as much cash as they can from the objective-c and cocoa development community?  First you now have to pay to even start developing software. Then you have to pay to even get your software considered for any of the app stores and finally you have to pay each time someone buy your software.

I wasn’t very happy about this and i think it is stupid of Apple to treat their developers this way. While cashing-in, in so many other ways on the work of developers, they should at least give the development tools out for free.

Use Facebook to Comment on this Post

Posted in CommentaryComments (6)

Google Translate


Blog Traffic


Pages|Hits |Unique

  • Last 24 hours: 1,931
  • Last 7 days: 13,628
  • Last 30 days: 64,274
  • Online now: 10

Enter your email address to subscribe to this blog and receive notifications of new posts by email.