Is Marmalade SDK more relevant or commonly used for Game Development? - ios

I am absolutely new to Mobile App Development and was looking for an appropriate platform to start off with. I came across a project where people are looking to implement self-help advertising for a switch and home automation company into a mobile app. They want an iPhone App initially but also want to deploy on Android and other platforms subsequently. A similar app is this one.
After investing a fair amount of time in researching about various SDKs and Developer Programs, Marmalade caught my attention with it's multi-platform deployment feature. However after going through a few tutorials, of which I found these quite helpful, I observed that more often than not the tutorials concern Game Development. So, I was wondering if Marmalade is a more appropriate platform for Game Development and if I am looking to develop a general application I should perhaps consider a native SDK?

Marmalade is great for games: among the games that use Marmalade are Cut the Rope, Plants vs Zombies, Call of Duty: Black Ops, etc
But for general apps you should better use some other tool at least till their Marmalade 6.0. They have native UI support but it's still in development and you may miss some features.
Look at Titanium: http://www.appcelerator.com/showcase/applications-showcase/

I always prefer to use native language for the app development due to easily available help and tutorial for them. You can find lot's of help and tutorial, guidelines, books etc. for Android or Objective C development, but their are very few tutorials on Marmalade.
Marmalade is a great engine for any game developer, but for a non-gaming app, I'd not recommend it, since you'll never need to use the extra features which are it's USP.

Related

Xcode (swift) vs Unity for isometric 2d mobile-apps - Performace, Package Size

Let's assume I want to develop an isometric 2D mobile-game such as Clash of Clans for example.
My main target would be iOS but of course Android would be nice, too (but not a must-have).
Now I have to decide to either program with Apples XCode (therefore Swift as a language, which I am already pretty familiar with), or develop my game with Unity3D (and therefore C# as a language, which I am also pretty familiar with).
Personally, I don't prefer one over the other.
So much for the set-up.
As I don't have any preferences, I'd like to choose the one that offers the most benefits for my 2.5D game to me.
The questions:
Is there a difference in getting an approval for the App-Store if you program in Swift, or use Unity; C#?
How big is the difference of the published package-size of the app between Unity and XCode?
Does my Unity-written app run as smoothly as my XCode-written app?
I hope you could help me with that.
If I missed some points there, feel free to criticize me and give me your opinions on it.
Greetings
Chriz
Is there a difference in getting an approval for the App-Store if you program in Swift, or use Unity; C#?
No, given this general comparison - there should be nothing here favoring or disallowing one over the other.
How big is the difference of the published package-size of the app between Unity and Xcode?
That is very hard to say. There will be added libraries for Unity inclusion whereas Apple would already have shared libraries apart of the OS - used by every app. Think shared libraries here - only Apple is permitted to do this. Not to be confused with the to be newly released iOS 9 'App Thinning'.
The larger weight will be media/images/bitmaps.
Does my Unity-written app run as smoothly as my XCode-written app?
Since they both end up using OpenGL, the end result should be the same or very similar. Obviously as the OS and device mature - if Unity doesn't leverage it, they could end up giving up performance advantages.
But... the flip side of being so tightly coupled with Swift/iOS/Apple, is you abandon your Android market - and if you are even considering it - I'd suggest Unity based on what you shared if there is a remote possibility you want to deploy to Android, desktops, *TV devices in the future.

Best 2D/3D Game engine for a map-based game in iOS

I am not very familiar with Game engines for iOS app. Can anyone suggest an open source game engine for my game development?
My game scenario is as follows: The user selects a map, and a character inside of the game I moves through a path predefined in the map.
I was thinking about writing this game in OpenGL but it seems like I have to write a huge amount of code. Do any game engines exist in which I can successfully write this game?
Lua is easier to learn than Objective-C. There are several Lua development environments:
Gideros Studio: http://www.giderosmobile.com/
Corona SDK: http://www.coronalabs.com/
Moai: http://getmoai.com/
My favourite is Gideros Studio, because it seemed to me the easiest to get started, and is free until you want to remove the splash screen, and has a very friendly forum with access to the developers. You can also include native plugins (Objective C and C++ for Android).
Moai is the only actual open source one, if you really need to change the source, but it is probably the hardest one to learn.
cocos2d is popular and easy to use and learn. you could also use kobald2d as that includes cocos2d and other frameworks as well. you can download them through a search on google
As state by the other user cocos2d would be a good solution for what you want. Although you asked for "open source", you can always check, for free, Unity for iOS. You could also check a question I made some time ago, which can give you some hints of some options you have, here. From the Unity site:
Oh, and don't forget that Unity is free and we have fully-functional
30-day trials available for Unity Pro and Unity iOS Pro!
I know it's not perfect, but still, if you see it's worth, it can make a huge difference in your project.
Try Stencyl, it's not free, but it is a good engine that doesnt require a lot of code

Reagarding the titanium framework

I recently started trying to develop apps using titanium.
When i ran one basic app containing two table views and some static data, it showed me 80 memory leaks and about 15 warnings - i think coming from the frameworks.
As an iOS developer, i'm used to seeing less than 5 memory leaks in complex apps too.
So, I'd like to know whether applications are getting accepted by apple when developed through titanium.
Also, I'd like to know whether,looking at the state of the titanium frameworks,its worth learning it right now.
Thanks in advance!
Your First Question, Yes! they are being accepted by Apple App Store.
And For your second question, its relative to likings of individual. I started mobile application development with titanium, but soon I realized that there is no better way to create an application then to create it natively. I would say if the applications you are developing are not scaled at enterprise level magnitude (means thousands of lines of code), better develop apps natively.
Titanium is increasing support and improving frameworks rapidly, its also reduces lines of code by third! and the best thing about it is, its cross-platform! but to my personal liking i always prefer native development. The power, the iOS gives you, Titanium wont!
One more thing i would like to add, despite all, you should learn it! :)

How to develop for multiple platforms

I have made my first app in the Android platform. However this is not the only platform and I want to get my apps published on at least Android and iOS platforms.
I would like to have one developing platform for both platforms. What is the options?
I have now tried Flex, Air with Flash Builder. It seems quite promising but the future seems to be a bit uncertain and are also more expansive.
It would be interesting to have some suggestions about what developing tools to focus on if I would like to develop apps on both Android and iOS.
It depends what kind of apps you want to build (i.e. Games, Content Aggregators, etc.) because each 3rd party "App-Generator" that deploys to multiple platforms has their strengths and weaknesses.
Here's a (brief) list:
Appcelerator's Titanium SDK - leverages mobile-browser-based features, mostly for content-aggregators, simple or core feature list on platforms
Corona - leverages LUA-scripting language for 2d / more simple games and applications; has a growing user-base and community; possible to leverage for core-experience as well
Unity - 3d experience, games, usually for more high-end, premium experiences
If you're going to develop on the platform, I always recommend build to that platform's language since you'll never have to worry about what happens when the language is upgraded and your "app-generator" hasn't upgraded yet.
It will also help you to learn the language on that platform (Java, C#, Objective-C, etc.)
I know it's old topic but for those who are still looking for rapid mobile development there is also Kinetise that is code-less tool and offers also backend system/CMS.
You can use Sybase Unwired Platform. It has Device App Designer which can create applications for Blackberry ,Android and iOS.
If you are aiming for high quality, I don't think there is any other way than going native for each platform. Also keep in mind that different platforms have different UI guidelines and principles, and doing a multiplatform project is not a good enough reason to abandon those guidelines.
I recommend phonegap: http://www.phonegap.com

Are there any limitations of Flex 4.5 mobile apps on iOS?

I've looked at a few demos from adobe that show apps built with Flex 4.5 running on iOS from simple list views to video capture. This has made me wonder if its an effective solution to build cross platform mobile apps.
For those of you who have taken Flex 4.5 mobile for a spin, what is your impression on the capability and performance on iOS. Is there anything you can't do with Flex 4.5 mobile that you couldn't with a native app? Are there any limitations?
The mobile story in Flex is quite strong, in my opinion. It is what has attracted me to the platform and what seems to be bringing life into the Flex community.
The experience for developing apps in Android and iOS is quite fantastic, actually. The velocity in which you can dev is blazing and the abstractions provided by Flex (data binding, state management, skinning, etc) give you the ability to totally rock your app.
The performance is better than I had expected. It is not as great as a native app, but it certainly gets the job done. The ability to share code and UIs between Android and iOS more than make up for it in most cases.
There are, however, limitations. For one, you are not using the native widget set. You are using the Flex widget set. This means that you do not get the native look/feel. For this reason, it is best to build apps that look like YOUR app... not a Flex app or a native app. There are lots of popular examples in the app stores that work this way... and a Flex app pretty much requires it in my opinion.
There are also a lot of APIs not available to you. Flex provides hardware abstractions for the most popular APIs (video, audio, accelerometer, positioning, webkit, etc) but platform specific APIs are still missing (contacts, calendar, system notifications, etc).
At that point, it is worth asking what your app needs to do. Does it have a lot of native interfacing? If so, Flex might not be right for you. Find the APIs you need to talk to and make sure Flex has an abstraction for you. If it is a data-centric display/edit app, then Flex is a strong fit.
Hope this helps :)

Resources