IT Język programowania

Objective-C

Znany też jako:Objective-c

Definicja #

Objective-C to język programowania będący nadzbiorem języka C, rozszerzonym o mechanizmy obiektowe zaczerpnięte z języka Smalltalk. Powstał w latach 80. (Brad Cox, Tom Love) i od lat 90. stał się głównym językiem tworzenia oprogramowania dla platform Apple — NeXTSTEP, macOS i iOS.

Charakterystyczne cechy Objective-C:

  • Wysyłanie komunikatów (message passing) — wywołanie metody to wysłanie komunikatu do obiektu: [obiekt metoda:argument]; semantycznie inne niż typowe wywołanie funkcji
  • Dynamiczny dispatch — decyzja o wywoływanej metodzie jest podejmowana w runtime (nie w czasie kompilacji); elastyczne, ale trudniejsze do optymalizacji przez kompilator
  • Nadzbiór C — każdy kod C jest poprawnym kodem Objective-C; bezpośredni dostęp do bibliotek C i C++
  • Kategorie — rozszerzanie istniejących klas bez dziedziczenia; pozwala dodawać metody do klas systemowych (np. NSString)
  • Protocols — odpowiednik interfejsów; stosowane szeroko w Cocoa Touch (np. UITableViewDelegate)
  • ARC (Automatic Reference Counting) — automatyczne zarządzanie pamięcią przez zliczanie referencji; wcześniej ręczne retain/release
  • Cocoa / Cocoa Touch — frameworki Apple zbudowane w Objective-C: UIKit, Foundation, AppKit; nadal obecne pod spodem nawet w projektach Swift

Objective-C jest wypierany przez Swift (2014) — nowoczesny, bezpieczniejszy i bardziej zwięzły język Apple. Jednak wiele aplikacji enterprise, bibliotek third-party i frameworków systemowych wciąż zawiera kod Objective-C. Interoperacyjność Swift-Objective-C pozwala mieszać oba języki w jednym projekcie.

Zastosowania #

  • Utrzymanie istniejących aplikacji iOS/macOS napisanych w Objective-C — duże korporacje posiadają kod legacy wymagający wsparcia
  • Integracja Swift z bibliotekami Objective-C — przez bridging header oba języki mogą współistnieć w jednym projekcie Xcode
  • Praca z bibliotekami third-party napisanymi w Objective-C — część starszych SDK (np. niektóre SDK reklamowe) dostarcza tylko interfejs Objective-C
  • Reverse engineering i bezpieczeństwo aplikacji iOS — znajomość Objective-C i runtime przydatna w analizie bezpieczeństwa

Ścieżka nauki #

Objective-C jest technologią schyłkową — nowych projektów nie zaczyna się w Objective-C. Warto go poznać dla pracy z legacy kodem lub głębszego zrozumienia ekosystemu Apple.

Zacznij od (jeśli musisz):

  • Podstawy składni: deklaracja klas (@interface, @implementation), wysyłanie komunikatów, właściwości (@property)
  • Typy Foundation: NSString, NSArray, NSDictionary, NSNumber — analogiczne do Swift String, Array, Dictionary
  • ARC i zarządzanie pamięcią: strong, weak, copy
  • Xcode: tworzenie projektu z Objective-C, Interface Builder, Auto Layout

Dla nowych deweloperów iOS:

  • Zacznij od Swift — nowoczesny, aktywnie rozwijany, preferowany przez Apple
  • Naucz się czytać kod Objective-C — przyda się przy pracy z legacy projektami lub dokumentacją starszych API

FAQ #

Czy warto uczyć się Objective-C w 2026 roku?
Tylko jeśli masz konkretną potrzebę — pracę z legacy kodem lub projektem wymagającym Objective-C. Do nowych projektów Apple jednoznacznie rekomenduje Swift. Objective-C nie jest martwym językiem, ale jego ekosystem kurczy się z każdym rokiem. Nowi deweloperzy iOS powinni zaczynać od Swifta.
Czym różni się Objective-C od Swift?
Swift jest nowoczesnym językiem zaprojektowanym przez Apple od podstaw jako bezpieczny, zwięzły i wydajny następca Objective-C. Swift ma statyczne typowanie, opcjonale zamiast nil crashes, closures zamiast bloków, struktury value types. Objective-C ma dynamiczny runtime, syntaktyczną składnię Smalltalk i jest mniej bezpieczny typowo. Oba mogą współistnieć w jednym projekcie.
Czy można mieszać Swift i Objective-C w jednym projekcie?
Tak. Xcode obsługuje bridging header — plik, przez który Swift widzi kod Objective-C. W drugą stronę: Xcode generuje nagłówek z klas Swift oznaczonych @objc, dostępnych dla Objective-C. Wiele dużych aplikacji ma architekturę hybrydową — nowy kod w Swift, legacy w Objective-C.
Czy frameworki Apple są napisane w Objective-C?
Historycznie tak — UIKit, Foundation, AppKit były pisane w Objective-C. Apple stopniowo przepisuje je do Swift (SwiftUI zastępuje UIKit w nowym kodzie), ale rdzeń wielu frameworków wciąż to Objective-C, eksponowany przez Swift overlay. Dlatego znajomość Objective-C pomaga rozumieć komunikaty błędów i zachowania runtime.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Objective-C w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.