I recently finished an application based on Titanium, Javascript, HTML, CSS. I have only been a web designer to date so I have little experience in distributing applications. I was accustomed to the TiDev Community deploying app, which prepared the app for download and made it available for download at a given link.
But tidev community is no longer supported, so I use TideSDK Developer to package the app, which doesnt do all the hard work the other one did so nicely.
I am obviously a complete rookie to this.
Could anyone outline the steps I would need to take to go from the bundled application folder I have now (put together by TideSDK Developer), to a link that will allow customers to download and install the app or online? I know there is an issue with packaoging the app for platforms other than your own, and that appcelerator is working on a solution to this I think. I also realise I would probably have to pay to host the download online. Any guidance would be greatly appreciated.
You must use the tidebuilder.py script. to compile a installation package. To compile a binary for a Mac, you must run the script on a Mac, to compile a binary for windows, you must be on a windows box etc.
There is some documentation on how to use it here per platform. The command is very simple and works.
Once you have your application file (DMG for OSX or a MSI for Windows) then just distribute it however you see fit, email, putting it on your web server, whatever works for you.
I'm looking to create an application that will be executed on a Mac machine, but I don't have one to develop on. I thought this would be a great opportunity to try and take advantage of the Mono runtime. I'm trying to figure out how to develop on a Windows XP machine and prepare a deployment package for an OSX machine.
I'd like to try and make the application have a UI since my users are not very technical. Is MonoDevelop the right tool to accomplish this? Should I be trying to use Windows Forms or GTK#?
Yep , you should use mono on windows directly with GTK# , but you'll need a few tweaks on mac so you'll need a mac eventualy. Your users will have to install the mono framework on their computer too, mono doesnt produce native Mac applications.
I love mono but if the end users are not very technical I dont think it is the right solution.
Anyway , the only way to develop some real multiplatform apps is Java, since it is pre installed on Macs so users will not have to download a framework to launch your apps.
I've been trying to get GTK+ to compile using Dev-C++ or Code::Blocks IDE, but I cannot get either to work.
I wondered if there's someone that knows an IDE where GTK+ is installed as part of the IDE, and it just works?
Its got to be running under windows.
I assume you already looked at
http://www.gtk.org/download-windows.html ?
Is that what you are having problems with?
Also see the windows version of monodevelop
Greetings,
I want to write a small cross-platform utility program with GUI in it. What language/GUI-library should I stick to? Is it possible whatsoever?
This is gonna be a small program, so I don't want to make people download JVM or .NET Framework. Is it possible to develop it natively?
Update 1.
By "natively" I mean that the end result will be native code without intermediate layers like Java Virtual Machine or .NET Common Language Runtime
Update 2.
A FREE solution is preferable ;)
If you know C or C++ the first cross platform GUI framework I can think of are:
QT (C++, proprietary but free with the LGPL licensing)
wxWidgets (C++, the most complete and stable but also huge)
FLTK (C++)
FOX (C++)
IUP (C, simpler and cleaner than the ones above)
If you know Pascal, you can try freepascal+Lazarus. I've never used it, though.
The problem is: If you do not want to have a GUI but you do not want to ask the user to download an eternal API, Framework or virtual machine to run it in, be it TCL/TK, Java or QT etc. then you get lost pretty fast.
The reason is: You would have to rebuild all the (GUI) functionality those APIs, frameworks and virtual machines provide you with to be platform independent. And that's a whole lot of work to do... .
On the other side: The Java virtual machine is installed on nearly any operating system from scratch, why not give this one a shot?
You want to develop a cross-platform program natively? Uh...I don't think that'll work, mainly because that phrase is a paradox. If you write native code, it by its very nature will only run on the platform you programmed it for. ;-) That's what the Frameworks are all about.
So what you should do instead is use a very slim framework if your program is going to be so small. itsmatt's idea of Qt is a possibility.
WxWindows? Oh, it's called WxWidgets now: http://www.wxwidgets.org/
wxWidgets has bindings to all sorts of languages - python for instance, if your app is small enough.
Lazarus is great. GTK2 on Linux, win32/64 on Windows, WINCE on euh, Wince. It even uses Carbon on Mac (working on COCOA). Also easy to sell to your boss (the code is Delphi compatible)
How about Python using Qt or Wx and then using PythonToExe to make a 'distributable'
Thought will have to giving to the development to ensure that no native functionality is used (i.e. registry etc.) Also things like line breaks in text files will have different escape characters so will need to be handled
Which OS's do you have in mind when you say cross-platform?
As Epaga correctly points out, native and cross-platform are mutually exclusive. You can either write multiple versions that run natively on multiple platforms, or you need to use some cross-platform framework.
In the case of the cross-platform framework approach, there will always be extra installs required. For example, many here suggest using Python and one of its frameworks. This would necessitate instructing people to install python - and potentially the framework - first.
If you are aiming at Windows and OS X (and are prepared to experiment with alpha-release code for Linux if support for that OS is required), I'd highly recommend you take a look at using Adobe AIR for cross-platform GUI applications.
I agree with Georgi, Java is the way to go. With a bit of work, you can make your desktop application work as a Java applet too (so that users do not need to actively download anything at all). See http://www.geogebra.org as an example of an application with runs smoothly as a cross-platform Java application AND has a simple port to a web applet.
Two other advantages to using Java are:
They have extensive libraries for building the UI, including UI component builders.
The Java runtime framework is generally updated automatically for the user.
One disadvantage:
The version of Java installed on your end users computer may not be totally compatible with your application, requiring you to code to the lowest likely denominator.
Try RealBasic. Visual Basic-like syntax, targets Win32, OS X and Linux. I don't know any details about targetting Linux, but for any cross-platform development I've done between Win32 and OS X its been a dream.
http://www.realbasic.com
Edit: Generates native executables. There is a small cost - $100.
Have you looked at Qt?
Flash? It's installed pretty much everywhere.
If it "HAS" to be Desktop use Qt. Nothing beats it right now.
However personally I gave up on desktop and any UI based project I do is normally Browser/Server based. You can easily write a little custom server that listens to some port so the program can run locally with no need for your users to install Apache or have access to the net. I have a small Lua, Python and C++ framework I made for that purpose (Want to add Javascript for the backend with V8 :)
If you're going to look at Qt and WxWidgets, don't forget to also check out GTK+ !
I agree with David Wees and Georgi,
Java is cross-platformness par excellence. You literally write once and run everywhere. With no need of compiling your code for each target OS or bitness, no worries about linking against anything, etc.
Only thing is, as you pointed out, that a JRE must be installed, but it's quick and straightforward to do even for novice end-users (it's a matter of clicking "Next>" a few times in the installer).
And with Java Web Start deployment gets even easier: the user just clicks the launch button on a webpage and the application runs (if the proper JVM is installed according to what specified in the JNLP descriptor) or the user gets redirected to the Java download page (if no suitable JVM is found).
I know RIM has their own IDE (BlackBerry JDE) for building BlackBerry apps, but does anyone know how to configure IntelliJ IDEA to build/debug BlackBerry apps?
RE: Chris' question about what is different... Blackberry applications can be standard MIDP apps or CLDC apps that make use of the Blackberry specific APIs. Most developers tend to take the latter approach, and then using Blackberry's tools is required - especially if you are using some of their secured APIs and have to sign your deployment files for them to run on the devices.
A potential answer to the original question would be to use the Blackberry ANT tools to create an ANT script for building the application and reference that from IntelliJ IDEA. Of course, that's only half the battle and to run/debug the application you'll need to connect the debugger to IDEA as noted by Alexander above. Alternatively, you could code in IDEA and run/debug in the JDE, but that seems less than ideal, to say the least.
I use Eclipse with the Blackberry plugin. Also not ideal, since you are forced to use an old (and buggy) version of Eclipse, but at least I'm in one IDE and can step through code running in a simulator.
Blackberry JDE integration would be a great IntelliJ plugin project.
RIM's compiler (the one that builds the COD files) can be easily run from the command line. All you need to do is create a corresponding build step in IDEA.
Also, to make your life easier when editing the code, you may want to add the net_rim_api.jar (the one that comes with RIM JDE) to the JAR files used by your IDEA project.
As for the debugger, RIM's debugger was supposed to support the standard Java debugger interface. I don't remember what the minimum version of JDE is required for that.
Not really an answer, but more asking for clarification what is different for Blackberry dev versus other J2ME devices...
I see its a MIDP J2ME device, and so the standard Intellij J2ME support would seem to give most of what is needed.
I guess the emulator side of things might be different... but maybe you can call the jde emulator from IDEA...
Regards,
Chris
I've been using IntelliJ to develop Blackberry apps...sort of. IntelliJ is really good at indexing code, you just need to point it in the right direction. It's editing abilities are way beyond the JDE and in my opinion it is much more flexible and user friendly than Eclipse (even though RIM has an Eclipse plug-in).
I say sort of though as I just code in IntelliJ and currently still compile and debug through the JDE. Hoping for better integration on that front with IntelliJ down the line, but it is an acceptable working environment for now.
Not sure if this will help but here are instructions for setting up Eclipse for blackberry development.
Maybe you can use that information to figure out what changes to need to make in IDEA.
Its very easy to integrate IntelliJ with Blackberry development given the above suggestion (using the bb ant tasks), but I've yet to successfully debug the simulator through IntelliJ. It should work, but it doesn't.
Thus, the 'integration' is incomplete.