Stanfy’s Research on Marmalade SDK for Mobile App Development

January 29, 2013

Mobile app developers are constantly looking for new approaches and new ways to build mobile apps. Stanfy team is also often asked about our opinion on alternative ways vs native development of mobile apps. So we decided to conduct our own research of the Marmalade SDK and share our results.

Big thanks to Pasha Taykalo (Head of iOS Unit at Stanfy) for helping us deal with a this multilayered Marmalade platform!

What we did:

  • Installed the SDK/tried the demo
  • Read the documentation for mobile app developers
  • Analyzed whether we could use it for different kinds of mobile apps. If yes, what parts of the app it would be reasonable to implement with the help of Marmalade.

Results

For mobile app development with Marmalade, we will need to create the code in C++ to use all it capabilities. There is an option to create the UI in JS/HTML5, but we know that it would be a slow solution, as we will have to use the API and non-native way. So, if the UI of your mobile application is quite complicated, the only option for you is using the native C++.

Even if we create UI in c++, it resembles the native iOS look. It will “look like” it, but careful users will understand, that it is not a native one.

Native interface defeats this framework UI if we are talking about the speed and native look. Native iOS interface shows much better performance (in the frames of user experience and speed) than the UI created with the help of html5/cross-platform, framework. It’s difficult and sometimes even impossible to make the non-native UI look like native. It will be “almost there”, but still not as native).

It would be quite hard to estimate the development on Marmalade, as not a lot of mobile app developers have specific experience with it at the moment. Especially, when it comes to the UI. Anyway, if you work with a mobile development company, which encounters Marmalade for the first time, you will need to perform the study session, during which developers will study and try this framework. This is unavoidable money spending in this case. But even after this investigation/study period you will probably not get the precise estimation. This can be done only when we’ll already spent some time on the development.

So, as the conclusion, we can say that taking into account our experience with other frameworks which help to create “write once, run everywhere” applications, it is a better solution to create the native interface for each platform, especially if the UI is complicated.

In short:

  1. HTML5/non native interface will be the same for all the mobile platforms, so users will not be satisfied. If we create the different html5/non native interfaces, it will add up to the same amount of money as create the native ones.
  2. Bug fixing of the mobile apps created with such frameworks is rather time-consuming. Sometimes you even have to fix the issues of PhoneGap, for example.
  3. Non-native UI/ UX that uses some additional layers (Marmalade) is usually slower than the native one and can’t be used if speed is critical for the app.
  4. The risks are all there as the cost is very difficult to estimate, especially if you are new to the framework.

When you definitely should say ‘no’ to Marmalade:

  • UI is very complicated
  • You expect the perfect user experience and high speed for your mobile app
  • You need the guaranteed result
  • You need to launch fast

When you can say ‘yes’ to Marmalade:

  • When you have mobile application with not complicated UI
  • When you want to save money on creating one “core” for all mobile platforms, while ready to involve c++ developers in cooperation with Android/iOS/other platforms developers
  • You want to try something new in mobile app development and don’t afraid of the risks

In our next post we will discuss the future of HTML5 in mobile: to be or not to be.