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.
Related
I'm finishing my Masters Degree in Computer Science and i just had this idea for a Mobile App to solve a problem i've been having for the last year or so. I have good knowledge of Java and i know that it's a good language for Android programming, but the thing is that this App would be to target both Android and iOS users.
Considering this, how do mobile developers go about this problem? Is it possible to make the application viable for both platforms or usually it works as a separate application with the same funcionalities?
For either cases, what tools/programming languages would you recommend for me to develop my idea? I'm on my 4th of 5 years but we still had no contact with mobile development.
Any other sugestions you think i might need to take into consideration when starting to develop an app are welcome!
Java can't be used for cross-platform development, as of my knowledge, but here are some great choices out there for cross-platform development. Here are some:
Flutter - developed by Google (my personal favourite)
Ionic
React Native
Xamarin
The question is does a cross platform SDK suite your needs. If you need to interact a lot with native APIs then it certainly isn't for you and you'll have to build two separate apps.
Another downside to using cross-platform tools is usually app size (for Flutter around 3-5MB larger for a simple app).
Here is my take on why I prefer flutter:
It's easy to build nice material UIs, since Google includes many material widgets
There are a lot of plugins available at pub.dev
It has close to native performance, because in opposition to the other SDKs the dart code is compiled into native code.
Hope I helped! Good luck in the strange world of app development!
I am new to mobile development with a requirement to develop applications for Android and IOS. My programming background is in C#.
Which is the best language and framework to start developing mobile applications?
Is it better to use native development or use cross-platform frameworks?
Please suggest frameworks and languages with respect to ease of development, development support etc..
I am no expert in Cross Platform Mobile Development (in fact, I was just searching for a cross platform mobile development languages/frameworks), but you could take a look at Xamarin, especially as you have a C# Background.
You may also want to take a look at Apache Cordova (and Adobe Phonegap), they use HTML+CSS+JavaScript.
I recently found Flutter, the development language is Dart and it's an early stage OSS project (as of 2016 october) and Haxe. They both seem like active projects, so worth following the progress on GitHub.
If I had to choose and I already had skills in C#, I'd go with Xamarin.
I strongly recommend you give a try to Flutter... It just came out from Google... It's in Beta, but Google heavily used it until now in production mobile applications. It uses Dart, as a programming language and it's awesome. If you have a background in C# (or similar languages, like Java for example) you won't have any problems - it's quick to learn and there are a bunch of tutorials already.
Do a search on YouTube for Flutter, and also on medium...
Here's the website link: http://flutter.io
You can also download some sample applications with all the Android / iOs widgets you can use in a Flutter application. Here's the app for Android: https://play.google.com/store/apps/details?id=io.flutter.gallery&hl=en
The key difference between Flutter and React native for example is that there's no Javascript bridge... and it compiles to native code. You also write the code once, and it will work by default both on Android and iOs... Hack, you can even switch to iOs widgets on an Android phone.
It's AWESOME!!!
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.
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.
I'm beginning to look into Android programming.
When developing a mobile application, are there other options besides using the SDK to develop a native application?
For instance, is it possible to develop an application using only web technologies?
If so, what is your experience on the different techniques (limitations, etc)?
Thanks
With Gingerbread now you have the possibility to create an app just with the NDK using NativeActivity.
This release of the NDK includes many
new APIs, most of which are introduced
to support the development of games
and similar applications that make
extensive use of native code. Using
the APIs, developers have direct
native access to events, audio,
graphics and window management,
assets, and storage. Developers can
also implement the Android application
lifecycle in native code with help
from the new NativeActivity class. For
detailed information describing the
changes in this release, read the
CHANGES.HTML document included in the
downloaded NDK package.
If you are willing to use web technologies I would recommend you this book:
Programming the Mobile.
For instance, is it possible to develop an application using only web technologies?
Yes. You can use PhoneGap, Rhodes, or Titanium Mobile for this.
If so, what is your experience on the different techniques (limitations, etc)?
Of the three, I prefer PhoneGap, as it seems the cleanest and simplest. Rhodes might be good if you are a Rails developer and want to use that style of Web development on-device.
You can also develop applications on top of Adobe AIR.
So it seems you have quite a few options:
Java based app
Native app
Adobe AIR
Mobile website