Mobile market is constantly developing looking for new approaches and new ways to build mobile apps. We are often asked about our opinion on alternative ways vs native development in creation of mobile apps. Recently, we have conducted a research of the Marmalade SDK.
In order to make it clearer for us and for you we decided to conduct investigation and share our results. Big thanks to Pasha Taykalo (Head of iOS Unit) for helping us deal with a this multilayered Marmalade platform!
What we did:
- Installed the SDK/tried the demo
- Read the documentation for the 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 help of Marmalade.
To create the app using 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 it is mentioned, that it would be a slow solution, as we will have to use the API and non-native way. So, if your UI 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. Also, making one UI for all platforms means that Android users will see the “copy-paste” from iOS and would not give us good feedbacks anyway. If we want to save money, we will have almost the same UI for all the platforms. It’s not good in the terms of different UI concepts on the platforms. If we decide to create different UI for each platform, it will be the same as creating the native UI in terms of money&time.
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 developers have specific experience with it at the moment. Especially, when it comes to the UI. Anyway, if you work with a 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 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.
- HTML5/non native interface will be the same for all the platforms – users will not be satisfied, as they don’t like “iPhone style” apps on other platforms. If we create the different html5/non native interfaces, it will add up to the same amount of money as create native ones.
- Bug fixing of the apps created with such frameworks is rather time-consuming. Sometimes you even have to fix the issues of PhoneGap, for example.
- 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.
- The risks are all there as the cost is very difficult to estimate if you are new to the framework.
When you definitely say ‘no’ to Marmalade:
- UI is very complicated
- You expect the perfect user experience and high speed
- You need the guaranteed result
- You need to launch fast
When you can say ‘yes’ to Marmalade:
- When you have the application with not complicated UI and are ready to put up with the slower and less “glossy” interface
- When you want to save money on the creating one “core” for all the platforms and are ready to involve c++ developers in cooperation with Android/iOS/other platforms developers
- You want to try something new 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.