Marmalade or Adobe AIR to embedded in Android/ios codes - android

My team has a project which has native app features
and some games within.
At first , I thought Unity3D is a good choice for us,
but I found that the battery drain is a problem.
Also,it's hard to refer to a native features of Android/ios in unity.
I want it to run the native part quietly and and to run the game part fast.
So is it possible that I develop this app basically
in Android/ios using Java or Objective-c with Marmalade or Adobe AIR?

You can not mix and match here. You need to either go full Cross platform or full native.
I follow this rule of thumb,
Whenever you are in doubt always go native.
You can have extensions and plugins to support native functionality in Adobe Air, Unity3D or marmalade. So there wouldn't be any issue with it. Since there's some game content, you should choose a game engine such as Unity3D to do this.
In theory each one of these options are capable of achieving this. It's upto you to find pros and cons of each.

Related

Viability of React Native

We are a team of 5 members, one of us having basic knowledge of Android App Development. We are planning to develop an app having functionalities similar to Uber. Following are some things we have in mind:
Building one app through react native, where our concern is the availability of Maps and other API's in React Native.
Or developing native apps for IOS and Android platform.
What would be the better case, considering that we are beginners to app development.
As someone that writes both native iOS and react native apps I can say the following:
react native excels in speed of "net" development time. > 90% of the code is cross platform and there is no need to build your project after every change (one of the biggest pains in mobile development IMO)
however, most of my efforts in my current RN project are dealing with technical issues, compatibility of different packages & breaking changes. the entire ecosystem is less mature, development tools are inferior and there is way less documentation.
RN fits my particular, relatively simple, project and it allowed me to write for both platforms wo knowing Java\Kotlin. I would think twice before starting a more complicated project in RN.
BTW, Airbnb that wrote the above mention react-native-maps, recently announced they're sunsetting RN development: https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a
EDIT: I found myself wring a full blown production app in RN for the past 9 months and this is my current perspective:
RN is constantly evolving. The facebook team is doing an incredible job making the platform better.
Javascript can be tamed using typescript and working with design patterns (Im using redux-saga)
We use one codebase and repository for FE & BE: that's the biggest advantage IMO. The entire team is using the same language, we can review each other code and assist in tasks.
It may require some hacking but I have yet to encounter a situation where I couldn't achieve something that was required by product in RN.
The only real downside with RN is performance. By design, RN is less performant than native apps. For many apps, the difference will be negligible but if your app is heavy on animations, this is something to consider. The FB team are working on a big architectural change that's supposed to address this. (rumours say that the version of RN FB are using internally is way more performant).
If development effort/cost is not a matter for the organization, just go ahead with option 2: Developing native iOS & Android using swift and JAVA. Native development have access to complete capabilities of mobile development. It is very rich in UI design, performance, scalability and many other things. Lot of support and tutorial available in internet if you stuck in middle.
Option 1, Developing on react native: If majority of developers are experts in web development, java script and React JS please go ahead. It requires less development effort because one project will support for both android and ios. In this option, still you need native app development knowledge to develop custom, complex views and exported to React native.
Explore through internet to know the differences.
Don't worry about it because React-native-maps is good npm module for maps
You can find Github
doc here
It works great for android and ios
And more answer here: Which is best map to use on react native
But, in personal opinion i love native app, it's the best.

Using JNI FOR IOS and Android

Is it Reccommended to use JNI and C++ Code to make a shared library code between IOS and Android ?
I'am asking this because i think it not just saves us plenty of wasted time for implementing same logic in both platforms but also we will have the speed of a C++ core Backing the logic-process of our modules.
Update :
I ask my question in another way :
is it recommended to share a C++ Library for core functions of Android And IOS versions of a similar app ? or it would be better to completely migrate the codes to a multiplatform language ?
Since I remember my needs back then, I know that hybrid apps were not an option, Also JNI is not used for making cross-platform apps but the best use is to drive hardware peripherals via native UNIX scripts for Android or run c++ code on Android. So if we omit PhoneGap, Appcelerator, Ionic etc we will be facing several cross-platform technologies that have attracted many developer attentions so far.
Xamarin:
The framework was founded by the same people who have created Mono, an Ecma standard-compliant, .NET Framework-compatible set of tools. Xamarin offers developers a single C# codebase that can be used to produce native apps for all major mobile operating systems.
Unlike many other frameworks, Xamarin has already been used by over 1.4 million developers from around the world. Thanks to Xamarin for Visual Studio, developers can take advantage of the power of Microsoft Visual Studio and all its advanced features, including code completion, IntelliSense, and debugging of apps on a simulator or a device. Xamarin Test Cloud makes it possible to instantly test apps on 2,000 real devices in the cloud. This is by far the best way how to deal with the heavy fragmentation of the Android ecosystem and released bug-free apps that work without any major issues.
But being honest I didn't enjoy my first time face-to-face meeting with Xamarin. There were so many bugs and also speed and performance problems were bothering.
React Native
React Native is developed by Facebook and used by Instagram, Airbnb, Walmart, Tesla, Baidu, and many other Fortune 500 companies. It is an open-source version of Facebook’s React JavaScript framework. Because React Native uses the same UI building blocks as regular iOS and Android apps, it’s impossible to distinguish a React Native app from an app built using Objective-C or Java. As soon as you update the source code, you can see the changes instantly manifest in an app preview window. Should you ever feel the urge to manually optimize certain parts of your application, React Native lets you combine native code with components written in Objective-C, Java, or Swift.
The ones I mentioned above are not the only options, but since now they are the most used frameworks between programmers. But beware that Flutter is being publicly announced by Google in Google IO and maybe it may be going to create a hit soon.

Port Andengine game to other platform?

I'm planning on writing a multiplayer game with Android as my primary focus as far as OS/platform, but I would like the ability to port the game to at least the web. I'm looking into Andengine as I'm just starting out with java and android and it seems the most noob friendly. The game shouldn't be too demanding as it will be a 2d turn based game with simple animations and chat.
So my main question - is it possible to port a Andengine game to the web?
If not what would you suggest?
I looked at libgdx, but I'm concerned that it might be a little to advanced for someone just starting out with java/android. Am I correct in my assumption?
Another idea I've been playing around with is writing the game in Flash and porting it to Android with Adobe Air - does anyone have any experience with this? Is it a bad idea? I kind of have my doubts of how well this will work, but if nobody can really talk me down from this idea, I might just go this route.
I've also considered writing the game in pygame as it seems easier but I don't like the idea of players having to download something like Pygame Subset for Android or Kivy to run the game. So basically if the other options are either too difficult or wont work on android then I'm probably just going to go with Andengine and consider rewriting it later for the web if people like it enough.
Moai SDK is an open source multi-platform framework for game developers.
One codes in lua - a dynamic programming language (that is easy to learn).
Apps made using Moai can be deployed to iOS, android and the chrome web store.
Moai could be an alternative.
Andengine makes a fine starting place. (I have made 3 projects with it now and I really like it). but it does not deploy to anything other than android. That is its strength and its weakness. As a strength, it is very easy to integrate android OS features and libraries with your project and has good performance. And as a weakness, well, it only runs on android.
Code-once publish anywhere platforms trade off development time for speed and size usually.
Some top competitors in that area are:
Ancsa Corona
AppMobi
PhoneGap
Unity3D
Adobe Flash(bonus of web distribution)
and others. (Moai SDK listed by #andrew, for example)
Each platform has had successful games launched with them. Find the one that suits you and your projects needs best. Do not forget to check for things you will want to integrate, such as using Facebook for mobile, or AdMob, or OpenFeint or other 3rd party services.
Good luck and enjoy you game making!
Just a side note, user do not need to download "Kivy" to run the game. As other toolkit, your application will provide Kivy as other libraries you'll use.

Adobe Air for cross-platform iOS and Android development

I saw this sometime ago and wanted to check if anyone with experience doing cross-platform Application using Adobe AIR. I have seen their LVVM compiler with AOT and Android runtime.
Say I need to create the same application for iOS and Android, is this recommended? Are they any limiation that I don't aware yet? Can they access to respective's native API? Are things like Animation h/w accelerated? Any performance penalty?
It really depend on the application that you want to build. Adobe Air is more focus on game development, but not saying it can't be used for application usage. Plus there are some cool native plug-in which can boost up your application. I suggest to understand your project requirement and have a checklist against Adobe air, then decide to implement or not.
Have a read the following review by Cnet about this product.
http://download.cnet.com/Adobe-AIR/3000-2383_4-10652806.html
You can create IOS and android application Using PhoneGap.

xCode vs Android SDK vs Adobe Flex

I am going to develop an application which will be cross platform and it will be released for IOS and Android.
My App will be using network connectivity and communicate with the server and it has to be fast, reliable and responsive.
So my Question is: If i choose Adobe Flex to build that app for IOS and Android, So will there be any performance issues?
If no then why people use xcode or android sdk?
What are the disadvantages of using Adobe Flex over xCode and Andoid SDK?
Generally speaking, if you use a cross-platform "write it once and build for many platforms" tool you likely will give up the ability to take advantage of some (or all?) device- or platform-specific features. You are, in effect, choosing a lowest common denominator sort of solution. That is to say, you have available to you only the platform features available on ALL the platforms you are targeting.
Building a native app -- that is, using Xcode to build an iOS app and using the Android SDK to build an Android app -- gives you complete access to all of a given platform's specific features and capabilities, thereby ensuring the best user experience on each platform.
This is now my opinion: Native apps are better, simply because they present the user with a native experience -- an experience that will feel familiar to them as a user of the platform. When you choose to use a cross-platform tool you are actively choosing to give your user a less-than-ideal experience on their device, but YOU saved some time (maybe) getting your app to market. Who's the winner?
In my job, my boss and I had a specific conversation about this. We have native iOS and Android apps, on purpose, because we didn't want to give up platform-specific features. We wanted each app to give the best experience it could on its platform. We specifically agreed that a cross-platform solution was not the way we wanted to go.
Depending on what you are building, Air is a great platform for developing cross-platform mobile applications. Despite recent news that the Flash player is no longer being developed for mobile browsers, the native story remains strong. Plus, having seen native IOS, native Android and Flex development, the Flex platform is much better when it comes to the ease of development. With high-level features like data binding, visual state management, a solid component/skinning model, transitioning model, etc, it is a generation or two ahead of iOS and Android (IMO).
If you are using Flex for mobile (iOS/Android/Playbook), you get a common look/feel across all mobile devices. #MarkGranoff suggested that the user experience is downgraded when using an approach, but I'd challenge that.
Although I agree that an out-of-the-box styling of the UI components in Air feels a tad off, I don't recommend that anyone build apps that way anyways. Instead, create an app that looks like your app. There have been many applications that don't conform to the native look/feel of iOS or Android but are still quality from an aesthetic and UX perspective.
There is something to be said for an app that looks/behaves the same across all platforms. I can tell you this much... the user doesn't really care. If it looks good, feels good and does what they want, they are happy.
The Flex Mobile SDK uses a lot of the same UI paradigms (especially in the soon-to-be-released version of the SDK) and it is getting better. I wouldn't discredit it. You can save a lot of money and time using something like Flex Mobile.
You can use Flex to compile to AIR for iOS or android.
The performance of AIR vs Objective C or Java is significantly slower.
The advantage of using AIR is to have one cod base delivered to two platforms.
But if you have the know-how, Objective C and Java are better suited to development on their respective platforms. However many successful apps have been launched on iOS and Android using AIR. If you want to know if it would work for you I would seek out those apps in iTunes and Android Market and see how they perform for you.
If you app is not a game it will likely work fine. And if you app is a simple game it could also work fine.
Also remember there are other multi=platform development tools to choose from, like phone gap, or appcellerator:
http://www.appcelerator.com/
http://phonegap.com/
or even Unity 3D:
http://unity3d.com/
UPDATE:
Since this original answer in Novemer 2011, Adobe has made significant improvements to AIR for iOS and Android. Petformance problems are negligible unless you are doign somethign very instinsive such as large image processing.
Likewise, Unity3D has improved a lot too. It's an excellent choice for games that are 2D or 3D.
if you are using Air to develop cross platform apps, you should notice the following facts:
1) you don't have access to native features (but you can use Air Native Extensions to by pass this problem)
2) performance is slower than native apps (but you can use Starling framework to use GPU power in devices which will increases the performance a lot!)
the bottom line is that building mobile apps using AS3 and Flex/Air SDK is the best solution you can think of and the performance if using starling is much higher than native apps!
I don't think you can use Adobe Flex on iOS. Another cross platform solution to investigate would be HTML5. If you can afford it, the best solution might be to implement it twice, once with xcode for iOS and once with Android for Android.

Categories

Resources