Cocoaは、アプリケーションプラットフォームまたはアプリケーション開発フレームワークと考えることができますが、LinuxまたはWindows環境のいずれかよりもオペレー
API、オペレーティングシステム、および(もちろん)Apple自身のハードウェア間のこの緊密な統合は、シームレスな開発環境を提供し、物事の”Appleの方法”を強制す
ココアの歴史
ココアは文字通りCで始まります。
1980年代初頭、Brad CoxとTom Loveという名前の開発者のペアは、当時OOPをサポートしていなかったCプログラミング言語にオブジェクト指向を追加しようとしました。
彼らの解決策は、Plain compilable CコードにSmalltalkのような追加を加えてCコードをレンダリングするプリプロセッサを作成することでした。 (Smalltalkは初期のオブジェクト指向言語であった。)
このプリプロセッサはすぐに本格的な言語拡張に進化し、Objective-Cとして知られるようになりました。 1985年にスティーブ-ジョブズがアップルから解雇された後に設立されたNeXT softwareは、Objective-Cをクリエイターからライセンスし、いくつかの開発フレームワークの基礎とし
これらはNeXTSTEPとOpenStepのアプリケーションプラットフォームを形成し、NeXTは80年代と90年代を通じて販売しました。
Appleは1996年にNeXTを買収し、Steve JobsがCEOに復帰しました。 NeXTSTEPフレームワークは、Macオペレーティングシステムに自分の道を作った。
AppleはすでにCocoaという名前を商標登録していましたが、別のプロジェクトのために中止されました。 Appleの新しいバージョンのフレームワークに商標登録されたブランド名をすばやく入れるために、彼らはそれをCocoaと呼びました。
Cocoaは1990年代後半からAppleのすべてのオペレーティングシステムの一部であり、それ以来OSと新しいデバイスプラットフォームとともに進化してきました。
ココアは何をしていますか?
Cocoaは多くのことを行いますが、大まかに言えば、これらは四つのカテゴリに分類されます。
-
Objective-Cの拡張標準ライブラリとして機能し、Objective-Cの設計には存在しない現代のコンピューティング言語のより豊かなオブジェクトと機能をサポートします。
-
統一されたユーザーインターフェイスとユーザーエクスペリエンスを提供します。
-
アプリケーションが他のアプリケーション、サービス、およびデバイス機能にアクセスできるようにします。
-
特定のアーキテクチャとデータ管理パターンを奨励します。
これらの広範な設計目標は、いくつかの”フレームワークで実装されています。”この用語は少し混乱するかもしれません。 現代的な用語では、Cocoaは複数のモジュールやライブラリを持つ単一のフレームワークに似ています。 しかし、Appleはこれらのライブラリのそれぞれを”フレームワーク”と呼んでいます。”
これらの機能的な目標のそれぞれと、さまざまなCocoaフレームワークがどのようにそれらを達成するかを少し見てみましょう。標準ライブラリとしてのCocoa
Objective-Cには標準ライブラリがあります。 Cocoa環境では、標準ライブラリとランタイムは実際にCocoaによって提供されます。 さらに、拡張された言語機能のセットは、実際には、事実上の標準ライブラリとして機能するFoundation Kitによって提供されています。
これは、Objective-Cで通常利用可能なよりも高度な言語機能を提供します。 これには、数値、日付、文字列、Url、正規表現、エラーメッセージなど、一般的に使用されるタイプのオブジェクトのための幅広い基本クラスが含まれています。
このFoundation Kitフレームワークは、Objective-cで書かれたアプリに不可欠ですが、Appleが新しいSwift開発言語を推進しているため、Appleプラットフォームでのアプリ開発はObjective-Cから
SwiftはFoundation Kitによって追加された最新の言語機能の多くをネイティブに提供していますが、Swift中心の将来においてFoundationとObjective-Cがどのような役割を果た
UI/UXインターフェイスとしてのCocoa
Cocoaのこの側面は、おそらくアプリ開発者にとって最も明らかに重要です。Os XバージョンのCocoaでは、user experience APIはAppKitというフレームワークによって提供されています。 Ios用のCocoa Touchでは、これはUIKitと呼ばれます。
どちらの場合も、これらはグラフィカル要素、ユーザーインターフェイス制御、ウィンドウとパネルの管理、マルチタッチインターフェイス、およびユーザーとシ
AppKitとUIKitの使用は、アプリケーションの外観を作り、Appleシステムにネイティブに感じ、入力(ジェスチャー、クリック、動き)に”正しい”方法に応答するものです。CocoaとCocoa Touchの大きな違いは、AppKitとUIKitの違いです。 Appleはプラットフォーム間でユーザーエクスペリエンスを統一するために働いてきた限り、あなたはまだあなたがデスクトップMacで行うよりも、iPhoneわずかに異なるGUI要素に加えて、UIKitにはコンパスの方向、GPS、加速度計(デバイスの動き)、タッチスクリーンなどのサポートが含まれています。
Cocoa As Operating System Interface
Appleのアプリは、他のアプリやオペレーティングシステムサービスと対話できるようにする必要があります。
チャットアプリで電話番号をクリックして電話を開始できるようにするには、アプリがお互いに話すことができる必要があります。
チャットアプリで電話番号をクリックして電話を開始できるようにするには、アプリがお互いに話すことができる必要があります。
音楽編集アプリがマイクから音を拾ってスピーカーに再生できるようにするには、アプリがオペレーティングシステムサービスと対話できる必要があ
Cocoaは、アプリやサービスへのアクセスを提供するフレームワークの全体の長いリストを提供します。 これらは、アプリがスタンドアロンの実行可能ファイルであるだけでなく、統合されたエコシステム内に存在し、動作することを可能にするも
Cocoa as Architect
Cocoaは、アプリケーション内とアプリケーション自体の外部での通信方法における二つの重要なアーキテクチャパターンをサポートしています。
Cocoaは、Model-View-Controllerアーキテクチャのパラダイムを念頭に置いて書かれており、すべてのレベルでMVC開発をサポートしています。ビューはAppKitまたはUIKitフレームワークによって実装されています。 コントローラモジュールは、Foundation Kitに組み込まれたクラスファミリを通じてサポートされています。 モデル、およびデータ永続化レイヤーへの必要な接続は、Core Dataと呼ばれる別のフレームワークによって処理されます。
この設計は、iOSとOS Xアプリケーション内のモデルビューコントローラアーキテクチャを奨励しています(強制と言う人もいます)。
異なるアプリケーション間、およびアプリケーションとサービス間でも、さまざまなフレームワークは本質的にサービス指向の方法で相互作用を仲介します。 これにより、アプリを相互に統合することがより簡単かつ安全になり、堅牢で弾力性のあるアプリケーションエコシステムが促進されます。
Cocoaリソース
オンライン
チュートリアル
-
CocoaとCocoa Touchの基本的なプログラミング概念
-
Cocoaのコーディングガイドラインの紹介
-
Cocoa Dev Central
-
初心者のためのCocoaでMac OS Xをプログラミングする。
-
Cocoaコントロール:iOSおよびOS X用のオープンソースUIコンポーネント。
-
Cocoaポッド:Cocoaプロジェクト用のパッケージマネージャ。ul>
- CocoaとCocoa Touchの開発に特化したローカル会議やディスカッショングループの世界的なネットワーク。
-
Objective-CでCocoaを学ぶ
-
RyのCocoaチュートリアル
-
Cocoa(開発者リファレンス
-
ココアのデザインパターン。CocoaまたはCocoa Touchを真空中で使用することはできません。 これは、Xcode、Objective-C、およびSwiftを含む、より大きなAppleアプリ開発環境の一部です。 これらのさまざまなツールと技術が連携して、開発エコシステムを形成します。Xcodeは、OS XおよびiOSアプリケーションを構築するために必要な統合開発環境(IDE)です。 Swift、Cocoa、Apple App store、およびより大きなAppleエコシステムと緊密に統合されています。
Xcodeに関するチュートリアルは、すべての一般的なApple開発リソースでカバーされているため、特に多くのチュートリアルはありません。 しかし、一つの素晴らしいリソースは、Xcodeの新しいバージョンが出てくると定期的に更新されるこのXcodeチュートリアルです。
Objective-C
-
Objective-Cについて:Apple Developer centerからの入門チュートリアル
-
Objective-Cプログラミング
-
Objective-Cプログラミング:Big Nerd Ranchガイド。また、Objective-Cリソースのより完全なリストもあります。
Swift
-
Swiftプログラミング言語:公式Appleガイド
-
Swift Programming:The Big Nerd Ranch Guide:テーマに関する決定的な本。
Swiftリソースの完全なリストもあります。
一般的なApple開発リソース
Appleプラットフォームの開発に関する情報とリソースの最初の場所は、Apple Developer siteです。
MacとiOSの開発に関する最高の本の多くは、Big Nerd Ranchから来ています。 特定のトピックに関する彼らの本は上記で言及されており、あなたはまた、高度なMac OS XプログラミングとiOSプログラミングに関する彼らの本をチ他の良い一般的なリソース:
-
Ray Wenderlichチュートリアル:Appleがプラットフォームを更新するときに古いチュートリアルを戻って更新する比較的少数のプロバYouTubeのApple Programmingチャンネル:公式ではありませんが、非常に役立ちます。WeHeartSwift:名目上はSwiftについてですが、このサイトはOS XとiOS開発のすべての側面をカバーしています。
-
-
-
ObjC.io:iOSおよびOS X開発のための高度な技術と実践に関する書籍や記事。
: MacとiOSの開発に関する人気のあるブログで、Objective-C、Swift、Cocoaの”見落とされたビット”に関する多くのチュートリアルがあります。”彼らはまた、彼らの報道に非常に独断的であり、おそらく強さです。
ボトムライン。..CocoaとCocoa Touchは、MacおよびiOS用のネイティブアプリ開発の基盤です。
iOSの場合、HTML5とJSで非ネイティブモバイルアプリを構築する方法は他にもありますが、これは常に期待どおりに行くわけではありません。次の大きなiPhoneアプリを構築する場合、またはOS Xとうまく統合し、ユーザーの期待に適合するMacアプリを作成する場合は、CocoaとCocoa Touchを掘り下げる必要があ ネイティブアプリ開発のために、実際には代用品はありません。