Guia de Plataforma iOS iOS

O HarbourBuilder pode compilar aplicacoes iOS nativas usando controles UIKit, seguindo a mesma API UI_* utilizada no Android. Seu codigo Harbour PRG e compilado para codigo de maquina arm64 nativo — sem web views, sem interpretadores.

Arquitetura

O backend iOS usa o mesmo padrao de inversao do loop de eventos do Android:

Requisitos

Configuracao

Execute o assistente de configuracao pelo menu do IDE: Run > iOS Setup Wizard

Ou manualmente pelo terminal:

cd source/backends/ios
./setup-ios-toolchain.sh

Isso ira:

  1. Verificar se Xcode e o iOS SDK estao instalados
  2. Baixar o runtime do Simulador iOS se necessario
  3. Compilar Harbour para iOS (arm64 dispositivo + x86_64 simulador) via bootstrap-harbour.sh

Compilacao

Pelo IDE: Run > Run on iOS

Ou manualmente:

# Compilar para simulador
./build-ios-app.sh hello_ios.prg simulator

# Compilar para dispositivo
./build-ios-app.sh hello_ios.prg device

O pipeline de build tem 4 etapas:

  1. PRG → C: O compilador Harbour traduz seu .prg para C
  2. Cross-compile: Clang compila C + ios_core.m para iOS
  3. Link: Liga com bibliotecas Harbour iOS + frameworks UIKit
  4. Bundle: Cria .app com Info.plist e codesign

Execucao no Simulador

./install-and-run.sh

Ou manualmente:

xcrun simctl boot "iPhone 16"
xcrun simctl install booted /tmp/HarbouriOS/app-build/HarbourApp.app
xcrun simctl launch booted com.harbour.builder.app

Referencia da API UI_*

FuncaoDescricao
UI_FormNew(cTitle, nW, nH)Cria UIViewController com UIView raiz
UI_LabelNew(hParent, cText, nX, nY, nW, nH)Cria UILabel
UI_ButtonNew(hParent, cText, nX, nY, nW, nH)Cria UIButton
UI_EditNew(hParent, cText, nX, nY, nW, nH)Cria UITextField
UI_SetText(hCtrl, cText)Define texto do controle
UI_GetText(hCtrl)Obtem texto do controle
UI_OnClick(hCtrl, bBlock)Registra codeblock para click
UI_SetFormColor(nClr)Cor de fundo do form (BGR)
UI_SetCtrlColor(hCtrl, nClr)Cor de fundo do controle (BGR)
UI_SetCtrlFont(hCtrl, cFamily, nSize)Define fonte

Formato de Cor

As cores usam o formato Win32 COLORREF: 0x00BBGGRR (BGR), igual aos backends Android e Win32, para que seu codigo PRG seja portavel entre plataformas.

Patches do Harbour para iOS

Tres pequenos patches foram necessarios para compilar Harbour para iOS:

Estes patches sao aplicados automaticamente pelo bootstrap-harbour.sh.

Estrutura de Arquivos

source/backends/ios/
  ios_core.m              # Backend UIKit (HB_FUNCs + AppDelegate + main)
  hello_ios.prg           # App de demonstracao
  bootstrap-harbour.sh    # Compilacao cruzada do Harbour para iOS
  build-ios-app.sh        # Compilar .app a partir do PRG
  install-and-run.sh      # Instalar e lancar no simulador
  setup-ios-toolchain.sh  # Verificar/instalar toolchain