Return to site

Programming Applications For Mac

broken image


Verdict: Adobe Photoshop Elements is an Adobe Photoshop portfolio program that was designed for photo editing and holds its position among the best apps for mac photo editing tightly. If you are not going to seriously turn your hobby for photographing into a professional activity, then there is no point in studying all the options Photoshop offers. From Code to Customer. Join the Apple Developer Program to reach customers around the world on the App Store for iPhone, iPad, Mac, Apple Watch, Apple TV, and iMessage, and on the Safari Extensions Gallery.You'll also get access to beta software, advanced app capabilities, extensive beta testing tools, and app analytics. The Best Free Programming Software app downloads for Mac: JavaScript OSA PlistEdit Pro SvnX AppHack SCPlugin Adobe AIR NetBeans MySQL Query Browser CO.

A guide to setting up an Apple Mac for DevOps and software development. This is current for macOS 10.14 (Mojave).

Log in once, run Software Update, and ensure that the operating system is at the latestpoint release. After all of the updates have been applied, restart the computer.

Log in again and create an Admin user account for your use. If other people will beusing the machine, create Standard accounts for them. Log out of the initial account,and log in to the Admin account that you have just created.

Always log in with this new Admin account. The benefit of leaving the initial accountuntouched is that it ensures that you always have a working account to login with.

Admin accounts have sudo privileges: All Admin accounts on a Mac may use sudo to runcommand-line utilities with administrative (root) privileges.

You should also find an external hard drive. Begin using Time Machine as soon aspossible, as it provides the most easy method for backing up your system.

Configuring The Trackpad

To make the trackpad behave correctly, ensure that these settings are enabled:

  • System Preferences > Trackpad > Tap to click
  • System Preferences > Accessibility > Mouse & Trackpad > Trackpad Options… >Enable dragging

Creating a Private Applications Folder

Once you have logged into your account, create a folder called Applications withinyour home folder. Whenever you are prompted to drag a new applications into the globalApplications folder, put it in this private Applications folder instead. Someapplications have to be installed to global folders, but in most cases you can keep thesystem directories clean by storing third-party products in your private Applicationsfolder.

Securing the Safari Browser

Whether or not you regularly use Safari, you should open it once, and adjust thesettings in case that you use it later.

First, choose Safari > Preferences > General and deselect the option Open 'safe' files after downloading.

Second, go to Safari > Preferences > Search. Decide which search engine that you want to use. Ensure that Safari Suggestions is not enabled.

Then, check the plug-in settings. Go to Safari > Preferences > Security > Plug-in Settings… and review the plug-ins and settings.

Apple provide quite secure operating systems, but unfortunately convenience has won outover security in a few places. These can easily be corrected by changing a few settings.If you are using a laptop then you should probably make all of these changes as soon aspossible.

Basic Settings

Select System Preferences > Security & Privacy, and set the following:

  • Under General, set require a password after sleep or screen saver begins toimmediately
  • Click Advanced… and select Require an administrator password to accesssystem-wide preferences
  • Under Firewall, click Turn Firewall On.
  • Under Privacy, select Analytics and ensure that the options are not enabled.

Disable Spotlight

By default, Spotlight sends queries to Apple. Unless you want this feature, turn it off.

Select System Preferences > Spotlight > Search Results, and ensure that Spotlight Suggestions is not enabled.

Enable File Vault NOW

Current versions of macOS include File Vault 2, a full-disk encryption system that haslittle in common with the much more limited File Vault 1. You should enable File VaultNOW, because it is the only protection against anyone with physical access to yourcomputer. All other security measures will be completely bypassed if someone withphysical access simply restarts the computer with a bootable pen drive.

File Vault really is secure, which means that you can permanently lose access to yourdata if you lose the passwords and the recovery key.

Set a Firmware Password

Set a password to stop access to theRecovery mode. Otherwise, any maliciousindividual can change the firmware settings to boot from a disc or device of theirchoosing. If you did not enable File Vault, then the attacker will have complete accessto all of the files on the system.

Apple Knowledge Base article HT204455provides full details.

Setting Up Time Machine Backups

Time Machine is simple to set up. Just take a suitably large external hard drive, plug itin to your Mac, and agree when prompted. The drive setup process will reformat the harddrive. The only settings that may need to change are the exclusions.

Choose System Preferences > Time Machine, and click Options. Add to the exclusionslist any folders that contain ISO disk images, virtual machines, or database files (suchas Entourage). If the external hard drive is short of space, exclude the Systemfolder.

The first step is to install a compiler. The easiest way to install one is with theXcode Command Line Tools package.

Once you have the compiler that is provided by Xcode, you can useHomebrew to install everything else that you need.

Getting Xcode

Apple now provide the Xcode suite as a free download from the App Store. To installXcode Command Line Tools, install Xcode from the App Store, then open a Terminal windowand enter the following command:

Setting Up Homebrew

Homebrew provides a package management system for macOS, enabling youto quickly install and update the tools and libraries that you need. Follow theinstructions on the site.

You should also amend your PATH, so that the versions of tools that are installed withHomebrew take precedence over others. To do this, edit the file .bashrc inyour home directory to include this line:

You need to close all terminal windows for this change to take effect.

To check that Homebrew is installed correctly, run this command in a terminal window:

To update the index of available packages, run this command in a terminal window:

Once you have set up Homebrew, use the brew install command to add command-line software to your Mac, and brew cask install to add graphical software. For example, this command installs the Slack app:

Installing the Git Version Control System

The Xcode Command Line Tools include a copy of Git, which isnow the standard for Open Source development, but this will be out of date.

To install a newer version of Git than Apple provide, use Homebrew. Enter this command in a terminal window:

If you do not use Homebrew, go to the Web site and follow thelink for Other Download Options to obtain a macOS disk image. Open your downloadedcopy of the disk image and run the enclosed installer in the usual way, then dismountthe disk image.

Always set your details before you create or clone repositories on a new system. Thisrequires two commands in a terminal window:

The global option means that the setting will apply to every repository that you workwith in the current user account.

To enable colors in the output, which can be very helpful, enter this command:

Text Editors

Installations of macOS include older command-line versions of bothEmacs and vim, as well asTextEdit, a desktop text editor. TextEdit is designed for light-weight word processing,and has no support for programming. Add the code editors or IDEs that you would prefer to use.

If you do not have a preferred editor, consider using a version of Visual Studio Code. Read the next section for more details.

To work with a modern Vim editor, install Neovim.

Basic Programming On Mac

Visual Studio Code

Visual Studio Code is a powerful desktop editor for programming, with built-in support for version control and debugging. The large range of extensions for Visual Studio Code enable it to work with every popular programming language and framework. It is available free of charge.

The Microsoft releases of Visual Studio Code are proprietary software with telemetry enabled by default. To avoid these issues, use the packages that are provided by the vscodium project instead.

Once you have installed Visual Studio Code or VSCodium, read this article for more information about using the editor.

Neovim

If you would like a modern Vim editor with a good default configuration, set up Neovim.

Setting The EDITOR Environment Variable

Whichever text editor you choose, remember to set the EDITOR environment variable inyour ~/.bashrc file, so that this editor is automatically invoked by command-linetools like your version control system. For example, put this line in your profile tomake Neovim (nvim) the favored text editor:

Setting Up A Directory Structure for Projects

To keep your projects tidy, I would recommend following theGo developer conventions. These guidelines may seemslightly fussy, but they pay off when you have many projects, some of which are ondifferent version control hosts.

First create a top-level directory with a short, generic name like code. By default Gouses a directory called go, but you can change that when you set up a Go installation.

In this directory, create an src sub-directory. For each repository host, create asubdirectory in src that matches your username. Check out projects in the directory.The final directory structure looks like this:

Creating SSH Keys

You will frequently use SSH to access Git repositories or remote UNIX systems. macOSincludes the standard OpenSSH suite of tools.

Kids

OpenSSH stores your SSH keys in a .ssh directory. To create this directory, run these commands in a terminal window:

To create an SSH key, run the ssh-keygen command in a terminal window. For example:

Mac excel to pdf. Use 4096-bit RSA keys for all systems. The older DSA standard only supports 1024-bitkeys, which are now too small to be considered secure.

JavaScript Development: Node.js

Homebrew provides separate packages for each version of Node.js.To ensure that you are using the version of Node.js that you expect, specify the versionwhen you install it. For example, enter this command in a Terminal window to install theNode.js 12, the current LTS release:

Add the bin/ directory for this Node.js installation to your PATH:

If you need yarn, enter this command in a Terminal window toinstall it:

Go Development

Use Homebrew to install Go:

This provides the standard command-line tools for Go.

The current version of Go includes support for dependency management with modules. Use modules for new projects. Some existing projects still use dep, or an older tool.

Setting a GOPATH

Current versions of Go do not require a GOPATH environment variable, but you should set it to ensure that third-party tools and Terminal auto-completion work correctly.

Set a GOPATH environment variable in your ~/.bashrc file:

Then, add this to your PATH:

Close the Terminal and open it again for the changes to take effect.

Java Development: AdoptOpenJDK

Which Version of Java?

Many vendors provide a JDK. To avoid potential licensing and support issues, use the JDK that is provided by the AdoptOpenJDK project. The versions of Java on the OpenJDK Website are for testers, and the Oracle JDK is a proprietary product that requires license fees.

Use the LTS version of the OpenJDK, unless you need features that are in the latest releases.

Once you have installed a JDK, get the Apache Maven build tool. This is provided by the Maven project itself, and is not part of the OpenJDK.

Use jEnv if you need to run multiple JDKs, such as different versions of the same JDK.

Setting up Java with Homebrew

Run these commands in a terminal window:

This installs version 11 of the OpenJDK, from the AdoptOpenJDK project.

Run this command in a terminal window to install Maven:

Setting up jEnv

Run this command in a terminal window to install jEnv: Mac studio fix powder plus foundation shade for indian skin.

Next, add this to your PATH:

Add this to your ~/.bashrc file:

Open a new terminal window, and run this command:

Java Programming On Mac

This enables jEnv to manage the JAVA_HOME environment variable.

To avoid inconsistent behaviour, close all the terminal windows that you currently have open. The jEnv utility will work correctly in new terminal windows.

Lastly, run this command to register your current JDK with jEnv:

To see a list of the available commands, type jenv in a terminal window:

Manual Set up of AdoptOpenJDK

To manually install a copy of the JDK:

  1. Download the version of the JDK that you need from AdoptOpenJDK
  2. Unzip the download
  3. Copy the JDK directory to /usr/local/lib
  4. Edit your ~/.bashrc file to set environment variables. For example, to use jdk-11.0.3+7 as the Java version:

To manually install a copy of Apache Maven:

  1. Download the latest version of Maven
  2. Unzip the download
  3. Copy the Maven directory to /usr/local/lib/
  4. Add /usr/local/lib/MAVEN-DIRECTORY to your PATH environment variable

Replace MAVEN-DIRECTORY with the name of the directory that Maven uses, such as apache-maven-3.6.0.

Maven is written in Java, which means that the project provides one package, which works on any operating system that has a supported version of Java.

Python Development: pipenv

Unfortunately, macOS includes a copy of Python 2, so you will need to install Python 3 yourself.

To maintain current and clean Python environments, you should also use pipenv. This builds on two features of Python: the virtual environments and the pip utility.

Enter this command to install Python 3 and pipenv using Homebrew:

Use pipenv to manage your Python projects. The pipenv tool itself will automatically work with the copy of Python 3 from Homebrew.

To use the Python 3 interpreter outside of projects that are managed by pipenv, specify python3 on the command-line and inyour scripts, rather than python:

If you need to run the pip utility, rather than setting up a development environment with pipenv, always use the command pip3:

The Python Guide tutorialshows you how to work with pipenv.

Rust Development: rustup

The official rustup utility enables you to install the tools for building softwarewith the Rust programming language. Click on the Install button on the front page of theRust Website, and follow the instructions.

By default, the installer adds the correct directory to your path. If this does notwork, add this to your PATH manually:

This process installs all of the tools into your home directory, and does not add anyfiles into system directories.

Ruby Development: RVM

All macOS systems include a copy of Ruby, but it is outdated. To maintain current andclean Ruby environments, use the RVM system.

RVM relies on Git, so you must have a working installation of Git before you can set upRVM.

By default, RVM downloads copies of Ruby that have been compiled for your operatingsystem. If there is no compiled version, RVM then falls back to downloading the sourcecode and then compiling it on your computer. Enter this command to ensure that therequirements for compiling Ruby are on your system, using Homebrew:

Finally, you can speed up installation of gem packages by disabling the generation oflocal documentation. To do this, create a file in your home directory with the name.gemrc and put this line in it:

Minikube sets up and manages Kubernetes on a single system, so that you can develop and test without needing a set of servers.

To install Minikube with Homebrew, run these commands in a terminal window:

By default, Minikube uses a virtual machine manager. If you do not need VirtualBox, install hyperkit, which provides a minimal virtual machine manager. Minecraft pc and mac.

To install Helm with Homebrew, run this command in a terminal window:

To install Skaffold with Homebrew, run this command in a terminal window:

This article explains Minikube in more detail.

Consider using containers to run the databases that you need. If you prefer to install servicesdirectly on to your workstation, Homebrew provides packages for PostgreSQL, MariaDB and MySQL.

Installing PostgreSQL

To install PostgreSQL using Homebrew, enter this command in a terminal window:

This command installs the server, the command-line tools, and the client libraries thatare needed to compile adapters for programming languages.

Homebrew also provides some commands for managing your PostgreSQL installation. Forexample, to start the server, follow the instructions that are displayed after theinstallation process is completed. If you upgrade your copy of PostgreSQL, you shoulduse the postgresql-upgrade-database command that Homebrew gives you.

Installing MariaDB or MySQL

To install MariaDB using Homebrew, enter this command in a terminal window:

To install MySQL using Homebrew, enter this command in a terminal window:

These commands install the server, the command-line tools, and the client libraries thatare needed to compile adapters for programming languages. To start the server, followthe instructions that are displayed after the installation process is completed.

For compatibility, MariaDB uses the same names for command-line tools as MySQL.

Remember to set a password for the root accounts. First, login with the mysqlcommand-line utility:

The -q Option Disables Command History: By default, the command-line client storesthe full text of every command in a history file. If you know that you are going torun statements that include passwords or other sensitive data, use the -q option.

Run these statements to change the password for root access:

You now need a password to login to the installation as root. To login with root again,use this command:

Enter the password when prompted.

You should also remove the anonymous accounts and test database that MySQL automaticallyincludes:

Mac Vs Windows For Programming

If you intend to duplicate a production environment for testing, create a configurationfile on your Mac. Production installations of MySQL should be configured withappropriate SQL modes to enable data integrity safeguards. By default, MySQL permitsvarious types of invalid data to be entered.

Database Management Tools

  • Azure Data Studio for Microsoft SQL Server
  • pgAdmin for PostgreSQL
  • LibreOffice suite: brew cask install libreoffice
  • VirtualBox virtual machine management: brew cask install virtualbox
  • Docker container management: brew cask install docker

Apple offer overviews and task-orientated help on theirsupport Web site for new macOS users.

Every new user should probably readHow to switch to the Mac, by Rui Carmo. Most popular slot machines.

The macOS Privacy and Security Guide by Dr Doh provides extensive information about those topics.

< Computer Programming

About the platform[edit]

macOS is the primary operating system for the Macintosh computer. It was originally a system designed privately by Apple Inc, however with Mac OS X, it has been based on Unix. Specifically, a modified FreeBSD operating system called 'Darwin'.

There are many different kinds of software that can be developed for Mac OS X. People generally think of applications, but we'll briefly cover some of the other kinds.

Types of Software for Mac OS X[edit]

Applications[edit]

Applications are what people generally think of when they think about software for Mac OS X. Cocoa applications include: Finder, Mail, Address Book, Safari, Microsoft Word, and Microsoft Excel. Anybody can develop applications using Apple's free development tools which includes XCode. Mac OS X applications are developed using Objective-C though there are other possible programming languages that could be used.

The most popular languages for use on the macOS platform is Objective-C which could be thought of as Mac OS X's 'native language' since the Mac OS X libraries, or 'frameworks', all have an Objective-C interface. Objective-C includes everything that plain C can do, and adds object-oriented programming. See: Objective-C.

C++ can be used in developing for the Mac, but generally, it is used in addition to Objective-C rather than being in place of Objective-C. Using both Objective-C and C++ is called 'Objective-C++' and is considered to be optional when developing software for Mac OS X: C++

See Programming:Objective-C for a lesson on the basics of Objective-C [1] may also be of assistance.

Some preliminary thoughts:

Basic Programming Language For Mac

Objective-C is the language most commonly used in Mac OS Programming. Objective-C entered Mac OS X and has ancestry in NeXT. Cocoa. Before you learn Mac programming you must know the basics of C since it is the basis for Objective-C.

There used to be three separate APIs for developing a Mac application with a GUI:

1. Classic (Mac OS 9 and lower). Developing for the Classic API is no longer done. When Mac OS X first came out, users and developers had a huge investment in software written for Mac Classic OS and Mac OS X used to have an emulation mode so that users could run their old software. Apple has long since stopped support of the Classic API and Classic emulation in Mac OS X.

2. Carbon (Mac OS 8.5 up to and including Mac OS X 10.6 Snow Leopard). Carbon was an API for developers to update their applications that used the Classic API to be run without the Classic emulator. Carbon was a great way that Apple provided developers to upgrade their software to run on Mac OS X without having to totally rewrite their software, but Carbon, like Classic, is no longer supported by Apple.

3. Cocoa (All versions of Mac OS X). Cocoa is the most native API that can be used to develop applications for Mac OS X that are truly 'Mac-like'. Generally, Objective-C will be used along with Cocoa, though there are other options such as Cocoa-AppleScript and Cocoa-Python, but Cocoa-Objective-C is really the 'mainstream' way to develop Cocoa applications.

Resource Forks Files in Mac OS X have a feature that is unique to Mac OS and that is that each file on disk can have two 'forks'. This feature used to be used for Classic and Carbon applications to separate code from resources (such as menus, windows, etc.), and the Mac OS X file system still supports two forks, but you should only use the 'data fork'. The resource fork is non-standard and can be lost when transferring Mac files to other file systems.

AppleScripts[edit]

Another 'native language' for developing Mac OS X applications is AppleScript. AppleScript is a language that Apple invented to automate repetitive tasks. The AppleScript application is located on your Mac at /Applications/Utilities/AppleScript Editor. AppleScript can be used to record AppleEvents, the events that applications send to themselves or to other applications. Why don't you try it out. Open AppleScript Editor, press the record button, do some things with your other applications and watch the script write itself. AppleScript can be used alone or it can be used along with XCode to develop Cocoa Applications using mostly AppleScript instead of Objective-C. This option is mostly for experienced AppleScript programmers who don't know Objective-C.

Automator Workflows[edit]

Apple also provides an application called 'Automator' that can be used to easily automate repetitive tasks. It is located at /Applications/Automator.app

Shell Scripts[edit]

Mac OS X has an application called Terminal that provides a command-line interface to Mac OS X. It is possible to develop scripts for the command line. Terminal.app is located at /Applications/Utilities/Terminal.app To create a shell script, you need a text editor. There is a text editor that comes with Mac OS X called 'TextEdit.app'. It is located in /Applications/TextEdit.app. But actually, what is better than TextEdit is a program such as TextWrangler.app which is available for free from the following link: http://www.barebones.com/products/textwrangler/

The shell that Terminal.app uses by default is called 'bash'. Here is a simple tutorial on developing bash scriptshttp://www.maclife.com/article/columns/terminal_101_automate_terminal_bash_scripts

We won't go any more deeply into shell scripts here in this wikibook, but it's just good to know what they are. You can always google for more information now that you know what to google for.

Command Line Tools[edit]

When you open Terminal and you learn how to type in commands. The commands are usually command-line tools or scripts. Above, we just talked about developing your own scripts with a text editor. It's also possible to develop your own command-line tools, using XCode. This is an advanced thing to do. Usually, power-users will write a shell-script (or some other kind of thing such as an AppleScript or an Automator Workflow) but it's good to know what a command-line tool is. Command-line tools have a textual user-interface rather than a graphical user interface (GUI).

Java[edit]

Java used to be treated by Apple as a 'first class language' to develop for Mac OS, however in recent years, Apple has less support for Java. Now with Mac OS X 10.7 'Lion' and 10.8 'Mountain Lion', Java doesn't even come pre-installed in Mac OS X. Java is still available, but users have to download Java from Oracle's website and install it themselves. Apple's Mac App Store doesn't even allow Java apps to be sold at their store calling Java 'deprecated'.

However, there still are Mac developers who use Java because it has the advantage of being cross-platform compatible. For example, the same source-code can be used to generate software that runs on Mac, Windows, and Linux.

Apple has said that Java reduces the Mac to the 'least common denominator'. That's why they support it less.

Python[edit]

Python is somewhat supported by Apple. In fact, Python is shipped with Mac OS X and is part of the System Folder. There are third-party libraries that allow developers to develop applications using Python and Cocoa together, but these are not very well maintained, and Python on the Mac is most suitable for developing command-line utilities, or cross-platform scripts that aren't really very Mac-like.

Ruby[edit]

Similar to Python.

Websites[edit]

Most Mac users use Safari for their web browser. Safari uses the standards set by w3c.org You can develop websites that work with Safari by following the standards of the w3c.org. Remember to validate your HMTL, CSS, and JavaScript.

HTML Validator:http://validator.w3.org/

CSS Validator:http://jigsaw.w3.org/css-validator/

JavaScript Lint:http://www.javascriptlint.com/online_lint.php

If you're developing websites using your Mac and using Safari, remember to test your webpages on other platforms and with other web browsers.

Mac OS X Specific Languages[edit]

Objective-C is really the 'native' language for Mac OS X development

You could call AppleScript a 'native' language too, but it isn't really used to make commercial applications. It was designed to be used by real power-users to automate their tasks. Although it is possible to use AppleScript to build Cocoa applications in XCode, this would be more for users who already know AppleScript and don't want to learn Objective-C.

Mac

OpenSSH stores your SSH keys in a .ssh directory. To create this directory, run these commands in a terminal window:

To create an SSH key, run the ssh-keygen command in a terminal window. For example:

Mac excel to pdf. Use 4096-bit RSA keys for all systems. The older DSA standard only supports 1024-bitkeys, which are now too small to be considered secure.

JavaScript Development: Node.js

Homebrew provides separate packages for each version of Node.js.To ensure that you are using the version of Node.js that you expect, specify the versionwhen you install it. For example, enter this command in a Terminal window to install theNode.js 12, the current LTS release:

Add the bin/ directory for this Node.js installation to your PATH:

If you need yarn, enter this command in a Terminal window toinstall it:

Go Development

Use Homebrew to install Go:

This provides the standard command-line tools for Go.

The current version of Go includes support for dependency management with modules. Use modules for new projects. Some existing projects still use dep, or an older tool.

Setting a GOPATH

Current versions of Go do not require a GOPATH environment variable, but you should set it to ensure that third-party tools and Terminal auto-completion work correctly.

Set a GOPATH environment variable in your ~/.bashrc file:

Then, add this to your PATH:

Close the Terminal and open it again for the changes to take effect.

Java Development: AdoptOpenJDK

Which Version of Java?

Many vendors provide a JDK. To avoid potential licensing and support issues, use the JDK that is provided by the AdoptOpenJDK project. The versions of Java on the OpenJDK Website are for testers, and the Oracle JDK is a proprietary product that requires license fees.

Use the LTS version of the OpenJDK, unless you need features that are in the latest releases.

Once you have installed a JDK, get the Apache Maven build tool. This is provided by the Maven project itself, and is not part of the OpenJDK.

Use jEnv if you need to run multiple JDKs, such as different versions of the same JDK.

Setting up Java with Homebrew

Run these commands in a terminal window:

This installs version 11 of the OpenJDK, from the AdoptOpenJDK project.

Run this command in a terminal window to install Maven:

Setting up jEnv

Run this command in a terminal window to install jEnv: Mac studio fix powder plus foundation shade for indian skin.

Next, add this to your PATH:

Add this to your ~/.bashrc file:

Open a new terminal window, and run this command:

Java Programming On Mac

This enables jEnv to manage the JAVA_HOME environment variable.

To avoid inconsistent behaviour, close all the terminal windows that you currently have open. The jEnv utility will work correctly in new terminal windows.

Lastly, run this command to register your current JDK with jEnv:

To see a list of the available commands, type jenv in a terminal window:

Manual Set up of AdoptOpenJDK

To manually install a copy of the JDK:

  1. Download the version of the JDK that you need from AdoptOpenJDK
  2. Unzip the download
  3. Copy the JDK directory to /usr/local/lib
  4. Edit your ~/.bashrc file to set environment variables. For example, to use jdk-11.0.3+7 as the Java version:

To manually install a copy of Apache Maven:

  1. Download the latest version of Maven
  2. Unzip the download
  3. Copy the Maven directory to /usr/local/lib/
  4. Add /usr/local/lib/MAVEN-DIRECTORY to your PATH environment variable

Replace MAVEN-DIRECTORY with the name of the directory that Maven uses, such as apache-maven-3.6.0.

Maven is written in Java, which means that the project provides one package, which works on any operating system that has a supported version of Java.

Python Development: pipenv

Unfortunately, macOS includes a copy of Python 2, so you will need to install Python 3 yourself.

To maintain current and clean Python environments, you should also use pipenv. This builds on two features of Python: the virtual environments and the pip utility.

Enter this command to install Python 3 and pipenv using Homebrew:

Use pipenv to manage your Python projects. The pipenv tool itself will automatically work with the copy of Python 3 from Homebrew.

To use the Python 3 interpreter outside of projects that are managed by pipenv, specify python3 on the command-line and inyour scripts, rather than python:

If you need to run the pip utility, rather than setting up a development environment with pipenv, always use the command pip3:

The Python Guide tutorialshows you how to work with pipenv.

Rust Development: rustup

The official rustup utility enables you to install the tools for building softwarewith the Rust programming language. Click on the Install button on the front page of theRust Website, and follow the instructions.

By default, the installer adds the correct directory to your path. If this does notwork, add this to your PATH manually:

This process installs all of the tools into your home directory, and does not add anyfiles into system directories.

Ruby Development: RVM

All macOS systems include a copy of Ruby, but it is outdated. To maintain current andclean Ruby environments, use the RVM system.

RVM relies on Git, so you must have a working installation of Git before you can set upRVM.

By default, RVM downloads copies of Ruby that have been compiled for your operatingsystem. If there is no compiled version, RVM then falls back to downloading the sourcecode and then compiling it on your computer. Enter this command to ensure that therequirements for compiling Ruby are on your system, using Homebrew:

Finally, you can speed up installation of gem packages by disabling the generation oflocal documentation. To do this, create a file in your home directory with the name.gemrc and put this line in it:

Minikube sets up and manages Kubernetes on a single system, so that you can develop and test without needing a set of servers.

To install Minikube with Homebrew, run these commands in a terminal window:

By default, Minikube uses a virtual machine manager. If you do not need VirtualBox, install hyperkit, which provides a minimal virtual machine manager. Minecraft pc and mac.

To install Helm with Homebrew, run this command in a terminal window:

To install Skaffold with Homebrew, run this command in a terminal window:

This article explains Minikube in more detail.

Consider using containers to run the databases that you need. If you prefer to install servicesdirectly on to your workstation, Homebrew provides packages for PostgreSQL, MariaDB and MySQL.

Installing PostgreSQL

To install PostgreSQL using Homebrew, enter this command in a terminal window:

This command installs the server, the command-line tools, and the client libraries thatare needed to compile adapters for programming languages.

Homebrew also provides some commands for managing your PostgreSQL installation. Forexample, to start the server, follow the instructions that are displayed after theinstallation process is completed. If you upgrade your copy of PostgreSQL, you shoulduse the postgresql-upgrade-database command that Homebrew gives you.

Installing MariaDB or MySQL

To install MariaDB using Homebrew, enter this command in a terminal window:

To install MySQL using Homebrew, enter this command in a terminal window:

These commands install the server, the command-line tools, and the client libraries thatare needed to compile adapters for programming languages. To start the server, followthe instructions that are displayed after the installation process is completed.

For compatibility, MariaDB uses the same names for command-line tools as MySQL.

Remember to set a password for the root accounts. First, login with the mysqlcommand-line utility:

The -q Option Disables Command History: By default, the command-line client storesthe full text of every command in a history file. If you know that you are going torun statements that include passwords or other sensitive data, use the -q option.

Run these statements to change the password for root access:

You now need a password to login to the installation as root. To login with root again,use this command:

Enter the password when prompted.

You should also remove the anonymous accounts and test database that MySQL automaticallyincludes:

Mac Vs Windows For Programming

If you intend to duplicate a production environment for testing, create a configurationfile on your Mac. Production installations of MySQL should be configured withappropriate SQL modes to enable data integrity safeguards. By default, MySQL permitsvarious types of invalid data to be entered.

Database Management Tools

  • Azure Data Studio for Microsoft SQL Server
  • pgAdmin for PostgreSQL
  • LibreOffice suite: brew cask install libreoffice
  • VirtualBox virtual machine management: brew cask install virtualbox
  • Docker container management: brew cask install docker

Apple offer overviews and task-orientated help on theirsupport Web site for new macOS users.

Every new user should probably readHow to switch to the Mac, by Rui Carmo. Most popular slot machines.

The macOS Privacy and Security Guide by Dr Doh provides extensive information about those topics.

< Computer Programming

About the platform[edit]

macOS is the primary operating system for the Macintosh computer. It was originally a system designed privately by Apple Inc, however with Mac OS X, it has been based on Unix. Specifically, a modified FreeBSD operating system called 'Darwin'.

There are many different kinds of software that can be developed for Mac OS X. People generally think of applications, but we'll briefly cover some of the other kinds.

Types of Software for Mac OS X[edit]

Applications[edit]

Applications are what people generally think of when they think about software for Mac OS X. Cocoa applications include: Finder, Mail, Address Book, Safari, Microsoft Word, and Microsoft Excel. Anybody can develop applications using Apple's free development tools which includes XCode. Mac OS X applications are developed using Objective-C though there are other possible programming languages that could be used.

The most popular languages for use on the macOS platform is Objective-C which could be thought of as Mac OS X's 'native language' since the Mac OS X libraries, or 'frameworks', all have an Objective-C interface. Objective-C includes everything that plain C can do, and adds object-oriented programming. See: Objective-C.

C++ can be used in developing for the Mac, but generally, it is used in addition to Objective-C rather than being in place of Objective-C. Using both Objective-C and C++ is called 'Objective-C++' and is considered to be optional when developing software for Mac OS X: C++

See Programming:Objective-C for a lesson on the basics of Objective-C [1] may also be of assistance.

Some preliminary thoughts:

Basic Programming Language For Mac

Objective-C is the language most commonly used in Mac OS Programming. Objective-C entered Mac OS X and has ancestry in NeXT. Cocoa. Before you learn Mac programming you must know the basics of C since it is the basis for Objective-C.

There used to be three separate APIs for developing a Mac application with a GUI:

1. Classic (Mac OS 9 and lower). Developing for the Classic API is no longer done. When Mac OS X first came out, users and developers had a huge investment in software written for Mac Classic OS and Mac OS X used to have an emulation mode so that users could run their old software. Apple has long since stopped support of the Classic API and Classic emulation in Mac OS X.

2. Carbon (Mac OS 8.5 up to and including Mac OS X 10.6 Snow Leopard). Carbon was an API for developers to update their applications that used the Classic API to be run without the Classic emulator. Carbon was a great way that Apple provided developers to upgrade their software to run on Mac OS X without having to totally rewrite their software, but Carbon, like Classic, is no longer supported by Apple.

3. Cocoa (All versions of Mac OS X). Cocoa is the most native API that can be used to develop applications for Mac OS X that are truly 'Mac-like'. Generally, Objective-C will be used along with Cocoa, though there are other options such as Cocoa-AppleScript and Cocoa-Python, but Cocoa-Objective-C is really the 'mainstream' way to develop Cocoa applications.

Resource Forks Files in Mac OS X have a feature that is unique to Mac OS and that is that each file on disk can have two 'forks'. This feature used to be used for Classic and Carbon applications to separate code from resources (such as menus, windows, etc.), and the Mac OS X file system still supports two forks, but you should only use the 'data fork'. The resource fork is non-standard and can be lost when transferring Mac files to other file systems.

AppleScripts[edit]

Another 'native language' for developing Mac OS X applications is AppleScript. AppleScript is a language that Apple invented to automate repetitive tasks. The AppleScript application is located on your Mac at /Applications/Utilities/AppleScript Editor. AppleScript can be used to record AppleEvents, the events that applications send to themselves or to other applications. Why don't you try it out. Open AppleScript Editor, press the record button, do some things with your other applications and watch the script write itself. AppleScript can be used alone or it can be used along with XCode to develop Cocoa Applications using mostly AppleScript instead of Objective-C. This option is mostly for experienced AppleScript programmers who don't know Objective-C.

Automator Workflows[edit]

Apple also provides an application called 'Automator' that can be used to easily automate repetitive tasks. It is located at /Applications/Automator.app

Shell Scripts[edit]

Mac OS X has an application called Terminal that provides a command-line interface to Mac OS X. It is possible to develop scripts for the command line. Terminal.app is located at /Applications/Utilities/Terminal.app To create a shell script, you need a text editor. There is a text editor that comes with Mac OS X called 'TextEdit.app'. It is located in /Applications/TextEdit.app. But actually, what is better than TextEdit is a program such as TextWrangler.app which is available for free from the following link: http://www.barebones.com/products/textwrangler/

The shell that Terminal.app uses by default is called 'bash'. Here is a simple tutorial on developing bash scriptshttp://www.maclife.com/article/columns/terminal_101_automate_terminal_bash_scripts

We won't go any more deeply into shell scripts here in this wikibook, but it's just good to know what they are. You can always google for more information now that you know what to google for.

Command Line Tools[edit]

When you open Terminal and you learn how to type in commands. The commands are usually command-line tools or scripts. Above, we just talked about developing your own scripts with a text editor. It's also possible to develop your own command-line tools, using XCode. This is an advanced thing to do. Usually, power-users will write a shell-script (or some other kind of thing such as an AppleScript or an Automator Workflow) but it's good to know what a command-line tool is. Command-line tools have a textual user-interface rather than a graphical user interface (GUI).

Java[edit]

Java used to be treated by Apple as a 'first class language' to develop for Mac OS, however in recent years, Apple has less support for Java. Now with Mac OS X 10.7 'Lion' and 10.8 'Mountain Lion', Java doesn't even come pre-installed in Mac OS X. Java is still available, but users have to download Java from Oracle's website and install it themselves. Apple's Mac App Store doesn't even allow Java apps to be sold at their store calling Java 'deprecated'.

However, there still are Mac developers who use Java because it has the advantage of being cross-platform compatible. For example, the same source-code can be used to generate software that runs on Mac, Windows, and Linux.

Apple has said that Java reduces the Mac to the 'least common denominator'. That's why they support it less.

Python[edit]

Python is somewhat supported by Apple. In fact, Python is shipped with Mac OS X and is part of the System Folder. There are third-party libraries that allow developers to develop applications using Python and Cocoa together, but these are not very well maintained, and Python on the Mac is most suitable for developing command-line utilities, or cross-platform scripts that aren't really very Mac-like.

Ruby[edit]

Similar to Python.

Websites[edit]

Most Mac users use Safari for their web browser. Safari uses the standards set by w3c.org You can develop websites that work with Safari by following the standards of the w3c.org. Remember to validate your HMTL, CSS, and JavaScript.

HTML Validator:http://validator.w3.org/

CSS Validator:http://jigsaw.w3.org/css-validator/

JavaScript Lint:http://www.javascriptlint.com/online_lint.php

If you're developing websites using your Mac and using Safari, remember to test your webpages on other platforms and with other web browsers.

Mac OS X Specific Languages[edit]

Objective-C is really the 'native' language for Mac OS X development

You could call AppleScript a 'native' language too, but it isn't really used to make commercial applications. It was designed to be used by real power-users to automate their tasks. Although it is possible to use AppleScript to build Cocoa applications in XCode, this would be more for users who already know AppleScript and don't want to learn Objective-C.

Mac OS X Frameworks[edit]

Retrieved from 'https://en.wikibooks.org/w/index.php?title=Computer_Programming/MacOS_Programming&oldid=3608589'




broken image