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.
Related
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 7 years ago.
Improve this question
I can say it's a long time I've been searching for the more correct way of using my C++ skills for making real world apps. To me, most of the real world apps are graphical ones — those that have graphical environment and GUIs, like any ordinary app used on MS Windows. Of course there are many other (and probably vital) real world apps that are used for embedded systems that may don't have GUI.
Apart from MS Windows, there are quite a bit programs for other OSes like Linux.
On smartphones we also use iOS apps for devices made by Apple and Android ones as well.
My purpose is being able to create apps for the following platforms, in order of priority:
1- MS Windows platform
2- iOS and Android platform
3- Maybe in future, Linux platform or embedded systems
These are my needs generally.
Saying these matters, one idea comes into view: A good IDE that we can use our C++ experience in it to make cross-platform apps that can also supports those 3 needs perfectly, yes, Qt.
But there seem to be some difficulties on using Qt. I read some of discussions said in the link below, but since I'm not familiar with it yet, I couldn't understand high-level subjects.
https://softwareengineering.stackexchange.com/questions/88685/why-arent-more-desktop-apps-written-with-qt
I know that each choice may have its own advantages and weaknesses. But finally I have to choose.
My intention is to start learning Qt in near future and now to be sure that my chosen way for that near future (one or two months later) is not wrong!
Now I want you expert guys that please help this novice to make a correct decision.
My question on making the issue clear for me is that:
Is Qt the best choice for my needs please? (Those three needs)
Thanks in advance.
You can use Qt Qml from Qt5
Qml allows to develop desktop and mobile applications. What you will need is to compile your application for new platform.
Qml is language for developing UI, but qml is javascript-based language and you can do logic in qml files. To provide your C++ classes you can just register they in C++ code.
P.S Qt for mobile platforms is good idea for fast-developed solutions for all mobile platform. If you want to get all available features and functionality from AndroidSDK, for example, you must use AndroidSDK or AndroidSDK wrappers.
P.S.S Qt is the best solution for crossplatform gui applications, and qt is easy to learn framework
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
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 7 years ago.
Improve this question
Hi friends i want to know about how to make apps for different OS.For eg: ANDROID,BLACKBERRY,iPhone,Windows Phone and Nokia phone.Which programming language is required for there different OS.Can any same programming language can be use for all this different OS.
To make apps (mobile apps, I think you mean) for different OS's(I think you mean the different OS's on each phone),(assumption: that you're coding it from scratch) you learn a programming language first, then proceed to learn how to make apps for a particular OS. Typically, you purchase a book (look online for good recommendations) and start from there. You can also find tons of online resource about coding basics, and mobile app development.
I am sure you can use most popular languages; Java, Python, C++/C#/C, etc...
Generally, people make either Android Apps, or iOS apps. They code in Java for Android (and it's derivatives), and Objective-C in iOS but Swift is quite new and I heard it has many cool features, and is the better choice to use for iOS in comparison to Objective-C.
Yes, you can use the same language across the platforms you listed in your question, but generally stick with the common languages most people use, as the difficulty increases when you choose more elegant languages, like Prolog or Haskell etc. :)
#SiddhantSingh you should go for java scripting(i.e.,phone gap)
Android and iOS are completely different. You are asking how to begin creating apps for all phones, iOS is specifically referring to apple products. For apple, go to their website and download the development kit, Xcode (It is in objective-c and/or their own language called Swift). For android, it is primarily in java, and some starter development kits are offered for android as well! To make it really simple these are usually used to develop- Xcode for iOS, you can get it from apple; and some of the most common for Android are gradle and app inventor, which you can get from gradle.com or MIT's website respectively.
If you have a good idea which is support to receive good reviews from all platform App users. I suggest you consider about Web App and Hybrid Framework Development. I hope you get a little knowledge about those two things.
The common point between Web App and Hybrid Framework is saving your time, which means a couple of mobile OS can run your App with one-time development. Multi-OS development and different Program languages are absolutely unnecessary for you. I think this new way of development can bring you the concentration on App's essential thing.
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've just started diving into the Android world. I have a lot of experience programming apps in Python, so I've searching for a good combination "Android + Python", and I think I've found it: Kivy.
I need to make applications that are able to download and upload content from the internet, maybe some connection with the map component included in Android and more stuff to make a nice Android app.
But I really don't want to waste my time on something that maybe won't work. So, does anyone has some experience developing Android apps using Kivy? Is it really useful, simple, possible? Or is there a better option you have in mind?
I've been using and contributing to kivy for some time, and using it for a big application intended for market. Although still not as complete as native developpment (not sure if using the map Android API is possible at all, but there are alternatives), it works very well, with good performance. The kv language for rapid prototyping is really cool.
And as bonus points, your apps work on windows/linux/mac/ios too… (we still have to try getting on apple store, but technically it works). edit: to this day at least one kivy app has been accepted on apple market, look for "deflectouch" if you are interrested.
As opposed to SL4A, you get a real apk to distribute, with kivy as well as a very nice and slick GUI api, fitted for multitouch apps.
I believe KivyMaps is pretty similar to what you are trying to do.
If you avoid non-Android platform specific code then your application, should run on Android without any problems.
I suggest looking at Python for Android also, it's a sister project of Kivy aiming to help you create your own Python distribution including the modules you want, and create an apk including python, libs, and your application. Specifically look at its native API wrappers for Android. The project is new so only a few native API's are supported but it might give you an idea on as to how to go about creating a wrapper for Android location service API's if you need that.
As for the Google maps external library, I agree with tshirtman. I'm not sure how it could be used but as the KiviMaps link above highlights there are alternative approaches available.
I have very little experience with it. But I do know that
SL4A (Scripting Layer For Android) does support writing Android applications with Python as well. Might be worth looking into that a bit before you make your decision of what to use.
Kivy is Cross-platform Python Framework for NUI Development.
It is Good for some prototyping android app. You can use Kivy Launcher for more fast test.
You can use python library so fast development for feature.
You can use pyjnius for accessing java classes for java based feature.
I suggest you to reading Kivy Interactive Applications in Python book for newbie.
But in some deeper depth, you should know how to use basic widget carefully.
Because some confusing concept is there. For canvas, it's different concept in html5. Kivy language's class rule and class is some confusing for newbie.
And for android app, there is some difficult to use not basic supported library like Beautiful Soup(famous html and xml parser library).