Mac Programming
Mac Programming
Bob Delaney’s Science Software
Some very nice Xojo classes and examples. Macintosh OS X, Windows, and some Linux.
Desktop Software Development on the Mac
XOJO REAL Studio rapid application development environment
Single source base, four desktop platforms, plus target the web & iOS with few restrictions.
A very productive software development environment. Most of the software I wrote that is available on my web site was written in Xojo. Port to these seven platforms: Macintosh OS X, Linux, Raspberry Pi, iPhone, iPad, the web, and Windows. Runs on Macintosh OS X, Linux, and Windows.
Shadow Lab’s Sdef Editor
Sdef Editor is a "Scripting Definition File Editor". If you are developer, and you want that your application be scriptable, you have to write a AppleScript dictionary, or terminology.
Macintosh OS X only.
Prefab’s UI Actions
Greatly enhance your control over applications running on your computer. Macintosh OS X only.
Prefab’s UI Browser
This is the ultimate assistant for Apple's AppleScript GUI Scripting and Accessibility technologies. To make full use of Apples System Events, this is a must. Macintosh OS X only.
Here are a few WEB resources for Xojo programmers.
AppleScripting Microsoft’s Office Software
Mactech put together this great online book covering all the details. Macintosh OS X only.
Roger Meier's Open-Source Projects
Some very nice Xojo projects including complex numbers and FFTs. Macintosh OS X, Linux, and Windows.
Smile
A great tool for creating AppleScript Dictionaries for for developers writing scriptable applications. XML document support. Strong graphics support and data visualization. Control RS232 serial communications and electrical I/O devices. Macintosh OS X only.
Drawing and Image Editing Software
ImageJ Image Editor
Free. Java based image editing from the NIH. Java for all machines.
Graphic Converter
Shareware. Converts between many graphic formats. Macintosh OS X only.
http://www.lemkesoft.com/xd/public/content/index._cGlkPTE5Mw_.html
Other Cool Mac stuff
Voyager
View the heavens on your computer from any place on Earth, in the Solar System, or beyond. Witness celestial events thousands of years in the past or future. Macintosh OS X and Windows.
BioVision Technologies
Image capture and analysis hardware and software. Macintosh OS X and Windows.
Cross Over Mac
Codeweaver’s version of Wine. Runs many Windows applications without Windows installed.
Mac Programming
Apple’s X-Code developer tools
Even though you may not be developing using X-Code, there are many useful tools here, like FileMerge (File diff and merging), USB Prober, and Bluetooth tools. Macintosh OS X only.
http://developer.apple.com/devcenter/mac/index.action
Additional stuff:
Visit my other pages:
Qt
Qt is a cross-platform application and UI framework for Embedded Linux, Mac OS X, Windows, Linux/X11, Windows Mobile, Windows CE, Symbian, Maemo and MeeGo.
wxWidgets
wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux, Mac OS X, and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+
hidapi for USB and Bluetooth HID Class Devices
HIDAPI is a multi-platform library which allows an application to interface with USB and Bluetooth HID-Class devices. Macintosh OS X, UNIX, Linux, and Windows.
Xojo online manual
NAG Fortran Compiler
The NAG Fortran Compiler is robust, highly tested, and valued for its checking capabilities and detailed error reporting. Support for quadruple precision REAL and COMPLEX numbers. You must email for price. Macintosh OS X, UNIX, Windows, and Linux.
BullseyeCoverage
BullseyeCoverage is the leading C++ code coverage analyzer in usability, reliability. Supports both Desktop and Embedded targets. Macintosh OS X, UNIX, Linux, and Windows.
VTC’s Video Tutorials for REAL Studio
Serial Port Software/Drivers/Information
Tools and information for writing software using serial ports. Macintosh OS X only.
Serial Manager Cocoa class:
http://www.w7ay.net/chen/Software/index.html
Information on termios() for detecting break characters, framing errors, and parity errors:
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man4/termios.4.html
Apple’s serial port sample code:
http://developer.apple.com/library/mac/#samplecode/SerialPortSample/Introduction/Intro.html
Serial Tools from W7AY
http://www.w7ay.net/site/Applications/Serial%20Tools/index.html
Serial port support for Java (see Java section below for more)
http://blog.iharder.net/2009/08/18/rxtx-java-6-and-librxtxserial-jnilib-on-intel-mac-os-x/
Interface to USB devices
Phidgets makes a number of USB interface devices. Macintosh OS X, UNIX, Linux, and Windows.
DSLR Remote Pro for Mac
Remotely control Canon DSLR cameras. Macintosh OS X only.
Micro-Manager for Microscope control
Free. Java based microscope control software based on ImageJ. Java for all machines.
http://valelab.ucsf.edu/~MM/MMwiki/index.php/Micro-Manager%20Project%20Overview
Intel Parallel Studio XE Compilers, Composer Edition
Intel C++ and Fortran compilers. Macintosh OS X, Linux, and Windows.
https://software.intel.com/en-us/parallel-studio-xe/choose-download
AppleScript related stuff
Shadow Lab’s Sdef Editor - required to make applications AppleScriptable
Sdef Editor is a "Scripting Definition File Editor". If you are developer, and you want that your application be scriptable, you have to write a AppleScript dictionary, or terminology.
Macintosh OS X only.
Many AppleScriptable applications
DesignWorks - Not AppleScriptable itself, but the report generator can create and launch AppleScripts.
Google Earth - I use this in my model rocketry range safety manager software.
Fetch for file transfer, AppleScript recordable too.
... and thousands more.
MacSpice 3f5
Spice maintained and augmented by Charles D. H. Williams of the University of Exeter’s School of Physics. DesignWorks has a design kit that supports MacSpice 3f5. AppleScript support. Macintosh OS X only.
Cocoa Packet Analyzer
A network protocol analyzer and packet sniffer. It supports the industry-standard PCAP packet capture format for reading, capturing and writing packet trace files. Macintosh OS X Only.
Monkeybread Software’s Xojo plug-ins
This massive collection of plugins includes Audio, USB HID, Macintosh specific Cocoa features, Dongle support, CUPS printing, CURL connectivity (ftp, ftps, http, https, gopher, telnet...), Java, image support, and more.
Chipmunk Basic
Chipmunk Basic is a interpreter for the Basic Programming Language. Chipmunk Basic presents a vintage traditional command-line console programming environment, and supports a very simple Basic Programming Language syntax. Macintosh OS X, Linux, and Windows.
Arbed - The Advanced RB Editor for Xojo
Multiple project searching, comparison. HTML listings. Localization support.
Mathomatic Portable command-line computer algebra system
A text-mode, floating point and symbolic math application and library suitable for desktops, handhelds, and embedded systems. Supports Macintosh OS X, iOS, Windows, and Linux.
Apple’s USB development support
Debug releases of the IOUSBFamily kernel extension are used to provide information about USB device and interface detection, driver and interface matching, driver loading and information generated as a result of normal and abnormal conditions. You will need to log in as a developer first.
http://developer.apple.com/hardwaredrivers/download/usbdebug.html
USB development technical Q&A
http://developer.apple.com/library/mac/#qa/qa1370/_index.html
Cypress has a nice application note for writing USB software on OS X:
RMagick
RMagick is an interface between the Ruby programming language and the ImageMagick® and GraphicsMagick image processing libraries.
Charcoal Design
If you have any comments or know of links I should add, please feel free to email me.
Tex-Edit - AppleScriptable text editor
A very flexible, scriptable text editor. The AppleScript support is second to none. Tex-Edit also is AppleScript recordable. There is a huge archive of AppleScripts for many solutions. Version 4.9.11 is now fully Mac OS X 10.7 compatible. Macintosh OS X only.
CodeLite
CodeLite is an open-source, cross platform IDE for the C/C++ programming languages. Macintosh OS X, Linux, and Windows.
IDA
IDA is a multi-processor disassembler and debugger. Macintosh OS X, Linux, and Windows.
vecLib
Apple’s 128 bit vector library. Macintosh OS X only.
HID API
HIDAPI is a multi-platform library which allows an application to interface with USB and Bluetooth HID-Class devices. Macintosh OSX, Linux, and Windows.
Eclipse Hex Editor Plugin
EHEP is an Eclipse plugin, which allows user to view or modify any file in hex mode. Plugin provides table with hex and character view of the file. Macintosh OS X, Linux, and Windows.
Homebrew
UNIX package manager for OS X. Can replace macports. Very easy to use. Macintosh OS X only.
Helix Versioning Engine by Perforce
Software version management software. Macintosh OS X, Linux, UNIX, and Windows.
Doxygen
A documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D. Macintosh OS X, Linux, and Windows.
Doxygen works with Dot, part of Graphvis, and produces graphic call/function dependency diagrams.
Audio Test 2.0
Signal Generator. Wave types: sine wave, triangle wave, sawtooth wave, square wave, pulse wave, anti-aliased sawtooth wave, anti-aliased square wave, anti-aliased pulse wave, uniform distribution white noise, pink noise, brown noise, and Gaussian distribution white noise. Frequency and amplitude sweeps: fixed, linear , and logarithmic. AppleScript support. Macintosh OS X only.
http://www.katsurashareware.com/pgs/audiotest.html
Purchase it on the App Store
GNU gfortran Compiler
gfortran is the new gnu fortran compiler, which attempts to follow the fortran95 standard. As such, it should be backward compatible with fortran77 and fortran90. It also promises to attempt following future fortran standards, such as fortran2003. gfortran replaces the gnu g77 compiler and is included with gnu compiler collection (gcc) 4.0 and higher. Macintosh OS X, Linux, and Windows.
Mac OS X installation:
http://www.webmo.net/support/fortran_osx.html
Additional information here:
http://www.w7ay.net/site/Applications/cocoaNEC/Contents/NEC4/gfortran.html
Multi-Platform Development Tools
XOJO (REAL Studio) rapid application development environment
Single source base, Four target platforms, plus target the web with few restrictions.
A very productive software development environment. Most of the software I wrote that is available on my web site was written in REAL Studio. Clearly the easiest way to port to these four platforms: Macintosh OS X, Windows, Linux, and the web. Runs on Macintosh OS X, Linux, Raspberry Pi, and Windows.
Qt
Qt is a cross-platform application and UI framework for Embedded Linux, Mac OS X, Windows, Linux/X11, Windows Mobile, Windows CE, Symbian, Maemo and MeeGo. See CodeLite for the IDE.
Python
Python 2 is pre-installed on Mac OS X. Python 2 becomes totally unsupported in January 2020. Python 2 & 3 are popular with instrument automation. See my page with examples of instrument automation. Macintosh OS X, UNIX, Linux, and Windows.
Installing Python 3 on your Mac:
https://docs.python-guide.org/starting/install3/osx/
Documentation:
New Package manager:
wxWidgets
wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux, Mac OS X, and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+
NAG Fortran Compiler
The NAG Fortran Compiler is robust, highly tested, and valued for its checking capabilities and detailed error reporting. Support for quadruple precision REAL and COMPLEX numbers. You must email for price. Macintosh OSX, UNIX, Windows, and Linux.
Embarcadero RAD Studio XE3
Includes Delphi®, C++Builder®, Embarcadero Prism™, and HTML5 Builder for a complete tool chain for applications on Windows 8, Mac, .NET, Web and mobile.
IDA
Multi platform disassembler and debugger. Macintosh OS X, Linux, and Windows.
IRTrans
IR remote control interface. Macintosh OS X, Linux, and Windows.
http://www.irtrans.com/en/multimedia/
Software:
iMathGeo
Features include typographical engine, formal calculation, graphics, automation through Applescript. Macintosh OS X only.
Rodin
Open tool platform for the cost effective rigorous development of dependable complex software systems services. This platform is based on the event-B formal method and provides natural support for refinement and mathematical proof. Macintosh OS X, Linux, and Windows.
Jack OS X
Jack (the Jack Audio Connection Kit) is a low-latency audio server. It can connect any number of different applications audio or MIDI to a single hardware audio device or other application's audio input.
Macintosh OS X, iOS, Linux, and Windows.
Enthought Python Distribution
Free and pay versions. Python based tools to perform rigorous data analysis and visualization for scientific applications. Macintosh OS X, Linux, and Windows.
Enthought Canopy
Free and pay versions. Same features as Enthought Python Distribution above and adds a new analysis environment for scientists, analysts and engineers. Macintosh OS X, Linux, and Windows.
QCapture Suite PLUS and QCam
QCapture Suite PLUS includes several features including stream acquisitions, time-lapse acquisitions, scale bars, and flat-fielding. Macintosh OS X and Windows.
http://www.qimaging.com/support/downloads/#qcapture-suite-plus-installer
Script Debugger
Supports every phase of script creation is supported. Application Exploration, Script Editing, Debugging and Deployment. Install and after 20 days it reverts to the Free version. Macintosh OS X only.
Property List Tools
The Property List Tools Scripting Addition allows AppleScript to load and store Mac OS X Property Lists. It also allows you to export any AppleScript data structure to a property list. Macintosh OS X only.
List & Record Tools
The List & Record Tools Scripting Addition allows AppleScript to perform set logic on AppleScript lists and to manipulate the contents of AppleScript records. With List & Record Tools you can dynamically access record properties not known at compile-time. Macintosh OS X only.
XML Tools
The XML Tools AppleScript Scripting Addition allows AppleScript to parse and generate XML data. XML Tools’s parsing can generate a complete DOM-like structure or it can operate in a SAX-like event handling mode. Macintosh OS X only.
Mac Programming
Phidgets
Many USB sensor, input, and output boards. Boards include LCD Displays, Motors, Relays, and Sensors including Distance, Encoders, FSR, Gas Pressure, Light/Sound, Load Cells, Motion, pH/ORP, Potentiometers, Proximity, Temperature/Humidity, and Touch. AppleScript and many other language/platforms supported.
Quaqua
Quaqua is a user interface library for Java applications which wish to closely adhere to the Apple Human Interface Guidelines for Mac OS X.
Macintosh OS X.
Ipe extensible drawing editor
Ipe is a drawing editor for creating figures in PDF or (encapsulated) Postscript format. It supports making figures for inclusion into LaTeX-documents as well as making multi-page PDF presentations. Features include Entry of text as LaTeX source code. This makes it easy to enter mathematical expressions, and to reuse the LaTeX-macros of the main document. Users can provide ipelets (Ipe plug-ins) to add functionality to Ipe. This way, Ipe can be extended for each task at hand.. Macintosh OS X, UNIX, Linux, and Windows.
yED
yEd is a diagram editor that can be used to quickly and effectively generate high-quality drawings of diagrams. Macintosh OS X, Linux, and Windows.
Cornerstone
Software version management software for Subversion. Macintosh OS X only.
Hopper
Hopper is a reverse engineering tool for OS X, that lets you disassemble, decompile and debug your 32/64bits Intel Mac, Windows and iOS executables. Macintosh OS X only.
mac dylib bundler
dylibbundler is a small command-line programs that aims to make bundling .dylibs as easy as possible. It automatically determines which dylibs are needed by your program, copies these libraries inside the app bundle, and fixes both them and the executable to be ready for distribution. Macintosh OS X only.
Libmpsse
Libmpsse is a library for interfacing with SPI/I2C devices via FTDI's FT-2232 family of USB chips with the MPSSE. I2C master mode and SPI modes Macintosh OS X, Linux, Windows and WinCE.
Macintosh .dmg file can be found in the External -> Mac folder.
https://www.ftdichip.com/Support/SoftwareExamples/MPSSE/LibMPSSE-SPI.htm
System Events and Mavericks
Instructions for enabling GUI scripting under Mavericks . Macintosh OS X only.
http://macosxautomation.com/mavericks/guiscripting/index.html
Spice for Xcode
Spice is a Source Component Manager for Xcode enabling easy re-use of code between projects. Macintosh OS X only.
SmartSVN
SmartSVN supports Subversion 1.6, 1.7 and the recent 1.8 release, accounting for changes in the working copy format, client-server protocol as well as virtually all Subversion commands, including many extended options. Macintosh OS X, Linux, and Windows.
Chapel
Chapel is an emerging parallel programming language whose design and development are being led by Cray Inc. in collaboration with academia, computing labs, and industry. Chapel's goal is to improve the productivity of parallel programmers, from the largest-scale supercomputers to commodity clusters and multicore desktops and laptops. Macintosh OS X, UNIX, Linux, and Windows.
QB64
Compiles old Quick Basic code. Macintosh OS X, Linux, Android, and Windows.
Download:
https://github.com/QB64Team/qb64/releases
Compatibility information:
http://www.qb64.net/wiki/index-php/Keywords_currently_not_supported_by_QB64/
Mono
Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Xamarin, Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. Macintosh OS X, Linux, and Windows.
State Machine Compiler (SMC)
SMC takes a state machine stored in a .sm file and generates a State pattern in any one of 14 programming languages.. Macintosh OS X, Linux, and Windows.
Lua Script and Python Script plugins for Xojo
A Lua and a Python script interpreter that you can plug into your application to use to give your users ability to script your applications.
Python
Python is available on many platforms and is part of the standard Mac OS X install. Macintosh OS X, UNIX, Linux, and Windows.
Documentation:
Spyderlib is an environment for Python ith advanced editing, interactive testing, debugging and introspection features.
https://github.com/spyder-ide/spyder
See my page here with examples of instrument automation.
Smile companion osax
XML DOM, XPATH, XSLT, p-lists.
Text search-and-replace commands and regular expressions, scientific computing, folder synchronization.
Linear algebra, FFT & convolution, Image files, 3D array handling, and Numerical data files.
Read NASA's FITS data files.
Macintosh OS X only.
http://www.satimage.fr/software/en/downloads/downloads_companion_osaxen.html
Regular Expressions
CU's Regular Expressions package provides applications with the ability to apply regular expression matching to Unicode string data. Macintosh OS X, Linux, Android, and Windows.
MacOSLib
A set of classes to use OS X specific functions in Xojo applications.
My page about making Applescriptable XOJO applications
My page about making XOJO applications Applescriptable
jUART
JavaScript serial port interface. Macintosh OS X, Linux, and Windows.
QLStephen
A QuickLook plugin that lets you view plain text files without a file extension. Install with Homebrew:
brew cask install qlstephen
Macintosh OS X only.
BetterZip
A QuickLook plugin that lets you view archives. Macintosh OS X only.
qlcolorcode
A QuickLook plugin that supports syntax highlighting in quicklook. Macintosh OS X only.
Fogbugz & TortoiseHg
A bug tracking and version control set of applications that work well together. Macintosh OS X, Linux, and Windows.
AppleScript Wikibook
Tutorial, reference and examples all under one umbrella.
Java
Java on Mac tips
Tips for running Java apps on a Mac.
http://www.oracle.com/technetwork/articles/java/javatomac-140486.html
librxtxSerial.jnilib
JavaScript serial port interface. Macintosh OS X, Linux, and Windows.
http://blog.iharder.net/2009/08/18/rxtx-java-6-and-librxtxserial-jnilib-on-intel-mac-os-x/
Runway UML Design
An affordable UML graphic design application. Macintosh OS X only.
http://celestialteapot.com/runway/
UML home page:
Xversion
Subversion Management with informative copy browser. Macintosh OS X only.
Microsoft’s ChakraCore
Chakra JavaScript engine that powers Microsoft Edge and Universal Windows Platform. ChakraCore interpreter and runtime on x64 Linux and OS X 10.9+. Macintosh OS X, Linux, and Windows.
https://blogs.windows.com/msedgedev/2016/07/27/chakracore-on-linux-osx/
SwiftForth
Access to system functions and dynamic libraries. Includes SWOOP™, a object-oriented Forth programming system. Linking to the programmer’s editor of your choice. Debugging features include built-in cross reference, source browser, and disassembler/decompiler. Macintosh OS X, Linux, and Windows.
CLion
Editor, code analysis, and debugger. Macintosh OS X, Linux, and Windows.
Devslopes Programming Learning Environment
Project based learning. Macintosh OS X and iOS.
Free Pascal
Open source compiler for Pascal and Object Pascal. Macintosh OS X, iOS, Linux, and Windows.
Visual Attributed
Create NSAttributedStrings for your iOS and Mac applications by writing text and applying effects to your text like you would in any word processing application. Macintosh OS X only.
Processing 3
Processing is a flexible software sketchbook and a language for learning how to code. Macintosh OS X, Linux, and Windows.
Rider
Rider supports .NET Framework, the new cross-platform .NET Core, and Mono based projects. Macintosh OS X, Linux, and Windows.
Fiji Image Editor
A version of ImageJ with many enhancements. Java based image editing from the NIH. Java for all machines.
Download:
Visual Studio
Code Editor. Macintosh OS X, Linux, and Windows.
https://docs.microsoft.com/en-us/visualstudio/mac/?view=vsmac-2019
How to script QR and data matrix code generation in OS X
You can script the generation of QR and Data Matrix codes using the command line. Macintosh OS X only.
https://www.macissues.com/2015/12/13/how-to-script-qr-and-data-matrix-code-generation-in-os-x/
TechOnTheNet.com Tutorials
QuIP (NASA) Image Editor
Free. QuIP provides an interactive environment for computing and presenting images and image sequences, manipulating and storing arbitrary data, and general scientific computing and plotting. Macintosh OS X and Linux.
LDC - The LLVM-based D compiler
D language compiler. Runs on Macintosh OS X, Linux, WEB, and Windows.
Download: https://github.com/ldc-developers/ldc/releases
Documentation:
xDev Magazine
Available as PDF download or print. Covers XOJO explicitly.
Cloudockit
Cloud Based. Generates fully editable 2D & 3D Visio or Draw.io diagrams. Creates Word & PDF documents of your Cloud or on-premises environments. Macintosh OS X, Linux, and Windows.
Commentator
Keep comments neatly formatted. Avoiding typos in comments. Running SwiftLint's autocorrect.. Macintosh OS X only.
Omni Automation
The next step to automating Omni Group applications with AppleScript, Omni Automation. Macintosh OS X only.
PMD
An extensible cross-language static code analyzer. Macintosh OS X, Linux, and Windows.
Installing on a Mac:
Chilkat
Cross-platform API providing 90+ classes for many Internet protocols, formats, and algorithms.
Pin - A Dynamic Binary Instrumentation Tool
Pin is a dynamic binary instrumentation framework for the IA-32, x86-64 and MIC instruction-set architectures that enables the creation of dynamic program analysis tools. Macintosh OS X, Linux, and Windows.
https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool
Download:
https://software.intel.com/en-us/articles/pin-a-binary-instrumentation-tool-downloads
fake_rpi
If you are doing Raspberry Pi development, but want to work on your Mac, you may have an option. Macintosh OS X, Linux, and Windows.
Sequence Diagram
Create sequence diagrams from a plain text description. Macintosh OS X only.
ExeWrapper
Microsoft Authenticode Signing from Mac. Macintosh OS X only.
PureBasic
Multi platform Basic compiler for 32 bit and 64 bit applications. Macintosh OS X, Linux, Raspberry Pi, and Windows.