The Incredibly Great Revolutionary iPhone 5

After nearly one year with my Nokia Lumia 800, I decided to go over to the dark side; buy the new iPhone 5. Even though I liked the user interface on the Windows Phone platform, the phone was easy to use, there was still small details with the phone that did not make it fit for my use. Multitasking was not implemented good enough. Applications always had to start up from beginning when I tapped their shortcut or tile on the start screen. Even though the OS itself was fast and snappy, the 3rd party apps (some of Microsoft as well) had tons of bugs and had incredibly poor performance (Spotify and Facebook, just to mention a few). This made me switch over to the iPhone 5. I was already happy with the app support on my iPad, so I assumed I would get the same experience on my new iPhone.

Calling native code from C#

If you are like me, you like optimizing and profiling your code making it as fast as possible. However, at one point you might realize the C# language does not give you the best performance for whatever the purpose of your code is. Since C# is running in the Common Language Runtime (CLR), there is a larger overhead between what the machine is doing and what your code is doing. It is therefore necessary to go a language of lower level. In my case, I went to C++. C++ is compiled into assembly code when compiled, making it a low-level language. You can also go deeper if the C++ code does not give the desired performance. However, if the code you want to have in C++ contains just a few lines of code, it could in fact be a better way to keep it in C#.