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 9 years ago.
Improve this question
I'm planning to develop a suite of application on various plateform using common module.
I'm still hesitating between XCode and Qt. Here is my development plan:
I need to develop a product A soon for MacOSX with simple user interface
I want to develop a similar product (B) on iOS using common modules with simple user interface
I want to develop a new product (C) cross plateform (Windows/MacOSX/Linux) using common modules with complex user interface
Here are the list of stuff to know:
Product A deals with graphics and video and needs strong performance (60fps not 58 or 59).
I'm worrying about developing product A on XCode because XCode is * but I'm wondering if there is some performance issue if I'm not doing native code.
I could eventually use Android for Product B but most of my client use iOS
Qt is perfect for product C.
My question is shall I start with XCode and then pass to Qt or start with Qt directly? I'm a start up so times matter but product B can be delayed. I need to take this decision right now so I would like to hear from you fellows :-)
Probably I will be beaten for such answer, but that based on around 15 years experience in Qt development (first version I started to work was 1.33.. OMG).
I am developing Qt cross platform application for most of my professional life (Win32/Linux/MacOS/embedded). Developing cross platform applications suppose to follow certain style of coding, libraries/3rd party tools you are going to use additional to Qt, but main issue is what should be you prime development platforms and others will be just targets.
And regarding development platform (although I am mainly MacOSX and Linux user) I think VS is the best one. Probably is a subject for another topic, but I believe that Visual Studio is fastest C++ development platform available. QtCreator (although it a very nice tool) never will be so good integrated in OS kernel for debugging purposes as native MS product. Same applied for Mac and Linux. Everything you debugging is at the end just front-end to GDB.. if you need to develop fast its about everything, how fast your editor, how fast you switch from Debug Command till first breakpoint reached.. And sadly for me, within Unix world there is nothing so integrated for development as Visual Studio for WinXX..
I am using Mac's last 10-12 years.. My current development machine is MacBook Pro (late 2011) + 16Gb.. and development within Parallels VM + Win7 + VS2012 is much much much faster and efficient then XCode or QtCreator.
I know that GDB shipped with Mac is older then my grad mom car, and updating it to latest stable make QtCreator 10 times more responsive..., but still then you make 1000+ lines of code daily overall speed is just not good enough.
That's not because XCode is bad, but XCode is an Objective-C platform and I dont think it's a right way to try fit Qt in..
Important note: everything said above not applied to VS2010 which is pure MS mistake. It's slow and buggy environment which shouldn't be considered as a production environment for anything. My path was (although I has all major MS VS releases) 6.0 -> 2008 -> 2012..
You can still use XCode for MacOSX applications, it's alot easier and quicker to use since all of the tools and preset graphics are there already.
Related
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 8 years ago.
Improve this question
What is the pros and cons of using either Telerik appbuilder or VS Multi-Device hybrid app and what could be the advantages of using appBuilder over VS or vice verse?
AppBuilder is more than just a set of IDE options (of which there is a web-based IDE, native Windows client, Visual Studio extension, CLI, and Sublime Text package). AppBuilder is also:
Cloud-based build service (no managing SDKs, you can build an iOS app from Windows, etc - can't do that with VS Multi-Device)
Best in class device simulator, access to native emulators, plus the ability to use LiveSync which does a live reload of your apps in the simulator/emulators/physical devices. And yes, you can also debug on those devices as well using the familiar Chrome dev tools.
Ability to publish directly to the iOS app store (essential if you are on Windows)
NativeScript integration - which will allow you to develop truly native apps using JavaScript!
AppBuilder Companion Apps, which let you distribute apps and test on real devices without going through the iOS provisioning hassles (and LiveSync works with this as well)
Full support for iOS, Android, and Windows Phone 8.
And it's important to remember that AppBuilder does have an extension for Visual Studio. If you're not happy with the TypeScript support (which IMO is much better than it was in May) you can use Visual Studio and still take advantage of our simulator, cloud-based builds, etc.
Disclaimer: I am the Product Manager for Telerik AppBuilder!
For me the decision of which to use hinged on one thing - TypeScript (TS). At the time (around May or June) the TS support in AppBuilder (AB) was weak - very weak! You can technically do it but its a real pain in the butt cause Telerik left out a lot of IDE features that could make the experience much better.
Such as you don't get any intellisense support, TS classes are not visible to each other and simple things like being able to configure your TS project to use AMD or commonJS were left out (along with numerous other features I can't think of right now).
And the exact opposite is true for Multi-Device-Hybrid-App (MDHA). MDHA has great TS support and for me coding in TS is heaven compared to having to code in vanilla JavaScript (JS).
But if you don't mind coding in JS then AB is a pretty good platform to use and you won't be disappointed. It's just for me personally I hate JS, so when MDHA came along and I saw the strong support it had for TS, I dropped AB like a bad habit and never looked back.
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 a project in mind and want to take on it and have chosen QT as the preferred framework to begin with. I have been trying to figure out how to start and have Qt package (SDK and Qt Creator) installed. The problem is - I am not able to figure out the exact use-cases of Qt Quick and Qt Widgets. I plan to make the project for a long-term purpose with these properties:
It will be a desktop-only GUI application. If I ever want to make a mobile version, I would do that for the mobile platform in native or HTML5, and not Qt. So code-base compatibility with any mobile platform is not my concern.
Touch UI and animations are also not a part of the feature set. However, down the line support for creating graphs would be great (I can always use QtWebkit and JS to create some though)
Windows is the prime target. Linux and Mac would probably not be used by the target user(s).
It would need to be self-upgradable - now that is not much of a concern in making the choice but if there are problems with either, some knowledge would help me. I do not mind a full application installer download but updating modules independently would be a little better
It would need to talk to a web server for fetching and uploading data (I think HTTP would be Qt core's job but I do not know much about Qt yet).
The app would need tables with inline editing, a small picture gallery, menus, multi-part windows, drag-n-drop support etc. I could not find anything about menus relating to Qt Quick though.
Considering that use-case, what would be a better choice - Qt Widgets or Qt Quick?
A little about me and why I chose Qt - I have been out of touch from C++ since almost 2 years and have not made anything serious in Qt but Qt is a preferable choice over Java (which I do not like much). Again, I lack experience with Python. In addition to that Python UI sucks and if I have to install QT framework for a good UI, why not make the entire thing in Qt anyway (considering I am okay with C++). So Qt is the preferable choice for me. Since the project would need to be cross-platform compatible, Qt is even more attractive to my eyes.
QML will provide more support for customising widgets in a simple manner, Widgets gives you a set of tools ready to go that gives you platform styled controls in a very simple way. Both have their upsides, both have their downsides, I'd personally recommend getting started with Widgets first as there's a lot more historical documentation for them, so if you need to research something you'll have a bigger base to work with.
From your comment above, there's been little development on Widgets as the Qt development team feel that they don't need any additional work at this stage. They're stable, solid and reliable, there's not much that needs to be done to be improved, and when people need custom widgets they end up creating them themselves.
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 3 days ago.
Improve this question
I'm planing to buy a Mac. I would like to be able to develop GUI applications for Mac as well. Currently I develop in C# using VisualStudio as IDE. I also know Java and I'm familiar with NetBeans IDE. Application created in both of this languages can run on Mac (as can NetBeans IDE) but I was told that neither C# nor Java is recomended for MacOS X development.
So what language is recomended for MacOS X development ? I guess there is some recommendation from Apple for the developers ? I would prefer Object-oriented easy-to-use programing language (nothing like C) with good IDE that supports GUI creating (GUI designer).
Thank you for answers
There really is only one choice and that's Objective-C and XCode, anything else and you'll be running into problems and/or limitations.
As some have mentioned Python is one suggestion but what GUI toolkit to use? Then packaging becomes a problem.
Mono is OK but still a little buggy (and slooooow) on Mac's.
I haven't tried Java but the Apple port of the Java VM has just beed deprecated, make of that what you will.
XCode is very very good and integrates nicely with Mac/iPhone/iPad etc. but Obj-C takes a while to learn coming from a C#/Java background, plus XCode forces you to use MVC patterns in everything which again can be a culture shock.
I would say go with Obj-C and XCode and learn something new.
Objective-C with Cocoa should be your first, second, and third choices. That being said the learning curve can be steep but half the fun of this business is learning something new.
At my job (Seapine Software) we extensively use C++ with the Qt framework on the Mac and it also seems to work fine. If I were starting out I'd definitely go with Objective-C.
It's Objective-C. But if you want a beautiful and easy language, you can use python with wxPython. It'll look as native and, furthermore, it will make your applications multi-platform.
For the GUI designer, check wxFormBuilder. It supports wxPython for exporting.
I'm an iOS developer & use Objective-C every day, but if I were writing an OS X app, I'd definitely try out MacRuby. However, there is little controversy that, at present, if you want to write OS X native apps, you eventually must learn Objective-C. Most, like myself, grow to like it. Moreover, on OS X you have the advantage that you can run it garbage-collected and possibly save yourself some bookkeeping.
Daniel Steinberg says it well in the introduction to his Cocoa Programming book:
Use Objective-C. Sure, you can write Cocoa applications in other languages. But for now, learn the native language. There is a lot of support for new developers on the various Apple lists and in the support documentation, tutorials, and sample code accessible from Xcode. You will have an easier time of getting your question answered if you use the lingua franca of Cocoa development.
Yes it's Objective C. But check this out.
If you are familiar with HTML, CSS and Java Script, you can build platform independent desktop apps using Electron by Github. It's indeed amazing.
The desktop Apps like slack, atom, postman are built using this framework.
Please refer: https://electron.atom.io/
You can also use Qt which is a great cross-platform application development framework that is based on C++.
Please refer: https://www.qt.io/developers/
I started using swift to develop only Mac applications. But I wanted to use c for high performance apps, so I started using objective-c.
I see that more and more are using Macs for development.
Why is this? What advantages does the mac have?
Except for the obvious Microsoft languages, are there any that are not suitable for the mac?
And last, what is a recommended, not so pricey macbook for programming (C++, Java, Ruby, Haskell etc.)?
A mac is Unix based and more user friendly than most Linux distrib. They also have a nice set of software. Another reason could be that you can only develop for iphone on a mac (objective C).
I've been developing with a Mac for the past 4 years and never ran into issues (or at least, not more issues than on a PC). I've been developing in Ruby, PHP, C, C++, Ada, Java... I think that all the languages will work just fine, aside from Microsoft technologies such as .NET... but then you can get parallels, VMWare or bootcamp to bypass this.
You can get a Macbook for 1000$... it's still expensive, but totally worth it.
(source: akamai.net)
I already answered a bit to this question here.
The Mac is also very nice for web development. It is very easy to set up a local development environment as PHP, MySQL (I think; if not there's an easy installer), and Apache come preinstalled. There is a lot of nice web development software for the Mac, such as Coda, CSSEdit, and TextMate.
As for software:
C++: Use Xcode. It's quite nice (though I hear it won't win many converts from Visual Studio. Having never used VS I can't comment on that).
Java: Use Eclipse. But then, you probably already knew that.
Ruby/Haskell: Textmate!
Also, for GHC, install MacPorts and use that to install your haskell compiler.
Lastly, don't pay Apple's prices for RAM upgrades. You can buy standard RAM from any supplier for much less.
Any currently shipping Macintosh will be adequate for development (Mac Mini, Low end MacBook Pro) if you are a hobbyist or have small projects.
I find a 2.53Ghz MacBook Pro fine for my weekend projects, iPhone development and script hacking. For my Day job I'd have a hard time getting by with less than a top end Mac Pro with much less modest specs.
I do .NET development regularly on my macbook pro using Parallels. The performance hit is noticeable but not enough to matter most of the time. The worst part for me is the inconsistency in moving the cursor around in applications using the keyboard (CMD + left/right, etc). I don't know if it's from me messing around with Parallels keyboard binding settings or not, but even after 6 months, I still don't know the different shortcuts as well as I do in Windows.
Mac is intensely used by designers with photoshop, ilustrator or after effects.
Also there are more and more objective c programmers which develop iphone apps.
I believe that because the only eligible way to create iphone apps is to own a mac, developers were forced somehow to buy mac in their way to create apps.
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 8 years ago.
Improve this question
Does anyone know of free tools (languages, environments) that would support development of GUI applications on the Windows platform?
I am looking to be able to create a single executable file that has no dependencies on any external runtime or library.
I would like to be able to then run this EXE in a very similar manner to Process Explorer or Autoruns from SysInternals. In other words; a no installer, portable application.
This application must also provide a reasonably rich windowing (controls, widgets etc) user interface and should run on Windows 2000, XP, Vista and later.
I'm aware of C/C++ but I'm looking for an environment/language that provides more specific and faster support for GUI development. Also, Delphi costs money.
For quick prototyping, Autoit is a viable option (but it is a scripting language though).
Combined with Scite as an Editor, and autoit to exe capability (AutoIt3.exe in Scite and Autoit3Wrapper.exe to actually produce exe), you have a full GUI development environment.
AutohotKey is an alternative, but based on old AutoitV2.
Still, you can execute AutohotKey scripts from Autoit ;)
Run("c:\Program Files\Autohotkey\Autohotkey.exe c:\scripts\devicesset.ahk")
While interactive debugging is not natively supported, they are (2008, but in 2014: was?) several debugging tools to facilitate the debug process. (from this ticket)
Update 2014: the "AutoEditDebugger" might not be supported:
EDIT October 2009: NB This script has not been maintained since some time in 2008. Due to some problem with the editor it crashes in Vista.
Delphi is definitely a good way to go. There is a free version called Turbo Delphi.
The version available is a couple of years old, so it's a shame they haven't release Turbo versions of the new stuff.
There are also trials available of the full fledged RAD Studio, but I don't think that's what you're looking for.
You can Get Turbo Delphi and Turbo C++ Builder explorer editions for free, and you can develop with them native application that you can have only .exe file without any dependencies on any windows version from (win98 to win7), both of them include more than 200 components, and you can use more (without installing to IDE that the only restriction), and you develop with them free and commercial software.
Delphi is the most RAD(Rapid Application Development) IDE that you can use to produce windows application in very easy and efficient way, you get fast developing application with fast execution time compared to speed of C++.
Another option to use Lazarus IDE, which based on FreePascal compiler, so you can have your application running on windows/linux/MacOS/Unix and more.
Visual C++ Express + WTL. Both are free. WTL is a relatively good(1) windowing library. No wizards, though, and you have to have good understanding of the Win32 windowing system.
You can also use Visual C# Express along with Mono to build WinForms app. While the end result is not technically a standalone executable and requires a framework, Mono dlls can be distributed along your exe (2), so you can just have a single folder for xcopy deployment. (And I think on Windows with .Net installed, your exe will be run on .Net automatically)
(1) I am spoiled by WPF. :-)
(2) Read on the intertubes. I have not personally tried it, though.
Perhaps not an option given your statement regarding C++, but if you are developing an open source / free application then Qt is a very nice GUI toolkit with designer.
Also, wxWidgets is a very functional toolkit that will allow you to deploy a single exe, although the best GUI designers are not free.
Maybe D is an option? A friend of mine blogged about a GUI Designer for D here and I believe that the resulting executable has no dependencies.
Just use VS.NET with C and Win32 api.
No runtime needed of course, as the CRT is native.
You should use Digital Mars C/C++ in pure C and program with GDI32 functions of WIN32 API (Just #include ). Don't forget to link your binary object executable with gdi32.lib.
Check out Microsoft's Express editions of their developer tools.
If you're doing very simple applications, AutoIt might be an option as it requires no runtime files and its executables will even run on WinPE. It's a bit primitive though and not exactly object-oriented. It works a bit like the old VB. It is, however, free and easy to learn and apart from something like NSIS (NullSoft Install System) there aren't many free, standalone GUI creators.