Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Three years ago I explored the option of using PhoneGap for one of my app developments. I found it extremely hard at the time to integrate with Facebook and connect to the camera and read a barcode. I ended up giving up and writing the app natively - and don't regret it.
But three years are past and I am wondering if I should be looking at this possibility again. I need JSON communications with my backend, facebook integration, swipeable cards (like tinder) and internal persistence.
I've noticed that the big players currently are:
Sencha
PhoneGap
Appcelerator Titanium
Corona
Xamarin
Did I forget any?
So, is anyone using any of the frameworks I've mentioned below and could tell me how mature they are these days?
Thank you
I am biased towards Appcelerator Titanium because I've been using it for years, however, I would still highly recommend it.
PhoneGap, Sencha and Corona basically all are website wrappers for your mobile phone. They do offer API support for stuff like camera, but it will still be HTML. HTML on a phone will always run slower than native implementation. Although you might not always notice it as a user, as a developer you need to spend a LOT of time optimizing so users will not notice it.
Xamarin I do not have experience with, but I heard is is basically Titanium, but a smaller community and much more expensive. I would consider that a no-go as opposed to Titanium.
So, I would recommend Titanium. But even though you build the app in JavaScript/XML it still will be compiled to use the Native API's, and the UI is actually native code manipulated by JavaScript in the backend. All UI interactions and building of UI will happen on native ground and will be much quicker.
Another alternative you haven't mentioned is React Native. Also in the same space as Titanium and Xamarin, but I personally do not really like the code structure for it. Titanium (by using Alloy, not classic) is pretty solid, and MVC.
Be sure to check out the following slideshow:
http://www.slideshare.net/joshcjensen/connectjs-2015-building-native-mobile-applications-with-javascript
It gives you a good overview about Titanium, Native Script and React Native.
And its good to know, that Appcelerator is creating "Hyperloop" (demo code: https://speakerdeck.com/fokkezb/titanium-develop-native-mobile-apps-with-javascript?slide=19 ) and there is a preview already. That allows you to use native code in Javascript without creating external modules and gives you even more system access.(use xcode projects inside your app, use CocoaPods, ...)
Sencha is really good Framework to make cross plateform web mobile and native application. You can go with this but before gone through you should read about this.
https://www.sencha.com/
https://www.sencha.com/business-web-applications-why-sencha/#developers
Intel’s Multi-OS Engine is a technology that enables developers using their Java expertise to develop native mobile applications for iOS and Android on Windows and/or OS X development host machines without compromising the native look, feel and performance. This technology is a stand-alone plug-in that can be integrated into Android Studio.
It's free and let's you write code and create UI easily in Android Studio. You can generate API for 3rd party libraries in Java etc.
More details and the download link are here: https://software.intel.com/en-us/multi-os-engine
One more tool it called XDK. The Intel XDK cross-platform development environment enables software developers to develop, test, preview and deploy HTML5 web and hybrid apps: https://software.intel.com/en-us/intel-xdk
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I develop a cross-platform hybrid app.
I played around with Ionic, Native Script and React Native.
I decided to use React Native.
Now I am integrating Remote Push Notifications and have so many problems with React Native.
Because the development is just at the beginning I think about switching to Ionic or Native Script.
My problem:
I want to get an event with the payload of the notification when the user touches the push notification in the app and not earlier.
Then I can handle the event and open a special webview in the app.
Is this scenario possible and easy to implement with Ionic or Native Script?
Is it possible with NativeScript?
Yes, almost everything is possible with NativeScript. We have plugins for most common use cases where you will simply invoke cross platform JavaScript apis. If you find anything missing, you are not lost yet as you can always access any device apis from your project using just JavaScript.
Refer the Firebase plugin docs to know more on Push Notification.
In Detail:
Being a beginner you may be face issues with any technology. Each of these technologies have their own ups and downs, so I would suggest you to understand what those platform offer and choose the best one suits your needs.
Take a look at this video, this guy explains key points about each of these technologies.
You might be aware that Airbnb had decided to move away from ReactNative. Here is a blog post form NativeScript that explains how it could be a better choice over ReactNative.
Obviously I would vote for NativeScript considering the following key features,
100% open source & community friendly
100% native UI, performance, and smooth animations
100% direct access to native apis, you don't have to know Java / Objective C but do everything with just JavaScript
NativeScript supports frameworks like Angular & Vue so you can reuse your knowledge and share code between your web apps. If you are not familiar with these frameworks, still it got your back by allowing you to build pure JavaScript / TypeScript based apps. I guess there are plans to support other frameworks too, like React but at least not immediately.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I'm trying to create an app for Andriod and IOS, but i have no clue how to do the front-end and have a hard time deciding to use HTML5, CSS & JS or Objective objective C/Java.
I'ts going to be use network options, checkout-features, joined checkout-features. Maps api, facebook api.
I've got expierence in HTML5, CSS3, SASS, PHP and JS.
I've tried looking online, but i've still got no clue how to do the front-end for app.
To answer your question, you will use framework like phonegrap, Titanium Appcelarator and I guess you can use NativeScript, Ionic, Framework7 as well. For Titanium, you have to use different environment for different app (OSX for iOS products and OsX, Windows or Linux distros to run android app) and have it's own syntax and everything. Language is one of Javascript versions (I am guessing, I have used it once 2 years ago). And Phonegap and other Frameworks use a varient of JS, so basically you will have to use HTML and CSS to work with UI. However, you will face some hardware constraint like unable to access hardware buttons (from my experience with one project some months ago) and memory management and other functionalities will mostly depend on your JS coding skill.
[My opinion] I believe, the best way to develop an app is to develop in its native language/framework. I believe it. Unless you're bound to use Html, JS to build app (you can!), don't use those. Java is there to help you with Android Development, since I am an developer, I can tell you that starting might seem a bit difficult than iOS development. But in the end, communities like stackOverFlow and thousands of thousands blogs will help you. Same case for iOS app development. You can find lots of different tutorials. New Bostons tutorial helped with android however, it's contents are bit old (android 2.3) and mostly everything has changed since. However, you can check his iOS app development with Swift. Learning a new language is mostly like learning how to ride bicycle. If you can know how to ride, keep learning the advance parts after basic mechanics, you can become a pro one day. However, for that you have to pass a whole cartoon of hurdles (unknown bugs, sleepless nights to name a few) like the falls you did when learning how to ride.
I would really suggest you to focus on building a real stack.
Happy coding!
For android:
I would recommend using Android Studio.
It is a powerful tool for creating an android app - the front end can be implemented by dragging and dropping items or by using xml.
It is easy to use and there a lot of tutorials online.
I'm an iOS developer on the native side. If you want to do native development, I would recommend Stanford course CS193P by Paul Hegarty. You can find this course on iTunes U, Coursera and other MOOC platforms. For advanced features, follow a GitHub repo called "awesome-ios" where you'll learn some production level stuff for iOS apps. If you want to do hybrid apps, have a look at PhoneGap, Ionic, React.
In either case, you would be able to implement features you've described in your question.
Tools needed for Native Development: a machine which runs macOS and Xcode(free download from app store).
I started developing native apps years ago. The last 2 years I've been using only hybrid possibilities. Designing and developing an app in HTML / CSS / JS is much easier and more efficiently.
I recommend taking a look at Phonegap, Ionic, Framework7. These are open source and there are already some templates.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I have a 3+ years experience in web development and developed few small app in Ionic and Phonegap. But now I jitter to develop a large app in hybrid app instead of native.
You should consider many aspects when developing Hybrid Application:
1. Performance
Hybrid app suffer in performance, though a framework like Xamarin have close to native performance, we still get an app that not 'so fast' when we have a little low performance here and there.
2. UI
If you want to create an awesome user experience, the native app approach would be better. A hybrid app can never match the level of creative user experience that you get in a native app. However, this doesn’t mean that the user experience of a hybrid app is bad. A good front-end developer in hybrid app can get close to a native experience, but it’s a far stretch.
2. Maintainability
Hybrid framework proudly tell us that we only need to maintain one project for Android, IOS, and other. But behind the curtain, we can't developing happily without touching the native aspect of app ecosystem. For example, UI in Android and IOS have a different look and feel and also have a different handling. So, instead maintaining one project, we end up maintaining one project + the other app ecosystem. This not really good for the long run.
Read more at:
Hybrid vs Native Mobile App. Decide in 5 minutes!
Lessons Learned From 5 Year of PhoneGap/Cordova Development
Why I don't Recommend Xamarin For Mobile Development
Cross platform development can be a time saving opportunity if you already master either web development (apache cordova) or C# (unity, xamarin).
It could be too long to learn java, xml, swift, sqlite and IDEs such as xCode and Android Studio.
Most functionalities can be handled by cross platform solutions and most APIs are supported.
The size of the app isn't important in order to make a decision. Functionalities implied are.
Not sure what kind of "Large App" you are after, but in general perspective you can use Xamarin for building native apps with single codebase and cross platform support.
Do one thing, making hybrid app don't take longer time. so make hybrid app and make it live till den and start working for native.
it's ok you can use hybrid app but as you know there are limitations in hybrid app.
if you want your app fully functional in your way you should go for native , otherwise hybrid is fine.
To add up to all the above points, cordova official documentation suggests cordova applications to be a single page application for better performance. So if you gotta develop a larger app, you need to check whether you can manage it as a SPA.
You can checkout the official documentation to decide which approach to take based on your requirement.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have background as native Android developer (Eclipse previously, Android Studio since beginning of 2015) and unity3d as simulation and game developer. I am currently tasked by my company to investigate cross development platforms.
I have searched in this question and others. And I would say Xamarin is winner for larger/complex projects. But is xamarin sufficient for hardcore-complex-projects?
For example social platform apps, lets say I am developing Facebook of my own, is Xamarin good enough? please answer in general manner and considering aspects below;
I have learned that Xamarin uses all Android components such as recycleview etc. So it's good to go.
But in complexity which require authentication login, with Twitter, Google, Facebook apis are usable? When I got error on this problems, can Xamarin provides enough documentation and help? And for other apis such as Google Analytics and statics maybe even Admob.
To upload/download files(image/video/text) can (or should) I use my previous libraries such as Asynchttp, picasso. Or are there better solutions?(maybe xamarin has its own way to implement these functions, I won't even have to use 3party library).
For webservice components, iOS has its own parse as well as 3rd party libraries such as afnetworking , restkit and Android has some libraries. What kind of solution xamarin provides? I know I can add jar files to Xamarin. But is there other solutions?
Xamarin as mono, supoorts augmented reality with unity3d, but does it support with native apps? such beyondar in Android, I would say wikitude and vuforia are astonishing but can I implement these plugins into native Xamarin (not unity3d)?
I don't think, StackOverflow is the right place to discuss questions like this. It is very dependent on your skillset and specific requirements.
In general, if you don't have any experience in a technology, then it is of course not the right thing to build a super complex software with it (for you).
Please don't see Xamarin as a mobile app framework, that handles a lot of stuff for you. It really is not.
Xamarin allows you to write all your app code in C# and run .Net code on iOS and Android. That's basically all.
If you wan't to make maximum use of Xamarin, you should of course not use platform specific libraries, but use a portable solution instead, so you only have to do it once.
There are a ton of .Net packages for Rest, Json, Web, Filetransfer, etc. and most of them are portable. Xamarin also provides a component store, where they ensure cross plattform compatibility.
For you, this means you have to learn all those frameworks (and some .Net/C# too). This is going to cost you a lot of training time.
Benefits will probably only become visible in the long term, as you only have to maintain a single code base. This is especially true for super complex apps with lot's of logic.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I developed a Native Android App, now the requirement is that the developed app needs to be in a cross platform like Xamarin or Titanium Appcelerator, now please some Experts Software Engineers Suggest me that which cross platform should I choose and why? If I choose Xamarin then what are the advantages and disadvantages of Xamarin and if I choose Titanium Appcelerator then what are the advantages and disadvantages of titanium?? Any help will be highly appreciated.
Some factors where the 2 are different (or not).
Price
By now, both cost money. Xamarin has a useless (only very small apps) free version, paid versions start at 25$/mo. https://store.xamarin.com/
Titanium Studio used to be free, but they unfortunately changd it few weeks ago. Existing free users are moved to a free lifetime indie license (which is nice!), new ones have to pay, minimum of 39$/mo. http://www.appcelerator.com/pricing/
Also, the most recent version of Titanium is invitation-only and though I got an invitation to register for invitation, I am still waiting for weeks now to be accepted.
So Xamarin has a slight edge here - by now - though you also need to see what you want to do. Indie edition is ok to get everything "normal" done, though it lacks the Visual Studio integration.
Platforms supported
Xamarin supports Android and iOS, WinPhone is supported since .net runs on WP.
Titanium supports Android, iOS, BlackBerry and Web, WinPhone is said to be supported but does not work at all. https://developer.appcelerator.com/question/181588/how-to-update-to-preview-to-do-windows-development-the-requested-sdk-version-does-not-have-an-assigned-commands-handler
Titanium Studio with Windows Phone Plugin: Titanium SDK does not support the Windows platform This - should - work with the new version 4, which is rumored to be available, but I have not seen it (though I tried).
So, if you want WinPhone, use Xamarin, if you want BlackBerry, use Appcelerator.
IDE
Xamarin has Visual Studio integration (Business edition or higher), which is great. Visual Studio is just one of the best, perhaps the best, IDEs out there. Xamarin Studio is so so.
Titanium Studio is so so, similar to Xamarin Studio.
Installation and Ease of Use
Xamarin has an all-in-one installer that takes some time, but then you can start. It just works. Xamarin has very frequent updates (every few weeks), which it sometimes needs, since certain features are broken is certain versions.
Getting Titanium Studio to work is often a hassle. I had to (this is not documented!) use Java 1.6 32Bit, which can be difficult since normally one updates his Java. Officiall, Java 1.8 is supported, but this just did not work for me. Titanium Studio is way more difficult to set up. Titanium has infrequent udpates, less than once a month.
Language
Xamarin is C#. You get a great, typed language, that scales from small to very complex applications, and has great language constructs for complex data types and scenarios
Titanium is JS. You get a good dynamic language that is very flexible, and is mainly for small, flexible applications.
You can create good programs in both languages, it is a little more difficult in Javascript.
Both compile to native.
You can use both the many js (Titanium) and .net (Xamarin) libraries and frameworks out there.
Cross-Platform
Xamarin introduced Xamarin.Forms last year to provide cross-platform GUI. It is working, though a lot still is missing, like orientation needs to be implemented manually.
Using cross-platform hardware also is not easy. There are addons that you really should check out like xlabs https://github.com/XLabs/Xamarin-Forms-Labs though I have found not a single feature there to be working (of the ones I tried). Bug request were handled quickly though so I would assume this product to mature and eventually be very very helpful to allow having 1 code base for all platforms with very very little platform dependent code (just the DI part).
Titanium I have not really used much for this so I cannot really comment.
The Rest
Communities are large for both products.
Appcelerator has a free university program (videos to watch/download). Xamarin has an expensive university program, but that includes tutoring and small web classes. There also are free videos.
Appcelerator seems to need to make money by now. Xamarin always needed to make money, they have some backing by Microsoft by now, which is helpful of course.
Most important is probably your language background. it is not the most important, since you will still need to learn a lot about mobile and each platform as well.
Also, check out the competition: PhonGap/Cordova, and some new, smaller players, some C# and some C++ based.
Xamarin 2.0 vs Appcelerator Titanium vs PhoneGap
Comparison between Corona, Phonegap, Titanium
In your specific case: Java and C# are very very similar, much more than Java and Javascript.
You can get a free trial of the business version and also extend it a few times if you directly contact customer support and have good reasons - so I was told.
Months ago we had to choose between those 2 solutions. Our decision was made by the price of Xamarin which is really expensive when titanium is totally free. There is also more doc on Titanium and a bigger community due to his price.
The main disadvantage for me about titanium is that you absolutely need an internet connection to work with it. It's really annoying because you cannot open any project without wifi.
This decision is a matter of preference and requirements. With regards to developing a complex mobile app, I personally feel like the debugging and profiling tools that a strongly typed language framework gives you (such as Xamarin) are far better than those offered by developing a complex app in a weakly typed language framework (such as Titanium). Both offer you the full extent of the native mobile platform APIs (a characteristic that I personally consider essential), but Xamarin offers the following advantages:
the strongly typed and highly expressive C# and F# languages
great IDEs, like Visual Studio and Xamarin Studio
a vibrant and active community of developers
great profiling tools
Xamarin Insights for detailed post-deployment app performance monitoring
I'm a bit biased because I really enjoy doing Xamarin development. But I feel like 4 years in the mobile dev industry has given me a great deal of perspective on the options.
Again, as long as each framework provides full access to every bit of the mobile platform APIs, it really does boil down to preference. But my vote is very much for Xamarin.