How to deploy Gtk+ app on Mac? - macos

Is there a more or less official way for Gtk+ applications to create regular OS X .app with all needed resources and libraries, placed in correct way?

Pretty much everyone does their own thing. Check out the outdated (read: not really maintained) bockbuild, as well as the build scripts that gedit uses for building .dmg.
https://github.com/mono/bockbuild
https://git.gnome.org/browse/gedit/tree/osx
This is something I'd love to see migrated to a configure/automake addition with dmg targets.

the easiest way to deploy a GTK based app on macOS:
How to deploy GTK based app on Mac OS X?
You should read it.

Related

How to install OSX app developed with XCode on my own machine?

I am pretty newbie in that subject so any pointers are welcome. I am going to create some UI application for OSX (using Swift language if it's matter). While app in early stages I have no choice other than starting it from XCode, but once app get matured enough to be useful I'd like to install it on my own machine and play with it as regular user would do. Under "install" I mean - it should be visible/accessible in regular way with icons etc. How to do it? Thanks!
You need to create an app bundle (extension .app), you just need to create it using xcode and that's all, here's the documentation with the bundle structure: link
When your app is bundled, move your app to the Applications folder and you're ready to go.

Easily build a Mac OS X .app bundled with MacPorts

There is a bash script to build a Mac OS X .app bundle from an application written in Go that works by extracting the necessary libraries, resources, etc. from a Homebrew installation and tweaking the libraries. I'm happy adding MacPorts support, but..
Aren't there easier ways to do this, like using Xcode projects or whatever? Is there an analog of py2app for go? What should I know about using outside libraries in .app bundles?
If I understood you properly, you want to pack a Go binary as a OS X .app file. Well, yes, you can do it. Take a look on Makefile of my cocoa-go project. In fact, building .app if fairly easy. Also, I can recommend a Developer Library article about bundles — Bundle Programming Guide.

Crash course in 'redistributable binary for Mac, uses QT and some other libs' ?

Ok so I am an engineer / applied-math guy and someone only mildly technical was impressed by a linux version of some software but wants it for Mac (Doctors...)
Can someone point me at how to redistribute an executable for Mac? Before I ditched Windows the atomic solution was to copy a bunch of DLL's into their System32 folder. Some sub-questions:
1) Ok I see "sudo macports install XYZ". Will this allow me to statically build QT apps? Or, suppose they have QT installed, how do I get my app to find it on their comp?
2) Maybe there's an example out there, using VTK + QT + Boost, for building application for Mac?
My apologies with the vague question, if I knew what to methodically search for I would have done so.
Is there any specific reason why you want to statically link Qt+VTK+Boost with the app? On the Mac, for libraries like these I can't think of any reason (except licensing) why static linking would be preferable to dynamic.
Take a look at the "Deploying an Application on Mac OS X" link that Bavarious posted. It explains how Mac apps are stored in bundles, allowing an app made up of many files to appear to the user as a single file. Libraries can also be stored in a bundle (along with their header files), in which case it's called a framework. Any needed frameworks can be stored inside the app bundle, making the app self-contained.
Qt comes with a utility called macdeployqt which automatically copies the Qt frameworks (plus plugins) into the bundle, then fixes up the app binary (using install_name_tool) so the dynamic linker knows to look in the app bundle. You'll probably need to do this manually for VTK and Boost, which could be more complicated if they aren't built automatically as frameworks. They are popular libraries though, there should be guides on the Internet about deploying Mac apps with VTK/Boost.
Also, I would not use MacPorts to install Qt for this purpose. The Qt binaries available from Nokia work just fine, and they are universal (built for both 32-bit and 64-bit, in case you need to target both).
By the way, I'm not particularly a Windows guy, but I don't think throwing DLLs into System32 is a good way to deploy libraries on Windows. For a Qt app I made, we put the Qt DLLs (and mingw/gcc DLLs) into the same folder as the .exe, and it worked fine.

How do I code applications on a Mac so that they use the native UI elements?

I'm starting to program. Already did some things with Java: a calculator, one document management system powered with a database and some other home projects. But I don't like the visual look. I love however how mi Mac's Apps look. And I want to create Apps for mac. Already buy one but when I open netbeans to program it looks like the Apps doesn't feel like mac.
Is there any specific java code to make the controls looks like how the other mac apps look? My dad mention something about Object C but I don't understand. Can someone please explain me.
AFAIK You'll never get the look and feel of Aqua (Mac's UI Kit) by using Java. Why? Because to make Java platform independent some things needs to get ripped off. And native controls are one of them.
I think you're taking about Objective C which is the native development language for building Mac Apps. I'll recommend you the book "Learn Objective-C on the Mac" is pretty useful.
P.S. I'll encourage you to start with iOS (iPhone and iPad apps). Why? Well, I think is easier to begin with. Things like fixed resolution and so on make your development efforts small while beginning with. (Just my 2 cents)
If you want to code in Objective-C, you'll first need to trek over to the App Store and download Xcode. This will install C/C++/Objective-C compilers on your Mac and then you can start getting your hands dirty.
Depending on what you are trying to accomplish, you can just google/read/learn and build your own frameworks from the ground up or look at something like Cocoa to get started as well.
http://developer.apple.com/technologies/mac/cocoa.html
Cocoa Frameworks
The Cocoa frameworks consist of libraries, APIs, and runtimes that form the development layer for all of Mac OS X. By developing with Cocoa, you will be creating applications the same way Mac OS X itself is created. Your application will automatically inherit the great behaviors and appearances of Mac OS X, with full access to the underlying power of the UNIX operating system. Using Cocoa with the Xcode IDE is simply the best way to create native Mac applications.
Good luck!
Apple has deprecated a lot of the Java support in OS X. It's possible to have a Java application integrated, but there are some annoying bits missing. See one of my questions demonstrating some issues with Java applications in the Dock. You would be better off using Objective-C instead, since Apple has lots of documentation and tutorials available.
You're thinking of Objective C. You can also do applications for Mac using C/C++ but as of late the "popular" language for Mac development is Objective-C. There are tons of tutorials and plenty of documentation to walk you through writing apps for both Mac and iOS.

Open source tools for testing purpose in Mac OS X

Currently i am using Mac OS X 10.6.4 and i want to know what are the tools(automated & manual) that i can install in my mac for testing purpose.Generally i need this for different kind of Website & Mobile platform testing.
There are plenty of open source tools for testing. Many are cross platform and will work on Mac.
Specifically, I recall watching the demo of Project Sikuli which looks very innovative and simple to use. It is work in progress, though.
Ottomate is one that I saw seemed pretty interesting. It might only be for Safari though unfortunately. Eggplant is another one as well. I'm trying to find a solution to this problem as well.

Resources