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
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 7 years ago.
Improve this question
I'm currently developing a game in C++/SFML and I understand that Google Play games are typically C or Java but it is possible to make an "app" (not necessarily a game??) for Google Play that is written in C++. I understand to do so you must use an Android SDK (i'm not exactly sure how an SDK works at this point in time) or a similar software such as Marmalade must be used in conjunction with the c++ code in order to make it run on Android.
Two questions:
1) Are there elements of c++ code (such as pointers) that can not be ported to Google Play / Android using Android SDK?
2) How difficult is it to port c++ code to Google Play / Android with Android SDK or similar software?
Thanks in advance
You can compile C++ on Android using the NDK.
As for SFML, it apparently isn't available for Android 'yet':
With SFML, your application can compile and run out of the box on the
most common operating systems: Windows, Linux, Mac OS X and soon
Android & iOS.With SFML, your application can compile and run out of
the box on the most common operating systems: Windows, Linux, Mac OS X
and soon Android & iOS.
As for how hard it will be to port - obviously it's an opinion, but in my experience Android native development is considerably more difficult than Android JavaVM or desktop development.
I won't talk about SFML, as I haven't heard about it and will focus on the C++ aspect. I write native iOS and Android for a living. In this context, it means Java using Android SDK and Objective C for iOS.
Having worked on two projects, it's quite easy to port the business logic and classes from one to the other. I haven't touched C++ in quite a few years, but unless you're doing something really funky with multiple inheritance, the coding itself will be straightforward.
Where I encountered difficulty (and you will even more) is the GUI side of things. If you're coming from PC coding, your GUI code will need to be overhauled extensively. One exception is web GUI with responsive design, but that opens a whole lot of other problems such as no native APIs and limited capabilities.
Regarding NDK, you need to understand that this is true low level code, written in machine language. This means you don't enjoy the write once, run anywhere of Java and need to compile for both ARM and Intel devices. Intel has been traditionally weak in this market but I wouldn't bet against them.
For iOS it means XCode will generate duplicate code for ARMv7, ARMv7s, ARM64 (and IA-64 for the simulator). This can't be helped anyhow.
One alternative is to go true web app. Ditch this legacy C++ and go HTML and JavaScript. If you port your game to web, you'll be able to run it everywhere. Both iOS (UIWebView) and Android (WebView) support a web container. Of course, that will come with the new and exciting framework of the week.
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).
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 6 years ago.
Improve this question
Maybe some might find this, a hypothetical question.
I have recently started development of mobile application development for Android. Currently studying the basics of it. It got me thinking, if one has to develop an application which is portable and executes just fine on each of OS/platforms namely - Android, Apple -IOS,Windows Phone-7, then
1] What programming language,SDK/framework and tools should one be using? Is there any one thing or one has to pick and match different code frameworks for different tasks in app. development?
2] Would this be a realistic scenario at all if not already?
3] What tools(compilers/build tools, debugging tools, code editors) are available for such task?
While I have not tried it, there is a project, Mono Touch, that allegedly allows cross-platform development. The argument that I've seen against this kind of development, however (and I agree with it), is that users of each platform are used to how that platform's UI works. There are ways that the UI acts that are "normal" for a platform, that are not the same for the other platforms. So if you develop on one, and use something like Mono Touch to make it work on other platforms, your app might work, but the UX would suffer, because on two of the platforms, the UI would not work in the same way that users of that platform are accustomed. Make sense?
What programming language,SDK/framework and tools should one be using?
JavaScript, HTML5, and PhoneGap.
Would this be a realistic scenario at all if not already?
If you can live within the confines of what JavaScript, HTML5, and PhoneGap give you, it is perfectly realistic.
(BTW, if you are more into gaming, that's not my area of expertise, but Unity 3D and other game engines might work -- there's definitely some that work between iOS and Android, but I don't know about Windows Phone 7)
What tools(compilers/build tools, debugging tools, code editors) are available for such task?
Any text editor, PhoneGap/Build, etc.
Check this one out.. http://xamarin.com/ use c#/.net and it will "compile" (with minimal changes) to both ios and android, with most of the features of c# available.
Haven't tried it but they have a nice trial, and I'm seriously thinking to move into it. You'll need a Mac for iOS anyway. For WP7/Android, you can use Visual Studio.
According to my opinion, although there are some solutions to produce cross-platform applications, like phonegap, mono touch etc., none of them has very qualified. In order to produce a great mobile app family, a significant effort is needed to write all the apps using different platforms.
I don't know any solution that I really like, but there is an programming languangue called Revolution Live Code that you can deploy your program to Windows, Mac, IOs and Android (http://www.runrev.com). I programmed with this platform and it's a bit limited.
By the way it's an interesting programming language if you like Smalltalk.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I am new to Java and I want to create a Java app for mobiles. When I approached software companies they asked for "Android / Blackberry / Symbian" etc...
Being a newb, I am really surprised by these questions. Can you please tell me whether there are any other mobile platforms in Java?
Are Blackberry apps and Java mobile apps different? And what is the target phone for j2ME applications?
Java ME is waning.
iPhone is Objective-C; there's no Java on iPhone.
Android is its own platform, different from Java ME.
BlackBerry used to be based on Java ME, but they're moving in an HTML/CSS/JavaScript direction, away from Java ME.
j2me is a technology that was used a couple of years ago for creating those apps on the cheap phones (think pre-smartphones). blackberry and symbian have a bit of an extended java libraries but it is still similar to j2me (painful to create apps that don't look good plus in later global events symbian os is becoming more and more unpopular which means less and less developers are needed).
But basically the major part of the mobile apps are written in java, one way of another. there is also IOS which uses xCode. maybe even some embedded development platforms that are using c++ or something but i can't really say for those.
EDIT:
Oh and yes there is windows mobile now that is becoming quite popular. getting into windows 7 mobile development is actually a good idea in my opinion. Although currently its pretty poor in terms of available resources community etc.. it can possibly grow in the next year or two. Plus the app competitions is quite small, there isn't a market so its easier to push through a successful app (which isn't the case with iphone and also the android market becomes filled really fast).
J2ME only supports on Symbian and Blackberry platform. LWUIT is J2ME framework. You can develop symbian, blackberry and android application by using this framework. If you are using LWUIT framework means no need to write the coding for different platform. You can use same coding for all platform(Symbian, Balckberry and Android). But you have change some small changes for each platform.
Basically iPhone supports objective-C. But you can develop the iPhone application by using C# with MonoTouch framework. If you know java means C# with MonoTouch framework better for iPhone development. But it will be cost.